Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 05-08-2022 em todas as áreas
-
Foi publicado aviso no portal Nacional da NFe relativo a instabilidade no ambiente deste DFe, oque conforme relação do aviso, pode afetar os seguinte serviços: Importante: Tendo em vista que a autorização da NFe é feita pelas UFs ou pelo SVRS, não está havendo impacto quanto a esta questão a nenhum contribuinte, os quais devem ter a emissão da NFe ocorrendo sem problemas. Fonte: http://www.nfe.fazenda.gov.br/portal/informe.aspx?ehCTG=false&Informe=6dlPsN2i/rk=3 pontos
-
Olá Pessoal, Encontra-se disponível no Portal dos Documentos Fiscais Eletrônicos da SEFAZ-Virtual do Rio Grande do Sul para quase todos os modelos de DF-e as seguintes opções na lista de Serviços: Visualizador de Schemas e Consulta Regras de Validação. As telas abaixo se referem ao BP-e (Bilhete de Passagem Eletrônico). Mas como dito acima esses dois serviços estão disponíveis para quase todos os DF-e (NF-e, CT-e, etc...). No Visualizador de Schemas temos a seguinte tela: Devemos informar a versão do Schema desejado e clicar em Processar, será apresentado o layout do XML. No Consulta Regras de Validação temos a seguinte tela: Podemos selecionar o WebService e o tipo de Publicação e ao clicar em Pesquisar será apresentado a lista das regras. Esse é o link do site Portal dos Documentos Fiscais Eletrônicos - SVRS3 pontos
-
Conforme aviso na página da NFe, está agendada para as 06:00 do dia 07/08/2022 a parada para manutenção dos ambientes de autorização de DFe relativos a SEFAZ-RS. A duração prevista da manutenção é de 3 horas, sendo assim, a previsão é de que as 09:00 os ambientes sejam reestabelecidos. Importante Veja também nosso artigo sobre a Contingência Fonte: http://www.nfe.fazenda.gov.br/portal/informe.aspx?ehCTG=false&Informe=4m9xb5EYa/w=2 pontos
-
untilA Tectoy Automação estará na Estrada, apresentando aos Desenvolvedores de Sistemas e Revendas, sua nova linha de equipamentos que elevam o segmento de Automação Comercial para um outro nível, especialmente em qualidade, robustez e design... Não perca a oportunidade e faça parte desta nova fase! Ajude seu cliente a melhorar experiências de compra, otimizar rotinas de vendas e disposição na área de operação, tudo o que existe de melhor em automação. Confira palestras com convidados especiais, sobre tema de Desenvolvimento de aplicações Comerciais em Sistemas baseados em Android e compreenda porque esse é sem dúvida o Futuro da Automação Comercial no Brasil. Inscrições: https://tectoynaestrada.com.br/1 ponto
-
Boa tarde! Achei uma tag errada na geração do SPED ECF, Registro X450. ACBrECFBloco_X_Class.pas1 ponto
-
Boa tarde, Foi publicada a versão 10.0.0 do programa validador do SPED Contábil, o qual conta com as seguintes mudanças: Fonte: http://sped.rfb.gov.br/pagina/show/60571 ponto
-
Faça um teste dessa forma com o demo por favor: Ative o log, coloque apenas a tag de abertura de gaveta e clique em "Imprimir" Caso o erro persista, anexe o log gerado aqui no tópico por favor.1 ponto
-
Essa ultima solução que vocês fez, é ótima. vou até alterar meus fontes porque já tenho clientes reclamando. Valeu demais pela resolução.1 ponto
-
Olá pessoal, Foi publicado a versão 1.10 da referida NT com as seguintes alterações: A versão 1.10 dessa Nota Técnica traz alteração na documentação da Regra E12-10 e criação de exceção para a Regra E16a-20. Como são alterações documentais ou que visam diminuir a quantidade de rejeições e não exigirão esforço de implementação por parte das empresas, o prazo de entrada em produção está mantido. O prazo previsto para a implementação das mudanças é: * Ambiente de Homologação (ambiente de teste das empresas): até 05/08/2022 * Ambiente de Produção: 15/08/2022 Regra E12-10 passa a ter a seguinte condição: Se Operação com Exterior (tag: idDest=3): UF de destino diferente de “EX” Regra E16a-20 passa a ter a seguinte exceção: Exceção: Regra não se aplica quando existir algum item com a UF de consumo do combustível igual a exterior (tag: comb/UFCons = “EX”) e com CFOP = “7667 - Venda de combustível ou lubrificante a consumidor ou usuário final”. Observações: Pelo fato das alterações serem nas regras de validação na SEFAZ, não se faz necessário nenhuma alteração no componente ACBrNFe. Mas temos que ter ciência dessas alterações, pois impacta na passagem dos dados corretos para o componente.1 ponto
-
larguei pensando e fui tomar um café voltei e entrou nessa tela1 ponto
-
aqui o site da sefaz não entra eu dou um click aqui e não acontece nada, fica só rodando e pensando os outros sites entram normal e a net está bem rapida, então tem que ser o problema na Sefaz mesmo1 ponto
-
isso só acontece quando não marca para imprimir em apenas uma linha. Também estou com esse problema. Atualizei o driver da Elgin i9 e continua igual. pensei que fosse margem, mas não imprimir de maneira nenhuma.1 ponto
-
Boa Noite, Atualizei os fontes e testei novamente, o resumo é retornado, porém no nosso caso, usávamos o XML para preencher o componente do Acbr e fazer uma impressão posteriormente... Procurei no site da prefeitura, e infelizmente não encontrei uma configuração onde posso escolher como o webservice retorna o arquivo. Vou entrar em contato com o pessoal da prefeitura pra ver com eles se tem alguma forma de alterar esse arquivo de retorno. Agradeço a atenção!1 ponto
-
Legal. entendi a VPN pode mesmo estar interferindo nessa questão.1 ponto
-
Caso queira analisar os arquivos, estou anexando, se deixar o componente como está e seguir as instruções deles não passa, ai tem que entrar em contato com o pessoal da Fiorilli, mas como já está funcionando em produção para o municipio que precisava vou deixar para quando tiver mais tempo rsrs... 25-lista-nfse-sinc-Aceito.zip 25-lista-nfse-sinc-soap-Rejeitado.zip1 ponto
-
Alguma instabilidade de rede ou do servidor, basta fazer o update e cleanup se necessário.1 ponto
-
Olá @Edevair Viesa Junior Acabei de fazer alguns testes aqui com uma impressora i9 e uma gaveta Bematech e abriu a gaveta certinho, sem impressão de papel. Notei que vc está apenas utilizando o "...Buffer.Add()" Provavelmente deve ter ficado algo no Buffer. Tente fazer um teste dessa forma que o Panda comentou, utilizando o "...Buffer.Text :=" ou pelo menos limpando a lista antes do comando. Dessa forma: MD.ACBrPosPrinterGaveta.Buffer.Clear; MD.ACBrPosPrinterGaveta.Buffer.Add('</abre_gaveta>'); MD.ACBrPosPrinterGaveta.Imprimir;1 ponto
-
Bom dia, o ativar e desativar, você pode deixar o controle de porta como ativo que isso já é feito automaticamente. faça esse teste e veja se o resultado muda; PosPrinter.Buffer.text := '</abre_gaveta>'; PosPrinter.Imprimir;1 ponto
-
EDIT: As alterações abaixo já se encontram no SVN desde o dia 23/02/2022. Olá Pessoal, Como sempre queremos facilitar pra vocês ao máximo o uso de nossos componentes e a manutenção de seu código. Sendo assim, achamos apropriado fazer algumas alterações no componente ACBrNFSeX. O componente antigo, ACBrNFSe, não será alterado visto que não estamos fazendo melhorias nele, apenas manutenção de erros e falhas. Para saber mais sobre como migrar do ACBrNFSe para o ACBrNFSeX, veja esse link. Vamos detalhar abaixo as mudanças e as motivações. Anteriormente, no componente tínhamos as seguintes propriedades: XML, XMLOriginal, XMLAssinado e XMLNFSe. Essas propriedades foram criadas seguindo o modelo do componente antigo e podiam ser lidas através da lista de notas, como por exemplo no código: Elas tinham a seguinte função no componente antigo: XML: o XML da NFS-e retornado pelo WebService; XMLNFSe: o XML da NFS-e retornado pelo WebService; XMLOriginal: o XML do RPS sem assinatura; XMLAssinado: o XML do RPS (que pode estar assinado ou não dependendo do provedor); Agora pense um pouco sobre o que viu. Temos duas propriedades que contem o XML da NFS-e e duas que contem o XML do RPS. Não temos necessidade dessa redundância, principalmente porque o componente novo, ACBRNFSeX, está muito mais funcional na questão de separação de comportamento dos provedores. Sendo assim, as propriedades XMLAssinado e XMLNFSe acabaram ficando sem utilidade. Estávamos na situação de que ao tentar ler as mesmas é retornado uma string vazia. Já na propriedade XMLOriginal era retornado o XML do Rps (assinado ou não conforme o provedor). Por firm, na propriedade XML era retornado o XML da NFS-e. Estamos fazendo as seguintes alterações no ACBrNFSeX: As propriedades XMLAssinado e XMLNFSe foram removidas. Elas não continham nenhuma informação. A propriedade XML foi renomeada para XmlNfse, deixando mais claro o objetivo. A propriedade XMLOriginal foi renomeada para XmlRps, dando mais clareza ao que ela contêm. Assim ao invés de 4 propriedades com nomes talvez confusos e dados redundantes, agora temos 2 funcionais. Para aqueles que desejam guardar o XML do Rps e ou da NFS-e no banco de dados basta ler as propriedades mencionadas acima podem usar um código semelhante ao abaixo XMLReciboRPS := ACBrNFSeX1.NotasFiscais.Items[ i ].XmlRps; XMLNotaServico := ACBrNFSeX1.NotasFiscais.Items[ i ].XmlNfse; Onde "i" é o índice da nota na lista, que pode variar de zero até a quantidade de documentos menos 1. Observações: Se o valor da propriedade de configuração: Configuracoes.Arquivos.Salvar for True os valores de XmlRps e XmlNfse serão salvos em disco; O conteúdo de XmlRps será salvo na pasta Recibos e o de XmlNfse na pasta Notas;1 ponto
-
Olha eu novamente... Outro erro no mesmo cliente, agora o ACBr esta dizendo que as datas de vencimento não valem, será que o formato das datas informadas não são inteligiveis ao ACBr ? [Fatura] nFat=655 vOrig=1210,00 vDesc=0,00 vLiq=1210,00 [Duplicata001] nDup=001 cVenc=19/03/2022 vDup=403,34 [Duplicata002] nDup=002 cVenc=18/04/2022 vDup=403,33 [Duplicata003] nDup=003 cVenc=18/05/2022 vDup=403,33 [pag001] tPag=15 vPag=1210,00 indPag=11 ponto
-
1 ponto
-
Manual de migração para o novo componente de NFS-e. 1. Introdução Foi realizado um refactoring no componente de emissão de NFS-e Nota Fiscal de Serviço Eletrônica, que acabou resultando em um novo componente chamado ACBrNFSeX e consequentemente um novo para impressão do DANFSE (ACBrNFSeXDANFSERL – Fortes Report). O motivo de realizar esse refactoring foi devido a uma grande quantidade de IF e CASE em diversas units para sanar a falta de padronização entre os provedores. O componente também tinha algumas propriedades de configuração repetidas com nomes diferentes e até campos na classe da NFS-e que na verdade deveriam ser propriedades de configuração, ou seja, propriedades de configuração foram implementadas como sendo campos de uma NFS-e. Portanto ao realizar a troca do componente atual (ACBrNFSe) pelo novo (ACBrNFSeX) vai ocorrer quebra de código. Esse manual tem como objetivo apresentar um roteiro de migração e apresentar o que mudou de um componente para o outro. 2. Propriedades de configuração excluídas Foram excluídas as propriedades: SenhaWeb, UserWeb, PathIniCidades, PathIniProvedor e DadosSenhaParams, Key, Auth, RequestId e Resposta. 3. Propriedades de configuração renomeadas As propriedades: WebUser, WebSenha, WebFraseSecr e WebChaveAcesso agora se chamam: WSUser, WSSenha, WSFraseServ e WSChaveAcesso. Essas propriedade se encontram em: Configuracoes.Geral.Emitente 4. Propriedades de configuração novas Foi incluída as propriedades: WSChaveAutoriz (string) em Configuracoes.Geral.Emitente e ConsultaAposCancelar (Boolean) em Configuracoes.Geral. 5. Campos excluídos Foram excluídos da classe IdentificacaoPrestador os campos: Senha, FraseSecreta, cUF, ChaveAcesso, Usuario, CNPJ_Prefeitura, ValorReceitaBruta, DataInicioAtividade, RazaoSocial, Fantasia, Endereco, Telefone, Email, crc e crc_estado. Alguns desses campos que foram excluídos possuem uma propriedade de configuração, logo o componente vai se utilizar da informação que se encontra na configuração do mesmo. Outros campos migraram para uma outra classe. Excluído o campo PrestadorServico da classe NFSe, para informar os dados do prestador devemos utilizar o campo Prestador que já existia na classe NFSe. Os campos CNPJ e InscricaoMunicipal agora estão dentro da classe IdentificacaoPrestador, exemplo: Prestador.IdentificacaoPrestador.CNPJ Prestador.IdentificacaoPrestador. InscricaoMunicipal Excluído os campos Discriminacao, ValorServicos e Codigo da classe ItemServico, usar no lugar os campos Descricao, ValorTotal e CodServ. A classe ItemServico é utilizada pelos provedores que permitem incluir mais de um item de serviço no RPS. 6. Campos renomeados O campo ChaveNFSe da classe NFSe que é utilizado pelo provedor Infisc foi renomeado para refNF para compatibilizar com a nomenclatura da tag no XML, o seu conteúdo é gerado automaticamente, logo não se faz necessário atribuir nada a ele. 7. Campos novos Na classe DadosPrestador passou a ter os campos: cUF (Integer), crc (string), crc_estado (string), DataInicioAtividade (TDateTime) e ValorReceitaBruta (Currency). Na classe NFSe foi incluído o campo SituacaoTrib (TSituacaoTrib) pois estava sendo utilizado um outro campo chamado Situacao, sendo que este contem a situação do processamento do RPS. 8. Campos cujo tipo foi alterado Alterado o tipo de string para TTipoPessoa do campo Tipo que se encontra na classe IdentificacaoTomador. 9. Métodos excluídos Foi excluído o método Enviar, EnviarSincrono e Gerar. 10. Métodos renomeados O método SetConfigMunicipio agora se chama LerParamsMunicipio. 11. Métodos novos Foi implementado o método Emitir que detecta o modo de envio correto para cada provedor. O método Emitir possui 3 parâmetros: aLote do tipo Integer ou String que contém o número do lote de RPS que está sendo enviado para o WebService; aModoEnvio do tipo TmodoEnvio cujos valores aceitos são (meAutomatico é o valor padrão): meAutomatico = o componente vai utilizar o serviço mais adequado ou implementado pelo provedor; meLoteAssincrono = o componente vai utilizar o serviço que recepciona o lote de RPS no modo assíncrono, se o provedor não tem esse serviço será apresentado uma mensagem de erro acusando que o serviço não foi implementado pelo provedor; meLoteSincrono = o componente vai utilizar o serviço que recepciona o lote de RPS no modo síncrono, se o provedor não tem esse serviço será apresentado uma mensagem de erro acusando que o serviço não foi implementado pelo provedor; meUnitario = o componente vai utilizar o serviço que recepciona um RPS por vez, se o provedor não tem esse serviço será apresentado uma mensagem de erro acusando que o serviço não foi implementado pelo provedor; meTeste = alguns provedores possuem um serviço exclusivo para realização de teste de envio de lote de RPS, para esses casos devemos usar esse modo de envio. aImprimir do tipo Boolean (True é o valor padrão), se for True imprimir automaticamente o DANFSE. Foi acrescentado os métodos GravarINI e LerINI, visando gravar e ler o arquivo INI de configuração do componente, esse arquivo INI de configuração será utilizado pelo ACBrMonitor e ACBrLibNFSe. Foi implementado o método LerArqIni visando a leitura de um arquivo INI com os dados do serviço prestado. Esse método também será utilizado pelo ACBrMonitor e ACBrLibNFSe. 12. Métodos que sofreram alteração em seus parâmetros No método ConsultarLoteRps a ordem dos parâmetros foi alterada, agora é: Protocolo e depois Número do lote, uma vez que o número do lote só é utilizado por alguns provedores e não por todos. Definição do método na unit ACBrNFSeX: function ConsultarLoteRps(const AProtocolo: String; const ANumLote: String = ''): Boolean; No método ConsultarNFSePorRps foi removido o último parâmetro: ACodMunicipioTOM em seu lugar foi incluído: ACodVerificacao, o motivo dessa troca é que nenhum provedor está utilizando o código do município do tomador na consulta e por outro lado temos provedores que se utilizam do código de verificação. Definição do método na unit ACBrNFSeX: function ConsultarNFSeporRps(const ANumRPS, ASerie, ATipo: String; const ANumLote: String = ''; const ACodVerificacao: string = ''): Boolean; No método ConsultarNFSe foram removidos todos os parâmetros e no lugar foi colocado o aInfConsultaNFSe que é do tipo TInfConsultaNFSe. Para entender como devemos informar os dados para efetuar a consulta de uma nota vide o programa exemplo do novo componente. Foram criados vários métodos de Consulta de NFSe: Usado pelos provedores que seguem a versão 1 do layout da ABRASF. function ConsultarNFSePorNumero(const aNumero: string; aPagina: Integer = 1): Boolean; Usados pelos provedores que seguem a versão 2 do layout da ABRASF. Realiza uma consulta por faixa de números de notas: function ConsultarNFSePorFaixa(const aNumeroInicial, aNumeroFinal: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por período: function ConsultarNFSePorPeriodo(aDataInicial, aDataFinal: TDateTime; aPagina: Integer = 1; aNumeroLote: string = ''): Boolean; Realiza uma consulta por numero de uma nota – serviço prestado: function ConsultarNFSeServicoPrestadoPorNumero(const aNumero: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por período – serviço prestado: function ConsultarNFSeServicoPrestadoPorPeriodo(aDataInicial, aDataFinal: TDateTime; aPagina: Integer = 1): Boolean; Realiza uma consulta por tomador – serviço prestado: function ConsultarNFSeServicoPrestadoPorTomador(const aCNPJ, aInscMun: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por intermediário – serviço prestado: function ConsultarNFSeServicoPrestadoPorIntermediario(const aCNPJ, aInscMun: string; aPagina: Integer = 1): Boolean; O autor das consultas acima é o prestador de serviço. Realiza uma consulta por numero de uma nota – serviço tomado: function ConsultarNFSeServicoTomadoPorNumero(const aNumero: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por período – serviço tomado: function ConsultarNFSeServicoTomadoPorPeriodo(aDataInicial, aDataFinal: TDateTime; aPagina: Integer = 1): Boolean; Realiza uma consulta por prestador – serviço tomado: function ConsultarNFSeServicoTomadoPorPrestador(const aCNPJ, aInscMun: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por tomador – serviço tomado: function ConsultarNFSeServicoTomadoPorTomador(const aCNPJ, aInscMun: string; aPagina: Integer = 1): Boolean; Realiza uma consulta por intermediário – serviço tomado: function ConsultarNFSeServicoTomadoPorIntermediario(const aCNPJ, aInscMun: string; aPagina: Integer = 1): Boolean; O autor das consultas acima é o consulente, que pode ser o tomador do serviço ou outra pessoa como por exemplo o contador. Caso o provedor não tenha disponibilizado esses serviços de consultas em seu WebService, uma mensagem de erro será apresentada acusando que o serviço não foi implementado pelo provedor. No método CancelarNFSe foram removidos todos os parâmetros e no lugar foi colocado o aInfCancelamento que é do tipo TInfCancelamento. Para entender como devemos informar os dados para efetuar o cancelamento de uma nota vide o programa exemplo do novo componente. O primeiro parâmetro do método LinkNFSe no novo componente obrigatoriamente tem que ser uma string. 13. Arquivos INI O novo componente não se utiliza mais dos arquivos INI dos provedores e nem do Cidades.ini Agora temos uma unit para cada provedor e o conteúdo do arquivo Cidades.ini migrou para o arquivo ACBrNFSeXServicos.ini que é convertido em um arquivo RES através do BAT chamado Compila_RES. O arquivo ACBrNFSeXServicos.res é incorporado ao executável ao compilar a aplicação, desta forma não se faz necessário disponibilizar junto com o executável nenhum arquivo INI. Layout de uma seção no arquivo ACBrNFSeXServicos.ini [9999999] Código IBGE da cidade. Nome= Nome da cidade de preferência sem cedilha e vogal acentuada. UF= Sigla da UF da referida cidade. Provedor= Nome do provedor, deve-se respeitar a grafia levando em consideração letras maiúsculas e minúsculas. Os 2 campos abaixo são utilizados pelo provedor Governa Params1= Informar a versão do layout do Arquivo que é usado no elemento: tsVrsArq Params2= Informar a versão do layout de Impressão que é usado no elemento: tsVrsImp Os 2 campos abaixo são utilizados pelo provedor DataSmart Params1= O provedor defini uma abreviação do nome da cidade, por exemplo B_SJOSE é utilizado para a cidade de São Jose do Ouro. Params2= Por padrão o valor BANCO_DEMOSTRACAO. O campo abaixo defini o código da Entidade definida pelo provedor Equiplano para cada cidade. Params1= Informar o código da Entidade que usado no elemento: IdEntidade. Os 2 campos abaixo são utilizados para definir a URL do Link para se ter acesso ao DANFSE via navegador. ProLinkURL= Informar a URL do ambiente de Produção. HomLinkURL= Informar a URL do ambiente de Homologação. Os 2 campos abaixo são utilizados para definir a URL do NameSpace, o provedor ISSDSF tem um NameSpace diferente para cada cidade. ProNameSpace= Informar a URL do NameSpace para o ambiente de Produção. HomNameSpace= Informar a URL do NameSpace para o ambiente de Homologação Os 2 campos abaixo são utilizados para definir a URL do NameSpace do XML, o provedor Actcon tem um NameSpace do XML diferente para cada cidade. ProXMLNameSpace= Informar a URL do NameSpace do XML para o ambiente de Produção. HomXMLNameSpace= Informar a URL do NameSpace do XML para o ambiente de Homologação Os 2 campos abaixo são utilizados para definir a URL do SoapAction, o provedor Actcon tem um SoapAction diferente para cada cidade. ProSoapAction= Informar a URL do SoapAction para o ambiente de Produção. HomSoapAction= Informar a URL do SoapAction para o ambiente de Homologação Se o provedor não tem uma URL de serviço padronizada de produção, ou seja, uma para cada cidade devemos utilizar os campos abaixo: ProRecepcaoLoteRPS= Informar a URL para o ambiente de Produção. Os campos abaixo só devem ser incluídos caso a URL seja diferente para cada serviço. ProConsultaSitLoteRPS= ProConsultaLoteRPS= ProConsultaNFSeRPS= ProConsultaNFSe= ProCancelaNFSe= ProGerarNFSe= ProRecepcaoSincrono= ProSubstituiNFSe= ProAbrirSessao= ProFecharSessao= Se o provedor não tem uma URL de serviço padronizada de homologação, ou seja, uma para cada cidade devemos utilizar os campos abaixo: HomRecepcaoLoteRPS= Informar a URL para o ambiente de Homologação. Os campos abaixo só devem ser incluídos caso a URL seja diferente para cada serviço. HomConsultaSitLoteRPS= HomConsultaLoteRPS= HomConsultaNFSeRPS= HomConsultaNFSe= HomCancelaNFSe= HomGerarNFSe= HomRecepcaoSincrono= HomSubstituiNFSe= HomAbrirSessao= HomFecharSessao= 14. Roteiro para migrar do componente atual ACBrNFSe para o novo ACBrNFSeX 1. Fazer uma cópia dos fontes do projeto; 2. Carregar o Delphi; 3. Abrir o projeto; 4. Remover os componentes (ACBrNFSe e ACBrNFSeDANFSeRL); 5. Remover do uses as units: ACBrNFSeDANFSeClass, ACBrNFSeDANFSeRLClass e ACBrNFSe; 6. Remover do uses (implementação) as units: ACBrNFSeNotasFiscais, ACBrNFSeConfiguracoes, pnfsConversao e pnfsNFSe; 7. Comentar as procedures: ACBrNFSe1GerarLote e ACBrNFSe1StatusChange tanto a sua declaração quanto a sua implementação; 8. Salvar o projeto; 9. Incluir os novos componentes: ACBrNFSeX e ACBrNFSeXDANFSeRL; 10. Salvar novamente o projeto; 11. Relacionar o ACBrNFSeX com o ACBrNFSeXDANFSeRL e com o ACBrMail; 12. Criar novamente os eventos GerarLote e StatusChange do componente ACBrNFSeX e inserir o seu código (tome como base o que está comentado); 13. Executar o Replace (ACBrNFSe1 para ACBrNFSeX1); 14. Trocar o NotasFiscais.Add.NFSe por NotasFiscais.New.NFSe; 15. Incluir no uses (implementação) a unit: ACBrNFSeXConversao; 16. Remover as linhas referentes as propriedades de configuração que não existe mais, conforme mencionado no início deste Manual; 17. Alterar o nome de algumas propriedades de configuração conforme mencionado no início deste Manual. 18. Alterar o conteúdo da procedure AtualizarCidades conforme apresentado neste Manual; 19. Alterar a ordem dos parâmetros do Consultar Lote; 20. Alterar o método Enviar(vNumLote) para Emitir(vNumLote, meLoteAssincrono); 21. Alterar o método Gerar(StrToint(vNumRPS)) para Emitir(vNumRPS, meUnitario); 22. Alterar o método EnviarSincrono(vNumLote) para Emitir(vNumLote, meLoteSincrono); 23. Alterar conforme acima os métodos CancelarNFSe e ConsultarNFSe e LinkNFSe; 24. Alterar conforme o programa exemplo do componente ACBrNFSeX a forma de realizar a Consulta a NFSe e o Cancelamento de NFSe; 25. Salvar, compilar (Build) e executar o projeto. 15. Alterar o código da procedure AtualizarCidades Como o novo componente não busca mais no arquivo Cidades.ini as cidades, se faz necessário alterar o código. Como o código deve ficar: procedure TfrmACBrNFSe.AtualizarCidades; var IniCidades: TMemIniFile; Cidades: TStringList; I: Integer; sNome, sCod, sUF: String; begin IniCidades := TMemIniFile.Create(''); Cidades := TStringList.Create; ACBrNFSeX1.LerCidades; IniCidades.SetStrings(ACBrNFSeX1.Configuracoes.WebServices.Params); try IniCidades.ReadSections(Cidades); cbCidades.Items.Clear; for I := 0 to Pred(Cidades.Count) do begin if (StrToIntdef(Cidades[I], 0) > 0) then begin //Exemplo: Alfenas/3101607/MG sCod := Cidades[I]; sNome := IniCidades.ReadString(sCod, 'Nome', ''); sUF := IniCidades.ReadString(sCod, 'UF', ''); cbCidades.Items.Add(Format('%s/%s/%s', [sNome, sCod, sUF])); end; end; //Sort cbCidades.Sorted := false; cbCidades.Sorted := true; edtTotalCidades.Text := IntToStr(cbCidades.Items.Count); finally FreeAndNil(Cidades); IniCidades.Free; end; end; 16. Tabela de mensagens geradas pelo componente Código Descrição X001 Serviço não implementado pelo Provedor. X002 Nenhum RPS adicionado ao componente. X003 Conjunto de RPS transmitidos (máximo de xxx RPS) excedido. Quantidade atual: yyy X101 Número do Protocolo não informado. X102 Número do RPS não informado. X103 Série do Rps não informado. X104 Tipo do Rps não informado. X105 Número Inicial da NFSe não informado. X106 Número Final da NFSe não informado. X107 Pedido de Cancelamento não informado. X108 Número da NFSe não informado. X109 Código de cancelamento não informado. X110 Motivo do Cancelamento não informado. X111 Número do Lote não informado. X112 Série da NFSe não informada. X113 Valor da NFSe não informado. X114 Tipo da NFSe não informado. X115 Data Inicial não informada. X116 Data Final não informada. X117 Código de Verificação/Validação não informado. X118 Chave da NFSe não informada. X201 WebService retornou um XML vazio. X202 Lista de NFSe não encontrada! (ListaNfse) X203 Não foi retornado nenhuma NFSe. X204 Confirmação do cancelamento não encontrada. X205 Retorno da Substituição não encontrada. X206 NFSe Substituída não encontrada. X207 NFSe Substituidora não encontrada. X208 Não foi retornado nenhum Rps. X999 E.Message1 ponto
-
PERGUNTA: Eu uso o ACBr. Posso colocar o ACBr como Reponsável Técnico na emissão de algum documento fiscal eletrônico (ou DF-e, isto é, NF-e, NFC-e, CT-e, MDF-e, etc...) ? Mesmo que você use o ACBrMonitor Plus, a ACBrLib, os componente ACBr, algum programa exemplo que disponibilizamos, a resposta simples é NÃO. Não entenda mal. Reafirmamos nosso compromisso em ajudar os usuários do ACBr a resolver seus problemas no uso dos componentes, bibliotecas ou aplicativos que disponibilizamos na medida do possível. E claro, damos prioridades aos casos reportados por usuários que fazem uso do SAC ACBr. Mas não somos o responsável técnico pelo seu sistema, mesmo que ele use qualquer ferramenta que provemos. Talvez você queira entender um pouco mais, então vamos a uma resposta longa sobre isso. Vamos usar como exemplo a NF-e e NFC-e que são de longe os DF-es mais utilizados. Se você ler a nota técnica 2018.005 da NF-e/NFC-e vai encontrar o item "2 Sobre a Identificação do Responsável Técnico". Nesse item há a seguinte frase no parágrafo que explica o que é essa informação (grifo é meu): Veja que a primeira frase menciona que o "responsável técnico" pode não ser simplesmente um desenvolvedor, mas a empresa responsável tecnicamente pelo sistema de emissão. O que neste caso é vocês. Vocês respondem perante seu cliente e perante as autoridades pela emissão do documento fiscal. Os produtos do projeto ACBr (seja algum componente, o ACBrMonitor, ou uma ACBrLib) nesse processo é apenas uma ferramenta parte do seu software e não o sistema em si. Ou seja, é um framework/biblioteca/componente que ajuda seu sistema e sua empresa a emitir os documentos. Veja, não disponibilizamos sistemas para emissão, apenas ferramentas para ajudar na emissão. Isso fica mais claro quando lemos o restante do parágrafo, porque ele explica não só o que é o "responsável técnico", mas também o objetivo dessa informação ser necessária. Veja: A ideia é a SEFAZ poder entrar em contato com o responsável pelo emissor em caso de dúvidas ou problemas na emissão. Em caso de anomalias na emissão, com quem a SEFAZ teria que entrar em contato? Por exemplo: Em uma das reuniões do ENCAT, um sistema tentou retransmitir uma nota com erros no XML, por 70.000 vezes... ou seja, mesmo recebendo o erro de rejeição por XML inválido, a aplicação ficou em algum Loop, tentando retransmitir o XML que já sabia era rejeitado... Isso é praticamente um ataque de DDOS, nos servidores do SEFAZ... Quem a SEFAZ teria que contatar se essa empresa fosse seu cliente? É evidente que em caso de dúvidas ou problemas sobre o uso nas empresas que são seus clientes eles deverão entrar em contato com a sua empresa. Afinal de contas, nós não sabemos como seu sistema funciona, nem conhecemos os seus clientes. Ainda mais, o ACBr, (quero dizer ACBrMonitor, ACBrLib, ou qualquer componente ou biblioteca que fornecemos), por si só nunca faz uso de um WebService. Qualquer WebService é acionado por sua aplicação. Ela, a sua aplicação, é responsável pela emissão. Chamar o ACBr de responsável seria basicamente o mesmo que colocar como responsável a Microsoft porque você usa o Windows nos seus clientes, ou a biblioteca OpenSSL porque você a usa pra assinar os documentos. Existe mais um detalhe, o item "2.1 Código de Segurança do Responsável Técnico - CSRT" que nos ajuda a entender. Esse item fala do credenciamento do software emissor de DF-e na SEFAZ da UF e da empresa responsável. Se sua UF já tem esse cadastro, ou algum cadastro similar como era o caso do PAF-ECF, sem dúvida você entende que é sua empresa e seu software que deve ser cadastrado, independente de usar ou não alguma ferramenta de terceiros em seu sistema. Peraí! Tem mais! No terceiro parágrafo há a seguinte explicação sobre o CSRT, que pode ser exigido em formato de hash: Mais uma vez, se essa é uma informação conhecida somente entre a empresa desenvolvedora e Fisco, não teria como ser disponibilizada por nós. Senão, poderíamos nos passar por você. Seria como você dar seu RG ou Passaporte para outra pessoa se passar por você. Então para pra deixar isso claro pra qualquer pessoa com dúvida no futuro: O projeto ACBr não se responsabiliza por mal uso de nenhum dos programas, bibliotecas, componentes, ou códigos fontes disponibilizados. Usar qualquer um desses, incluindo o ACBrMonitor Plus, não dá direito a ninguém colocar o Projeto ACBr como responsável técnico, ou de qualquer outra forma responsável perante clientes ou autoridades. Se alguém pensar diferente, informamos que não tem licença para utilizar o que provemos. Pedimos o favor de ler com cuidado as licenças LGPL e GPL que usamos.1 ponto
-
Adicionei ao SVN os fontes do novo componente ACBrSATWS. Lembrando que não é necessário o uso de certificados digitais para realizar a consulta, apenas da chave de segurança que pode ser obtida no SGR-SAT, mais informações em https://portal.fazenda.sp.gov.br/servicos/sat/Downloads/Manual para Consultar lotes enviados via Webservice (Estadual) v1 1.pdf1 ponto