Ir para conteúdo
  • Cadastre-se

Mario Inacio

Membros Pro
  • Total de ítens

    317
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Mario Inacio postou

  1. 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"
  2. 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?
  3. 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 ?
  4. Podem encerrar o tópico por favor. Estava copiando os schemas e deixando todos com letra minuscula, sendo que a função de busca é case sensitive.
  5. 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.
  6. Foi em Homologação. Podem subir a mudança das urls para SVN ?
  7. 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.
  8. 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
  9. 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
  10. 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.
  11. 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
  12. Boa tarde. Uso o Fortes, vou implementar e enviar pra aprovação então.
  13. 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?
  14. 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
  15. Eu não estava considerando esse formato do arquivo. Obrigado
  16. 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.
  17. Boa tarde. Sim, testei com vários retornos do CNAB240.
  18. 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?
  19. 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
  20. 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.
×
×
  • 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.