Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 24-05-2018 em todas as áreas
-
Bom dia a todos, Primeiramente, peço desculpas se fui grosso. Com relação a função LoadFromString é preciso ser checada, pois realmente ela esta estranha, não só por conta das variáveis N e P, existe mais uma coisa que esta errada nela. Que só será notado caso tentarmos ler um XML que contem dois ou mais eventos Reinf. O código aberto nos da essa chance de mais pessoas poderem estudar e apontar erros e sugerir soluções. A finalidade de TEventos.LoadFromString é extrair de uma String o conteúdo do grupo <Reinf>, esse conteúdo é passado para a função: TReinfEventos.LoadFromString que por sua vez procura detectar o tipo de evento se trata. Detectado o evento, o conteúdo é ADD a lista do tipo de evento em questão. O conteúdo que estou me referindo é o XML de um evento Reinf que tem que estar assinado, pois na lista que mencionei acima só ficam os eventos assinados, portanto prontos para serem enviados. No fórum existem pessoas dispostas a colaborar financeiramente assinando o SAC, outras testando o componente, detectando falhas e disponibilizando as devidas correções. Sei muito bem que existem pessoas que tem mais dificuldades e outras menos em compreender o código, isso é normal. O que nós do ACBr, em particular eu quero, é que todos cresçam, evoluem no conhecimento, pois eu também estou aqui para aprender.5 pontos
-
Faz isso não... os componentes são ótimos e quem precisar pode muito bem alterar seus fontes locais para atender alguma necessidade específica. Basta estudar os fontes. Conheço o projeto há um bom tempo, mas sem ir a fundo. Implementei geração boletos há uns anos e agora estou trabalhando com o EFD Reinf. Não tinha fuçado tanto nos fontes como estou fazendo agora... o que posso dizer é que natural que ao iniciar o trabalho com qualquer componente novo existam entraves e dúvidas, mas é preciso explorar, testar, fuçar. E a possibilidade que o ACBr dá nesse sentido é sensacional. Posso garantir que a comunidade e os recursos do framework agilizaram muito meu trabalho por aqui.4 pontos
-
Bom dia Graça, Muito obrigado pela colaboração, aproveitei e fiz o mesmo em outros "case". Já enviei para o repositório.2 pontos
-
Provavelmente a SEFAZ ainda não atualizou o webservice com as regras da NT 2016.002 v. 1.50. Tente informar pag.indPag como ipNenhum.1 ponto
-
Boa tarde, rodolfomn. Tudo ótimo, relaxa. Fico feliz que deu certo.1 ponto
-
Chegou a olhar no svn qual a revision que mudou isso e as mudanças que foram feitas?1 ponto
-
Provavelmente visualizei errado, estava me referindo a emissão em que o destinatário é SC. Enfim, com a nota técnica 150, foi alterado uma questão sobre a alíquota do FCP ST, conforme abaixo: Aplicação das regras N23b-10 ou N27b-10 deve considerar a alíquota FCP da UF de destino. O que diz a regra N23b-10: Se informado percentual de FCP ST (tag:N23b), percentual de FCP validado conforme tabela de alíquota definida por UF. Obs.1: Utilizar a UF do destinatário na validação (tag: enderDest/UF, id:E12); Obs.2: Quando informada a UF do local de entrega (tag: entrega/UF), aceitar como válidas tanto a alíquota da UF do destinatário (tag: enderDest/UF; id:E12) quanto a alíquota da UF de entrada. Resumindo: Se está tributando o FPC com algum CST que tenha a FCP ST, a alíquota deve ser definida pela UF do Destinatário, e não da UF Emitente! No caso do autor deste tópico, ele emitiu uma nota de SC para RJ, então pela lógica da NT 150 a alíquota deveria ser 2% (Alíquota do FCP do RJ conforme documentos encontrados na internet). Mas será que a SEFAZ SC está implementada com a nota técnica 150? Provavelmente está esperando que a alíquota seja 0% (Pois na validação anterior é essa a alíquota para SC). Agora o grande problema é: saber qual SEFAZ está utilizando essa validação ou não.1 ponto
-
1 ponto
-
Opa Felipe tudo bom? obrigado pela resposta, eu tinha pego o código do outro arquivo ConsultarNFeDestinadas.txt e não tinha percebido que tem este atualizado, mais uma vez obrigado e desculpa a falta de atenção.1 ponto
-
Boa tarde, rodolfomn. Veja o .txt no diretório do demo ACBr\Exemplos\ACBrDFe\ACBrNFe que lá tem um trecho de código mais elaborado.1 ponto
-
Você concorda que quanto mais pessoas tiverem testando, analisando o código e propondo correções e melhorias o componente evolui mais rapidamente do que apenas um ficar trabalhando nele?1 ponto
-
Amigo, vou ver se isso resolve o problema, desde já muito obrigado!1 ponto
-
Bm dia. Infelizmente neste computador em questão - NÃO FUNCIONOU - no entanto, usando a mesma configuração do componente em outro computador com o Mesmo Windows 7. - FUNCIONOU Configuração Funcionando Windows 7 cryWinCrypt httpWinHttp libWinCrypt xsMsXml LT_all Configuração Funcionando Windows 10 cryWinCrypt httpWinHttp libWinCrypt xsLibXml2 LT_TLSv1_2 espero que ajude.1 ponto
-
1 ponto
-
Outra problema que encontrei é que os códigos de rejeição 894, 895, 896 ficaram repetidos para mensagens diferentes, pois já são utilizados na Nota Técnica 2017.001 (Versão 1.20). Nota Técnica 2016.002 (Versão 1.50) Nota Técnica 2017.001 (Versão 1.20)1 ponto
-
Eu atualizei ontem no fim do expediente mas não tinha verificado. Aparentemente o problema foi resolvido no mesmo dia pela tarde kkkkkk Obg.1 ponto
-
Bom dia, por favor anexe o .ini ou .txt que esta passando para o ACBrMonitor.1 ponto
-
Jorge, Você tem certeza que todos os fontes de todas as pastas estão atualizados? Se sim, após a atualização, os componentes foram reinstalados?1 ponto
-
Bom dia, será adicionado o método ( GerarImpressaoFiscalMFe ) no ACBrMonitor na próxima versão semanal...1 ponto
-
Bom dia, Qual a configuração SSL utilizada? Verifique com a config. abaixo: A Consulta de Status do Serviço está retornando?1 ponto
-
Bom dia Italo, vou baixar e instalar as novas alterações e fazer uns testes, depois posto se deu tudo certo. desde já muito obrigado pelo seu empenho e dedicação. tenha um bom dia att Claudio1 ponto
-
Sem problemas, Italo... eu estou estudando os fontes na medida em que as demandas me permitem e se conseguir alguma solução posto no fórum pra ajudar também. Obrigado!1 ponto
-
1 ponto
-
Pessoal, caso alguém ainda caia nesta página e não queira perder tanto tempo quanto eu, o uso de múltiplos serviços só funciona se você utilizar a versão ABRASF 1 dos webservices da Betha. ABRASF 2 não irá funcionar.1 ponto
-
Oi Juliomar, pronto, esvaziei a mente e me deparo com um código assim: Abaixo o do arquivo ACBrReinf.pas function TEventos.LoadFromString(AXMLString: String): Boolean; var AXML: AnsiString; P, N: integer; function PosReinf: integer; begin Result := pos('</Reinf>', AXMLString); end; begin Result := False; N := PosReinf; while N > 0 do begin P := pos('</Reinf>', AXMLString); if P > 0 then begin AXML := copy(AXMLString, 1, P + 9); AXMLString := Trim(copy(AXMLString, P + 10, length(AXMLString))); end else begin AXML := copy(AXMLString, 1, N + 6); AXMLString := Trim(copy(AXMLString, N + 6, length(AXMLString))); end; Result := Self.ReinfEventos.LoadFromString(AXML); N := PosReinf; end; end; o mesmo código se replica em TLoteEventos, em ACBrReinfLoteEventos.pas. E eu fiquei me perguntando se havia alguma explicação pra essas variáveis N e P, ou eu simplesmente poderia reescrever o código assim (já comentado para usar com o pasdoc): {Alimentação de XML em TItemLoteEventos com o conteúdo de evento XML já assinado para posterior envio. IMPORTANTE: o conteúdo de AXMLString já deverá estar assinado e desprovido de cabeçalhos} function TLoteEventos.LoadFromString(AXMLString: String): Boolean; Const ReinfSearchTag = '</Reinf>'; var AXML: AnsiString; P: integer; begin P := pos(ReinfSearchTag, AXMLString); while N > 0 do begin AXML := copy(AXMLString, 1, ifthen(p>0,p+9,6) ); AXMLString := Trim(copy(AXMLString, ifthen(p>0,P + 10,6) length(AXMLString))); Add.FXML := AXML; P := pos(ReinfSearchTag, AXMLString); end; Result := Self.Count > 0; end; O projeto já é muito grande, e cheio de copia-e-cola, sinal claro que a documentação era necessária e não foi usada. O Código é confuso, no exemplo que citei, é inclusive deselegante, salvo se o código acima não puder ser reduzido e N e P realmente tinham alguma razão de ser que eu desconhecia. E sem os devidos comentários, é mais confuso ainda, porque temos que recorrer ao fórum para entender a intenção do desenvolvedor, porque o código pode ainda não estár concluído, certo? PS: Redigir a documentação base para o pasdoc pode ser um bom exercício para a criatividade literária, veja isso como algo positivo! Quanto à citação " quer melhor documentação que os fontes? " minha resposta seria: Quero fontes passiveis de serem documentadas, por exemplo, pelo pasdoc, portanto sim: a documentação ideal estaria nos fontes ?. Logo, se você discorda, é porque eu me expressei mal, desculpe-me mais uma vez. Voltando ao assunto original: note que eu ainda estou no campo da opinião, o comentário (cabeçalho para pasdoc) que eu fiz na reescrita da função é meramente especulativa, pode não ser isso, por isso estou pedindo ajuda para entender o que são essas funções, e o que a variável N e P representam. Já tive retorno de 3 moderadores e ainda não consegui me expressar ? de modo a conseguir me fazer entender. Mas fica o agradecimento pelo pronto atendimento, é raro encontrar uma equipe tão dedicada!1 ponto
-
Senhores obrigado agora conseguir compreender as diferenças. Deu certo em 2 clientes já. O erro principal que estava ocorrendo na SEFAZ de GO era falta de atualização do Windows (isso resultou em diversas mensagens de erro diferentes) Forcei o Windows atualizar até ficar 100% e funcionou com WinCrypt no A1 e A3.1 ponto
-
1 ponto
-
Você pode definir a Porta do ACBrPosPrinter, para um arquivo.. Exemplo: "C:\TEMP\PRINTER.TXT"... A partir disso, você terá no Arquivo, todo o conteúdo em EscPos que seria enviado para a impressora1 ponto
-
O ambiente de homologação para desenvolvedores não foi habilitado na versão 4.00. Você deve usar um emitente cadastrado na SEFAZ-AM.1 ponto