(Obrigatório)
Definição da Regra de Negócio
Visão Geral:
O cliente cadastrou três estabelecimento com o CNPJ 99999999999999. O arquivo criará três vezes os registros 0140, A010, C010, D010, F010 e P010 para o CNPJ 99999999999999 e isso não é permitido, pois o PVA acusa registros duplicado, impossibilitando a validação.
A alteração resultará em criar apenas uma vez cada um dos registros do CNPJ 99999999999999 e organizar os registros filhos em seus respectivos CNPJs pai.
O registro 0140 (TABELA DE CADASTRO DE ESTABELECIMENTO) será gerado apenas uma vez para o primeiro estabelecimento cadastrado com o CNPJ. Os registros filhos serão gerados desconsiderando os demais estabelecimentos com o mesmo CNPJ.
Os registros A010, C010, D010, F010 e P010 também serão gerados apenas uma vez por CNPJ e os registros filhos serão considerados. Ou seja, os documentos fiscais de todos os estabelecimentos com mesmo CNPJ, independentemente do código do estabelecimento, serão impressos abaixo do registro A010, C010, D010, F010 e P010 do CNPJ em questão.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
LF0200 - Geração de Arquivos Interpretador de Layout | [Alteração] | Configurador Layout Fiscal -> Tarefas | - |
Geração do arquivo do SPED Contribuições - LF0215
Importante: O desenvolvimento dessa alteração deve ser tratado por função. Essa alteração só poderá ficar visível para o usuário quando a função "SPED-CONTRIB-ESTAB-CNPJ" estiver ativada.
Por exemplo:
SE (função SPED-CONTRIB-ESTAB-CNPJ ativa = SIM) ENTÃO executar algoritmo.
lf0215.i
Criar um novo campo na temp-table ttLinhaArquivo para armazenar o CNPJ do estabelecimento. Também deve ser definido um índice com esse campo para auxiliar no desempenho do sistema.
lf0215a.p
1) Criação da função fnCNPJEstab:
Atuamente, a chave dos registros que devem ser gerados por CNPJ são criadas a partir do código do estabelecimento, o qual é recuperado pela função "fnEstabel". Deverá ser criado uma nova função para possibilitar que a chave criada passe a ser pelo CNPJ e não pelo código.
Regra para a função:
- Buscar estabelecimento onde o código é igual ao parâmetro recebido na função.
- Retornar o CNPJ referente ao estabelecimento
2) Criação da ttLinhaArquivo
A temp-table é criada na procedure "pi-cria-ttLinhaArquivo", neste momento deve-se utilizar a função criada anteriormente para buscar o CNPJ do estabelecimento em questão.
lf0215.i6
Neste fonte está contida a criação dos registros A010, C010, D010, F010 e P010, junto ao 0140, ambos criados pelo código do estabelecimento. Esses registro possuem o campo "chave" que recebe o código do estabelecimento, deverá ser utilizada a nova função para retornar o CNPJ.
Exemplo de Aplicação:
- Exemplo de hierarquia do arquivo COM erro:
|0140|111111111111
|0140|222222222222
|0140|111111111111
|C010|111111111111|2|
|C100|0|1|83511|55|00|1|0000016||24112015|24112015|1476,00|1|||1476,00|1||||1476,00|177,12||||19,19|88,56|||
|C100|0|1|81097|55|00|1|0000031||24112015|24112015|687,20|1|||680,40|1|||6,80|687,20|82,46||||8,93|41,25|||
|C500|1|06|00|1||2411|20112015|20112015|500,00|0,00||50,00|50,00|
|C010|222222222222|2|
|C100|0|1|78134|55|00|1|0000022||24112015|24112015|738,40|1|||738,40|1||||738,40|88,60||||4,80|22,15|||
|C010|111111111111|2|
|C100|0|1|61932|55|00|1|0000592||24112015|24112015|2905,10|1|||2905,10|1||||2905,10|348,61||||37,76|174,28|||C110|179836|DOCTOREFERENCI|
- Exemplo de hierarquia do arquivo CORRETO:
|0140|111111111111
|0140|222222222222
|C010|111111111111|2|
|C100|0|1|83511|55|00|1|0000016||24112015|24112015|1476,00|1|||1476,00|1||||1476,00|177,12||||19,19|88,56|||
|C100|0|1|81097|55|00|1|0000031||24112015|24112015|687,20|1|||680,40|1|||6,80|687,20|82,46||||8,93|41,25|||
|C100|0|1|61932|55|00|1|0000592||24112015|24112015|2905,10|1|||2905,10|1||||2905,10|348,61||||37,76|174,28|||C110|179836|DOCTOREFERENCI|
|C500|1|06|00|1||2411|20112015|20112015|500,00|0,00||50,00|50,00
|C010|222222222222|2|
|C100|0|1|61932|55|00|1|0000592||24112015|24112015|2905,10|1|||2905,10|1||||2905,10|348,61||||37,76|174,28|||C110|179836|DOCTOREFERENCI|
Nota: Na primeira situação foi gerado dois registros 0140 para o mesmo CNPJ, pois os códigos são diferentes. O mesmo ocorre no registro C010. O exemplo correto para esta situação esta representado logo a baixo, no qual demonstra que apenas um registro é gerado por CNPJ.