Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 25-05-2023 em todas as áreas
-
Bom dia! Acho que você está confundindo. OptanteSN e RegimeEspecialTributacao são propriedades distintas, veja: function TNFSeW_PadraoNacional.GerarRegimeTributacaoPrestador: TACBrXmlNode; begin Result := CreateElement('regTrib'); Result.AppendChild(AddNode(tcStr, '#1', 'opSimpNac', 1, 1, 1, OptanteSNToStr(NFSe.OptanteSN), DSC_INDOPSN)); if NFSe.OptanteSN = osnOptanteMEEPP then Result.AppendChild(AddNode(tcStr, '#1', 'regApTribSN', 1, 1, 1, RegimeApuracaoSNToStr(NFSe.RegimeApuracaoSN), '')); Result.AppendChild(AddNode(tcStr, '#1', 'regEspTrib', 1, 1, 1, FpAOwner.RegimeEspecialTributacaoToStr(NFSe.RegimeEspecialTributacao), DSC_REGISSQN)); end; Se conferirmos na função de conversão do OptanteSN realmente tem apenas as opções que citou: function OptanteSNToStr(const t: TOptanteSN): string; begin Result := EnumeradoToStr(t, ['1', '2', '3'], [osnNaoOptante, osnOptanteMEI, osnOptanteMEEPP]); end; O que coincide com a informação do Schema do DPS. <xs:element name="opSimpNac" type="TSOpSimpNac"> <xs:annotation> <xs:documentation> Situação perante o Simples Nacional: 1 - Não Optante; 2 - Optante - Microempreendedor Individual (MEI); 3 - Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP); </xs:documentation> </xs:annotation> </xs:element> Agora o RegimeEspecialTributacao aceita mais valores, conforme função de conversão: function TACBrNFSeProviderPadraoNacional.RegimeEspecialTributacaoToStr( const t: TnfseRegimeEspecialTributacao): string; begin Result := EnumeradoToStr(t, ['0', '1', '2', '3', '4', '5', '6'], [retNenhum, retCooperativa, retEstimativa, retMicroempresaMunicipal, retNotarioRegistrador, retISSQNAutonomos, retSociedadeProfissionais]); end;3 pontos
-
Boa tarde! O que ocorre é que no schema é solicitado a QUANTIDADE DE VOLUMES (qVol) e não a quantidade de metros ou a quantidade de itens. Exemplo vendi 30 itens (isto já está na definição da quantidade dos itens, não é isto que é solicitado e sim quantos volumes estão no veículo de transporte. Se 30 itens enviei em 2 volumes (volumes serão 2) se coloquei os dois itens em 1 volume a informação será 1 volume. O mesmo ocorre para todos os itens. Se for metros quadrados, metros cúbicos ou itens não importa o que está sendo solicitado é como foi embalado ou disponibilizado para transporte em volumes. No teu exemplo se a venda foi de 82,33M2 e você embalar isto em 5 embalagens mesmo que vá 4 embalagens grandonas e 1 pequena serão 5 volumes. Se foi tudo 82,33m2 embalado apenas de uma forma, será 1 volume. E na espécie você diz o que é. Exemplo: rolos, caixa, pallet, pacotes, sacos, etc. Neste caso imagine que você tem: 1) Quantidade de volumes transportados - 2) Espécie dos volumes transportados - 3) a quantidade de produtos vendido, 4) o peso liquido e 5) o peso bruto. E você fosse informar agora no grupo de transportes 1) qVol (Quantidade de volumes transportados) 2) esp (Espécie de volumes transportados) 3) NÃO FOI SOLICITADO POIS ESTÃO NO QUADRO DE ITENS DE CADA PRODUTO VENDIDO, nas tags uCom (Unidade Comercial) e qCom (Quantidade Comercial) 4) PesoL (Peso Líquido) 5) PesoB (Peso Bruto) Imagine a seguinte situação: Se esta mesma empresa estivesse vendendo digamos 82,33m2 de piso. 3 latas de tintas de 1 litro cada (3 litros), 10 pinceis e 50 metros de fio 10mm, 2 rolos de fitas isolantes 5metros e 1 rolo de fita isolante 30metros alta fusão. Ao transportar alojasse para transporte 82,33m2 de piso em uma caixa e as 3 latas de tinta de 1litro mais os 10 pinceis e os 50 metros de fio e as fitas isolantes em outra caixa. Pergunto: Como você definiria a quantidade de volume transportado? Concorda que seria 2 volumes? e espécie: caixas. O campo qVol seria para esta informação.2 pontos
-
Boa tarde, A mudança da orientação no drive não fez diferença, porem após mudanças no que enviou para o ACbrEtqLib, entendi melhor como poderia trabalhar com as opções enviadas e conseguir contornar um pouco esse problema. Obrigado.2 pontos
-
no primeiro caso o provedor em questão pode não ter essa funcionalidade então não terá como usar o segundo se notar na documentação é o arquivo ini com o mesmo para cancelar. https://acbr.sourceforge.io/ACBrLib/NFSE_Cancelar.html2 pontos
-
Bom dia Valkennedy, O XML que esta sendo carregado a tag contem a data e hora? Verificando a unit responsável pela leitura do XML temos o seguinte: if NFe.infNFe.Versao >= 3 then begin (*B09*) NFe.ide.dEmi := Leitor.rCampo(tcDatHor, 'dhEmi'); (*B10*) NFe.ide.dSaiEnt := Leitor.rCampo(tcDatHor, 'dhSaiEnt'); end else begin (*B09*) NFe.ide.dEmi := Leitor.rCampo(tcDat, 'dEmi'); (*B10*) NFe.ide.dSaiEnt := Leitor.rCampo(tcDat, 'dSaiEnt'); (*B10a*)NFe.ide.hSaiEnt := Leitor.rCampo(tcHor, 'hSaiEnt'); end; Como você pode ver, se a versão da nota for igual ou superior a 3.00 a propriedade dEmi contem sim a data e hora, caso contrario somente a data.2 pontos
-
Bom dia, Se você esta usando o componente novo ACBrNFSeX, o local correto para alterar as URLs é: ACBrNFSeXServicos.ini Veja:2 pontos
-
Bom dia, Se o município aderir 100% o projeto da NFS-e Padrão Nacional o funcionamento vai ser da seguinte forma: O prestador de serviço vai enviar o DPS (Declaração Provisória de Serviço) para a API da Receita Federal, somente ela vai recepcionar, processar, armazenar e disponibilizar as notas para os municípios envolvidos na prestação do serviço em questão. Sendo assim, as prefeituras vão apenas baixar os XML das notas. Por outro lado se o município não aderir 100%, ou seja, somente o pacote de compartilhamento de notas, o prestador vai continuar enviado os seus RPS (Recibo Provisório de Serviço) para o WebService do provedor, o RPS vai continuar sendo gerado segundo o layout usado pelo provedor que pode ser ABRASF (versão 1 ou 2) ou Próprio, Neste caso a prefeitura deverá compartilhar com a Receita Federal as notas processados pelo provedor contratado por ela. Observação importante: Se o prestador de serviço for MEI (Micro Empreendedor Individual) deverá enviar o seu DPS para a API da Receita Federal, obrigatoriamente a partir de setembro/2023, independente se a prefeitura aderiu ou não o projeto da NFS-e Padrão Nacional.2 pontos
-
Pela URL do Manual, parece que a cidade vai mudar da versão 1.00 para a 1.01 Veja um exemplo de configuração de uma cidade que usa IOM na versão 1.01: [4101408] ; Atualizado em 19/04/2022 Nome=Apucarana UF=PR Provedor=IPM Versao=1.01 ProRecepcionar=https://apucarana.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao HomRecepcionar=https://homologacao.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=integracoes Já este é o exemplo de uma cidade que implementa a versão 2.04: [4303509] ; Atualizado em 16/05/2023 Nome=Camaqua UF=RS Provedor=IPM Versao=2.04 ProRecepcionar=https://ws-camaqua.atende.net:7443/?pg=services&service=WNENotaFiscalEletronicaNfe&cidade=padrao HomRecepcionar=https://migracao.atende.net/?pg=services&service=WNENotaFiscalEletronicaNfe&cidade=treina_camaqua Você precisa confirmar quais são as novas URLs e qual é a versão implementada para que possamos alterar no INI.2 pontos
-
@mgmobile Bom dia ! A equipe tratou a compatibilidade favor fazer o download https://www.projetoacbr.com.br/forum/files/category/16-acbrmonitorplus-pro/ E agora o ACBrMonitor está funcionando com o TipoPessoa como de origem e tbm como tipoInscricao. Obrigado por reportar2 pontos
-
O Curso é Gratuito... Basta fazer um cadastro Gratuito na plataforma Eduzz2 pontos
-
Adicionada TK-3985 para avaliação da contribuição. Obrigado!2 pontos
-
Isso em qual tamanho de fonte? Porque no modo condensado ela imprime em 56 colunas, como mostra a homologação do ACBr.2 pontos
-
Boa tarde a todos, Durante o suporte prestado pelo @Diegof fiquei de abrir um tópico sobre a necessidade de imprimir no DANFE_EL a data do RPS quando a NFSe ainda não transmitida. Para meu uso e adianto da solução, fiz o a intervenção na unit devida "ACBrNFSeXDANFSeFR.pas" onde, implementei as alterações da forma transcrita abaixo: ________________________________________________________________________________________________________________________________________________________________________ //By AP2 em 25/05/2023 if ANFSe.Numero.Length > 0 then LCDS.FieldByName('DataEmissao').AsString := FormatDateBr(ANFSe.DataEmissao) else begin if frxReport.findcomponent('Memo12') <> nil then TfrxMemoView(frxReport.findcomponent('Memo12')).Text := 'Data do RPS'; LCDS.FieldByName('DataEmissao').AsString := FormatDateBr(ANFSe.DataEmissaoRps); _______________________________________________________________________________________________________________________________________________________________________ Descrevendo o que foi feito: Verifico antes se o Número da Nota existe para manter a DataEmissao como antes, senão, alimento a mesma tag como valor da DataEmissaoRps e, pra não confundir a informação no DANFE_EL, busco o componente do fastReport que contém a descrição "Data da Emissão" e substituo pela descrição "Data do RPS". Segue em anexo o arquivo modificado que pode ser testado sem a necessidade de recompilar todo o ACBr. Se algo não tiver dentro dos padrões da equipe ACBr, fiquem a vontade em endentar ou modificar se minha intervenção atender a outros com o mesmo problema. ACBrNFSeXDANFSeFR.pas1 ponto
-
Citando o problema occorido no post sobre Out of Memory no Bloco I, estava pensando em um forma de modificar o componente com o menor impacto possível. Achei uma solução que me parece ser adequada e gostaria de saber se é aceitavel esse tipo de modificação. Hoje, o componente trabalha com alguns dados sendo alimentados em um TObjectList, o qual são percorridos quando chama a função SaveFileTXT. A minha ideia foi, ao inves de ficar segurando esses itens até o fim, porque não ir alimentado o arquivo conforme os registros de cada bloco iriam sendo finalizados? Com isso em mente, eu precisava informar pro componente que iria querer trabalhar de uma forma diferenciada quanto a alimentação do arquivo, o qual nos leva a primera modificação no ACBrSpedContabil.pas: procedure IniciaGeracao(const pWriteManual: Boolean = False); Esse parametro será salvo em uma variavel (privada) que será usada ao longo dos WriteBlocos presentes no componente. Como o nome indica, os Writes (tanto WriteBloco_? quanto WriteRegistro????, com exceção dos ?990 que são totalizadores) serão feitos manualmente, ou seja, o aplicativo precisa chamar esses comandos, o que nos leva a segunda modificação no ACBrSpedContabil.pas: public procedure WriteRegistro0000; procedure WriteRegistro0001; ... procedure WriteRegistroI001; ... procedure WriteRegistroJ001; ... Com esses comandos em public, a sua aplicação ja consegue acessa-los. Apartir daqui, precisei informar aos WriteBloco_? que quando for em modo WriteManual, ele não deve chamar as rotinas que não sejam de totalizadores. Segue (alguma das, são basicamente iguais em todos os blocos, menos no 9) a terceira modificação no ACBrSpedContabil.pas: procedure TACBrSPEDContabil.WriteBloco_0; begin if Bloco_0.Gravado then exit ; if not FInicializado then raise Exception.Create( 'Métodos "IniciaGeracao" não foi executado' ); if not(FWriteManual) then begin WriteRegistro0000; WriteRegistro0001; WriteRegistro0007; WriteRegistro0035; WriteRegistro0020; WriteRegistro0150; //WriteRegistro0180; end; WriteRegistro0990; Bloco_0.WriteBuffer; Bloco_0.Conteudo.Clear; Bloco_0.Gravado := true; end; Os outros blocos seguem o mesmo padrão, apenas o WriteRegistro?990 esta fora da validação do WriteManual, exceto o WriteBloco_9. Segue o mesmo: procedure TACBrSPEDContabil.WriteBloco_9; begin if Bloco_9.Gravado then Exit; if not Bloco_9.Gravado then WriteBloco_K; if not(FWriteManual) then WriteRegistro9001; WriteRegistro9900; WriteRegistro9990; WriteRegistro9999; Bloco_9.WriteBuffer; Bloco_9.Conteudo.Clear; Bloco_9.Gravado := true; end; Como o proprio bloco ja é um totalizador em si, e só é necessário informar o registro 9001, ele contem outras rotinas fora da validação do WriteManual. Falando no Bloco 9, ele me apresentou casos que me fizeram modificar o ACBrECDBloco_9.pas. Segue ela: function TRegistro9900List.FindByREG_BLC(const pValue: String; out pReg: TRegistro9900): Boolean; var i: Integer; begin Result := False; for i := 0 to (Count - 1) do if (TRegistro9900(Items[i]).REG_BLC = pValue) then begin pReg := TRegistro9900(Items[i]); Result := True; Break; end; end; Em registros como o do I200, K030, existe a relação de mestre-detalhe entre os itens, e como os WriteRegistro???? sempre chamam a rotina que cria o seu respectivo totalizador no bloco 9, foi preciso fazer um jeito de que quando existisse mais de um registro mestre, ele não ficasse criando registros subsequentes no bloco 9, e apartir disso, surgiu a rotina acima. Voltando ao ACBrSpedContabil.pas, como precisava usar a FindByREG_BLC, ja aproveitei e dei ao luxo de centralizar a rotina que gera os totalizadores do bloco 9. Segue ela: procedure TACBrSPEDContabil.AddRegistro9900(const pREG_BLC: String; const pQTD_REG_BLC: Integer); var Reg: TRegistro9900; begin if (pQTD_REG_BLC > 0) then begin if not(Bloco_9.Registro9900.FindByREG_BLC(pREG_BLC, Reg)) then begin Reg := Bloco_9.Registro9900.New; Reg.REG_BLC := pREG_BLC; end; Reg.QTD_REG_BLC := Reg.QTD_REG_BLC + pQTD_REG_BLC; end; end; Com essa rotina, os WriteRegistro???? passaram a utilizar elas ao inves de cada um chamar o bloco 9 individualmente. Segue alguns exemplos: // NOVO procedure TACBrSPEDContabil.WriteRegistro0000; begin Bloco_0.WriteRegistro0000; AddRegistro9900('0000', 1); end; // ANTIGO procedure TACBrSPEDContabil.WriteRegistro0000; begin with Bloco_9.Registro9900.New do begin REG_BLC := '0000'; QTD_REG_BLC := 1; end; Bloco_0.WriteRegistro0000; end; // NOVO procedure TACBrSPEDContabil.WriteRegistro0007; begin Bloco_0.WriteRegistro0007; AddRegistro9900('0007', Bloco_0.Registro0007.Count); if FWriteManual then Bloco_0.Registro0007.Clear; end; // ANTIGO procedure TACBrSPEDContabil.WriteRegistro0007; begin if Bloco_0.Registro0007.Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := '0007'; QTD_REG_BLC := Bloco_0.Registro0007.Count; end; end; Bloco_0.WriteRegistro0007; end; // NOVO procedure TACBrSPEDContabil.WriteRegistro0150; begin Bloco_0.WriteRegistro0150; AddRegistro9900('0150', Bloco_0.Registro0150.Count); AddRegistro9900('0180', Bloco_0.Registro0180Count); if FWriteManual then begin Bloco_0.Registro0150.Clear; Bloco_0.Registro0180Count := 0; end; end; // ANTIGO procedure TACBrSPEDContabil.WriteRegistro0150; begin Bloco_0.WriteRegistro0150; if Bloco_0.Registro0150.Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := '0150'; QTD_REG_BLC := Bloco_0.Registro0150.Count; end; end; if Bloco_0.Registro0180Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := '0180'; QTD_REG_BLC := Bloco_0.Registro0180Count; end; end; end; Como você pode perceber, algumas dessas rotinas começarão a dar Clear no TObjectList, e, zerar as variaveis de Count dos detalhes, quando presente. Isso acontece pois cada Bloco_?.WriteRegistro???? percorre sempre todo o TObjectList, então cada vez que chamarmos manualmente essa rotina, ele não pode mais alimentar o que ja havia sido alimentado antes. O mesmo serve para a variavel de Count, como a rotina AddRegistro9900 é incremental, precisa zera-la, para que na proxima leva, incremente apenas o que foi informado ali. Feito isso, o componente já esta preparado para funcionar dessa nova forma de alimentação. Como implementar isso na minha aplicação? Usando apenas os blocos acimas para exemplificar, segue como é feito hoje: SPED.IniciaGeracao; with SPED.Bloco_0 do begin with Registro0000 do ... with Registro0007.New do ... for i := 0 to 2 do with Registro0150.New do begin ... with Registro0180.New do ... end; end; SPED.SaveFileTXT; E como deverá ser feito, caso queira utilizar o WriteManual: SPED.IniciaGeracao(True); // NOVO with SPED.Bloco_0 do begin with Registro0000 do ... WriteRegistro0000; // NOVO with Registro0007.New do ... WriteRegistro0007; // NOVO for i := 0 to 2 do begin with Registro0150.New do begin ... with Registro0180.New do ... end; WriteRegistro0150; // NOVO end; end; SPED.WriteBloco_0; // NOVO SPED.SaveFileTXT; Seguindo essa lógica para os outros blocos/registros, seus dados finais deverão ser identicos ao mesmo metodo de hoje, e também identicos quando for usado WriteManual False. Também modifiquei a rotina TotalizarTermos usando um método que achei na internet (não consigo mais achar) pois a base de dados que estava usando para fazer os testes resulta em arquivos consideravelmente grandes (4gb+, 40mi+ linhas) e a rotina antiga simplismente não finalizava. ACBrECDBloco_9.pas ACBrSpedContabil.pas1 ponto
-
Que bom que deu certo de resolver, muito obrigado por reportar.1 ponto
-
Reportando a solução.. Depois de três tentativas sem sucesso, descobrimos a causa. O banco enviava sempre o texto do client Id em maiúsculas. Na quarta tentativa e já cansado de cobrar o suporte da área tècnica deles, geraram o mesmo codigo com maiusculas e minusculas... e deu certo Não teria como adivinharmos, pois recebemos o email do banco e simplesmente colamos as credenciais. Cômico ... mas realidade.1 ponto
-
Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-39901 ponto
-
Boa tarde. Adicionei duas novas funções no arquivo ACBrEFDBlocos.pas. Desde já agradeço a atenção!ACBrEFDBlocos.pas1 ponto
-
Não sei se engessar dessa forma seria o ideal. No fim das contas, quem vai validar isso é o WS do Ambiente Nacional. Se acontecer um caso em que um cliente tenha uma combinação de optanteSN e de um Regime de tributação que você não previu na hora que fez esse depara para interligar precisaria alterar no seu software. De qualquer maneira, o ideal é você buscar este tipo de orientação junto ao seu departamento fiscal ou contador de confiança para que futuramente não sobre problemas para você.1 ponto
-
1 ponto
-
Foi enviado ao SVN na Rev-29651 alteração visando resolver esta questã do NFSe_ConsultarNFSePorRPS. Por favor, atualize seus fontes do programa exemplo e faça um novo teste.1 ponto
-
Segue minha configuração tale do software: Parte do código : ACBrNFSe.Configuracoes.Geral.SSLLib := libWinCrypt; ACBrNFSe.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2; NotaFiscalDM.ACBrNFSe.Configuracoes.Certificados.NumeroSerie := ParametroDM.cdsConfigNotaCERNRSERIE.AsString;1 ponto
-
Pessoal, obrigado pela atenção. Atualizei o ACBr e foi. Se possível atualizar o arquivo ACBrNFSeXServicos.ini Foi implementado o ambiente de homologação. [3167202] ; Atualizado em 27/01/2023 Nome=Sete Lagoas UF=MG Provedor=Libre Versao=2.04 ProRecepcionar=https://nfse.setelagoas.mg.gov.br/webservice/index/producao ProNameSpace=https://nfse.setelagoas.mg.gov.br/webservice/index/producao HomRecepcionar=http://homolog.libresolucoes.com.br:8010/webservice/index/producao HomNameSpace=http://homolog.libresolucoes.com.br:8010/webservice/index/producao1 ponto
-
1 ponto
-
A descrição da TAG é "Quantidade de volumes transportados", portanto entende-se que seriam quantos volumes e não uma unidade de volume (litros ou m³). Ainda na coluna de tamanho o manual orienta 1-15 caracteres. Veja por exemplo quando existem casas decimais no caso dos dados de peso que a indicação é 12v3 onde 12 é o tamanho e 3 as casas decimais.1 ponto
-
Se tiver uma documentação do PSP também facilita bastante o nosso processo de integração. Caso consiga pode anexar aqui no forum.1 ponto
-
No arquivo que recebi o valor da tag está assim: <dhEmi>2023-05-18T00:00:00-03:00</dhEmi> O -03:00 é indicativo de fuso horário, mas de fato, não há informação de hora. Veja que está 00:00:001 ponto
-
1 ponto
-
Tópico movido para a área do SAC, para que o SLA de respostas seja considerado Em nosso Discord temos alguns colegas trabalhando com Harbour e utilizando ACBrLibNFSe... veja https://discord.com/channels/798697718800318484/800042186783588364/11087888668628295681 ponto
-
Bom dia Gibran, Você poderia anexar o XML do Rps gerado pelo componente quando você coloca o caractere ";" como quebra de linha?1 ponto
-
Bom dia Italo! Irei checar os itens que foi pontuados novamente. Assim que conseguir identificar onde esta o meu erro comunico aqui para deixar registrado. Agradeço mais uma vez o empenho1 ponto
-
O NFe.infNFe, parece "destruído", nesse seu ponto de Debug... Mas é pouco provável que os fontes do ACBr estejam causando isso (já seria observado por outros usuários) Verifique se no seu código, você está atribuindo outro objeto (completo) para o infNFe, ou se ele é liberado...1 ponto
-
Nós do ACBr, oficialmente, apenas temos o Fast Report VCL Embarcadero... a FastReports não nos enviou seus produtos para testes e compatibilidade com nossos fontes... Alguns de nossos moderadores possuem o Fast Standard VCL.. então nossa capacidade de testar essa compatibilidade, é extremamente limitada a contribuição de nossos usuários...1 ponto
-
tanto fortes quanto acbr tu tem fontes antigos dos dois. no micro. mantenha uma pasta só do ACBr e uma do fortes report1 ponto
-
Segue uma correção. Faltou limpar alguns objetos que estavam presentes em uns List ACBrSpedContabil.pas1 ponto
-
Bom dia, nome da API do Boleto PIX Itaú.....Recebimentos Pix - API exclusiva Itaú, depois vc vai na opção bolecode (Clientes), mais para isso você tem ativar e assinar o certificado digital, mesmo processo feito na API de Cobrança v2.1 ponto
-
Boa noite só para atualizar o topico...eu consegui a emissão do boleto híbrido Itaú....100% em produção. Uma dica que dou é se vc vai desenvolver a emissão de boleto via API do Itaú...é melhor vc escolher logo o boleto PIX. Eu tive 2 trabalho. Primeiro desenvolvi a emissão usando API de Cobrança v2, depois tive que fazer tudo de novo com boleto híbrido PIX.1 ponto
-
isso tudo usando o ACBrBoleto ? se sim sobe os arquivos para que possamos validar e ajudar a todos igual o ACBr faz1 ponto
-
Será que já tem o boleto híbrido do PIX do itaú? eu não achei nada sobre isso....apenas o PIX normal.1 ponto
-
flexmobile Eu vou tentar fazer o boleto híbrido do itaú agora...já fizemos o boleto tradicional na v2 do itaú...vou conversar com meu gerente de conta para abrir um protocolo para homologação do boleto híbrido PIX itáu. Eu já tem os boletos híbrido sicredi, sicoob e BB.1 ponto
-
Pode ser falta da MIDAS.DLL compatível na máquina. Como esse componente usa o ClientDataSet, precisa distribuir a DLL ou adicionar a unit MidasLib no uses do seu projeto pra embeddar a mesma na sua aplicação.1 ponto