jaidomini
Membros-
Total de ítens
64 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que jaidomini postou
-
Esta função faz o ajuste automático da largura da coluna em até 100px, quando chega a 100 é inserido espaço em branco a cada 19 caractres para que o fortes faça a quebra com o WordWrap. Antes de chamar a função imprimir do ACBRNFe, chame esta procedure DanfeFortesAjustaQuebraLinha. Atenção, depois que chamar esta procedure não exporte xml, pois a Tag cProd foi modificada. Att Jaisson procedure DanfeFortesAjustaQuebraLinha; var i, iNota: Integer; begin if ACBrNFe1.DANFE=DanfeFortes1 then if DanfeFortes1.TipoDANFE = tiRetrato then begin DanfeFortes1.LarguraCodProd := 61; if ACBrNFe1.NotasFiscais.Count>0 then for iNota := 0 to ACBrNFe1.NotasFiscais.Count-1 do for i := 0 to ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Count-1 do begin if Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd) > 11 then if (DanfeFortes1.LarguraCodProd < (Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd)-11) * 5.3 + 61) then begin DanfeFortes1.LarguraCodProd := Trunc((Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd)-11) * 5.3 + 61); if DanfeFortes1.LarguraCodProd > 100 then begin DanfeFortes1.LarguraCodProd := 100; ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd := Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,1,19) + ' '+ Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,20,19) + ' '+ Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,39,19) + ' '+ Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,58,19); //tem no max 60 carac o codigo end; end; end; end; end;
-
Boa Tarde. Não sei exatamente o que vc fez na parte de retorno, mas pra mim funciona o retorno pefeitamente. Antes de realizar o retorno, faça isso ACBrBoleto1.Banco.TipoCobranca := cobBancoSofisaItau Dessa forma a unit que vai fazer a leitura do retorno é a ACBrBancoSofisaItau.pas Vi que vc anexou ACBrBancoItau.pas sendo que a leitura do Banco Sofisa itaú é feita pela unit ACBrBancoSofisaItau.pas
-
Boa tarde, por nada! Obrigado a vcs também que fazem um esforço enorme! Eu passei onde modifiquei, porque não está 100% atualizado com as últimas modificações do SVN, de qualquer maneira segue anexo. Por isso que passei os pontos em que foram ajustados, que foram poucos. ACBrBoleto.pas
-
Bom dia Já configurei várias vezes Sicredi, e a agência é sempre com 4 casas e o dígito da agência, no caso o posto com 2 casas. DigitoVerificadorAgenciaConta não preencho. Sobre o nosso numero, eu passo um código que crio para cada boleto e o Acbr se encarrega de formatar ele, exemplo: 5775
-
Bom dia Como não tem o layout do Sofisa quando o parceiro é Itaú(hoje tem com o Santander), eu desenvolvi no padrão do ACBr. - Já ajustei TODOS os códigos de rejeições conforme layout - Para imprimir o boleto, eles pedem para seguir o manual do Itaú, então é só falar que é Itaú que o boleto imprime certinho Boleto.Banco.TipoCobranca := cobItau - Utilizam carteira 109 - Na conta corrente e codigo cedente e convenio, tem que colocar o código do cedente que eles passam, nunca a conta corrente. - O codigo da empresa no banco, utilizei do campo CodigoTransmissao pois ele é parecido com o codigo de transmissao que o Santander utiliza. Ex deste codigo: "000000099999CVE341" Alterações em em ACBrBoleto.pas 1) TACBrTipoCobranca = acrescentar: cobBancoSofisaItau 2) ACBrBancoSofisaItau no uses 3) function GetTipoCobranca 637: begin if StrToInt(Carteira) = 109 then Result := cobBancoSofisaItau else Result := cobBancoSofisaSantander; end; 4) SetTipoCobranca cobBancoSofisaItau : fBancoClass := TACBrBancoSofisaItau.Create(Self); {637} Obrigado Jaisson LayoutSofisa.zip ACBrBancoSofisaItau.pas
-
Ajuste no Sicoob unit ACBrBancoBancoob para Passar no Validador
jaidomini replied to jaidomini's tópico in ACBrBoleto
Verdade, tem no header do lote também, mas o ACBR já faz aquilo que comentei, deixa em branco Então também resolveria deixando DigitoVerificadorAgenciaConta := '0' Porque no lote o acbr já segue o manual. Realmente, o pessoa que elaborou o manual deixou 2 regras para o mesmo campo. Abraço. -
Ajuste no Sicoob unit ACBrBancoBancoob para Passar no Validador
jaidomini replied to jaidomini's tópico in ACBrBoleto
Bom Dia. Link para envio de arquivo para validar https://www.sicoob.com.br/web/sicoob/validador-cnab Link do arquivo em XLS do layout (quer está de acordo com o link) https://www.sicoob.com.br/documents/3068856/0/layout-cnab-240.xls/5bfadf52-4278-3d28-0b69-b09b467aad45?t=1614120550911 Eu entendo o que o Antonio comentou, porém se no manual fala que tem que vir assim, já era melhor deixar fixo para não ficar gerando tópicos de dúvidas aqui e ajudar os próximos a não passar um tempo analisando, e o tempo que eu usei pra fazer isso já seja útil para o próximo. O layout da forma que está, para quem já passou pela homologação funciona, porém, para quem vai começar a emitir e precisa passar pela homologação, não passa. layout-cnab-240.xls ACBrBancoBancoob.pas -
Ajuste no Sicoob unit ACBrBancoBancoob para Passar no Validador
um tópico no fórum postou jaidomini ACBrBoleto
Boa Tarde Apesar do layout já funcionar em alguns clientes em produção, novos clientes não passam pela homologação no validador por causa de 2 campos que estão exigindo conteúdo em branco em um e zero no outro, fiz a alteração da unit e passou 100% pelo validador, o manual também pede isso. unit ACBrBancoBancoob; GerarRegistroHeader240 Antes (Linha) PadRight(Convenio, 20, ' ') + // 33 a 52 - Brancos - Alteração para passar no validador Depois space(20 ) + // 33 a 52 - Brancos - Alteração para passar no validador Antes (Linha) PadRight(DigitoVerificadorAgenciaConta, 1, ' ')+ // 72 - Dígito verificador Ag/Conta (zero) Depois '0' + // 72 - Dígito verificador Ag/Conta (zero) Att Jaisson -
Sicredi - Validador do CNAB não está aceitando caracter especial na Mensagem
jaidomini replied to jaidomini's tópico in ACBrBoleto
Eu fiz isso no meu software, porém deixei a sugestão porque outros terão o problema. Att Jaisson -
Sicredi - Validador do CNAB não está aceitando caracter especial na Mensagem
um tópico no fórum postou jaidomini ACBrBoleto
Bom dia, unit ACBrBoleto procedure AdicionarMensagensPadroes Quase no final da procedure, adicionei 2 linhas, logo após o código da DataLimitePagto. if DataLimitePagto <> 0 then begin if DataLimitePagto > Vencimento then AStringList.Add(ACBrStr('Não Receber após ' + IntToStr(DaysBetween(Vencimento, DataLimitePagto))+ ' dias')) else AStringList.Add(ACBrStr('Não Receber após o Vencimento')); end; if Banco.TipoCobranca = cobSicred then AStringList.Text := TiraAcentos(AStringList.Text); Obrigado Jaisson -
Boa tarde, no arquivo do centi.Provider que fiz o upload já tinha consegui consultar, eu tinha corrigido o consultar da mesma forma que vc tinha corrigido o gerar para outra pessoa, com a alteração que vc pediu também deu certo a consulta, porém em ambas as situação tenho que "extrair" a NFSe do XML para visualizar na DANFE, conforme código abaixo. if Pos('<ListaNfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno) > 0 then xmlDaNFSE := Copy(ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno, Pos('<Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno), Pos('</Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno) + 7{<Nfse>} - Pos('<Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno)) else xmlDaNFSE := ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno;
-
@Italo Giurizzato Junior, consegui resolver, emissão e consultar por RPS. O cancelamento não testei, mas segui o mesmo raciocínio que foi a correção que você fez para gerar a NFSe. Agora uma coisa importante, quando ele faz o consulta, o xml que vem no XMLRetorno vem com aquela tag <ListaNfse> isso acaba impedindo de visualizar a NFSe, fiz um código simples para extrair apenas o XML da NFSe e consegui imprimir a DANFE if Pos('<ListaNfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno) > 0 then xmlDaNFSE := Copy(ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno, Pos('<Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno), Pos('</Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno) + 7{<Nfse>} - Pos('<Nfse>', ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno)) else xmlDaNFSE := ACBrNFSeX1.WebService.ConsultaNFSeporRps.XmlRetorno; Segue contribuição em anexo. Centi.Provider.pas
-
Bom dia. A cidade de Neropolis trocou do Sigep para o Centi, atualizei o ini e o .res com as informações abaixo e consegui transmitir, porém a consulta do RPS está dando o erro citado no Título. ACBrNFSeX - Atualizado ontem 09/03/22 Nome=Neropolis UF=GO Provedor=Centi Versao=2.02 ProRecepcionar=https://api.centi.com.br/nfe/gerar/go/neropolis ProConsultarNFSeRps=https://api.centi.com.br/nfe/consultar/rps/go/neropolis ProCancelarNFSe=https://api.centi.com.br/nfe/cancelar/go/neropolis ProGerarNFSe=https://api.centi.com.br/nfe/gerar/go/neropolis ; HomRecepcionar=https://api.centi.com.br/nfe/gerar/homologacao/go/neropolis HomConsultarNFSeRps=https://api.centi.com.br/nfe/consultar/homologacao/rps/go/neropolis HomCancelarNFSe=https://api.centi.com.br/nfe/cancelar/homologacao/go/neropolis HomGerarNFSe=https://api.centi.com.br/nfe/gerar/homologacao/go/neropolis ; ProLinkURL=https://api.centi.dev.br/portal/nfse/go/neropolis/%CodVerif% HomLinkURL=https://api.centi.dev.br/portal/nfse/go/neropolis/%CodVerif% Anexei os arquivos envolvidos na consulta Obrigado. 17NFS-comp-nfse.xml 17NFS-comp-nfse-soap.xml 17NFS-con-nfse-rps.xml 17NFS-con-nfse-rps-soap.xml
-
Americana suspendeu o SmarAPD, está usando o TIPLAN que por sinal funciona muito bem aqui! Minha propria empresa emite via ACBr. Utilizo: ACBrNFSe1.NotasFiscais.GerarNFSe; Depois: ACBrNFSe1.Enviar(Numero do Lote, False); Lembrando que o que p Italo disse, vamos ter que atualizar para o ACBRNFSEX
-
[5214507] Nome=Neropolis UF=GO Provedor=Sigep NomeURL_H=gestaopublica.neropolis NomeURL_P=gestaopublica.neropolis Atenciosamente Jaisson Cruz Me desculpem, não vi que tinha um tópico para isso, algum moderador, mover para o conversa certa ou excluir o post.
-
acbrmail ACBrMail - SMTP Error: Unable to Login
jaidomini replied to andre@prodez's tópico in Dúvidas Gerais sobre o ACBr
Daniel, até Dezembro/17 eu utilizava os fontes antes desta alteração sem problemas com o Gmail/Hotmail, depois que atualizei notei que em "procedure TACBrMail.SendMail;" a linha if fSMTP.Login and fSMTP.AuthDone then foi alterada para if fSMTP.Login then Em outros smtps, estes com hospedagem cPanel, funciona normal, só que com gmail ou hotmail não vai... Eu fiz um teste alterando e compilando com a linha abaixo if fSMTP.Login and fSMTP.AuthDone then E o envio voltou a funcionar normalmente, veja aí se faz sentido o que relatei. Obrigado Jaisson- 23 replies
-
- smtp error
- unable to login
- (e 1 mais)
-
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
jaidomini replied to Pedro Henrique Oliveira's tópico in ACBrTCP
Eu fiz faz uns 4 dias, em XE2, coloca no uses: IdHTTP e IdSSLOpenSSL function RecWslerCampo(Texto: TStringList; NomeCampo: String ): String; var i : integer; linha: String; begin NomeCampo := Trim(NomeCampo) + '='; Result := ''; for i := 0 to Texto.Count-1 do begin linha := Trim(Texto); if Copy(linha,1,Length(NomeCampo)) = NomeCampo then begin Result := Copy(linha, Length(NomeCampo)+1, Length(linha)); break; end; end end; var IdHTTP1: TIdHTTP; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; sResposta: TStringList; begin try IdHTTP1:= TIdHTTP.Create(self); IdSSLIOHandlerSocketOpenSSL1:= TIdSSLIOHandlerSocketOpenSSL.Create(Self); IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; IdHTTP1.ReadTimeout := 5000; sResposta := TStringList.Create; sResposta.Text := IdHTTP1.Get( 'https://www.receitaws.com.br/v1/cnpj/XXXXXXXXXXXXXX', ' ','%20')); sResposta.Text := TrocaTexto(sResposta.Text,'": ','='); sResposta.Text := TrocaTexto(sResposta.Text,'",',''); sResposta.Text := TrocaTexto(sResposta.Text,'"',''); finally IdSSLIOHandlerSocketOpenSSL1.Free; IdHTTP1.Free; FechaAguarda; end; if Pos('nome=', sResposta.Text) > -1 then begin if RecWslerCampo(sResposta, 'situacao') <> 'ATIVA' then ShowMessage('Atenção, SITUAÇÃO está: ' + RecWslerCampo(sResposta, 'situacao')); razao_social := RecWslerCampo(sResposta, 'nome'); fantasia := RecWslerCampo(sResposta,'fantasia'); .... e assim por diante... end; end; -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
jaidomini replied to Pedro Henrique Oliveira's tópico in ACBrTCP
Eu fiz semana passa isso que você sugeriu, deu tudo certo, mas o problema foi o reCaptcha pedindo intermináveis verificações de placas e carros após clicar em Não sou robô. Eu até consegui resolver os problemas de script do TWebbrowser, rodando em compatibilidade do IE instalado, mas este reCaptcha parece que sabe que o browser está rodando dentro de um sistema, então ele pensa que é algum bot.... -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
jaidomini replied to Pedro Henrique Oliveira's tópico in ACBrTCP
Hoje o dia todo não funcionou, até via browser estava instavel. Acabei de testar com a correção para o link http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao3.asp está funcionando 100%. -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
jaidomini replied to Pedro Henrique Oliveira's tópico in ACBrTCP
Percebi que o atual, tem como passar o CNPJ direto http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp?cnpj=XXXXXXXXXXXXXX Agora tem como lidar internamente com este novo captcha para o usuario clicar no "Eu Nao Sou Robo" Estou tentando, se descobrir coloco aqui