Ir para conteúdo
  • Cadastre-se

Vicente Malagoni

Membros
  • Total de ítens

    13
  • Registro em

  • Última visita

Posts postados por Vicente Malagoni

  1. Bom dia Souza !

    13 minutos atrás, Souza disse:

    Bom dia.
    basta informar ao componente as tags.

     Medicamento             := Prod.med.Add;
     Medicamento.cProdANVISA := 'ISENTO';
     Medicamento.vPMC        := 0;

    Muito obrigado, estava falando o "Add" mesmo. Agora evito essa rejeição 840 !

    - Atenciosamente Vicente. Bom trabalho a todos !

  2. Bom dia, estou enfrentando o mesmo problema. Quando meu cliente tenta emitir a nota fiscal que contem produtos com o NCM iniciados em {3001, 3002, 3003, 3004, 3005 e 3006} é obtido o retorno "Rejeição 840 -  NCM de medicamento e não informado o grupo de medicamento(Med).

    Após realizar algumas pesquisas, encontrei que é necessário nesses casos, registrar dentro da grupo "MED" dos produtos as tags "cProdANVISA" e "vPMC". Entretanto, mesmo após atualizar o ACBr em minha maquina, não identifiquei essas "Novas" tags dentro do grupo "MED". Segue exemplo em anexo (Image.png).

     

    -- Agradeço antecipadamente toda ajuda ! Obrigado a Todos !

    image.png

  3. Boa Tarde, Tudo Bem !

    Estou tendo um problema na hora de registrar o NossoNumero no arquivo Remessa (Banco do Brasil). Eu preciso passar para o arquivo apenas Zeros, no caso ficaria assim '00000000000000000000' o NossoNumero.

    PadRight(ANossoNumero+aDV, 20, ' ')  + // 38 a 57 - Nosso número - identificação do título no banco

    -> Linha do código aonde registra a informação no arquivo (ACBrBancoBrasil).

     

    Mesmo eu passando a tag  NossoNumero = ' ', existe uma função que passa o numero do convenio para o NossoNumero .

    Função -> TACBrBancoBrasil.FormataNossoNumero.

        if ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) and
            (Length(AConvenio) = 6) and (wTamNossoNum = 17) then
          ANossoNumero := PadLeft(ANossoNumero, 17, '0')
        else if Length(AConvenio) <= 4 then
          ANossoNumero := PadLeft(AConvenio, 4, '0') + PadLeft(ANossoNumero, 7, '0')
        else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then
          ANossoNumero := PadLeft(AConvenio, 6, '0') + PadLeft(ANossoNumero, 5, '0')
        else if (Length(AConvenio) = 7) then
          ANossoNumero := PadLeft(AConvenio, 7, '0') + RightStr(ANossoNumero, 10);

    Nesse caso como eu poderia proceder, é possível passar em banco ou apenas zeros ?

     

    Muito obrigado !

    Atenciosamente um Desenvolvedor em desenvolvimento !.

  4. Per. - Mas está indo algum dado?

    Res. - Sim, mesmo não passando as informações para o componente, o segmento R é gerado no arquivo da remessa pelo falo de passar o numero sequencial (ISequencia). 

    Pesquisando aqui no fórum do ACBr encontrei um caso parecido, contudo era do Banco Cecred. Fiz o mesmo processo e não gerei o segmento, contudo a contagem das linhas se perdeu.

    Link: 

    Per. - tu está usando o componente? fez o deploy e viu onde ele está gerando cara segmento?

    Res. - Sim, a minha duvida era se existia a possibilidade de não gerar o segmento R, se já havia sido feito antes.

     

    Vou verificar como é feito a contagem da sequencia e tentar ajustar para quando não precisar gerar o segmento R.

    Sequencia - // 009 - 013 / Número seqüencial do registro no lote. 

     

     

  5. Boa Tarde,

    Estou gerando remessa (Layout 240) para um empresa, sendo uma conta Santander. A empresa não cobra multa e assim o responsavel pela homologação pediu para que o segmento R não saia na remessa(Arquivo).

    "Minha duvida é se já existe alguma Tag, Função que não deixe algum segmento ser gerado ou eu mesmo teria de tratar a impressão da remessa sem o segmento especifico".  

    Agradeço desde agora.

  6. Boa Tarde Daniel

    A conexão com a impressora é feita através do caminho na rede à qual esta compartilhada, colocamos em um arquivo e fazemos a leitura do mesmo.

    - Impressora Térmica: Argox OS-214Plus

    - O Problema ocorreu depois de alguma atualização do ACBr, estou testando versões anteriores.

    - Componente: ACBrETQ

    * Vou Explicar Melhor o problema: Quando colocamos uma imagem para imprimir de fundo branco e letras pretas, a impressora gera ela toda preta, com letras brancas (Inverte as cores dos Pixels). Quando colocamos uma img preta (Teoricamente por estar invertendo sairia branca), porém gera o erro Stream Read Erro.

     

  7. Boa Tarde,

    Estou enfrentado um erro na hora de imprimir um arquivo em uma impressora fiscal pelo componente de etiqueta do ACBR, o problema ocorre na hora de gerar a impressão de uma etiqueta com uma imagem de fundo.

    Quando a imagem tem fundo branco, a impressão sai com fundo preto. Quando a imagem tem fundo preto era pra sair branco, mas ao invés de sair a impressão gera o erro Stream Read Erro.

    * Creio que no momento em que a impressora carrega a imagem preta e muda para branco gera o erro.

    * O erro começou nas novas versões do ACBR.

    Citar

    IniciarEtiqueta;
             CarregarImagem(Diretorio + 'CAPA.bmp', 'CAPA');
             Sleep(2000);
             ImprimirImagem(1, 130, 200, 'CAPA');
             ImprimirTexto(or90, 9, 1, 1, 315, 640, NF.Text, 006);
             ImprimirTexto(or90, 9, 1, 1, 1075, 640,
                inttostr(i) + '/' + FloatToStr(VOLUMES.Value), 006);
             ImprimirTexto(or90, 9, 1, 1, 120, 860,
                Centraliza(PESSOA.FieldByname('NOME').AsString, 30,
                   ' '), 006);

     

  8. Em 04/10/2019 at 13:23, Italo Jurisato Junior disse:

    Boa tarde Vicente,

    A sua rotina esta incompleta, veja este exemplo:

    
     ACBrCTe.EventoCTe.Evento.Clear;
    
     with ACBrCTe.EventoCTe.Evento.New do
     begin
       infevento.chCTe              := Chave;
       infEvento.CNPJ               := CNPJ;
       infEvento.dhEvento           := now;
       infEvento.tpEvento           := teCCe;
       infEvento.nSeqEvento         := Sequencia;
       infEvento.detEvento.xCondUso := '';
    
       ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.detEvento.infCorrecao.Clear;
    
       with ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.detEvento.infCorrecao.New do
       begin
         grupoAlterado   := Grupo;
         campoAlterado   := Campo;
         valorAlterado   := Conteudo;
         nroItemAlterado := NumItem;
       end;
     end;
    
     ACBrCTe.EnviarEvento(idLote);
    
     // Imprime o Evento
     PathArquivo := ACBrCTe.Configuracoes.Arquivos.GetPathCTe(DataEmissao);
     ACBrCTe.Configuracoes.Arquivos.PathEvento := PathArquivo;
     dhEvento := ACBrCTe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
    
     PathEvento := ACBrCTe.Configuracoes.Arquivos.GetPathEvento(teCCe, '', dhEvento);
     NomeEvento := PathEvento + '\' + '110110' + Chave + '01' + '-procEventoCTe.xml';
    
     ACBrCTe.EventoCTe.Evento.Clear;
     ACBrCTe.EventoCTe.LerXML(NomeEvento);
     ACBrCTe.ImprimirEvento;

    Para mais informações sobre o grupo infCorrecao: página 107 do Manual do CT-e versão 3.00a Visão Geral que esta disponível em nossa biblioteca de documentos.

     

    Bom dia

    Fiz a implementação da rotina, agora esta enviando a Carta de Correção Certinho. 

    Muito Obrigado pela ajuda.

    • Curtir 1
  9. 1 hora atrás, Italo Jurisato Junior disse:

    Bom dia Vicente,

    A mensagem de erro de validação é clara, você não esta informando o elemento infCorrecao.

    No programa exemplo do componente não existe um botão referente a CC-e do CT-e.

    Favor anexar em um arquivo TXT a rotina que você alimenta o componente com as informações para a CC-e.

     

    Segue abaixo o código:

    
       CTE.EventoCTe.Evento.Clear;
       CTE.EventoCTe.idLote := StrToInt(idLote);
       with CTE.EventoCTe.Evento.Add do
          begin
          infEvento.tpEvento := teCCe;
          infEvento.chCTe := Chave;
          infEvento.cOrgao := StrToInt(codOrgao);
          infEvento.CNPJ   := CNPJ;
          infEvento.dhEvento := now;
          infEvento.nSeqEvento := StrToInt(nSeqEvento);
          infEvento.detEvento.xOBS:= Correcao;
          end;
       CTE.EnviarEvento(StrToInt(idLote));
       MemoResp.Lines.Text := UTF8Encode(CTE.WebServices.EnvEvento.RetWS);
    //   LoadXML(WBResposta.lines, WebBrowser1);
    
       CTE.EventoCTe.GerarXML;
       arquivo:=CTE.EventoCTe.ObterNomeArquivo(teCCe);
       CTE.ImprimirEvento;

     

×
×
  • 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.