Mudanças entre as edições de "Estrutura de Classes"
Linha 27: | Linha 27: | ||
Dentro de cada casse que representa um registro existem atributos para receber os valores dos campos desse registro, além de uma lista, hash ou referência para eventuais registros filhos que o registro possa ter. | Dentro de cada casse que representa um registro existem atributos para receber os valores dos campos desse registro, além de uma lista, hash ou referência para eventuais registros filhos que o registro possa ter. | ||
= SPEDFiscalBuilder e SPEDContribBuilder = | |||
Essas classes são classes utilitárias de métodos estáticos para facilitar a tarefa de montar e manipular os arquivos de SPED e seus registros. Nesta classe são disponiblizados vários métodos utilitádios, alguns, são caracterizados pelos seus prefixos, veja: | |||
* '''make[Registro]()''' - os métodos '''make''' tem a finalidade de criar um determinado registro dentro da estrutura do SPED. Os argumentos solicitados dependem da necessidade de cada registro e podem haver mais de uma opção para a criação de um mesmo registro. Os detalhes de cada método estarão escritos no seu javadoc. | |||
* '''updateCloseRegistersLineCount()''' este método cria/atualiza os registros finals (?990) que deve conter a quantidade de registros de cada bloco. |
Edição das 11h00min de 25 de outubro de 2024
SPEDFiscalFile e SPEDContribFile
As classes SPEDFiscalFile e SPEDContribFile são a base da escrutura do arquivo de SPED Fiscal e SPED Contribuições.
Para começar a montar um arquivo de SPED é necessário instanciar um desses objetos.
SPEDRegister
Esta classe abstrata representa um registro de qualquer um dos SPED e tem as segintes métodos:
- writeFileRegister() que é capaz de escrever o conteúdo do registro e de seus filhos recursivamente no formato do arquivo do SPED;
- countRegister() que retorna o total de registros que é gerado por este registro e seus registros filhos;
Além disso, é importante entender as seguintes características dessa classe para entender seu funcionamento:
- os atributos das classes filhas devem começar com o prefixo rXX_ onde XX é o número da ordem do atributo, pois esse prefixo é utilizado para ordernar os valores dos atributos no momento de escrever o arquivo final;
- o primeiro registro já é definido na classe pai pelo método abstrato get01_Register(), que deve ser sobrescrito pela classe filha e retornar o nome código do registro (que, por via de regra, deve ser o sufixo da classe);
- os atributos devem receber a annotation SPEDField que permite definir o tipo do dado que é esperado pelo campo do SPED, permitindo que os valores já sejam validados de forma genérica pelo módulo.
SPEDFiscalXXX e SPEDContribXXX
As classes SPEDFiscalFile e SPEDContribFile são compostas por uma estrutura de classes que extendem SPEDRegister. Essas classes mantêm os prefixos SPEDFiscal e SPEDContrib seguidos do nome do registro correpondente.
- Por exemplo: SPEDFiscalC800 representa o registro C800 do arquivo do SPED Fiscal.
Dentro de cada casse que representa um registro existem atributos para receber os valores dos campos desse registro, além de uma lista, hash ou referência para eventuais registros filhos que o registro possa ter.
SPEDFiscalBuilder e SPEDContribBuilder
Essas classes são classes utilitárias de métodos estáticos para facilitar a tarefa de montar e manipular os arquivos de SPED e seus registros. Nesta classe são disponiblizados vários métodos utilitádios, alguns, são caracterizados pelos seus prefixos, veja:
- make[Registro]() - os métodos make tem a finalidade de criar um determinado registro dentro da estrutura do SPED. Os argumentos solicitados dependem da necessidade de cada registro e podem haver mais de uma opção para a criação de um mesmo registro. Os detalhes de cada método estarão escritos no seu javadoc.
- updateCloseRegistersLineCount() este método cria/atualiza os registros finals (?990) que deve conter a quantidade de registros de cada bloco.