-
Total de ítens
9.935 -
Registro em
-
Última visita
-
Days Won
127
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que EMBarbosa postou
-
SERIAL - NA MESMA PORTA COM1 - VIRTUAL x REAL
EMBarbosa replied to mauricio_delphi7's tópico in ACBrSerial
Acho que você (ou eu) não entendeu bem o seu problema. Qual é o seu objetivo? Por quê você precisa acessar a mesma porta por aplicativos diferentes? O Windows não permite mais de um acesso à mesma porta serial simultaneamente. O que você pode fazer no seu código é fechar a porta sempre que terminar o uso. O que esse tipo de programa faz é criar então várias portas virtuais, que na verdade vão se comunicar com um programa. Esse programa é que faz acesso a porta serial física no seu computador. Isso é feito por meio de drivers. Então para o Windows, os programas sempre estão acessando portas diferentes. Repito: Qual é o seu objetivo? Por quê você precisa acessar a mesma porta por aplicativos diferentes? -
SERIAL - NA MESMA PORTA COM1 - VIRTUAL x REAL
EMBarbosa replied to mauricio_delphi7's tópico in ACBrSerial
Você precisa usar um programa que crie essas portas. Um que provavelmente faça isso é o hub4com que faz parte do projeto com0com. Link para o projeto https://sourceforge.net/projects/com0com/ -
Preciso de uma Atualização do ACBrSPEDPisCofins
EMBarbosa replied to antoniojr's tópico in ACBrSPEDPisCofins
Olá antoniojr, Você chegou a procurar aqui no forum sobre esses registros? -
Pela mensagem de erro eu suspeitaria que é a falta dos zeros: "Aliquota não encontrada: 17". É diferente de "Aliquota não encontrada: 17,00" ou "Aliquota não encontrada: 17.00". Mas não tenho aqui um ECF Daruma para testar no momento.
-
Você testou com o Demo?
-
Eu não tive prazo ainda para testar. Mas se puder fazê-lo, altere a seguinte função no arquivo ACBrEPCBloco_0_Class.pas: procedure TBloco_0.WriteRegistro0000; var strCOD_VER: AnsiString; strTIPO_ESCRIT: AnsiString; strIND_SIT_ESP: AnsiString; strIND_NAT_PJ: AnsiString; strIND_ATIV: AnsiString; strNUM_REC_ANTERIOR: AnsiString; begin if Assigned(Registro0000) then begin with Registro0000 do begin case COD_VER of vlVersao100: strCOD_VER := '001'; // Código 001 - Versão 100 ADE Cofis nº 31/2010 de 01/01/2011 vlVersao101: strCOD_VER := '002'; // Código 002 - Versão 101 ADE Cofis nº 34/2010 de 01/01/2011 end; case TIPO_ESCRIT of tpEscrOriginal: strTIPO_ESCRIT := '0'; tpEscrRetificadora: strTIPO_ESCRIT := '1'; end; case IND_SIT_ESP of indSitAbertura: strIND_SIT_ESP := '0'; indSitCisao: strIND_SIT_ESP := '1'; indSitFusao: strIND_SIT_ESP := '2'; indSitIncorporacao: strIND_SIT_ESP := '3'; indSitEncerramento: strIND_SIT_ESP := '4'; indNenhum: strIND_SIT_ESP := ' '; end; case IND_NAT_PJ of indNatPJSocEmpresariaGeral : strIND_NAT_PJ := '00'; //0 - Sociedade empresária geral indNatPJSocCooperativa : strIND_NAT_PJ := '01'; //1 - Sociedade Cooperativa indNatPJEntExclusivaFolhaSal : strIND_NAT_PJ := '02'; //2 - Entidade sujeita ao PIS/Pasep exclusivamente com base na folha de salários end; case IND_ATIV of indAtivIndustrial: strIND_ATIV := '0'; indAtivPrestadorServico: strIND_ATIV := '1'; indAtivComercio: strIND_ATIV := '2'; indAtivoFincanceira: strIND_ATIV := '3'; indAtivoImobiliaria: strIND_ATIV := '4'; indAtivoOutros: strIND_ATIV := '9'; end; if (TIPO_ESCRIT = tpEscrRetificadora) then strNUM_REC_ANTERIOR := LFill( NUM_REC_ANTERIOR, 41 ) else strNUM_REC_ANTERIOR := ''; Check(funChecaCNPJ(CNPJ), '(0-0000) ENTIDADE: O CNPJ "%s" digitado é inválido!', [CNPJ]); Check(funChecaUF(UF), '(0-0000) ENTIDADE: A UF "%s" digitada é inválido!', [UF]); Check(funChecaMUN(COD_MUN), '(0-0000) ENTIDADE: O código do município "%s" digitado é inválido!', [IntToStr(COD_MUN)]); /// Add( LFill( '0000' ) + LFill( strCOD_VER ) + LFill( strTIPO_ESCRIT ) + LFill( strIND_SIT_ESP ) + LFill( strNUM_REC_ANTERIOR ) + LFill( DT_INI ) + LFill( DT_FIN ) + LFill( NOME ) + LFill( CNPJ ) + LFill( UF ) + LFill( COD_MUN, 7 ) + LFill( SUFRAMA, 9 ) + LFill( strIND_NAT_PJ ) + LFill( strIND_ATIV ) ); /// Registro0990.QTD_LIN_0 := Registro0990.QTD_LIN_0 + 1; end; end; end;[/code] Obrigado pelo report.
-
Tipo TACBrCodIndIncTributaria declarado incorretamente
EMBarbosa replied to lazarinr 's tópico in ACBrSPEDPisCofins
Sim e Não. O que você copiou do arquivo ACBrEPCBlocos.pas na verdade está fazendo alusão aos valores ordinais do tipo TACBrCodIndIncTributaria. Isso é apenas um comentário e não uma definição: //Codigo indicador da incidencia tributária no período (0110) TACBrCodIndIncTributaria = ( codEscrOpIncNaoCumulativo, // 0 - Escrituração de operações com incidencia exclusivamente no regime não cumulativo codEscrOpIncCumulativo, // 1 - Escrituração de operações com incidencia exclusivamente no regime cumulativo codEscrOpIncAmbos // 2 - Escrituração de operações com incidencia nos regimes cumulativo e não cumulativo ); [/code] Em outras palavras, o valor ordinal de [b]codEscrOpIncNaoCumulativo [/b]é zero. Mas quando o registro [b]0110[/b] vai ser escrito no arquivo texto, ele recebe o valor definido na procedure [b]TBloco_0.WriteRegistro0110[/b] do arquivo [u]ACBrEPCBloco_0_Class.pas[/u] por volta da linha 450. Veja: [code] case COD_INC_TRIB of codEscrOpIncNaoCumulativo: strCOD_INC_TRIB := '1'; codEscrOpIncCumulativo: strCOD_INC_TRIB := '2'; codEscrOpIncAmbos: strCOD_INC_TRIB := '3'; end; Certamente o que lhe confundiu foi que nos outros tipos declarados no arquivo ACBrEPCBlocos.pas os valores nos comentários não são os ordinais e sim os valores no registro final. -
Se preocupa não Dante. Relendo agora, acho que minha resposta ficou com um tom um pouco rude, mas sinceramente, não era essa intenção. Era mais um lembrete mesmo...
-
Seu fonte está desatualizado. Esse erro já foi corrigido há vários dias. Eu sugiro sempre usar o pesquisar do fórum antes de postar um bug. Nesse caso, se você fizer uma busca por "C100" ou por IND_FRT, vai encontrar.
-
Componente Acbr para comunicação com bombas de combustível
EMBarbosa replied to Wilton's tópico in ACBrDiversos
Veja: viewtopic.php?f=5&t=2819&p=12908&hilit=acbrbombas#p12908 Houve até um usuário que ofereceu uma recompensa pelo início do projeto, mas não sei em que pé ficou. Veja: viewtopic.php?f=17&t=2500&p=19558&hilit=acbrbombas#p19558 -
Sefaz RJ Decreto 43.437 PAF-ECF
EMBarbosa replied to tchuck's tópico in Legislação Fiscal e Tributária
Exceto no caso do parágrafo único: -
Não. Você só não precisa informar o C170 em caso de notas canceladas, denegadas ou inutilizadas. Veja:
-
Tentou fazer no DEMO?
-
Função para conversão de STRING para Tipos
EMBarbosa replied to lazarinr 's tópico in ACBrSPEDPisCofins
Não sei o porquê, mas não tinha visto essa mensagem... Bem, você não entendeu o método errado não. É isso mesmo. Achei que você queria retornar o valor do tipo e não o valor do campo SPED. Na verdade, no momento penso que a melhor opção pra armazenar esse tipo de campo é armazenando a string do tipo (ex. stpisValorAliquotaNormal). Isso impede o problema de quando o SPED muda os valores por ventura de uma nova versão, como já aconteceu com alguns campos. -
Problemas no Registro G apos atualização dos fontes de hj
EMBarbosa replied to ThiagoDornelas's tópico in ACBrSPEDFiscal
Ederson, Correto. Muito obrigado. Só para futuras referências, o erro dos registros G110, G125 e G126 estava relacionado à correção do erro do seguinte tópico Bloco E Registro E116 não gera. -
Não consigo instalar o componente ACBR Diversos DELPHI 2010
EMBarbosa replied to Davi's tópico in Dúvidas Gerais sobre o ACBr
Você não precisa fazer add de nada disso. Já estão lá no código. Veja: interface uses ACBrBase, ACBrUtil, {Units da ACBr} SysUtils , Classes; (.....) implementation {$IFDEF COMPILER6_UP} uses Variants , Math, StrUtils;[/code] EDIT: Será que o seu Delphi não está identificando a diretiva de compilação corretamente? -
Problemas no Registro G apos atualização dos fontes de hj
EMBarbosa replied to ThiagoDornelas's tópico in ACBrSPEDFiscal
Olá Thiago, Muito obrigado. Você tem razão. Já corrigi. Revisão 3196. -
Alteração da geração do registro 0110
EMBarbosa replied to manoel_totall's tópico in ACBrSPEDPisCofins
Você deve seguir o modo que o Guia Prático informar. O PVA é usado para garantir que está fazendo igual ao Guia Prático pede, principalmente em pontos ambíguos. Mas acontece de o PVA estar desatualizado. Pelo menos foi o que entendi... -
Que tutorial?
-
Não consigo instalar o componente ACBR Diversos DELPHI 2010
EMBarbosa replied to Davi's tópico in Dúvidas Gerais sobre o ACBr
Faz um revert nesse arquivo ACBrValidador.pas -
Sintegra - Registro "88STES" e "88STITNF"
EMBarbosa replied to camargu's tópico in ACBrSintegra/ACBrPAF
Olá, Muito obrigado. Já está disponível na revisão 3192. Favor testar. -
Oi Regys, Fiquei um pouco confuso. Posso usar só o método IdentificaPAF ou preciso mesmo testar se o ECF é MFD?
-
C170 valor nulo nos campos 26, 27, 32 e 33
EMBarbosa replied to EMBarbosa's tópico in ACBrSPEDPisCofins
Não. Você por acaso notou que o guia prático o registro C170 diz que esses campos devem ter 4 casas Decimais? Você tentou informar só uma das alíquotas? Veja novamente a mensagem de erro: "É obrigatório informar a alíquota em reais ou a alíquota em percentual". -
Não está não. É isso mesmo. Que função você usou para tentar pegar a Data do Soft Básico?
-
Função para conversão de STRING para Tipos
EMBarbosa replied to lazarinr 's tópico in ACBrSPEDPisCofins
Olá, Desde que o Delphi incluiu RTTI, dá pra fazer isso usando os métodos GetEnumName e GetEnumValue. Não sei se funciona no Lazarus... Mas é algo como: uses TypeInfo //...... var aTACBrSituacaoTribPIS : TACBrSituacaoTribPIS; campodoBD: string; begin //imagine que campodoBD é o campo do BD... então salvar seria como campodoBD := GetEnumName(TypeInfo(TACBrSituacaoTribPIS), integer(stpisValorAliquotaNormal)) ; //imagine que aTACBrSituacaoTribPIS é o campo do componte que você está lendo do BD. Pra simplificar vou usar a mesma variável campodoBD aTACBrSituacaoTribPIS := TACBrSituacaoTribPIS(GetEnumValue(TypeInfo(TACBrSituacaoTribPIS), campodoBD); // Mas poderia ser o abaixo // aTACBrSituacaoTribPIS := TACBrSituacaoTribPIS(GetEnumValue(TypeInfo(TACBrSituacaoTribPIS), 'stpisValorAliquotaNormal'); [/code] Como não sei se o Lazarus faz isso, talvez seja uma boa ideia implementar outros métodos.
