-
Total de ítens
409 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Paulo Alexandre Hostert postou
-
informaçoes dos tomadortes obrigatorios
Paulo Alexandre Hostert replied to claudiocjr's tópico in ACBrMDFe
Estou adicionado os CNPJ dos tomadores dos conhecimentos vinculados. while not Q.Eof do begin rodo.infANTT.infContratante.Add.CNPJCPF := Q.FieldByName('CNPJCPF').AsString; Q.Next; end; -
Boa tarde, Também tive o mesmo problema, e tive que ajustar no fonte do ACBR.
-
Veja se te ajuda: ACBrNFeObj:TACBrNFe ACBrNFeObj.EnviarEmailEvento(Destinatarios, Assunto, CorpoEmail, CC, Anexos);
-
hehe Obrigado pelo retorno!
-
Boa tarde! Tem alguma para de liberação?
-
Olá boa noite! Já foi desenvolvido alguma coisa?
-
Bom dia, Segue unit! ACBrBancoCecred.pas
-
Boa tarde, Tive que fazer uma alteração na Unit ACBrBancoCecredi incluindo a linha que destaquei abaixo, pois quando não tem data de protesto fica faltando as colunas de instrução no arquivo. Tem alguma forma de resolver isso sem alterar essa unit? {Intruções - Protesto} AInstrucao := '0000'; <=== AQUI if (aTipoOcorrencia = '01') or (aTipoOcorrencia = '09') then begin if (DataProtesto > 0) and (DataProtesto > Vencimento) then begin AInstrucao := '06'; // Protestar em xx dias corridos DiasProtesto := IntToStr(DaysBetween(DataProtesto, Vencimento)) end; end else if ATipoOcorrencia = '02' then // 02-Pedido de Baixa AInstrucao := '44';
-
Daniel, Vi que os anexo estão sendo excluídos no procedimento clear abaixo. Precisamos dessa chamada aqui? procedure TACBrMail.SmtpError(const pMsgError: string); begin Clear; <== fGetLastSmtpError := pMsgError; MailProcess(pmsError); DoException( Exception.Create(pMsgError) ); end;
-
Daniel, Ficou ótimo! Muito Obrigado! Só mais uma duvida: Utilizo no evento OnAfterMailProcess e OnMailException, uma procedure com o código abaixo para garantir que os anexos sejam excluídos. (Senão os PDFs vão se acumulando na pasta). O problema é nesse ponto a lista de anexos(Attachments) está vazia, sabes por que? for I := 0 to Length(TACBrMail(Sender).Attachments)-1 do begin if FileExists(TACBrMail(Sender).Attachments.FileName) then DeleteFile(TACBrMail(Sender).Attachments.FileName); end;
-
Retirei, a dependencia "Forms" e implementei o evento ACBrMailException. Segue a unit. ACBrMail.pas
-
Tens algum Exemplo?
-
Daniel, Já estou utilizando o metodo ACBrNFe1.EnviarEmailEvento() para o envio.
-
Devo implementar o evento e te encaminhar?
-
Concordo Daniel, Porem não encontrei nenhuma forma de exibir o erro quando ocorre alguma exceção. Tem alguma forma de tratar isso sem alterar a ACBrMail?
-
Falha no Schema XML do CT-e trunk2
Paulo Alexandre Hostert replied to Paulo Alexandre Hostert 's tópico in ACBrCTe
Acabei de descobrir. Faltou informar no número do Lote, antes não precisava. Obrigado! -
Após a atualização para os fontes do trunk2, estou recebendo esse erro no retorno do CT-e: Código: 225 Motivo: Rejeição: Falha no Schema XML do CT-e. A unica coisa que percebi que mudou no código, foi que a propriedade AcbrCTE.Conhecimentos.Items[0].XML retorna vazio, e passei a utilizar a AcbrCTEObj.Conhecimentos.Items[0].XMLAssinado (Na NF-e aconteceu a mesma coisa, mais não deu nenhum erro). Analisei o XML mais não consigo encontrar o erro. Alguém teve esse problema? XML.xml
-
Segue unit ACBrMail.pas... ACBrMail.pas
-
Daniel, Resolvi o problema fazendo alguns ajustes na unit acbrmail, na thread para tratamento do erro: Podemos ajustar isso no padrão? { TACBrThread } constructor TACBrThread.Create(AOwner: TComponent); begin FreeOnTerminate := True; fOwner := AOwner; inherited Create(False); end; procedure TACBrThread.DoHandleException; begin Application.ShowException(FException); end; procedure TACBrThread.Execute; begin try if (not terminated) then TACBrMail(FOwner).SendMail; except HandleException; end; end; procedure TACBrThread.HandleException; begin FException := Exception(ExceptObject); try Synchronize(DoHandleException); finally FException := nil; end; end;
-
Daniel, Ainda sobre o uso da thread, quando ocorre algum erro no envio, como como algum erro nas informações de SMTP, a segunda vez que faço o envio do e-mail, no mesmo objeto acbrmail ocorre a seguinte mensagem: Cannot terminate an externally created thread. Sabe o que é?
-
Sim, o ACBrMail é criado em tempo de execução. Vou criar o projeto para tentar reproduzir o problema... Daniel, acabei de identificar o problema. Comentei a parte onde destruo o componente ACBrMail funcionou. (Durante a execução da thread deve fazer alguma referencia..) Agora vou ter que avaliar para ajustar isso, já que também estou criando em runtime. Obrigado!
-
No demo deu certo, é só na minha aplicação que ocorre o problema. Mesmo copiando o código que funciona no demo, quando executo pela minha aplicação da erro. Tem alguma ideia?
-
Daniel, Após acompanhar depurar o código vi que quando tem o PDF junto, no procedimento abaiixo fica travado: function TMimeMess.AddPartHTMLBinaryFromFile(const FileName, Cid: string; const PartParent: TMimePart): TMimepart; var tmp: TMemoryStream; begin tmp := TMemoryStream.Create; try tmp.LoadFromFile(FileName); <== AQUI SIMPLESMENTE TRAVA Result :=AddPartHTMLBinary(tmp, ExtractFileName(FileName), Cid, PartParent); finally tmp.Free; end; end; Se tento enviar somente o XML ocorre o erro: raised exception class $C0000005 with message 'access violation at 0x00000000: read of address 0x00000000'. Nesse procedimento: for vAttempts := 1 to fAttempts do begin if fSMTP.Login then <== AQUI Break; if vAttempts >= fAttempts then SmtpError('SMTP Error: Unable to Login.'); end; O fato é que deixando a opção de uso da thread como false funciona. (Antes de atualizar para o trunk2 funcionava certinho com o uso da thread).
-
Boa tarde, Alguém conseguiu fazer o envio do e-mail utilizando a thread? Quando passo o usothread := True, ocorre erro no procedimento abaixo: Function TMimeMess.AddPartHTMLBinary(const Stream: TStream; const FileName, Cid: string; const PartParent: TMimePart): TMimepart; begin Result := AddPart(PartParent); Result.DecodedLines.LoadFromStream(Stream); Result.MimeTypeFromExt(FileName); Result.Description := 'Included file: ' + FileName; Result.Disposition := 'inline'; Result.ContentID := Cid; Result.FileName := FileName; Result.EncodingCode := ME_BASE64; Result.EncodePart; <== O ERRO OCORRE AQUI Result.EncodePartHeader; end;
