Mario Inacio
Membros Pro-
Total de ítens
317 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Mario Inacio postou
-
Classe que identifica qual componente chamou
Mario Inacio replied to Mario Inacio's tópico in ACBrNFe
Ola Big. Não vou usar apenas NF-e, quero chamar para todos os DF-e e parametrizar em um único local. Seria assim as chamadas: CarregaComponente(ACBrNfe) ou CarregaComponente(ACBRCte) ou CarregaComponente(AcbrMDfe) Dentro da função CarregaComponente identificaria o componente que chamou e usaria com "with" -
Boa tarde. Estou alterando a forma de configurar o componente em minha aplicação e estava tentando fazer uma função genérica, mas precisava de classe/função que identificasse o componente que chegou ali. Da seguinte forma: procedure CarregaComponente(vComponente: variant); begin // essa funcao abaixo precisaria identificar o componente que chamou with ClasseQueIdentificaOComponenteQueChamou(vComponente) do begin with Configuracoes.Geral do begin SSLLib := TSSLLib(fieldbyname('SSLLib').asInteger); SSLCryptLib := TSSLCryptLib(fieldbyname('CryptLib').asInteger); SSLHttpLib := TSSLHttpLib(fieldbyname('HttpLib').asInteger); SSLXmlSignLib := TSSLXmlSignLib(fieldbyname('XmlSign').asInteger); Salvar := True; ExibirErroSchema := True; RetirarAcentos := True; FormaEmissao := TpcnTipoEmissao(fieldbyname('formaemissao').asInteger); ModeloDF := TpcnModeloDF(1); VersaoDF := TpcnVersaoDF(fieldbyname('versao').asInteger); IdCSC := fieldbyname('idtokenhom').asString; CSC := Trim(fieldbyname('tokenhom').asString); if fieldbyname('ambiente').asInteger = 0 then begin //producao IdCSC := fieldbyname('idtoken').asString; CSC := fieldbyname('token').asString; end; VersaoQRCode := veqr200; end; end; end; Teria alguma nesse sentido?
-
Bom dia. Também estou na mesma situação, em que o QrCode direciona para hom.sat.sef.sc.gov.br/nfce/consulta, sendo que neste endereço, não existe a NFC-e emitida normalmente, apenas no ambiente https://dfe-portal.svrs.rs.gov.br/Nfce/Consulta Há algo que possamos alterar no componente para o QrCode direcionar ?
-
NFC-e Cancelamento - Arquivo de Schema não especificado
um tópico no fórum postou Mario Inacio NFC-e - Nota Fiscal do Consumidor Eletrônica
Boa tarde. Até procurei ajuda em outros tópicos semelhantes e adotei as dicas mas continuo com o mesmo problema. Consigo autorizar a NFC-e sem problemas, verificar status, mas quando vou cancelar a NFC-e ocorre o erro "Arquivo de Schema não especificado" Testei deixando a propriedade "Configuracoes.Arquivos.PathSchemas" em branco, sendo que ocorre o erro correto, que não existem schemas nessa pasta, pois não utilizo na raiz da aplicação. -
NFC-e SC Rejeição
Mario Inacio replied to giulianon's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Foi em Homologação. Podem subir a mudança das urls para SVN ? -
NFC-e SC Rejeição
Mario Inacio replied to giulianon's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Bom dia. Em contato com a Tecnospeed, já que por eles tambem ocorria, relataram que alteraram as urls para "https". Após a mudança, autorizei a nfc-e abaixo. Resta alterar a url para o ACBR. -
Erro com IndIntermed para SC
Mario Inacio replied to Mario Inacio's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Perfeito. Obrigado -
Erro com IndIntermed para SC
um tópico no fórum postou Mario Inacio NFC-e - Nota Fiscal do Consumidor Eletrônica
Boa tarde. Estou configurando no estado de SC a NFC-e. Ocorre erro no campo "IndIntermed", sendo que fiz um teste pela tecnospeed e autoriza com os mesmo conteúdos nos campos. Nota aprovada Tecnospeed - 42210304632696000120650090000016471414284080-nfce.xml Nota Rejeitada ACBR - 42210304632696000120650090000016471707481416-nfe.xml -
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
-
Ficaria melhor assim
-
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.