https://stackoverflow.com/questions/8549496/how-can-i-create-a-function-dynamically
Classes para a geração do SPED EFD (fiscal ICMS IPI) e para o SPED EFD contribuições
NOTA: Os elementos não mais irão retornar Exceptions, e sim carregar uma propriedade pública errors[], contendo todos os erros identificados em cada elemento.
NOTA: As classes dos blocos e as próprias classes EFD herdarão os errros[] de seus elementos constituintes em propriedade pública errors[] de cada uma dessas classes.
O controle de versões é feito com jsons na pasta storage.
Este json contêm o codigo de leyout, versão, data inicial e a data final de vigência, obtido nas tabelas do Sped (vide portal Sped)
Deve ser passado uma string com o codigo do layaut no construtor de cada bloco, este por sua vez irão passar esse codigo e os demais dados de vigencia para cada elemento que pertença a esse bloco.
As estruturas construtivas de cada elemento e versão, deverão ser salvos como json na pasta denominada pelo codigo da versão. por exemplo:
Ao ser criado ou editado o elemento internamente ele deve conter a estrutura referente a ultima versão existente.
Caso se necessite de versões anteriores a 017, estas deverão ser criadas como json elemente por elemento na pasta adequada.
Utilize o chat do Gitter para iniciar discussões específicas sobre o desenvolvimento deste pacote.
Todos os campos "C" strings apenas com caracteres ASCII, não são permitidos outro charsets, preferencialmente em "MAIUSCULAS"
Todos os campos "N" apenas numericos como:
$ 1.129.998,99 => 1129998,99
1.255,42 => 1255,42
234,567 => 234,567
10.000 => 10000
10.000,00 => 10000 ou 10000,00
17,00 % => 17,00 ou 17
18,50 % => 18,5 ou 18,50
30 => 30
1.123,456 Kg => 1123,456
0,010 litros => 0,010
0,00 => 0 ou 0,00
0 => 0
campo vazio =>
Observando o numero de decimais em cada caso
Roberto L. Machado (owner and developer)
Este pacote está diponibilizado sob LGPLv3 ou MIT License (MIT). Leia Arquivo de Licença para maiores informações.