Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | Microsiga Protheus | Módulo | SIGACTB - Contabilidade Gerencial |
Segmento Executor | Serviços | ||
Projeto1 | DSERCTR1 | IRM/EPIC1 | |
Requisito/Story/Issue1 | Subtarefa1 | ||
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( x ) Outro Todos . | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Reescrever o programa Plano de Contas (CTBA020) utilizando a arquitetura MVC (Model View Controller), isolando a regra de negócio especifica por localizações e integrações do produto com outros módulos.
Definição da Regra de Negócio
Plano de Contas é um elenco de todas as Contas previstas pelo setor contábil da empresa tidas como necessárias aos seus registros contábeis. Estas receberão os valores lançados dia-a-dia pela Contabilidade.
Os planos de contas são elaborados pelas empresas para atender aos seus interesses e à legislação vigente (atualmente a Lei nº 6404, de 15 de dezembro de 1976 - Lei das Sociedades por Ações).
A arquitetura Model-View-Controller ou MVC, como é mais conhecida, é um padrão de arquitetura de software que visa separar a lógica de negócio da lógica de apresentação (a interface), permitindo o desenvolvimento, teste e manutenção isolada de ambos.
O Observer é um padrão de projeto de software que define uma dependência um-para-muitos entre objetos de modo que quando um objeto muda o estado, todos seus dependentes são notificados e atualizados automaticamente. Permite que objetos interessados sejam avisados da mudança de estado ou outros eventos ocorrendo em outro objeto.
O conceito do Observer será aplicado para realizar a separação da regra de negócio especifica de cada país e das integrações de outros módulos, utilizando a classe FWModelEvent.
A melhoria proposta deverá:
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
CTBA020 - Plano de Contas | Alteração | Atualizações -> Entidades | Fonte centralizador contendo a regra de negócio vigente para todas localizações |
CTBA020EVPCO | Criação | Não se aplica | Fonte contendo o processo de integração com o SIGAPCO |
CTBA020EVGFE | Criação | Não se aplica | Fonte contendo o processo de integração com o SIGAGFE |
CTBA020BRA | Criação | Não se aplica | Fonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Brasil. |
CTBA020ARG | Criação | Não se aplica | Fonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Argentina. |
CTBA020MEX | Criação | Não se aplica | Fonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Mexico. |
CTBA020DOM | Criação | Não se aplica | Fonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização República Dominicana. |
CTBA020RUS | Criação | Não se aplica | Fonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Russia. |
CTBI020 | Envolvida | Não se aplica | Adapter para integração da mensagem única do plano de contas. |
CTBATree | Envolvida | Não se aplica | Rotina que apresenta o cadastro de plano de contas em modo Árvore. |
Pontos de Entrada
Os pontos de entrada serão substituídos pelos pontos nativos do MVC (Ponto de Entrada Padrão do MVC) sendo necessária a adequação pelos clientes na migração. Abaixo o detalhamento :
Ponto de Entrada | Descrição | ID Ponto de Entrada |
AT020VCA | Executado na ativação da tela de inclusão. | |
CT020BUT | Adiciona opções no grupo "Outras Opções" nas telas de inclusão, alteração, exclusão e visualização. | |
CT020EXC | Executado antes de deletar um registro. | |
CT020LOK | Validação das linhas do Plano Referencial. | |
CT020TOK | Validação geral do Plano Referencial. | |
CT20ALTA | Executado no inicio da tela de alteração. | |
CT20ALTD | Executado após a alteração, mas dentro da transação. | |
CT20EXCA | Executado no começo da função de exclusão de um registro. | |
CT20EXCD | Depois de deletar um registro, porem dentro da transação. | |
CT20GRA | Executado no inicio da rotina de inclusão. | |
CT20GRD | Executado após inclusão do registro. | |
CTB020VG | Executado na validação da inclusão ou alteração. | |
CTB020VLD | Executado antes da apresentação da tela de inclusão, alteração e exclusão de um registro. | |
CTBA20CT | Executado dentro da transação dos processo de inclusão, alteração e exclusão. |
As opções de menu do cadastro de Plano de Contas possuem diferenças nas opções conforme a forma de apresentação, pergunta Cadastro em arvore (F12), abaixo o detalhamento:
Browse padrão
Opção | Função | Descrição | País | Rotina |
Pesquisar | AxPesqui | Pesquisa de registro. Está opção será removida devida presença de recurso nativo no Browse. | Todos | CTBA020.PRW |
Visualizar | Ctba020Vis | Visualização de registro. Será adequada para o padrão MVC. | Todos | CTBA020.PRW |
Incluir | Ctba020Inc | Inclusão de registro. Será adequada para o padrão MVC. | Todos | CTBA020.PRW |
Alterar | Ctba020Alt | Alteração de registro. Será adequada para o padrão MVC. | Todos | CTBA020.PRW |
Excluir | Ctba020Del | Exclusão de registro. Será adequada para o padrão MVC. | Todos | CTBA020.PRW |
Importar | Ctba020Imp | Importação de registros. | Todos | CTBA020.PRW |
Exportar | Ctba020Exp | Exportação de registros. | Todos | CTBA020.PRW |
Legenda | Ctba020leg | Legenda do Browse. Está opção será removida, devida apresentação ocorrer no duplo clique no ícone da legenda. | Todos | CTBA020.PRW |
Conhecimento | MSDocument | Associação de documentos aos registros. | Todos | CTBA020.PRW |
Imprimir Browse | - | Opção inclusa automaticamente. | - | - |
Controles Contábeis | CTBA001 | Controles contábeis. | Exceto Brasil | CTBA020RUS.PRW CTBA020MEX.PRW CTBA020ARG.PRW ... |
Browse em arvore:
Opção | Função | Descrição | País | Rotina |
Ajuda | - | Opção inclusa automaticamente. | - | - |
Pesquisar | Ctba3Pes() | Pesquisa de registro | Todos | CTBATree |
Incluir | Ctba3Inc() | Inclusão de registro | Todos | CTBATree |
Alterar | Ctba3Alt() | Alteração de registro | Todos | CTBATree |
Excluir | Ctba3Exc() | Exclusão de registro | Todos | CTBATree |
Recalcular | CTTreeRfsh() | Refaz a estrutura da árvore de registros | Todos | CTBATree |
Configurar | - | Opção inclusa automaticamente. | - | - |
Função | Descrição | Fonte |
FwIntegDef | Função utilizada nos processos da rotina (inclusão, alteração e exclusão), para realizar a integração com o adapter da rotina (CTBI020) gerando o XML que será enviado para a outra marca (produto). | CTBA020.PRW |
Ação | Descrição | Função | Fonte | Método |
Exclusão | Valida se a conta orçamentária pode ser excluída | PCOA010ELK() | CTBA020EVPCO.PRW | |
Exclusão | Valida se a conta orçamentária foi excluída para prosseguir o processo | PCOVLDSINC() PCOSincCO() | CTBA020EVPCO.PRW | |
Inclusão | Após a gravação do plano de contas, gera a conta orçamentária. | PCOSincCO() | CTBA020EVPCO.PRW | |
Alteração | Após a gravação das alterações do plano de contas, replica para a conta orçamentária. | PCOSincCO() | CTBA020EVPCO.PRW |
SIGAGFE - Gestão de Frete Embarcador
O módulo SIGAGFE se integra para manter a tabela GUE - Conta Contábil sincronizada com a CT1 - Plano de Contas. Este processo é ativo por meio dos parâmetros: MV_INTGFE igual = .T. e MV_INTGFE2 = 1. Para os processos de inclusão, alteração e exclusão, deve-se utilizar o modelo da rotina GFEA090:
Ação | Descrição | Função | Fonte | Método |
Inclusão | Inclusão de registro | Model - GFEA090 | CTBA020EVGFE.PRW | |
Alteração | Alteração de registro | Model - GFEA090 | CTBA020EVGFE.PRW | |
Exclusão | Exclusão de registro | Model - GFEA090 | CTBA020EVGFE.PRW |
SIGAGFE x SIGAOMS
Necessário avaliar a necessidade de manter a função MAEnvEAI, devido a rotina já possuir o adapter para integração XML.
Chamadas externas de funções
Alguma funções presentes no cadastro de plano de contas são executadas por outras rotinas, desta forma, é preciso garantir que a conversão para MVC não implicará em erro nas rotinas externas, segue a relação:
Função | Rotina Externa |
CTBA020() | CONA020.PRW |
CTBA020Del() | CTBATree.PRW |
CTBA020Inc() | CTBATree.PRW |
CTBA020Alt() | CTBATree.PRW |
SV020Mem() | CTBA350.PRW CTBA030.PRW CTBA040.PRW CTBA060.PRW |
Funções utilizadas pelo dicionário de dados
Há uma relação de campos que possuem em sua validação (X3_VALID), chamada de funções que devem manter sua finalidade após a conversão para MVC. Seguem abaixo:
Campo | Função |
CT1_CONTA | Ctb020cta() |
CT1_CLASSE | Ctb020Prox() Ctb020Var() Ctb020LP() |
CT1_RES | Ctb020NoRe() |
CT1_DTBLIN | CTB020DTIN() |
CT1_DTBLFI | CTB020DTFI() |
CT1_DC | Ctb020Dc() |
CT1_NCUSTO | Ctb020Cust() |
CTS_CODPLA | CTBA020DIC() |
CTS_CONTAG | CTBA020DIC() |
CVD_VERSAO | Ctb020Vers() |
CVD_CTAREF | Ctb020CRef() |
Tabelas Utilizadas
Alteração de Tabela no arquivo SX2 – Tabelas:
Prefixo | CT1 |
Obj. Sistema | CTBA020 |
Campo | CT1_FILIAL CT1_CONTA CT1_DESC01 CT1_DESC02 CT1_DESC03 CT1_DESC04 CT1_DESC05 CT1_CLASSE CT1_NORMAL CT1_RES CT1_BLOQ CT1_DTBLIN CT1_DTBLFI CT1_DC CT1_NCUSTO CT1_CC CT1_CTASUP CT1_HP CT1_DTEXIS CT1_CTAVM CT1_CTARED CT1_DTEXSF CT1_MOEDVM CT1_CTALP CT1_CTAPON CT1_BOOK CT1_GRUPO CT1_AGLSLD CT1_RATEIO CT1_ESTOUR CT1_CODIMP CT1_AJ_INF CT1_NATCTA CT1_DIOPS CT1_INDNAT CT1_SPEDST CT1_NTSPED CT1_PVARC CT1_CTAVMN CT1_CTARDN CT1_LCCMPL CT1_CTPART CT1_CTCPAR CT1_CODAGR CT1_NIVEL |
Pasta | 1 |
Campo | CT1_CVD01 CT1_CVD02 CT1_CVD03 CT1_CVD04 CT1_CVD05 CT1_CVC01 CT1_CVC02 CT1_CVC03 CT1_CVC04 CT1_CVC05 CT1_TRNSEF |
Pasta | 2 |
Campo | CT1_ACITEM CT1_ACCUST CT1_ACCLVL CT1_RGNV1 CT1_RGNV2 CT1_RGNV3 CT1_CCOBRG CT1_ITOBRG CT1_CLOBRG CT1_ACET05 CT1_05OBRG |
Pasta | 3 |
Campo | CT1_ACATIV CT1_ATOBRIG CT1_ACAT01 CT1_AT01OB CT1_ACAT02 CT1_AT02OB CT1_ACAT03 CT1_AT03OB CT1_ACAT04 CT1_AT04OB |
Pasta | 4 |
Campo | CT1_CTASUP |
Validação | ValCtaSup() |
Campo | CT1_CTAVM |
Validação | Vazio().Or.ValidaConta(FWFldGet("CT1_CTAVM")) |
Campo | CT1_CTARED |
Validação | Vazio().Or.ValidaConta(FWFldGet("CT1_CTARED")) |
Campo | CT1_CTALP |
Validação | Vazio() .Or. ValidaConta(FWFldGet("CT1_CTALP")) .Or. (FWFldGet("CT1_CTALP") = '*') |
Campo | CT1_CTAPON |
Validação | Vazio() .Or. ValidaConta(FWFldGet("CT1_CTAPON")) .Or. (FWFldGet("CT1_CTAPON") = '*') |
Campo | CT1_RGNV1 CT1_RGNV2 CT1_RGNV3 |
Validação | Vazio() .Or. CtbValLig(FWFldGet("CT1_CLASSE")) |
Campo | CT1_TRNSEF |
Validação | Vazio() .Or. ValidaConta(FWFldGet("CT1_TRNSEF")) |
Campo | CT1_CTPART |
Validação | Vazio() .or. ExistCpo('CT1',FWFldGet("CT1_CTPART"),1) |
Campo | CT1_CTCPAR |
Validação | Vazio() .or. ExistCpo('CT1',FWFldGet("CT1_CTCPAR"),1) |
Campo | CT1_AJ_INF |
Modo Edição | FWFldGet("CT1_CLASSE")=="2" |
Campo | CT1_CTPART |
Modo Edição | FWFldGet("CT1_LCCMPL") == "1" |
Campo | CT1_CTCPAR |
Modo Edição | FWFldGet("CT1_LCCMPL") == "1") |
Campo | CTS_IDENT |
Usado | Sim |
Campo | CVD_CODPLA |
Sequência | 003 |
Cnt. Domínio | CVD_VERSAO |
Tipo | 1 - Primario |
Regra | SPACE(LEN(CVD->CVD_VERSAO)) |
Posiciona? | 2 - Não |
Campo | CT1_CONTA |
Sequência | 001 |
Cnt. Domínio | CT1_CTLALU |
Tipo | 1 - Primario |
Regra | M->CT1_CONTA |
Posiciona? | 2 - Não |
Campo | CVD_CODPLA |
Sequência | 002 |
Condição | Empty(FWFldGet("CVD_CODPLA")) |
Campo | CVD_CTAREF |
Sequência | 001 |
Chave | XFilial('CVN')+FWFldGet('CVD_CODPLA')+FWFldGet("CVD_CTAREF")+FWFldGet("CVD_VERSAO") |
Campo | CVD_CTAREF |
Sequência | 002 |
Chave | XFilial('CVN')+FWFldGet('CVD_CODPLA')+FWFldGet("CVD_VERSAO")+FWFldGet("CVD_CTAREF") |
Campo | CVD_CTAREF |
Sequência | 003 |
Chave | XFilial('CVN')+FWFldGet('CVD_CODPLA')+FWFldGet("CVD_VERSAO")+FWFldGet("CVD_CTAREF") |
Campo | CVD_CTAREF |
Sequência | 004 |
Chave | XFilial('CVN')+FWFldGet('CVD_CODPLA')+FWFldGet("CVD_VERSAO")+FWFldGet("CVD_CTAREF") |
Ordem | 1 |
Descrição | Geral |
Ordem | 2 |
Descrição | Conv. Moedas |
Ordem | 3 |
Descrição | Obrigat. Entidades |
Ordem | 4 |
Descrição | Atividades |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|