Ir para conteúdo
  • Cadastre-se

Hallysson

Membros
  • Total de ítens

    18
  • Registro em

  • Última visita

Posts postados por Hallysson

  1. Em 11/02/2020 at 18:53, EMBarbosa disse:

    Pelo que eu entendi da mensagem de erro, a base pode ser zero mas a alíquota deve existir em uma das tabelas citadas. Não é esse o problema?

    Você consegue validar editando no PVA com esses valores que quer?

    Obrigado, testei aqui e não deu erro no validador. 

    Em 11/02/2020 at 23:23, Kiko Fernandes disse:

    Tinha visto esse documento mas não tinha achado essa pergunta/resposta, muito obrigado, vou encaminhar esse documento para os contadores. 

    13 horas atrás, marcelo_sp disse:

    O preenchimento da alíquota para empresas do lucro real será a mesma informada no texto ??? Porque no caso 0,65% e 3,00% são alíquotas utilizadas no regime presumido .

    Sabem dizer ?? 

    Obrigado

    Fiz o teste com uma empresa do Lucro Real e o SPED não deu erro. 

    • Curtir 1
  2. Boa tarde. 

    Gostaria de uma orientação sobre a escrituração do SPED Pis Cofins. 

    Na versão nova do validador estou recebendo a seguinte critica ao gerar o registro C175 com o CST 05 e Base e alíquota zerados. 

    http://prntscr.com/r0vyo2

    "Para operações com CST = 05, devem ser informadas alíquotas (diferentes de zero) constantes na Tabela 4.3.10 - Produtos Sujeitos à Incidência Monofásica da Contribuição Social - Alíquotas Diferenciadas ou na Tabela 4.3.11 - Produtos Sujeitos à Incidência Monofásica da Contribuição Social - Alíquotas por Unidade de Medida de Produto ou na Tabela 4.3.12 - Produtos Sujeitos a Substituição Tributária da Contribuição Social, exceto se houver processo referenciado. No caso de revenda de bens que foram tributados por substituição tributária, informe o valor zero nos respectivos campos de base de cálculo."

    A contabilidade dos clientes e pelo que achei sobre esse registro, orienta que para o CST 05 o valor da base e da alíquota devem ficar zerados, mas a versão mais nova do validador do SPED está apresentando essa critica, na versão anterior não tinha essa crítica. 

     

    Verifiquei que outros usuários tiverem problemas no registro C870 na versão nova do SPED, tentei aplicar a mesma solução de deixar os valores vazios, mas o SPED também não aceitou.  

     

     

    Na NFe e NFCe quando o CST de Pis é 05 devemos gerar os valores de PIS na tag PISST, esse valor deveria ser informado nesse registro C175? 

     

    Obrigado desde já. 

     

     

  3. Em 11/11/2015 13:55:36, joaoelson disse:

    Olá amigos.

    A tempos não atualizava os arquivos "Fr3"  do Danfe. Ao atualizar, estava ocorrendo os seguintes erros:

    Classe Não Encontrada Datasets. 

    Classe Não Encontrada Formats.

    Classe Não Encontrada Variables.

    Ao editar os arquivos, percebi que estava faltando os Dados nesses relatórios. Adicionei e ficou tudo ok.

    Os Aquivos: DANFE.fr3, DANFeSimplificado.fr3, EVENTOS.fr3. Estavam corretos, os outros estavam dando esse problema. 

    Como houve muitas mudanças ultimamente no Danfe, me corrijam se estiver errado ao fazer isso. De toda forma, seguem os arquivos alterados, a quem interessar.

    Obrigado.

    João Elson

     

     

    Arquivos FR3 Danfe.rar

    Estava com o mesmo problema, fiz o download dos arquivos em anexo e ficou tudo certo,

    Obrigado joaoelseon!

  4. Oi Daniel,

     Aqui na empresa, já trabalhamos a muito tempo dessa forma, só tivemos problemas quando atualizamos o ACBR,

    em vários units é usada essa função e o ( . ) estava sumindo, como para localizar o arquivo de schemas, que tbm tem ponto e não estava localizando o arquivo por cauda dessa função.

    Estou anexando a unit, 

    Obrigado pela atenção!

    ACBrUtil.pas

    • Curtir 1
  5. Fala pessoal, Boa tarde! 

    Estou migrando para trunck2 (meio atrasado né.. rsrs) e encontrei um problema na função FloatToString que demorei para localizar.. rsrs

    Quando chamava a função passando 25.30 ela retorna a string 2530

    A Função atualmente está assim:

      DS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}DecimalSeparator;
      TS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}ThousandSeparator;
    
      // Removendo Separador de milhar //
      Result := StringReplace(Result, TS, '', [rfReplaceAll]);
    
      // Verificando se precisa mudar Separador decimal //
      if DS <> SeparadorDecimal then
        Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]);

    Ela retira o separador de milhar e depois verifica se o separador decimal é diferente do de milhar e faz a substituição.. 

    Só que no meu caso, o separador decimal e de milhar são iguais.. os dois são  . ( ponto )

    Então quando ele retira o separador milhar, ele retira o separador decimal junto.. 

    Eu fiz a seguinte alteração..

      DS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}DecimalSeparator;
      TS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}ThousandSeparator;
    
      // Removendo Separador de milhar //
      if ( DS <> TS ) then
         Result := StringReplace(Result, TS, '', [rfReplaceAll]);
    
      // Verificando se precisa mudar Separador decimal //
      if DS <> SeparadorDecimal then
        Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]);

    if ( DS <> TS ) then 

    só retiro o separador de milhar se for diferente do decimal..

    dessa forma corrigiu vários problemas que estavam dando para emitir NFe.

     

    Não sei muito bem como funciona a sugestão de alterações, então me decuplem se estou postando no lugar errado.. rs

  6. Certo, vamos acatar essa sua mudança devido a necessidade, se puder ir fazendo nos outros registros e anexando aqui vou subindo.

     

    Só uma ressalva, vou retirar  o tratamento do ELSE, e deixar para que seja feito somente dentro do Evento.

     

    Show Isaque.

     

    Fiz o else para ficar igual era antes.. se o programador não configurar um evento, funcionar como funcionava antes de adicionar o evento OnBeforeWriteRegistroC481.

     

    Quais os outros registros q vc falou? eu fiz no C481 e C485, os eventos que tem parecido é no SPED Fiscal, mas ainda n tive problemas nos registro do SPED Fiscal, algum deles precisa fazer a mesma coisa? se precisar só falar que altero aqui e envio.

  7. Segue em anexo.

     

    Com a alteração que estou sugerindo, no Evento do componente, eu posso fazer isso por ex..

    procedure TFGeraArquivosFiscais.ACBrSPEDPisCofinsEventsBloco_CBeforeWriteRegistroC481(
      const ARegistroC481: TRegistroC481; var ANullVL_BC_PIS, ANullALIQ_PIS,
      ANullQUANT_BC_PIS, ANullALIQ_PIS_QUANT, ANullVL_PIS: Boolean);
    begin
      ANullVL_BC_PIS       := ( ARegistroC481.CST_PIS in [ stpisQtdeAliquotaUnidade,
                                                           stpisIsentaContribuicao,
                                                           stpisSemIncidenciaContribuicao,
                                                           stpisSuspensaoContribuicao  ]);
      ANullALIQ_PIS        := ANullVL_BC_PIS;
    
      ANullQUANT_BC_PIS    := ( ARegistroC481.CST_PIS <> stpisQtdeAliquotaUnidade );
      ANullALIQ_PIS_QUANT  := ANullQUANT_BC_PIS;
    end;
    

    ACBrEPCBloco_C_Class.pas

  8. Bom dia pessoal, 

    Eu iria abrir um novo tópico, mas achei esse do mesmo assunto e ele ainda não foi resolvido..

     

    Os eventos OnBeforeWriteRegistroC481 e OnBeforeWriteRegistroC485 foram criados para informar se os campos podem ficar null ou não, 

    Mas não temos como saber qual é o registro que está sendo escrito.. 

     

    Exemplo.. se o CST_PIS do registro atual do C481 for um desses ( stpisQtdeAliquotaUnidade, stpisIsentaContribuicao, stpisSemIncidenciaContribuicao, stpisSuspensaoContribuicao ), CST isentos, a BC e alíquota deveriam ficar vazios, mas eu n tenho como saber isso no OnBeforeWriteRegistroC481.

     

    Um outro Exemplo é quando for stpisQtdeAliquotaUnidade, que a QUANT_BC_PIS e ALIQ_PIS_QUANT não podem ficar vazios quando for usado esse CST.

     

    Antes essa parte de escrita do registro C481 era algo assim..

    Add( LFill('C481')             +
                 LFill(CstPisToStr(CST_PIS))  +
                 LFill(VL_ITEM,0,2)        +
                 DFill(VL_BC_PIS,      2, ( CST_PIS in [ stpisQtdeAliquotaUnidade,
                                                         stpisIsentaContribuicao,
                                                         stpisSemIncidenciaContribuicao,
                                                         stpisSuspensaoContribuicao  ])) +
                 DFill(ALIQ_PIS,       4, ( CST_PIS in [ stpisQtdeAliquotaUnidade,
                                                         stpisIsentaContribuicao,
                                                         stpisSemIncidenciaContribuicao,
                                                         stpisSuspensaoContribuicao  ])) +
                 DFill(QUANT_BC_PIS,   3, ( CST_PIS <> stpisQtdeAliquotaUnidade )) +
                 DFill(ALIQ_PIS_QUANT, 4, ( CST_PIS <> stpisQtdeAliquotaUnidade )) +
                 LFill(VL_PIS,0,2)         +
                 LFill(COD_ITEM)           +
                 LFill(COD_CTA) ) ;
    

    de acordo com o CST_PIS, passava se podia ficar vazio ou não, mas da forma como está hj, não temos acesso ao CST na função OnBeforeWriteRegistroC481,

    para resolver aqui, eu mudei a função para passar o registro C481 atual como parâmetro, assim, no OnBeforeWriteRegistroC481 passei a ter acesso ao registro atual, é uma sugestão para alteração nessa função.

    • Curtir 1
  9. Eu não sabia que era de todas as ECFs..

     

    Então essa questão de limitar o numero de linhas, poderia ser feita na FechaCupom da ACBrECF, antes de chamar a FechaCupom de cada ECF, não?

    Algumas ECF não dão erro, a Bematech por exemplo, mas algumas não consegue fechar o CF.

     

    Verificando a FechaCupom da Bematech, tem um copy de 490 Caracteres, mas ela não dá erro se passar mais de 8 linhas como deu na ZPM-200..

  10. Na unit que estou usando aqui na empresa, eu alterei também a questão ta linha, deixando enviar somente 8 linhas para a ECF..

    mas não enviei essa alteração no anexo, pq como o EMBarbosa comentou, essa limitação pode ser do modelo que estou usando..

  11. ZPM 200

    mas o problema é no fonte, acho que não ficou claro no post acima, rs..

    o fonte original do ACBR está assim..

    try
         FiscNETComando.NomeComando := 'EncerraDocumento' ;
         if (Obs <> '') then
            FiscNETComando.AddParamString('TextoPromocional',Obs);
         FiscNETComando.TimeOut     := 5 ;
         FiscNETComando.AddParamString('Operador',Operador) ;
         EnviaComando ;
    
      except
         on E : Exception do
         begin
            if (pos('ErroProtSequenciaComando',E.Message) <> 0) or
               (pos('ErroCMDForaDeSequencia',E.Message) <> 0) then
            begin
               if (Obs <> '') then
               begin
                  FiscNETComando.NomeComando := 'ImprimeTexto' ;
                  FiscNETComando.AddParamString('TextoLivre',Obs);
                  EnviaComando ;
               end ;
    
               FiscNETComando.NomeComando := 'EncerraDocumento' ;
               FiscNETComando.TimeOut     := 5 ;
               FiscNETComando.AddParamString('Operador',Operador) ;
               EnviaComando ;
            end
         end ;
      end ;
    

    sem o else para exibir a exceção 

     

    quando chamo a função FechaCupom , executa sem de o exception, porem não fecha o CF.

    pq cai no try except mas o mesmo oculta o exception

  12. Boa tarde a todos! 
    Primeiramente gostaria de agradecer a todos pelos excelentes componentes disponibilizados pelo ACBr!
    Estou aprendendo muito estudando os fontes deles.
     
    Eu encontrei um pequeno problema com ACBrECF, na camada FiscNet, ACBrECFFiscNET
     
    A impressora FiscNet, pelo menos a que estou fazendo testes aqui, não aceita mais que 8 linhas na observação, e da erro se passar dessa quantidade de linhas.
     
    Mas a Função FechaCupom dessa impressora, não está retornando o erro..

    try
         FiscNETComando.NomeComando := 'EncerraDocumento' ;
         if (Obs <> '') then
            FiscNETComando.AddParamString('TextoPromocional',Obs);
         FiscNETComando.TimeOut     := 5 ;
         FiscNETComando.AddParamString('Operador',Operador) ;
         EnviaComando ;
    
      except
         on E : Exception do
         begin
            if (pos('ErroProtSequenciaComando',E.Message) <> 0) or
               (pos('ErroCMDForaDeSequencia',E.Message) <> 0) then
            begin
               if (Obs <> '') then
               begin
                  FiscNETComando.NomeComando := 'ImprimeTexto' ;
                  FiscNETComando.AddParamString('TextoLivre',Obs);
                  EnviaComando ;
               end ;
    
               FiscNETComando.NomeComando := 'EncerraDocumento' ;
               FiscNETComando.TimeOut     := 5 ;
               FiscNETComando.AddParamString('Operador',Operador) ;
               EnviaComando ;
            end else //Está faltando o Else para dar o exception 
            begin
              raise;
            end;
         end ;
    
      end ;
    

    está faltando a parte em negrito acima.. 

    se acontecer algum erro no primeiro try, e o erro não for um dos dois tratado no except, o erro é ocultado e não retorna exceção nenhuma..

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.