Jump to content

logo_acbr_paygo.png

Chegou o TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao_saibamais.png

beneficios.png

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Mario Inacio

Membros
  • Content Count

    81
  • Joined

  • Last visited

  • Days Won

    1

Mario Inacio last won the day on June 3 2018

Mario Inacio had the most liked content!

Community Reputation

8 Neutral

1 Follower

About Mario Inacio

  • Rank
    Membro
  • Birthday 03/26/1972

Profile Information

  • Sexo
    Masculino
  • Localização
    Sombrio

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Bom dia. Segue alteração: Unit: ACBrCTeDACTeRLRetrato Função: rlb_09_ObsBeforePrint Código alterado: if fpCTe.Ide.tpAmb = taHomologacao then begin if rlmObs.Lines.Count < 5 then begin rlmObs.Lines.BeginUpdate; for i:=rlmObs.Lines.Count to 5 do rlmObs.Lines.Add(''); rlmObs.Lines.EndUpdate; end; if fpCTe.procCTe.nprot = '' then rllMsgTeste.Caption := ACBrStr('CT-e não enviado, sem Valor Fiscal - Homologação') else rllMsgTeste.Caption := ACBrStr('AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL'); rllMsgTeste.Visible := True; rllMsgTeste.Enabled := True; end ACBrCTeDACTeRLRetrato.pas ACBrCTeDACTeRLRetrato.dfm
  2. Boa tarde. Acho um tanto confuso para o usuário final. Como ele lê a palavra "Previsão" já presume do que se trata, mas ele não consegue interpretar Protocolado e Não Protocolado, que seriam os termos na camada de baixo da aplicação. Mas é só uma opinião.
  3. Bom dia. Alterei a função procedure TfrmDACTeRLRetrato.rlb_09_ObsBeforePrint incluindo a verificação se o CT-e possui protocolo, caso não possua, imprime a mensagem de previsão. if fpCTe.Ide.tpAmb = taHomologacao then begin if rlmObs.Lines.Count < 5 then begin rlmObs.Lines.BeginUpdate; for i:=rlmObs.Lines.Count to 5 do rlmObs.Lines.Add(''); rlmObs.Lines.EndUpdate; end; if fpCTe.procCTe.nprot = '' then rllMsgTeste.Caption := ACBrStr('Previsao do DACTE - AMBIENTE DE HOMOLOGAÇÃO') else rllMsgTeste.Caption := ACBrStr('AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL'); rllMsgTeste.Visible := True; rllMsgTeste.Enabled := True; end else ACBrCTeDACTeRLRetrato.dfm ACBrCTeDACTeRLRetrato.pas
  4. Boa tarde. Uso o Fortes, vou implementar e enviar pra aprovação então.
  5. Boa tarde. Procurei no componente de CT-e e não encontrei nenhuma forma de sair na previsão de CT-e, a mensagem "Previsão DACTE" como usado no componente da Tecnospeed. Há a alguma forma de fazer isso disso?
  6. Boa tarde José. Acho que já corrigiram o componente, pois a procedure TACBrBancoBrasil.LerRetorno240, agora monta a leitura do nosso número com outra função, a NossoNumeroSemFormatacaoLerRetorno. if copy(Linha, 14, 1) = 'T' then begin SeuNumero := copy(Linha, 106, 25); NumeroDocumento := copy(Linha, 59, 15); Carteira := copy(Linha, 58, 1); TempData := copy(Linha, 74, 2) + '/'+copy(Linha, 76, 2)+'/'+copy(Linha, 78, 4); if TempData<>'00/00/0000' then Vencimento := StringToDateTimeDef(TempData, 0, 'DDMMYY'); ValorDocumento := StrToFloatDef(copy(Linha, 82, 15), 0) / 100; NossoNumero := NossoNumeroSemFormatacaoLerRetorno(ACBrBoleto.Cedente.Convenio, Carteira, Linha); ValorDespesaCobranca := StrToFloatDef(copy(Linha, 199, 15), 0) / 100; OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha, 16, 2), 0)); IdxMotivo := 214; while (IdxMotivo < 223) do begin if (trim(Copy(Linha, IdxMotivo, 2)) <> '') then begin MotivoRejeicaoComando.Add(Copy(Linha, IdxMotivo, 2)); DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo, StrToIntDef(Copy(Linha, IdxMotivo, 2), 0))); end; Inc(IdxMotivo, 2); end; end
  7. Eu não estava considerando esse formato do arquivo. Obrigado
  8. Bom dia. Ainda em fase de finalização de operação com ACbrCTe, não consigo mudar o nome do arquivo gerado num evento de cancelamento. Passo assim os parâmetros: with New do begin infevento.Id := '42200504632696000120570010000041701376700136'; infEvento.chCTe := '42200504632696000120570010000041701376700136'; infEvento.cOrgao := '42'; infEvento.CNPJ := '04632696000120'; infEvento.dhEvento := now; infEvento.tpEvento := teCancelamento; infEvento.detEvento.xJust := aJustif; infEvento.detEvento.nProt := editprotocolo.text; end; E o arquivo de cancelamento gera um nome aleatório, que não consigo descobrir de onde ele busca. 1101114220050463269600012057001000004167194976947901-procEventoCTe Dentro dele, o conteúdo refere-se certinho ao CTe que mandei cancelar, apenas o nome do XML mesmo.
  9. Boa tarde. Sim, testei com vários retornos do CNAB240.
  10. Boa tarde. Estou configurando o CT-e pelo ACBR, e me deparei com a atribuição no seguinte trecho: with infCarga.InfQ.New do begin cUnid := StrToUniMed(ok,'1'); Ao compilar, retorna incompatibilidade de tipos: [Error] ucte.pas(3347): Incompatible types: 'TUnidMed' and 'TpUniMed' Esse campo '1', coloquei apenas como exemplo, mas vai variar conforme a seleção do usuário, dentro das unidades permitidas. Notei que a propriedade cUnid espera o tipo TUnidMed e a função retorna TpUniMed. function StrToUniMed(out ok: Boolean; const s: String): TpUniMed; begin result := StrToEnumerado(ok, s, ['1','2','3','4','5'], [umKG, umKGG, umLitros, umTI, umUnidades]); end; Vasculhei o código e não consegui entender, poderiam me auxiliar?
  11. Bom dia. Não há no manual isso, entendo que o convênio lá no banco determina a carteira como 17. Nesse trecho da imagem acima, vimos que no arquivo de remessa não vai o número da carteira, mas sim o tipo de carteira, nesse caso '7'. A função CalcularTamMaximoNossoNumero faz a análise do tamanho pela variavel "carteira", que na remessa está como '17'. No retorno, na função LerRetorno240, (imagem em anexo) linha 1253, a variável Carteira recebe apenas um caractere, que é justamente o '7', enviado na remessa como sendo o tipo de cobrança. "Carteira := copy(Linha, 58, 1);" Então, ao passar novamente na função CalcularTamMaximoNossoNumero no retorno, a variável Carteira possui o código '7', portanto, resultará na entrada no outro IF. Estou anexando também um arquivo de retorno nessa situação. IEDCBR42611504202012727.ret
  12. Ola. O que retorna no arquivo não é o '17', mas sim, o wTipoCarteira setado na remessa, que no caso é o '7'. A função alterada serve para remessa e retorno, mas como no retorno não voltará a carteira 17 (ele lê a posição 58 do CNAB240), a função CalcularTamMaximoNossoNumero quando da remessa Resulta em 5 e quando retorno, não entrará nesse IF, retornando sempre 11.
  13. Boa tarde. O retorno do Banco do Brasil CNAB240 não estava setando corretamente o tamanho do nosso número de retorno, pois o número do convênio que na remessa era 17, no retorno estava com apenas 07 (posição 58/1). Corrigi esse trecho incluindo a carteira 07 no IF para que o fosse selecionado para tamanho 5. ACBrBancoBrasil.pas
×
×
  • Create New...