
Mario Inacio
Membros Pro-
Total de ítens
385 -
Registro em
-
Última visita
-
Days Won
1
Tudo que Mario Inacio postou
-
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.
-
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
-
Boa tarde. Uso o Fortes, vou implementar e enviar pra aprovação então.
-
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?
-
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
-
Eu não estava considerando esse formato do arquivo. Obrigado
-
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.
-
Boa tarde. Sim, testei com vários retornos do CNAB240.
-
Bingo. Era isso mesmo. Obrigado
-
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?
-
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
-
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.
-
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
-
LGPD - Lei Geral de Proteção de Dados Pessoais
Mario Inacio replied to esbaptista's tópico in Dúvidas não relacionadas ao ACBr
Claro, tem muita documentação disponível, mas em local nenhum consegui identificar: - se haverá uma certificação de conformidade - como provar que os dados estão seguros - haverá fiscalização disso ou apenas em caso de suposto vazamento - clientes que hoje recebem mensagens e emails dos nossos clientes deverão autorizar esse recebimento de que forma A dúvida está realmente na operacionalização da conformidade, o que ela propõe é fácil de interpretar, mas o fato é como nosso pequeno cliente de uma loja minuscula deverá agir ou documentar, e cabe a nós levar isso mastigado a eles. -
LGPD - Lei Geral de Proteção de Dados Pessoais
Mario Inacio replied to esbaptista's tópico in Dúvidas não relacionadas ao ACBr
Bom dia. Sim, a legislação já está pronta, claro, faltando ainda a criação do órgão fiscalizador e as regras de como isso vai ocorrer. Tenho buscado e encontrado material que falam superficialmente sobre as normas, mas nada prático de como devemos agir em nossos sistemas e como auxiliar nossos clientes. Para nós como pequenas empresas, fica mais complicado de interpretar e aplicar a lei, pois na maioria, fazemos todos os setores da empresa. 1568922173wk_LGPD.pdf -
LGPD - Lei Geral de Proteção de Dados Pessoais
Mario Inacio replied to esbaptista's tópico in Dúvidas não relacionadas ao ACBr
up -
Negativação SERASA - Banco do Brasil CNAB 240
Mario Inacio replied to Wanderson Medeiros's tópico in ACBrBoleto
Bom dia. Com essa alteração, mesmo os boletos que "Não" eram pra negativar, estavam emitindo com a mensagem de Negativação. Correção em anexo. ACBrBoleto.pas -
LGPD - Lei Geral de Proteção de Dados Pessoais
Mario Inacio replied to esbaptista's tópico in Dúvidas não relacionadas ao ACBr
Bom dia. Infelizmente temos mais isso pra ver em nosso dia a dia. Estamos lendo muito também, mas de fato, o que vimos, foram muitas cópia de artigos que falam a mesma coisa, e nada ainda de como implementar isso em nossos ERP´s. É um assunto novo e nem mesmo foi criada a Agência que vai regulamentar a forma de verificação e comprovação da aplicação dessa Lei. Temos que trocar experiências para evoluir no assunto. -
Negativação SERASA - Banco do Brasil CNAB 240
Mario Inacio replied to Wanderson Medeiros's tópico in ACBrBoleto
Bom dia. Alterei a Unit ACBrBoleto para exibir a mensagem de negativação caso ela seja diferente de "cnNenhum". Função: AdicionarMensagensPadroes Linha: 2049 Segue fonte para análise ACBrBoleto.pas -
Negativação SERASA - Banco do Brasil CNAB 240
Mario Inacio replied to Wanderson Medeiros's tópico in ACBrBoleto
Boa tarde. Diretamente no site da Febraban em https://portal.febraban.org.br/pagina/3053/33/pt-br/layout-240 E nesse link, as particularidades do Banco do Brasil. https://www.bb.com.br/docs/pub/emp/empl/dwn/CNAB240SegPQRSTY.pdf -
Negativação SERASA - Banco do Brasil CNAB 240
Mario Inacio replied to Wanderson Medeiros's tópico in ACBrBoleto
Boa tarde. Pelo que notei, as alterações acima referentes a Negativação não contemplaram a geração do arquivo, e sim a impressão. Fiz a mudança no fonte para gerar no Banco do Brasil CNAB240, como seguem anexo. ACBrBancoBrasil.pas -
Olá Juliana. Estou me referindo a retorno no CNAB 240 e não possui essa informação de carteira nessas posições, como segue o arquivo de retorno em anexo. IEDCBR4020605201935631.ret
-
Bom dia Juliana. Mas no header de retorno não há informação de carteira.
-
Boa tarde. Notei que para um cliente que configurou como carteira 11, também não está entrando no IF da primeira imagem, a solução foi alterar conforme abaixo:
-
Boa tarde. Meu cliente emite boleto BB na carteira 17. Para retornar o nosso número gerado a função abaixo esta analisando e retornando 5 digitos: Já no retorno, ele não está entrando no mesmo lugar, pois quando atribui a Carteira na leitura, está atribuindo apenas o '7, que está na posição 58': Arquivo de retorno para teste. IEDCBR4020605201935631.ret