Ir para conteúdo
  • Cadastre-se

Isaque Pinheiro

Membros
  • Total de ítens

    2.545
  • Registro em

  • Última visita

  • Days Won

    39

Tudo que Isaque Pinheiro postou

  1. Bom dia, e ai caros colegas alguma sugestão para esta questão ? Obrigado. Já descobri o problema, estou estudando a melhor forma de resolve-la, aguarde, darei retorno até a tarde.
  2. Sim, claro anexe aqui que pego, faço o merge dentro do padrão que fiz o bloco 0 e subo.
  3. Percebi que eu poderia fazer o seguinte (Não testei apenas imaginei): ACBrSpedFiscal.WriteBloco_0; ACBrSpedFiscal.Bloco_0.Add('|A100|0|'); ACBrSpedFiscal.Bloco_0.Add('|A100|...|'); ACBrSpedFiscal.Bloco_0.Add('|A170|...|'); ACBrSpedFiscal.Bloco_0.Add('|A990|...|'); [/code] Se isso funcionar, e acredito que funcione, eu já não precisaria utilizar o evento Before e After, o que você acha? Lembrando que são apenas idéias para diminuir a quantidade de alterações dentro do componentes, mas se não tiver como fugir, vamos colocar a mão na massa. Att. Pode até funcionar, porque vc está disparando o método manualmente "ACBrSpedFiscal.WriteBloco_0;" Mas sem os eventos Before e After não atenderia para quem usa o método "SaveFileTXT", pois esse método é quem chama os métodos de escritas internamente.
  4. e para as informações que serão adicionadas no arquivos como o Bloco A por exemplo teríamos uma rotina chamado WriteLinhaArquivo( ... ), Não, nesse caso você usará o evento Before ou After a sua escolha e usará a chamada, como mostrado no código abaixo. Me desculpe Willians, mas na minha visão sempre foi dessa forma, por isso achei a necessidade no terceiro evento, se observar no meu ultimo post tentei explicar exatamente essa visão No evento OnWriteRegistro, você recebe a linha e pode incluir, remover mudar totalmente ela. Nos OnBeforeWrite ou OnAfterWrite, você é quem escolhe, você pode escrever registro que não existem no SPED como o registro "A". Para gerar esse novo registro "A" no evento BeforeWrite ou AfterWrite como falei a sua escolha, basta chamar ACBrSpedFiscal.Bloco_?.Add('|A100|0|'); ACBrSpedFiscal.Bloco_?.Add('|A100|...|'); ACBrSpedFiscal.Bloco_?.Add('|A170|...|'); ACBrSpedFiscal.Bloco_?.Add('|A990|...|'); [/code] "?" seria o bloco o qual esta sendo chamado o evento tipo: BeforeWrite0200, se o evento é do bloco "0" então usamos o ACBrSpedFiscal.Bloco_0.Add('') se do bloco "1" usamos ACBrSpedFiscal.Bloco_1.Add('') e assim por diante.
  5. Enviei as alterações, baixe e confira se atenderá, se atender baseado nele pode implementar nos demais que precisar, em seguida anexe aqui que baixo avalio e subo pro SVN.
  6. Acho que teremos que ter 3 eventos BeforeWrite - Antes de iniciar a escrita do registro Write - Linha a linha do registro AfterWrite - Depois de terminar a escrita de todas as linhas do registro BeforeWrite - podemos escrever registros antes Write - podemos mudar se quiser linha a linha AfterWrite - podemos escrever registros depois Vou subir essas alterações dai vc poderá baseado nela implementar nos registros que precisar, e vamos implementando aos poucos nos outros, pois são muitos. Acredito dessa forma atender a todas as necessidades em todos os pontos.
  7. Pessoal, peço desculpas a vocês por minha falha, fiz a alteração sugerida e subi para o SVN, por gentileza testem e me deem um retorno o mais rápido possível se funcionou, fico no aguardo para algum ajuste se preciso. Essas alterações foram para implementar eventos no componentes para atender a necessidade de gerar um leiaute em um formato diferente do SPED, pois alguns sistemas de contabilidade exigem um formato diferente.
  8. Olá pessoal, como todos sabem nós desenvolvedores vivemos da função de escrever códigos, e o projeto ACBr fez e esta ajudando muitos desenvolvedores a viver sem ter que escrever muitos desses códigos, então como isso é para uma gama de desenvolvedores. O ideal, e que vocês mesmo colaborassem com a implementação deste código... porem nem todos tem tempo ou capacidade tecnica para isso... Nesses casos, uma possibilidade é contratar um desenvolvedor para o desenvolvimento da mesma... Acredito que com a união dos interessados, uma tarefa como esta poderia ser ofertado o premio de R$ 2000,00 para a sua execução.
  9. Ei Willians, se do jeito que fiz atende, vou implementar desse jeito assim como vc mesmo falou fica mais completo e cada um usa o evento que mais lhe for conveniente. Blz vou começar a implementar nos demais registros então e te mando por anexo para teste antes de subir para o SVN, obrigado pelo retorno rápido, agora é comigo, te dou retorno o mais rápido possível.
  10. Ei Willians, tente implementar o que esta nas Unit que eu anexei e testar se funciona para vc, e depois me retorne, se funcionar implementarei os eventos dos demais registros e subirei para o SVN. Pelo que olhei é quase isso que vc fez, com algumas coisas poucas diferentes na implementação.
  11. Vou anexar uma Unit aqui, em alguns minutos para vc testar e vê se atende ai para vc. Bom de uma olhada nessas units e tente analisar se atende a necessidade. Obs: o registro 0208 que precisa para o G5, deve ser adicionado no evento After do 0206, pois não deve ter nada com o nome 0208, no componente, pois não existe esse registro no leiaute do SPED, então usaremos o evento que ele deve se o próximo a ele, n.esse caso 0206. ACBrSpedFiscal.pas ACBrEFDBloco_0_Class.pas
  12. Comecei a analise, e já surgiu uma coisa estranha, pois na unit ACBrEFDBloco_0_Class tem um método "WriteBloco_A", isso não deve existir no código do componente, e sim dentro do código de sistema, o qual poderá ser disparado de um dos eventos. Outro detalhe o evento TWriteRegistro0208Event, como não existe esse registro 0208 no SPED o evento deve ser TAfterWriteRegistro0206Event, e disparado do registro 0206 e não do 0200. Bom vou criar mudar aqui para que atenda as exigências do padrão do componente, em seguida anexo aqui e vocês fazem um teste e assim vamos até ficar 100% funcional para ambas as partes. Amanhã já disponibilizo algo. Por gentileza reveja isso e anexe a alteração para que eu possa continuar a analise.
  13. Sim, com todo prazer explicarei. Acontece que muitos usuário estão perdidos na hierarquia, e estavam usando o componente de forma errada gerando problemas e demanda de perguntas no fórum por não entenderem quais registros eram filhos e quais, e pela jeito que você desenvolveu, também poderia cair nesse erro e te dar trabalho para acha-lo. Bom é muito fácil você resolver seu problema, com mudanças mínimas. Ao invés de "with RegistroC100.RegistroC110.New do begin" Use : "with RegistroC100.RegistroC110New do begin" Essa última forma irá garantir que vc esteja instanciando o registro C110 como filho do C100 Abraço.
  14. Verdade somente o A170 os campo ALIQ_PIS e ALIQ_COFINS estão com 2 casas decimais, corrigido e disponibilizado no SVN, veja se não dará erro no validador agora e nos reporte. Mas no guia prático está com 2 casas decimais. O guia prático está errado? Suponho que sim, porque aliquota de Pis e Cofins é a mesma para todos o sregistros, e só esse registro pede 2 casas, todos os demais registros pedem 4 decimais. A única coisa que poderá barrar isso será o validador, caso contrário, acreditamos que há um erro no registro A170.
  15. Verdade somente o A170 os campo ALIQ_PIS e ALIQ_COFINS estão com 2 casas decimais, corrigido e disponibilizado no SVN, veja se não dará erro no validador agora e nos reporte.
  16. Veja no Guia Pratico, se pede o campo com 2 ou 3 casas decimais, temos que respeitar o guia.
  17. Esse erro ocorre quando esquece de registrar as DLLs, capicom.dll, msxml5.dll e msxml5r.dll, verifique se isso foi feito corretamente.
  18. A pergunta é, como o .xml passou pela validação assim ?
  19. Estou bem apertado essa semana e semana que vem, implantando sistema em clientes novos a noite chego só a casca, mas prometo que assim que sobrar um tempinho vou analisa. Só posso pedir desculpas no momento.
  20. Essa para mim é nova, vou pesquisar sobre isso. Uma pergunta mas a quantidade tava a soma das duas cores né?
  21. Olá as implementações feitas pelo Willian, ainda não foram incorporadas ao fonte do SVN, por não estarem totalmente dentro dos padrões, mas prometo dar uma olhada se tiver di acordo faço o merge e subo. Abraço
  22. Sim o ECF Bematech só aceita % mesmo, mas pelo ACBr você pode mandar o valor e ele transforma internamente o valor passado em % e manda o % para o ECF Bematech, para os ECFs que aceitam valor ele manda o valor, ou seja defina no seu sistema enviar sempre valor e o ACBr faz o resto para você.
  23. Então é isso Wagner, nos reporte se ficou claro as respostas e se teve sucesso com elas resposta, se não teve nos diga o que não ficou claro para você, e continuaremos até que seja satisfatória para resolver sua dúvida. Abraço
  24. Para o ECF, passo o valor bruto e o valor do desconto (não passo %) tive problemas de arredondamento tb, sobre o ACBrMonitor aceitar não tenho conhecimento para te responder sobre ele, vou deixar que o Daniel te responda.
  25. Eu faço exatamente como o Daniel propões, tendo na linha de item o campo DescontoRateio(rateio desconto geral), assim você poderá fazer o rateio do desconto geral somente para os itens que podem ter desconto, e ao imprimir o cupom passar o valor que foi calculado de cada item. Para ficar bem claro como é feito, faço um loop dos itens no final, gravando o rateio em cada item.
×
×
  • 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.