Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão De Pequeno Ajuste - Function Tacbrtxtclass.vlfill


  • Este tópico foi criado há 3401 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Galera o seguinte, esse ajuste deve servir tanto para FISCAL quanto CONTRIBUIÇÕES:

 

Segundo um consultor, o registro 200 quando for matéria prima para industrias, não é necessário informar a alíquota de icms, então ocorreu uma situação na empresa que sou programador, em que o programador simplesmente não enviou a propriedade para o objeto do registro 0200

 

foi feito dessa forma:

 

aDatasetInfo.First;  //dados da consulta de itens de todas as notas envolvidas no período
while not aDatasetInfo.Eof do
begin
      with ACBrSPEDFiscal.Bloco_0.Registro0200New do
      begin
          COD_ITEM   := aDatasetInfo.FieldByName('Cod_Item').AsString;
          DESCR_ITEM := aDatasetInfo.FieldByName('Descricao').AsString;
          COD_BARRA  := aDatasetInfo.FieldByName('Cod_Barra').AsString;
          UNID_INV   := aDatasetInfo.FieldByName('Unid_Medida').AsString;
 
          case aDatasetInfo.FieldByName('Tipo_Item').AsInteger of
          0: TIPO_ITEM := tiMercadoriaRevenda;
          1: TIPO_ITEM := tiMateriaPrima;
          2: TIPO_ITEM := tiEmbalagem;
          3: TIPO_ITEM := tiProdutoProcesso;
          4: TIPO_ITEM := tiProdutoAcabado;
          5: TIPO_ITEM := tiSubproduto;
          6: TIPO_ITEM := tiProdutoIntermediario;
          7: TIPO_ITEM := tiMaterialConsumo;
          8: TIPO_ITEM := tiAtivoImobilizado;
          9: TIPO_ITEM := tiServicos;
          10: TIPO_ITEM := tiOutrosInsumos;
          99: TIPO_ITEM := tiOutras;
          end;
 
          COD_NCM   := aDatasetInfo.FieldByName('NCM').AsString;
          COD_GEN   := Copy(aDatasetInfo.FieldByName('NCM').AsString, 1, 2);
 
      
          /////////
          {NÃO FOI DEFINIDO VALOR DEFAULT PARA ALIQ_ICMS}
          ////////
 
          // Cfe visto no eAuditor, qdo materia prima n precisa preencher a Aliq ICMS
          if TIPO_ITEM <> tiMateriaPrima then
              ALIQ_ICMS := aDatasetInfo.FieldByName('AliqICMS_Interna').AsFloat;
 
 
      end;    // Fim do with ACBrSPEDFiscal1.Bloco_0.Registro0200New
 
      aDatasetInfo.Next;
end;    // FIm do While
aDatasetInfo.First;
 
 
Não informando o default da aliquota, ocorre um erro no objeto de formatação, porém o erro não informa uma mensagem exata, apenas que houve um erro de formatação de valores %a.....   
 
Tratei a solução colocando valor ALIQ_ICMS = 0, porém se alguém interpretar da mesma forma que não é necessário informar a propriedade, fiz  um ajuste para evitar o erro dentro fonte do Acbr.... na unit...
 
ACBR\Fontes\ACBrComum\ACBrTXTClass.pas
na linha: 373
 
// Se o parametro Value = Null, será retornado '|'
if (Value = Null)      (acrescentei aqui...) or (Value = Unassigned) then
begin
     Result := FDelimitador;
     Exit;
end;
 
 
Assim, se a propriedade não for passada para o OBJ, não ocorre o erro.
Porque a mensagem o raise.... não é executada, pois não consegue tratar o valor como númerico...
 
if not VarIsNumeric(Value) then
     raise Exception.Create( Format('[%a] Não é um valor numérico!', [Value]) );
 
 
 
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores

Adicionar o ( Valor = unassigned) não vai funcionar quando se atribui o valor zero para o campo. Estou enviando terminando uma correção para isso daqui a pouco e vou subir ao SVN e postar no tópico original, a saber,

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3401 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.