-
Total de ítens
545 -
Registro em
-
Última visita
-
Days Won
5
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Jéter Rabelo Ferreira postou
-
Bom dia. O MySQL é CaseSensitive quando está instalado em sistemas Linux Like. Mas em ambientes Windows não. Atenciosamente.
-
Bom dia. Faça o inverso que você faz para emitir uma NF-e. No meu caso, eu coloco os dados numa classe e depois no Banco de Dados. Segue abaixo minha rotina: function TACBrNFeConfig.CarregaNFe(Sender: TObject; ATerceiro: Boolean): Boolean; var loNF_Ref: TNotaFiscalReferenciada; loItem: TNotaFiscalIT; LoFat: TNotaFiscalFaturas; I: Integer; begin Result := False; if TACBrNFeConfig.GetInstance.AbrirXML(True) = '' then Exit; with Sender as TNotaFiscal do begin ClearValues; with FNFe.NotasFiscais.Items[0].NFe do begin NFeOK := True; PropriaTerceiro := iif(ATerceiro, tTerceiro, tPropria); EntradaSaida := iif(ATerceiro, tEntrada, tSaida); NaturezaOperacao := Ide.natOp; ControleNF := Ide.cNF; NumeroNF := Ide.nNF; NotaFiscalCFG.Modelo := IntToStr(Ide.modelo); NotaFiscalCFG.Serie := IntToStr(Ide.serie); Emissao.Data := Ide.dEmi; Emissao.Saida := Ide.dSaiEnt; Emissao.Contabil := Ide.dEmi; TipoPagamento := Ide.indPag; Empresa.Endereco.IBGE.Municipio := IntToStr(Ide.cMunFG); TipoNFe := Ide.finNFe; SCAN.DataHora := Ide.dhCont; SCAN.Motivo := Ide.xJust; for I := 0 to Ide.NFref.Count - 1 do begin if Ide.NFref.Items[I].refNFe <> '' then begin loNF_Ref := TNotaFiscalReferenciada.Create; Referenciada.Items[I].ChaveNFe := Ide.NFref.Items[I].refNFe; Referenciada.Add(loNF_Ref); end; end; // Emitente é sempre a EMPRESA Empresa.Clone(TUsuario.GetInstance.CentroCusto); // Origem if ATerceiro then begin if not TEmpresa.CNPJFilial(Dest.CNPJCPF) then raise Exception.Create('NF-e não é destinada a empresa!'); Destinatario.Tipo := tcfFornecedor; if Destinatario.GetRecord(FormatarCnpjCpf(Emit.CNPJCPF)) = 0 then begin with Destinatario do begin with Cadastro do begin RazaoSocial := Utf8ToAnsi(Emit.xNome); if Utf8ToAnsi(Emit.xFant) <> '' then Nome := Utf8ToAnsi(Emit.xFant) else Nome := Utf8ToAnsi(Emit.xNome); Inscricao := EMit.IE; Cnpj_Cpf := FormatarCnpjCpf(EMit.CNPJCPF); end; with Endereco do begin Endereco := Utf8ToAnsi(EMit.EnderEmit.xLgr); Numero := EMit.EnderEmit.nro; Complemento := Utf8ToAnsi(EMit.EnderEmit.xCpl); Bairro := Utf8ToAnsi(EMit.EnderEmit.xBairro); CEP := IntToStr(EMit.EnderEmit.CEP); FormatarCEP; IBGE.Municipio := IntToStr(EMit.EnderEmit.cMun); Cidade := Utf8ToAnsi(EMit.EnderEmit.xMun); UF := EMit.EnderEmit.UF; end; with Telefone do begin Telefone := FormatarFONE(EMit.EnderEmit.fone); end; if not Destinatario.PutRecord then begin MsgErro('O fornecedor não está cadastrado!' + CRLF + 'O sistema tentou cadastrar mas houve um erro.' + CRLF + 'Efetue o cadasto do fornecedor dessa NF-e' + CRLF + 'para prosseguir com a importação.'); Exit; end; end; end; end else begin if not TEmpresa.CNPJFilial(Emit.CNPJCPF) then raise Exception.Create('NF-e não é emissão própria!'); Destinatario.Tipo := tcfCliente; if Destinatario.GetRecord(FormatarCnpjCpf(Dest.CNPJCPF)) = 0 then begin with Destinatario do begin with Cadastro do begin RazaoSocial := Utf8ToAnsi(Dest.xNome); Nome := Utf8ToAnsi(Dest.xNome); if Length(OnlyNumber(Dest.CNPJCPF)) > 11 then begin FJ := 'J'; Inscricao := Dest.IE; end else begin FJ := 'F'; Inscricao := 'ISENTO'; end; Cnpj_Cpf := FormatarCnpjCpf(Dest.CNPJCPF); end; with Endereco do begin Endereco := Utf8ToAnsi(Dest.EnderDest.xLgr); Numero := Dest.EnderDest.nro; Complemento := Utf8ToAnsi(Dest.EnderDest.xCpl); Bairro := Utf8ToAnsi(Dest.EnderDest.xBairro); CEP := IntToStr(Dest.EnderDest.CEP); FormatarCEP; IBGE.Municipio := IntToStr(Dest.EnderDest.cMun); Cidade := Utf8ToAnsi(Dest.EnderDest.xMun); UF := Dest.EnderDest.UF; end; with Telefone do begin Telefone := FormatarFONE(Dest.EnderDest.fone); end; if not PutRecord then begin MsgErro('O Cliente não está cadastrado!' + CRLF + 'O sistema tentou cadastrar mas houve um erro.' + CRLF + 'Efetue o cadasto do cliente dessa NF-e' + CRLF + 'para prosseguir com a importação.'); Exit; end; end; end; end; // Produtos for I := 0 to Det.Count - 1 do begin loItem := TNotaFiscalIT.Create; with Det.Items[I], loItem do begin InfoAdicionais := StringReplace(Utf8ToAnsi(infAdProd), ';', #13#10, [rfReplaceAll]); NumeroOrdem := Prod.nItem; CFOP.ID := Prod.CFOP; with Produto do begin if not ATerceiro then ID := StrToInt(Prod.cProd) else ID := 0; Descricao := Utf8ToAnsi(Prod.xProd); Produto.NCM := Prod.NCM; end; EanTrib := Prod.cEANTrib; Unidade := Prod.uTrib; UnidadeTrib := Prod.uTrib; if Prod.qTrib > 0 then Quantidade := Prod.qTrib else Quantidade := Prod.qCom; QuantidadeTrib := Prod.qTrib; with Valor do begin Unitario := Prod.vUnCom; UnitarioTrib := Prod.vUnTrib; Desconto := Prod.vDesc; Produto := Prod.vProd; with Outros do begin Frete := Prod.vFrete; Seguro := Prod.vSeg; end; end; with Imposto, Valor do begin with ICMS do begin loItem.CST.ID := OrigToStr(Orig) + CSTICMSToStr(CST); Tributos.ICMS.Modalidade := modBC; Tributos.ICMS.ReducaoBase := pRedBC; Tributos.ICMS.Aliquota := pICMS; Tributos.ICMS.Valor := vICMS; Tributos.ICMS.BaseCalculo := vBC; // ST Tributos.ICMS_ST.Modalidade := modBCST; Tributos.ICMS_ST.ReducaoBase := pRedBCST; Tributos.ICMS_ST.Aliquota := pICMSST; Tributos.ICMS_ST.BaseCalculo := vBCST; Tributos.ICMS_ST.Valor := vICMSST; Tributos.ICMS_ST.IVA := pMVAST; if vBCSTRet > 0 then Tributos.ICMS_ST.BaseCalculo := vBCSTRet; if vICMSSTRet > 0 then Tributos.ICMS_ST.Valor := vICMSSTRet; end; with PIS do begin Tributos.PIS.SituacaoTributaria := CSTPISToStr(CST); Tributos.PIS.BaseCalculo := vBC; Tributos.PIS.Aliquota := pPIS; Tributos.PIS.Valor := vPIS; end; with COFINS do begin Tributos.COFINS.SituacaoTributaria := CSTCOFINSToStr(CST); Tributos.COFINS.BaseCalculo := vBC; Tributos.COFINS.Aliquota := pCOFINS; Tributos.COFINS.Valor := vCOFINS; end; with IPI do begin Tributos.IPI.SituacaoTributaria := CSTIPIToStr(CST); Tributos.IPI.BaseCalculo := vBC; Tributos.IPI.Aliquota := pIPI; Tributos.IPI.ValorIPI := vIPI; Tributos.IPI.QtdeUnidPadrao := qUnid; Tributos.IPI.ValorUnidade := vUnid; end; Total := Produto - Desconto + Tributos.ICMS_ST.Valor + Tributos.IPI.ValorIPI + Outros.Frete + Outros.Seguro; end; end; Produtos.Add(loItem); end; // Totais da NF Valor.Tributos.icms.baseCalculo := total.ICMStot.vBC; Valor.Tributos.ICMS.Valor := total.ICMStot.vICMS; Valor.Tributos.ICMS_ST.baseCalculo := total.ICMStot.vBCST; Valor.Tributos.ICMS_ST.Valor := total.ICMStot.vST; Valor.Produto := total.ICMStot.vProd; Valor.Outros.Frete := total.ICMStot.vFrete; Valor.Outros.Seguro := total.ICMStot.vSeg; Valor.Desconto := total.ICMStot.vDesc; Valor.Outros.Frete := total.ICMStot.vFrete; Valor.Outros.Seguro := total.ICMStot.vSeg; Valor.Tributos.IPI.ValorIPI := total.ICMStot.vIPI; Valor.Tributos.PIS.Valor := total.ICMStot.vPIS; Valor.Tributos.COFINS.Valor := total.ICMStot.vCOFINS; Valor.Outros.OutrasDespAcess := total.ICMStot.vOutro; Valor.Total := total.ICMStot.vNF; //Transportadora with Transp do begin case modFrete of mfContaEmitente: Frete := tfEmitente; mfContaDestinatario: Frete := tfDestinatario; mfContaTerceiros: Frete := tfTerceiros; mfSemFrete: Frete := tfTerceiros; end; with Transporta do begin Transportadora.Cadastro.Cnpj_Cpf := FormatarCnpjCpf(CNPJCPF); Transportadora.Cadastro.RazaoSocial := xNome; Transportadora.Cadastro.Inscricao := IE; Transportadora.Endereco.Endereco := xEnder; Transportadora.Endereco.Cidade := xMun; Transportadora.Endereco.UF := UF; end; if Vol.Count > 0 then begin with Vol.Items[0], Volumes do begin Quantidade := qVol; Especie := Utf8ToAnsi(esp); Marca := Utf8ToAnsi(marca); Numero := nVol; PesoBruto := PesoB; PesoLiquido := PesoL; end; end; end; for I := 0 to Cobr.Dup.Count - 1 do begin LoFat := TNotaFiscalFaturas.Create; LoFat.Fatura := Cobr.Dup.Items[I].nDup; LoFat.Data := Cobr.Dup.Items[I].dVenc; LoFat.Valor := Cobr.Dup.Items[I].vDup; Faturas.Add(LoFat); end; // Informações InfAdicionaisContribuinte.Text := StringReplace(Utf8ToAnsi(infAdic.infCpl), ';', crlf, [ rfReplaceAll]); InfAdicionaisFisco.Text := StringReplace(Utf8ToAnsi(infAdic.infAdFisco), ';', crlf, [ rfReplaceAll]); ChaveNFe := OnlyNumber(infNFe.ID); end; end; Result := True; end; Atenciosamente.
-
Bom dia. Segue anexa uma imagem da configuração do meu sistema para envio de email's pelo GMail. Atenciosamente.
-
E pra variar, MG está na lista.
-
Bom dia. Coloque um ClientDataSet num form e crie os campos que desejar exibir do retorno Vincule o DataSet num DataSource e esse ao DBGrid Efetue a leitura do arquivo retorno, incluindo os registros no seu DataSet Pronto. Atenciosamente.
-
Maicon, boa tarde. Tem como você efetuar os testes para verificar-mos se ficou tudo correto nessa unit? No aguardo. Atenciosamente.
-
Fortesreport Para Delphi 2007
Jéter Rabelo Ferreira replied to Fábio Watanabe's tópico in ACBrBoleto
Boa tarde. Efetue o download do SVN: https://fortesreport.svn.sourceforge.net/svnroot/fortesreport/trunk Porém no Delphi 2007 o Fortes Não instala se não for feita uma modificação numa diretiva de compilação no arquivo RLMetaVCL.pas Na linha 608 do referido arquivo onde lê-se: {$if CompilerVersion >= 20} // delphi 2009 Coloque o seguinte: {$if CompilerVersion >= 18} // delphi 2007 Feito isso, OK. Atenciosamente. -
Boa tarde Juliana. Atualização testada e OK. Atenciosamente.
-
Boa tarde Efetua a consulta de qualquer NF-e. Atenciosamente.
-
Boa tarde. Eu informo os dados dessa forma:a.CodCedente // Sem o Digito e Agencia; with FACBrBoleto, Items[0] do begin ... Cedente.Agencia := Carteira.Banco.Agencia; Cedente.AgenciaDigito := Carteira.Banco.AgenciaDigito; Cedente.Conta := Carteira.Banco.ContaCorrente; Cedente.ContaDigito := Carteira.Banco.ContaCorrenteDigito; Cedente.CodigoCedente := Carteira.CodCedente // Sem o Digito e Agencia; ... end; Atenciosamente.
-
Bom dia. O ACBr efetua a consulta no estado que originou a NF-e, e não no portal Nacional. Portanto, faça como te disse no post anterior, efetue a consulta no portal do estado de origem e verifique se a NF-e encontra-se cancelada lá. Atenciosamente.
-
Juliana, bom dia Esse problema é "parecido" com o que "resolvemos" semana passada, que é a respeito da agência na impressão de boletos. Maicon, foram feitas algumas correções nessa unit semana passada. Você atualizou seus fontes e testou novamente? Atenciosamente.
-
Bom dia. Consulte a NF-e em questão no portal NF-e do estado de emissão que a mesma deve estar cancelada. Alguns estados demoram a enviar a informação de cancelamento para o Portal Nacional. Atenciosamente.
-
Dúvida Função Em Arquivo De Retorno
Jéter Rabelo Ferreira replied to joaolenosi's tópico in ACBrBoleto
Boa noite. Ao efetuar a leitura do arquivo efetue um count na sua lista de boletos. Se ela retornar 0, é porque está vazia. Atenciosamente. -
Boleto Da Caixa - Codigo Do Cedente
Jéter Rabelo Ferreira replied to cavalomarinho's tópico in ACBrBoleto
Boa noite. Eu utilizo a unit disponível no SVN. Atenciosamente -
Problemas Com Prazo Cancelamento Nfe
Jéter Rabelo Ferreira replied to RodrigoRiquena's tópico in ACBrNFe
Rodrigo, bom dia. Só complementando a respeito do cancelamento fora do prazo: - Dentro de 24 horas: Ok - após 24 horas e menos que 7 dias: Pode ser cancelada, porém a Secretaria da Fazenda eventualmente poderá fazer uma "visitnha" na empresa para verificar o motivo. - Após 7 dias: Não pode mais ser cancelada. Atenciosamente -
Boa tarde. A forma que está especificando está correta. Mas, sem especificar qual a mensagem de erro, fica impossível de ajudar. Atenciosamente.
-
Correção Na Impressão Boleto Cef-Sicob
Jéter Rabelo Ferreira replied to Jéter Rabelo Ferreira's tópico in ACBrBoleto
Bom Dia Juliana. Segue unit corrigida conforme proposta por você. Impressão OK. Atenciosamente. ACBrCaixaEconomicaSICOB.pas ACBrCaixaEconomicaSICOB.pas -
Boa tarde. Segue abaixo: function EnviarEmail(Endereco: String; Assunto: String = ''; Texto: String = ''; stlAnexo: TStringList = nil; AEnviarDireto: boolean = False): Boolean; type TAttachAccessArray = array [0..0] of TMapiFileDesc; PAttachAccessArray = ^TAttachAccessArray; var MapiMessage: TMapiMessage; MError: Cardinal; Sender: TMapiRecipDesc; PRecip, Recipients: PMapiRecipDesc; Attachments: PAttachAccessArray; x: integer; begin Result := False; MapiMessage.nRecipCount := 1; GetMem( Recipients, MapiMessage.nRecipCount * Sizeof(TMapiRecipDesc) ); Attachments := nil; try with MapiMessage do begin { Assunto e Texto } ulReserved := 0; lpszSubject := PAnsichar(PChar( Assunto )); lpszNoteText := PAnsichar(PChar( Texto )); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0; Sender.ulReserved := 0; Sender.ulRecipClass := MAPI_ORIG; Sender.lpszName := PAnsichar(PChar( '' )); Sender.lpszAddress := PAnsichar(PChar( '' )); Sender.ulEIDSize := 0; Sender.lpEntryID := nil; lpOriginator := @Sender; { Endereço } PRecip := Recipients; PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_TO; PRecip^.lpszName := PAnsichar(PChar( Endereco )); PRecip^.lpszAddress := StrNew( PAnsichar(PChar('SMTP:' + Endereco ) )); PRecip^.ulEIDSize := 0; PRecip^.lpEntryID := nil; //Inc( PRecip ); lpRecips := Recipients; { Anexa os arquivos } if stlAnexo = nil then begin stlAnexo := TStringList.Create; stlAnexo.Clear; end; { Deleta do stlAnexo os arquivos que não existem } for x := 0 to stlAnexo.Count - 1 do if not FileExists( stlAnexo.Strings[x] ) then stlAnexo.Delete(x); { Anexa os arquivos } if stlAnexo.Count > 0 then begin GetMem(Attachments, SizeOf(TMapiFileDesc) * stlAnexo.Count); for x := 0 to stlAnexo.Count - 1 do begin Attachments[x].ulReserved := 0; Attachments[x].flFlags := 0; Attachments[x].nPosition := ULONG($FFFFFFFF); Attachments[x].lpszPathName := StrNew( PAnsichar(PChar(stlAnexo.Strings[x]) )); Attachments[x].lpszFileName := StrNew( PAnsichar(PChar( ExtractFileName(stlAnexo.Strings[x]) ) )); Attachments[x].lpFileType := nil; end; end {endif}; nFileCount := stlAnexo.Count; lpFiles := @Attachments^; end; { Enviando o e-mail } if not AEnviarDireto then MError := MapiSendMail(0, Application.Handle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) else MError := MapiSendMail(0, Application.Handle, MapiMessage, MAPI_LOGON_UI or MAPI_NEW_SESSION or MAPI_SENT, 0); case MError of MAPI_E_USER_ABORT: ; { Mostra mensagem que o envio do e-mail foi abortado pelo usuário. Portanto, não será mostrado nada } SUCCESS_SUCCESS: Result := True; else MessageDlg( 'Ocorreu um erro inesperado!'#13'Código: ' + IntToStr(MError), mtError, [mbOk], 0); end; finally PRecip := Recipients; StrDispose( PRecip^.lpszAddress ); //Inc( PRecip ); FreeMem( Recipients, MapiMessage.nRecipCount * Sizeof(TMapiRecipDesc) ); for x := 0 to stlAnexo.Count - 1 do begin StrDispose( Attachments[x].lpszPathName ); StrDispose( Attachments[x].lpszFileName ); end; end; end; Atenciosamente
-
Boa Tarde. No meu caso, eu utilizo o Fortes, fazendo dessa forma ACBrBoleto.ACBrBoletoFC.NomeArquivo := Path + Nomedoarquivo Complementando o Régys, quando se tem urgência numa coisa e não se acha a resposta, "quebre a cabeça" para descobrir, debugando o componente e etc, ou tenha um pouquinho de paciência. Atenciosamente.
-
Correção Na Impressão Boleto Cef-Sicob
Jéter Rabelo Ferreira replied to Jéter Rabelo Ferreira's tópico in ACBrBoleto
Juliana, bom dia. Fui testar a unit conforme solicitação. Resultado: Na linha 89 e 90 você definiu tamanhos fixos para: fpTamanhoAgencia := 5; fpTamanhoConta := 8; Eu li um post relatando problemas com espaços na geração de arquivos remessas, acho que foi por isso que você deve ter setado o campo Agencia como 5 Mas, ao setar o tamanho da agência como 5, o formatarnossonumero coloca um zero na frete, o que é compreensivel, mas a impressão do boleto sai incorreta (Imagem comparativa anexa). Comentei essa linha e deu certo Outra correção foi no método MontarCodigoBarras: - Não há mais necessidade da verificação do tamanho do nosso número. Segue anexa a unit modificada. Atenciosamente. ACBrCaixaEconomicaSICOB.pas -
Bom dia Não sei no caso do Bradesco, mas geralmente no extrato não aparece o nome do sacado, pois podem haver mais de 1 boleto e o valor do crédito na conta corrente é o total das liquidações. Solicite ao banco que te forneça a relação das liquidações de boletos (conhecida como francesinha). Caso queira, implemente no seu sistema a leitura do arquivo retorno e faça a leitura do mesmo no seu sistema, "pegando" todas as informações do referido arquivo. Atenciosamente. Jéter Rabelo Ferreira
-
Boa tarde. Meus clientes somente utilizam CNAB400 A unit atual do Bradesco não tem o CNAB240 implementado. Caso você puder nos ajudar, poderia implementar essas rotinas. Atenciosamente, Jéter Rabelo Ferreira
-
O Banco Unicred Funciona No Acbrboleto?
Jéter Rabelo Ferreira replied to marcelopomarolli's tópico in ACBrBoleto
Boa tarde. Banco Unicred deve ser um tipo de cooperativa de crédito, que geralmente utilizam ou Bancoob ou Sicred. Verifique qual dos dois a Unicred faz parte. Os dois estão implementados. Atenciosamente -
Boa tarde. Tenho clientes enviando remessa para o Bradesco há tempos sem nenhum problema. Atenciosamente.