Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2701 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Jeter.

 

Com relação ao MD5, não preciso gravar no banco? vai ser gerado pelo componente na hora? e aquele que sai impresso na nota?

Cleber, bom dia

 

Não vejo necessidade de armazenar o MD5 no banco de dados, uma vez que os dados da nota não podem ser alterados, esse valor se manterá inalterado em qualquer momento.

 

Qualquer dúvida, estou a disposição.

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado (editado)

Cleber complementando.


Sim, o MD5 que sai na Nota é calculado pelo componente utilizanto a property ACBrConvenioMestre1.AutenticacaoDocumentoFiscal

 

Os demais MD5's são calculados automaticamente.


Atenciosamente.

Editado por jeter.rabelo

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado

Jeter,

Me desculpe por ter esquecido de analisar e subir o componente... e novamente muito obrigado pela doação... os fontes se encaixaram bem aos padrões do projeto... Parabéns pela iniciativa...

 

Juliana,

Muito obrigado pela ajuda... Vejo que cada vez mais você ficou especialista em arquivos fiscais ;)

Daniel, bom dia.

 

Sem problemas. 

 

Caso precisar, é só chamar.

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Moderadores
Postado (editado)

Cleber complementando.

Sim, o MD5 que sai na Nota é calculado pelo componente utilizanto a property ACBrConvenioMestre1.AutenticacaoDocumentoFiscal

 

Os demais MD5's são calculados automaticamente.

Atenciosamente.

 

 

Então quer dizer que não posso permitir a impressão da nota caso não tenha ainda transmitido para a SEFAZ? Como seria o procedimento correto? Pois pelo componente, parece que tenho o MD5 da impressão somente na geração dos arquivos eletrônicos... Mas eu penso também que é semelhante a sintegra ou SPED, onde manda a movimentação do mês que se passou. Qual seria o procedimento correto?

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • Moderadores
Postado

Cleber

 

É "igual" ao Sintegra

 

Emite-se tudo e os arquivos magnéticos são entregues no mês seguinte, até o 4º dia útil, conforme o convênio.

 

Atenciosamente.

 

Essa parte eu entendi. Mas a autenticação que o componente gera é somente na hora da geração dos arquivos, correto? Mas e na hora da geração da nota? Eu vou ter que gerar o MD5 manualmente?

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Cleber, boa tarde

 

Eu te respondi isso acima.

 

"o MD5 que sai na Nota é calculado pelo componente utilizanto a property ACBrConvenioMestre1.AutenticacaoDocumentoFiscal"

 

É esse MD5 que será impresso na Nota

 

Atenciosamente

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Moderadores
Postado (editado)

Cleber, boa tarde

 

Eu te respondi isso acima.

 

"o MD5 que sai na Nota é calculado pelo componente utilizanto a property ACBrConvenioMestre1.AutenticacaoDocumentoFiscal"

 

É esse MD5 que será impresso na Nota

 

Atenciosamente

 

Sim, eu entendi. Mas o componente não é usado apenas para gerar os arquivos do convenio no final do mes?

Então se quiser a autenticação, vou ter que jogar os dados da nota nele, somente para isso?

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Ë o seguinte;

 

Quando eu resolvi desenvolver o componente, já tinha toda a rotina pronta de impressão de Notas Fiscais, bem como a minha própria classe para isso.

 

Foi aí eu resolvi criar o componente para a geração do arquivo magnético.

 

Eu até pensei em implementar a impressão das Notas Fiscais a partir da classe TACBrConvenio115, mas como meu tempo está meio corrido, deixei isso para segundo plano.

 

Realmente, para você ter a autenticação, terá que preencher os dados do componente, ou "pegar" a idéia do cálculo do MD5 de como foi feito  e imprimir.

 

Eu, se não tivesse minha rotina implementada e fosse implementar agora, preencheria o componente e imprimiria as Notas a partir dele. Pois tudo que é preciso está informado.

 

Eu comecei a portar meu relatório de nota (Fortes Report) mas, como disse acima, meu tempo está muito corrido e parei. Caso você queira, posso verificar o que eu comecei a fazer em termos de relatório, eu te envio e, caso você possa terminar, seria bem vindo para o projeto.

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado (editado)

Cleber, boa noite

 

Depois que postei o comentário, fui analisar meu relatório e faltava muito pouco e implementei o mesmo.

 

Juliana/Daniel, por favor, substitua o exemplo do componente ACBrConvenio115 pelo que está anexo neste Post, pois agora tem um exemplo de impressão.

 

Espero ter ajiudado.

 

Atenciosamente

Exemplo.rar

Exemplo.rar

Editado por jeter.rabelo
  • Curtir 1

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Boa tarde Jeter.

 

Exemplo atualizado no svn.

 

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Moderadores
Postado

Boa noite a todos!

 

 

Jeter, tenho duas questões a olhar com você:

 

1 - Olhando o manual do Convenio percebi que CFOP é informado no detalhamento e não no mestre. Vi que na impressão, você colocou o CFOP no cabeçalho da nota. Qual critério é utilizado para que ele apareça lá? Pega um item qualquer, ou ver a quantidade de incidências do CFOP no detalhamento?

 

2- Nos itens do documento fiscal, no campo valor total diz o seguinte: "Informar o valor total do item, com 2 decimais, o valor deve incluir o valor do icms.". Vou seja, o valor de icms para esse tipo de NF é somado ao total, e não apenas destacado?

 

Abraço.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Cleber, bom dia.

Respondendo a suas perguntas

1. No meu sistema de emissão de NF mod. 21/22, eu só permito a inclusão de serviços com o mesmo CFOP. Caso o CFOP seja diferente, o usuário deverá incluir outra NF. Mas em 99,99% dos casos o CFOP é igual. 

Outra coisa, tratando-se de Juros/Multas e etc, não se informa o CFOP, como você deve ter lido no Manual

 

2.Além de ser destacado, ele é somado. Pega-se um exemplo de uma conta de Energia elétrica (CEMIG no nosso caso), o valor total da conta é embutido o ICMS. Contas de Telefones e etc. É sempre assim, quem paga o ICMS é o usuário final. ;)

 

Outra observação a fazer a respeito do exemplo de impressão: O MD5 da assinatura da NF deve vir formatado como xxxx.xxxx.xxxx.xxxx.xxxx.xxxx.xxxx.xxxx. Eu esqueci disso no exemplo.

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • 2 semanas depois ...
  • Moderadores
Postado

Jeter, a fórmula do total está certa?

 

Vlr bruto serviço.....: 150,00

Desconto................:   10,00 (-)

Acrescimo...............:     5,00 (+)

BC ICMS.................: 145,00

Aliq ICMS................:     5,00 (%)

Vlr. ICMS................:     7,25 

 

Outros Valores.......:     2,00 (+)

Vlr. Total................: 154,25

 

No manual não ficou muito claro.

 

Grato..

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Cleber, boa noite

 

É questão de entendimento, mas quando se dá um desconto, esse mesmo não deduz a Base de Cálculo de ICMS, bem como o acréscimo.

 

Mas, pergunte a um contador a respeito disso.

 

Quanto ao ICMS e o total da NF é isso mesmo.

 

O Total da NF deve constar o Valor do ICMS

 

BC ICMS: 150,00

ICMS 5%

Vlr.ICMS : 7,50

Vlr Outros 2,00

Total NF: 159,50

 

Atenciosamente;

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • 1 mês depois ...
Postado

Olá Jéter, parabéns a você e a equipe ACBr pelo componente ACBrConvenio115.

 

Estou iniciando a implementação da NF mod 21 e usei o sistema exemplo para geração dos arquivos. Notei que ele gerou três dos quatro arquivos descritos no convênio 115/03, são eles o M - Mestre, I - Item e D - Destinatário.

 

Notei que o arquivo tipo C - "Controle e identificação" não foi gerado. Em que momento esse arquivo é gerado? A sua geração é necessária?

 

att,

 

Marco. 

  • Moderadores
Postado

Olá Jéter, parabéns a você e a equipe ACBr pelo componente ACBrConvenio115.

 

Estou iniciando a implementação da NF mod 21 e usei o sistema exemplo para geração dos arquivos. Notei que ele gerou três dos quatro arquivos descritos no convênio 115/03, são eles o M - Mestre, I - Item e D - Destinatário.

 

Notei que o arquivo tipo C - "Controle e identificação" não foi gerado. Em que momento esse arquivo é gerado? A sua geração é necessária?

 

att,

 

Marco. 

 

A geração do arquivo de controle é feita pelo Validador de arquivos do Convênio 115/03

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado (editado)

Cléber/Marco, bom dia.

 

Isso mesmo, eu não implementei a geração do arquivo "C", pois o validador faz a geração do mesmo.

 

Qualquer dúvida, estamos por aqui.

 

Atenciosamente.

Editado por jeter.rabelo

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • 4 semanas depois ...
Postado (editado)

gerei o arquivo com 1 registro e esta dando o seguinte erro quando passo pelo validador

 

Arq. Descrição do Erro                                                                     Qtde    
--------------------------------------------------------------------------------------------------
MEST 136-Código Autenticação Digital do registro do arquivo mestre inválido                      1
MEST 139-Final do registro com seqüência inválida (diferente de CR + LF)                         1
DEST 314-Código Autenticação Digital do registro do arquivo cadastro inválido                    1
DEST 315-Final do registro com seqüência inválida (diferente de CR + LF)                         1
--------------------------------------------------------------------------------------------------
                                                                   Total de Erros:               4
Editado por Rodrigo Guelf

Att
Rodrigo Guelf
 

Postado

Não sei o que esta acontecendo mais gerei mais notas fiscais do mesmo cliente e ao passar pelo validador esta dando o seguinte erro:

 
Erro: 418 - Número da última Nota Fiscal do arquivo mestre inválido [         ]
         Arquivo: Mestre
 
 
Arq. Descrição do Erro                                                                     Qtde    
--------------------------------------------------------------------------------------------------
DEST 418-Número da última Nota Fiscal do arquivo mestre inválido                                 1
--------------------------------------------------------------------------------------------------
                                                                   Total de Erros:               1
 
Este é o conteudo do arquivo mestre:
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010803C0921DFC90CB99D61A12902649CDE156000000002500000000000000000000000000000000000000000000000000N1307000000001                 123615C79EB4D884A6133D03AA15F3D4
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010804038476E25DEB04BCE4D8818EDE746241000000002500000000000000000000000000000000000000000000000000N1307000000002                 2BC0784BB3E7855931B5BCBFC5E4DA81
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010805D1CF6EAC75FC6F444624B8C49A642131000000002500000000000000000000000000000000000000000000000000N1307000000003                 CDC2FC6A75F1A2EE7057806C5FB3D9D8
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           20130715210010000108065313E8C9B462A4953BB784CF380F258F000000002500000000000000000000000000000000000000000000000000N1307000000004                 91E2FF681445E6DCF0283951E51B1AD4
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010807DF63CCB301480A875DD16C4F902F1367000000002500000000000000000000000000000000000000000000000000N1307000000005                 D3807C511077B60D4D5F0159BB8888B1
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010808E23116397DADEE5398A3EF50998CEE13000000002500000000000000000000000000000000000000000000000000N1307000000006                 36F0C6BEFE307343665EB9052ACF4624
00035469795837426343566     LUIS GUSTAVO APARECIDO             SP34001           2013071521001000010809AFD9FE64604C65838F7CC20AB3E887B5000000002500000000000000000000000000000000000000000000000000N1307000000007                 3DE4D3FF3F69C45D743FEC28104C6F90
 
 
note que o numero da nota fiscal não esta errado.

Att
Rodrigo Guelf
 

Postado

Rodrigo, bom dia.

 

Analisando seu arquivo, pude verificar que o componente não acrescentou o número da linha de inicio dos ítens no arquivo Mestre.

 

Tem como você reproduzir como fez para preencher os campos do componente?

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado

Jeter.rabelo segue o código:

Obrigado por me ajudar!

 

procedure TClasseNFTelecomunicacoes.AlimentarComponente;
begin
  with DtCadastro, Convenio115 do begin
    try
      Application.ProcessMessages;
      Clear;
      SalvarEm := ADir;
      UF := 'SP';
      Serie := '001';
      Ano := StrToInt(FormatDateTime('YYYY',CDSNotaFiscalDT_PEDIDO.AsDateTime));
      Mes := StrToInt(FormatDateTime('MM',CDSNotaFiscalDT_PEDIDO.AsDateTime));
      CDSNotaFiscal.First;
      while not CDSNotaFiscal.Eof do begin
        RefreshTable(CDSClientes, 'SELECT * FROM CLIENTES WHERE CODIGO =:CODIGO',CDSNotaFiscalCOD_CLI.AsInteger);
        RefreshTable(CDSCidades, 'SELECT * FROM CIDADES WHERE CODIGO =:CODIGO',CDSClientesCOD_CID.AsInteger);
        OMestre := TACBrConvenio115Mestre.Create;
        OMestre.Destinatario.CnpjCpf := CDSClientesCPF_CNPJ.AsString;
        OMestre.Destinatario.InscricaoEstadual :=CDSClientesRG_IE.AsString;
        OMestre.Destinatario.RazaoSocial := CDSClientesNOME.AsString;
        OMestre.Destinatario.Logradouro := CDSClientesENDERECO.AsString;
        OMestre.Destinatario.Numero := CDSClientesEND_NUM.AsString;
        OMestre.Destinatario.Complemento := CDSClientesCOMPLEMENTO.AsString;
        OMestre.Destinatario.CEP := CDSClientesCEP.AsString;
        OMestre.Destinatario.Bairro := CDSClientesBAIRRO.AsString;
        OMestre.Destinatario.Municipio := CDSCidadesNOME.AsString;
        OMestre.Destinatario.UF := CDSClientesUF.AsString;
        OMestre.Destinatario.Telefone := CDSClientesTELEFONE.AsString;
        OMestre.Destinatario.CodigoConsumidor := CDSClientesCODIGO.AsString;
        OMestre.TipoAssinante := tac111ResidencialPessoaFisica;
        OMestre.TipoUtilizacao := pc112ProvimentoAcessoInternet;
        OMestre.DataEmissao := CDSNotaFiscalDT_PEDIDO.AsDateTime;
        OMestre.Modelo := 21;
        OMestre.Serie := '001';
        OMestre.NumeroNF := CDSNotaFiscalNUMERO_NF.AsInteger;
        OMestre.ValorTotal := CDSNotaFiscalTOTAL.AsCurrency;
        OMestre.ICMS_BaseCalculo := CDSNotaFiscalB_ICMS.AsCurrency;;
        OMestre.ICMS_Valor := CDSNotaFiscalVL_ICMS.AsCurrency;
        OMestre.IsentosNaoTributadas := 0;
        OMestre.OutrosValores := CDSNotaFiscalOUT_DESP_ACESS.AsCurrency;
        OMestre.AnoMesRefencia := FormatDateTime('YYMM',CDSNotaFiscalDT_PEDIDO.AsDateTime);
        RefreshTable(CDSItensNF, 'SELECT * FROM ITENS_NOTAFISCAL WHERE COD_PED =:COD_PED',CDSNotaFiscalCODIGO.AsInteger);
        while not CDSItensNF.Eof do begin
          ODetalhe := TACBrConvenio115Item.Create;
          ODetalhe.CFOP := '5307';
          ODetalhe.Item := CDSItensNF.RecNo;
          ODetalhe.CodigoServico := CDSItensNFCOD_PRO.AsString;
          ODetalhe.DescricaoServico := CDSItensNFPRODUTO.AsString;
          ODetalhe.Unidade := CDSItensNFUN.AsString;;
          ODetalhe.ClassificacaoItem := '1001' ; // Verificar tabela 11.5 do convênio
          ODetalhe.QtdeContratada := CDSItensNFQUANT.AsCurrency;
          ODetalhe.QtdePrestada := CDSItensNFQUANT.AsCurrency;
          ODetalhe.ValorTotal := CDSItensNFVL_TOTAL.AsCurrency;
          ODetalhe.Desconto := 0;
          ODetalhe.AcrescimosDespAcessorias := 0;
          ODetalhe.ICMSBaseCalculo := CDSItensNFBASE_CALC_ICMS.AsCurrency;
          ODetalhe.ICMSValor := CDSItensNFBASE_CALC_ICMS.AsCurrency;
          ODetalhe.ICMSAliquota := CDSItensNFICMS.AsCurrency;
          ODetalhe.IsentoNaoTributados := 0;
          ODetalhe.OutrosValores := 0;
          ODetalhe.AnoMesApuracao := FormatDateTime('YYMM',CDSNotaFiscalDT_PEDIDO.AsDateTime);
          OMestre.Detalhes.Add(ODetalhe);
          CDSItensNF.Next;
        end;
        CDSNotaFiscal.Next;
        Mestre.Add(OMestre);
      end;
      RefreshTable(CDSFiliais, 'SELECT * FROM FILIAIS WHERE CODIGO =:CODIGO',CDSNotaFiscalCOD_FILIAL.AsInteger);
      with Emitente do begin
        RazaoSocial := CDSFiliaisNOME.AsString;
        CNPJ := CDSFiliaisCNPJ.AsString;
        InscEstadual := CDSFiliaisIE.AsString;
        Endereco := CDSFiliaisENDERECO.AsString+', '+CDSFiliaisEND_NUMERO.AsString;
        Cidade := CDSFiliaisCIDADE.AsString;
        UF := CDSFiliaisUF_DESTINO.AsString;
        Telefone := CDSFiliaisTELEFONE.AsString;
        HomePage := '';
        EMail := '';
      end;
    finally
      BlockInput(False);
      FormAguarde.Free;
    end;
  end;
end;
 
procedure TClasseNFTelecomunicacoes.Imprimir;
begin
  with FrmPRN, Convenio115 do begin
    AlimentarComponente;
    Imprimir(False);
  end;
end;

 

Att
Rodrigo Guelf
 

Postado

Rodrigo, boa noite.

 

Analisando seus arquivos Mestre/Destinatário, a razão social dos dois arquvivos estavam diferentes.

 

O mais estranho disso tudo é que a geração do arquivo Detalhe e feita com base do que foi informado no Mestre.

 

Eu simplesmente troquei o sobrenome APARECIDO para CREMONESI no arquivo Mestre e os erros sumriam.

 

Ficando apenas erros de preenchimento do Telefone.

 

Conforme o erro do validador, o telefone deve ser informado como LLNNNNNNNN, onde LL não pode ser zero (leia-se LL como DDD).

 

Faça as alterações no campo telefone e gere o arquivo novamente.

 

Se o erro dos nomes permanecer, me avise.

 

Atencioisamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Este tópico foi criado há 2701 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...