Ir para conteúdo
  • Cadastre-se

dev botao

Conversão de tipos


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

Recommended Posts

Boa tarde.
Estamos começando a implementar o Sped e olhando os exemplo da Acbr (ACBrSpedPisCofins), vi que o componente recebe tipos.
Exemplo:

      // Dados da Empresa
      with Registro0000New do
      begin
        COD_VER          := vlVersao101;
        TIPO_ESCRIT      := tpEscrOriginal;
        IND_SIT_ESP      := indSitAbertura;

 

Vamos supor que do tipo TACBrIndSitEsp eu escolha o indSitAbertura, mas no meu banco de dados está definido o valor conforme vai no arquivo texto, que seria
"0".
Existe alguma unit de conversão, que convertesse de "0" (uma string) para indSitAbertura?

Eu dei uma pesquisada na unit ACBrEPCBloco_M_Class e vi que algumas conversões são feitas la, porem junto ao código sem um método específico.
No caso eu teria que implementar meus métodos para fazer a conversão?
Exemplo:

with ACBrSPEDPisCofins1.Bloco_0 do
   begin
      // Dados da Empresa
      with Registro0000New do
      begin
        COD_VER          := vlVersao101;
        TIPO_ESCRIT      := tpEscrOriginal;
        IND_SIT_ESP      := StrToACBrIndSitEsp('0') //exemplo do método que deverá ser implementado




O caminho é esse mesmo? Pois existem muitos tipos para implementar métodos.

Obrigado!

 

Link para o comentário
Compartilhar em outros sites

VC pode pegar o tipo assim

TTipo(fieldbyname('campo').asinteger)

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Bom dia Isaque. tudo beleza?
Eu pensei nisso porem no caso teria que salvar no meu banco o índice do tipo e não o código que será gerado no arquivo, para alguns casos, como esse:
 

  b := TACBrTipoItem(11) ;
  case b of
    tiMercadoriaRevenda    : ShowMessage('00 – Mercadoria para Revenda');
    tiMateriaPrima         : ShowMessage('01 – Matéria-Prima;');
    tiEmbalagem            : ShowMessage('02 – Embalagem;');
    tiProdutoProcesso      : ShowMessage('03 – Produto em Processo;');
    tiProdutoAcabado       : ShowMessage('04 – Produto Acabado;');
    tiSubproduto           : ShowMessage('05 – Subproduto;');
    tiProdutoIntermediario : ShowMessage('06 – Produto Intermediário;');
    tiMaterialConsumo      : ShowMessage('07 – Material de Uso e Consumo;');
    tiAtivoImobilizado     : ShowMessage('08 – Ativo Imobilizado;');
    tiServicos             : ShowMessage('09 – Serviços;');
    tiOutrosInsumos        : ShowMessage('10 – Outros Insumos;');
    tiOutras               : ShowMessage('99 – Outras');
  end;

Nesse caso o código no arquivo sped é 99 ('Outras') , mas para dar certo deveria ficar no meu banco como 11 por conta do índice.

E tem outros tipos, com situações mais imprevisíveis, como o TACBrCstIcms. Esse pula do 70 para o 90, do 100 para o 110.

  sticmsDiferimento                                         , // '051' //    Diferimento
  sticmsCobradoAnteriormentePorST                           , // '060' //    ICMS cobrado anteriormente por substituição tributária
  sticmsComReducaoPorST                                     , // '070' //    Com redução de base de cálculo e cobrança do ICMS por                sticmsOutros                                              , // '090' //    Outros
  sticmsEstrangeiraImportacaoDiretaTributadaIntegralmente   , // '100' // Estrangeira - Importação direta - Tributada integralmente
  sticmsEstrangeiraImportacaoDiretaTributadaComCobracaPorST , // '110' // Estrangeira - Importação direta - Tributada e com cobrança do ICMS por substituição tributária

             

Se eu precisar automatizar tudo terei que realmente criar os métodos pelo menos para esses casos que não batem o índice do tipo com o código do campo né?

Obrigado.

 

 

 

Link para o comentário
Compartilhar em outros sites

Implemente as functions então no código ACBr se baseando com as que já tem, e anexe a Unit aqui que eu subo para o repositório.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

×
×
  • 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.

The popup will be closed in 10 segundos...