-
Total de ítens
110 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por João Paulo F. Bellucci
-
-
Valeu Daniel, vou ver aqui, quando sobrar um tempo se mudo as chamadas das DLLs para dinâmico.
-
Ao gerar o arquivo remessa 400 do SICOOB BANCOOB não esta indo os valores de data do desconto e valor do desconto.
Fiz a correção no meu fonte vou deixar em anexo aqui a correção.
Qualquer dúvida estou a disposição.
-
Estou tendo problemas para embutir as DLLs do OpenSLL no EXE pois elas estão declaradas estaticamente no projeto fazendo a exigência da instalação das DLLs antes da execução do programa.
Está previsto alteração no modo da leitura dessas DLLs para dinâmico?
-
Acabei de atualizar o trunk2 e esta dando erro ao compilar o SPED.
D:\Fontes\Componentes\ACBr\Fontes\ACBrTXT\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBloco_0_Class.pas(712) Error: E2250 There is no overloaded version of 'IfThen' that can be called with these arguments
ACBr_SPED.dpk(67) Fatal: F2063 Could not compile used unit 'ACBrEPCBloco_0_Class.pas'
Compilation failure -
Ok, vou dar uma olhada no demo.
Muito Obrigado.
-
Boa Tarde, na versão anterior Trunk da NFe exista a possibilidade de selecionar o certificado pela chamada "NFe.Configuracoes.Certificados.SelecionarCertificado" notei que agora no Trunk2 essa função não exite mais. Existe alguma outra maneira de chamar essa função?
-
De acordo com o Guia nada Prático EFD-PIS/COFINS - Versão 1.20 agora o registro C870 deve conter o campo VL_DESC fiz uma alteração no fonte do ACBr para aceitar este campo.
Segue em anexo os fontes com a alteração.
Qualquer dúvida estou a disposição.
Abraços.
- 2
-
Modifica arquivo remessa CNAB400 para preencher os campos de informações de desconto que não estavam sendo informados.
Segue o código modificado:
{ Data do Primeiro Desconto}if ( DataDesconto <> 0 ) thenstrDataDesconto := FormatDateTime('ddmmyy', DataDesconto)elsestrDataDesconto := IntToStrZero(0, 6);{ Valor do Primeiro Desconto}if ( ValorDesconto <> 0 ) thenstrValorDesconto := IntToStrZero( Round( ValorDesconto * 100 ), 13)elsestrValorDesconto := IntToStrZero(0, 13);with ACBrBoleto dobeginMensagemCedente:= '';for I:= 0 to Mensagem.count-1 doMensagemCedente:= MensagemCedente + trim(Mensagem);if length(MensagemCedente) > 40 thenMensagemCedente:= copy(MensagemCedente,1,40);wLinha:= '1' + // ID RegistroTipoCedente + // Identificação do Tipo de Inscrição do Sacado 01 - CPF 02 - CNPJpadR(onlyNumber(Cedente.CNPJCPF),14,'0') + // Número de Inscrição do CedentepadR(OnlyNumber(Cedente.Agencia), 4, '0') + // AgênciapadR( Cedente.AgenciaDigito, 1, '0') + // Agência digitopadR( OnlyNumber(Cedente.Conta) + // Conta CorrenteCedente.ContaDigito, 9, '0') + // Dígito Conta CorrentepadR( '0', 6, '0') + // Número do Convênio de Cobrança do Cedente fixo zeros: "000000"Space(25) + // BrancospadR( NossoNumero + DigitoNossoNumero, 12, '0') + // Nosso Número + //nosso numero com digitoIntToStrZero(ifthen(Parcela > 0, Parcela,1),2) + // Número da Parcela: "01" se parcela única'00' + // Grupo de Valor: "00"Space(3) + // BrancosSpace(1) + // Indicativo de Mensagem ou Sacador/Avalista:Space(3) + // BrancosIntToStrZero( 0, 3) + // Variação da Carteira: "000"IntToStrZero( 0, 1) + // Conta Caução: "0"IntToStrZero( 0, 5) + // Código de responsabilidade: "00000"IntToStrZero( 0, 1) + // DV do código de responsabilidade: "0"IntToStrZero( 0, 6) + // Numero do borderô: “000000”Space(4) + // BrancoswRespEntrega + // Tipo de Emissão 1-Cooperativa - 2-ClientepadR( trim(Cedente.Modalidade), 2, '0') + // Carteira/ModalidadeOcorrencia + // Ocorrencia (remessa)padL(trim(NumeroDocumento), 10) + // Número do DocumentoFormatDateTime( 'ddmmyy', Vencimento) + // Data de Vencimento do TítuloIntToStrZero( Round( ValorDocumento * 100 ), 13) + // Valor do TítuloIntToStrZero( Banco.Numero, 3) + // Número Banco: "756"padR(OnlyNumber(Cedente.Agencia), 4, '0') + // Prefixo da Agência Cobradora: “0000”padR( Cedente.AgenciaDigito, 1, ' ') + // Dígito Verificador do Prefixo da Agência Cobradora: BrancospadL(aEspecie,2) + // Espécie do TítuloATipoAceite + // IdentificaçãoFormatDateTime( 'ddmmyy', DataDocumento ) + // 32 Data de EmissãopadR(AInstrucao1, 2, '0') + // 33 Primeira instrução (SEQ 34) = 00 e segunda (SEQ 35) = 00, não imprime nada.padR(AInstrucao2, 2, '0') + // 34 Primeira instrução (SEQ 34) = 00 e segunda (SEQ 35) = 00, não imprime nada.IntToStrZero( Round( (ValorMoraJuros * 30) *10000 ), 6) + // Taxa de mora mêsIntToStrZero( Round( PercentualMulta * 10000 ), 6) + // Taxa de multawRespEntrega + // Responsabilidade DistribuiçãostrDataDesconto + // Data do Primeiro Desconto, Preencher com zeros quando não for concedido nenhum desconto.strValorDesconto + // Valor do Primeiro Desconto, Preencher com zeros quando não for concedido nenhum desconto.IntToStrZero( 9 , 1) + // MOEDA 9 BRASILIntToStrZero( 0, 12) + // Valor IOF / Quantidade Monetária: "0000000000000"IntToStrZero( 0, 13) + // Valor AbatimentoTipoSacado + // Tipo de Inscrição do Sacado: 01 - CPF 02 - CNPJpadR(onlyNumber(Sacado.CNPJCPF),14,'0') + // Número de Inscrição do SacadopadL( Sacado.NomeSacado, 40, ' ') + // Nome do SacadopadL( Sacado.Logradouro +' '+ Sacado.Numero,37,' ') + // Endereço CompletopadL( Sacado.Bairro,15,' ') + // Endereço BairropadL( Sacado.CEP,8,' ') + // Endereço CEPpadL( Sacado.Cidade,15,' ') + // Endereço cidadepadL( Sacado.UF,2,' ') + // Endereço ufpadL( trim(MensagemCedente) ,40,' ') + // Observações/Mensagem ou Sacador/Avalista:DiasProtesto + // Número de Dias Para ProtestoSpace(1) + // BrancosIntToStrZero( aRemessa.Count + 1, 6 ); // Contador de Registros;aRemessa.Text:= aRemessa.Text + UpperCase(wLinha);end;end; -
Só testei com SAT da DIMEP ainda e não tive problemas.
Assim que chegar o kit desenvolvimento Sweda aqui essa semana vou testar.
-
Ok, qualquer novidade informe aqui neste tópico.
-
De acordo com o manual do SAT não saiu nenhuma regra diferente para a exibição dos tributos para ele ainda.
Estou fazendo o CFe de acordo com a norma do SAT seguindo o modelo.
Mas não tenho conhecimento ainda se será alterado para a Lei de "Olho no Imposto".
-
Erro ao validar o campo CNPJ_CPF quando o mesmo estiver preenchido com CPF.
A rotina esta sempre preenchendo com 14 dígitos para resolver tive que altera a função.
Antes da correção:
Add( LFill('C800') +LFill( COD_MOD,2 ) +LFill( strCOD_SIT ) +LFill( NUM_CFE,6 ) +LFill( DT_DOC, 'ddmmyyyy', booNFCancelada ) +LFill( VL_CFE,0,2, booNFCancelada ) +LFill( VL_PIS,0,2, booNFCancelada ) +LFill( VL_COFINS,0,2, booNFCancelada ) +LFill( CNPJ_CPF, 14, True ) +LFill( NR_SAT,9 ) +LFill( CHV_CFE ) +LFill( VL_DESC,0,2, booNFCancelada ) +LFill( VL_MERC,0,2, booNFCancelada ) +LFill( VL_OUT_DA,0,2, booNFCancelada ) +LFill( VL_ICMS,0,2, booNFCancelada ) +LFill( VL_PIS_ST,0,2, booNFCancelada ) +LFill( VL_COFINS_ST,0,2, booNFCancelada ) ) ;Depois da correção:
Add( LFill('C800') +LFill( COD_MOD,2 ) +LFill( strCOD_SIT ) +LFill( NUM_CFE,6 ) +LFill( DT_DOC, 'ddmmyyyy', booNFCancelada ) +LFill( VL_CFE,0,2, booNFCancelada ) +LFill( VL_PIS,0,2, booNFCancelada ) +LFill( VL_COFINS,0,2, booNFCancelada ) +LFill( CNPJ_CPF, 0, True ) +LFill( NR_SAT,9 ) +LFill( CHV_CFE ) +LFill( VL_DESC,0,2, booNFCancelada ) +LFill( VL_MERC,0,2, booNFCancelada ) +LFill( VL_OUT_DA,0,2, booNFCancelada ) +LFill( VL_ICMS,0,2, booNFCancelada ) +LFill( VL_PIS_ST,0,2, booNFCancelada ) +LFill( VL_COFINS_ST,0,2, booNFCancelada ) ) ; -
Tive o mesmo problema hoje e constatei que essa função não existe no ACBr é um erro mesmo.
Fontes\PCN2\pcnGerador.pas(893) Error: E2003 Undeclared identifier: 'PadLeft'
-
estou fazendo pelo software da Dimep.
não tentei enviar novamente a chave pública pq não achei um lugar para substituir. O q eu fiz foi baixar a q consta no meu cadastro lá, exportar novamente e comparar os dados. Estão rigorosamente iguais ...
Acredito eu que você terá que falar om o Marlus da Dimep ele já deve ter passado por esse problema.
Infelizmente não sei mais o que pode ser.
Assim que você conseguir resolver o problema poste aqui para ficar registrado.
[]s
-
Pois é .. o tamanho está ok ... e pela diferença na msg de acordo com os cnpjs q passo como parâmetro, imagino que ele esteja conseguindo verificar a assinatura ...
pior q já não tenho mais nenhuma ideia do que fazer para tentar solucionar esse problema ... :<
Você esta fazendo a associação pelo software da Dimep ou pelo seu?
Já tentou enviar novamente a chave publica do seu certificado para a Sefaz?
-
Minha assinatura retorna um código com 344 caracteres.
Você utilizou o exemplo disponibilizado no portal do SAT na página da Sefaz para gerar o código de vinculação ?
Está correto o tamanho.
Sim gerei pelo exemplo da Sefaz.
-
Oi João.
Estou utilizando o mesmo certificado.
O que mais me intriga é que se eu mudo um CNPJ sem alterar o código, ele consegue identificar que o código de vinculação não corresponde aos CNPJ's informados.
Você utilizou certificado A1 ou A3 para a assinatura ?
Utilizo o certificado A3.
Quantos bytes a sua assinatura esta retornando?
-
Provavelmente a assinatura está sendo gerada errada.
Aqui consegui sem problemas.
O Certificado enviado para o Sefaz é o mesmo utilizado para gerar a assinatura?
-
Falei com a Bematech... eles estão me enviando uma MP4200 e um SAT... assim que chegar eu verifico os problemas encontrados...
Blz.
[]s
-
Oi Joao,
Muito obrigado pelos testes... Na Bematech, quais comandos não funcionaram ? (pode ser que esse modelo não suporte alguns dos comandos)
Verifique se diminuindo o parâmetro "ConfigBarras.Largura", os códigos funcionam...
A sintaxe de comando para Cod.Barras que estou usando, para EscPos (Epson/Bematech) é o método 2, onde sempre devemos informar o tamanho do Cod.Barras como parâmetro
O Teste de Página de Código teve sucesso ?
Oi Daniel,
Os comandos que não funcionaram foram: Alinhar a direita e os comandos para código de barras 39,128, CODABAR e MSI.
As configurações para páginas de código funcionaram sim tudo Ok.
[]s
-
Fiz os teste segue as fotos das impressões em anexo.
A única que deu problema foi a Bematech TM-4000 TH.
Se você olhar os fontes que mandei ela tem tratamento especial para alguns código.
Obs: A TM-4000 TH não imprime qrCode então é normal que não funcionou.
function TACBrESCPOS.GetCodeBar(CodeBar: TACBrCmdESCPPOSCodeBar;Dados: String): AnsiString;varCmdCodBar:AnsiString;nTam:Integer;beginCase CodeBar ofcbEAN8 : CmdCodBar := FCmd.FCodeBarEAN8;cbEAN13 : CmdCodBar := FCmd.FCodeBarEAN13;cbSTD25 : CmdCodBar := FCmd.FCodeBarSTD25;cbINTER25 : CmdCodBar := FCmd.FCodeBarINTER25;cbCODE11 : CmdCodBar := FCmd.FCodeBarCODE11;cbCODE39 : CmdCodBar := FCmd.FCodeBarCODE39;cbCODE93 : CmdCodBar := FCmd.FCodeBarCODE93;cbCODE128 : CmdCodBar := FCmd.FCodeBarCODE128;cbUPCA : CmdCodBar := FCmd.FCodeBarUPCA;cbCODABAR : CmdCodBar := FCmd.FCodeBarCODABAR;cbMSI : CmdCodBar := FCmd.FCodeBarMSI;End;if ( FMarcaImpressora = iDaruma ) then beginResult := CmdCodBar + AnsiString(Dados) + FCmd.FCodeBarFim;end else if ( FMarcaImpressora = iBematech ) then beginif CodeBar in [cbCODE128,cbCODE93] then beginnTam := Length(Dados);Result := CmdCodBar +AnsiChar(Chr(nTam)) +AnsiString(Dados);end else beginResult := CmdCodBar + AnsiString(Dados) + FCmd.FCodeBarFim;end;end else if ( FMarcaImpressora = iEpson ) then beginnTam := Length(Dados)+2;Result := CmdCodBar +AnsiChar(Chr(nTam)) +#123 + #66 +AnsiString(Dados);end;end;[]s- 1
-
João, por favor veja Download
Blz, vou baixar e fazer os teste.
[]s
-
Criei um novo método em ACBrUtil.pas, para ser usado nessas situações:
function AnsiChr(b: Byte): AnsiChar; begin Result := AnsiChar(chr(); end;
Perfeito isso irá resolver o problema.
[]s
-
Daniel ficou muito legal a ideia parabéns!
Não consegui fazer compilar com esse fontes, devo estar fazendo alguma coisa de errado, depois vou tentar com mais tempo.
Se tiver alguma dica de como compilar esse trunk2 agradeço.
Analisando o código verifiquei alguns problemas que passei aqui e vou te passar.
function TACBrEscBematech.ComandoQrCode(ACodigo: AnsiString): AnsiString;varcTam1, cTam2: Integer;beginif (Length(ACodigo) > 255) thenbegincTam1 := Length(ACodigo) mod 255;cTam2 := Length(ACodigo) div 255;endelsebegincTam1 := Length(ACodigo);cTam2 := 0;end;with fpPosPrinter.ConfigQRCode dobeginResult := GS + 'kQ' + // Codigo QRCodeETX + chr(12) +chr(LarguraModulo) + chr(ErrorLevel) +chr(cTam1) + chr(cTam2) + ACodigo;end;end;Sempre quando concatenar um AnsiString não é saudável deixar por conta da linguagem a conversão, pois o comando chr() retorna string e ao concatenar AnsiString com String o Delphi não esta fazendo legal isso, tive problemas na hora de fazer a homologação das impressoras aqui, e tinha hora que o qrCode não funcionava e verifiquei que o problema estava no comando chr() que vinha lixo dependendo do valor. Para solucionar deixei explicito a conversão AnsiString(chr()).
[]s
Erro Instalar ACBrDFeOpenSSL.pas
em Dúvidas Gerais sobre o ACBr
Postado
Acabei de baixar os fontes e esta dando este erro ao Instalar.
D:\Fontes\Componentes\ACBr\Fontes\ACBrDFe\ACBrDFeOpenSSL.pas(608) Error: E2003 Undeclared identifier: 'X509GetExt'
D:\Fontes\Componentes\ACBr\Fontes\ACBrDFe\ACBrDFeSSL.pas(2089) Fatal: F2063 Could not compile used unit 'ACBrDFeOpenSSL.pas'
Compilation failure