Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

Informações Gerais

 

Especificação

Produto

Microsiga Protheus

Módulo

SIGACTB - Contabilidade Gerencial

Segmento Executor

Serviços

Projeto1

DSERCTR1

IRM/EPIC1

 

Requisito/Story/Issue1

DSERCTR1-386

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). 

Objetivo


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

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).

 

  • MVC

 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.

 

  • Observer

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á:

  • Manter as funcionalidades existentes (inclusão, alteração, exclusão, etc.);
  • Substituir os pontos de entrada existentes pelos padrões do MVC;
  • Manter as integrações existentes (mensagem única, SIGAPCO e SIGAGFE);
  • Separar os processos específicos de cada localização (país) em fonte especifico;
  • Separar os processos específicos das integrações em fonte especifico.


 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

CTBA020 - Plano de ContasAlteraçãoAtualizações -> EntidadesFonte centralizador contendo a regra de negócio vigente para todas localizações
CTBA020EVPCOCriaçãoNão se aplicaFonte contendo o processo de integração com o SIGAPCO
CTBA020EVGFECriaçãoNão se aplicaFonte contendo o processo de integração com o SIGAGFE
CTBA020BRACriaçãoNão se aplicaFonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Brasil.
CTBA020ARGCriaçãoNão se aplicaFonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Argentina.
CTBA020MEXCriaçãoNão se aplicaFonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Mexico.
CTBA020DOMCriaçãoNão se aplicaFonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização República Dominicana.
CTBA020RUSCriaçãoNão se aplicaFonte que obtém os dados do cadastro padrão (CTBA020) e inclui os dados específicos para a localização Russia.
CTBI020EnvolvidaNão se aplicaAdapter para integração da mensagem única do plano de contas.
CTBATreeEnvolvidaNão se aplicaRotina que apresenta o cadastro de plano de contas em modo Árvore.

 

  • Modelagem dos Fontes


      • CTBA020 - Fonte principal com elementos comuns para todas as localizações.

      • CTBA020EVPCO - Classe de evento responsável pela integração com o SIGAPCO.

      • CTBA020EVGFE - Classe de evento responsável pela integração com o SIGAGFE.

      • CTBA020BRA - Fonte localizado para o pais Brasil. Esse fonte possui model, view, browse e menu, todavia os componentes são baseados na rotina padrão e adicionado no fonte somente as necessidades especificas do pais.

      • CTBA020MEX - Fonte localizado para o pais México. Esse fonte possui model, view, browse e menu, todavia os componentes são baseados na rotina padrão e adicionado no fonte somente as necessidades especificas do pais.

      • CTBA020DOM - Fonte localizado para o pais Republica Dominicana. Esse fonte possui model, view, browse e menu, todavia os componentes são baseados na rotina padrão e adicionado no fonte somente as necessidades especificas do pais.

      • CTBA020ARG - Fonte localizado para o pais Argentina. Esse fonte possui model, view, browse e menu, todavia os componentes são baseados na rotina padrão e adicionado no fonte somente as necessidades especificas do pais.

      • CTBA020RUS - Fonte localizado para o pais Russia. Esse fonte possui model, view, browse e menu, todavia os componentes são baseados na rotina padrão e adicionado no fonte somente as necessidades especificas do pais.

 

    • 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çãoID Ponto de Entrada
      AT020VCAExecutado na ativação da tela de inclusão. 
      CT020BUTAdiciona opções no grupo "Outras Opções" nas telas de inclusão, alteração, exclusão e visualização. 
      CT020EXCExecutado antes de deletar um registro. 
      CT020LOKValidação das linhas do Plano Referencial. 
      CT020TOKValidação geral do Plano Referencial. 
      CT20ALTAExecutado no inicio da tela de alteração. 
      CT20ALTDExecutado após a alteração, mas dentro da transação. 
      CT20EXCAExecutado no começo da função de exclusão de um registro. 
      CT20EXCDDepois de deletar um registro, porem dentro da transação. 
      CT20GRAExecutado no inicio da rotina de inclusão. 
      CT20GRDExecutado após inclusão do registro. 
      CTB020VGExecutado 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.

       
      CTBA20CTExecutado dentro da transação dos processo de inclusão, alteração e exclusão. 

       

 

  • Opções da Rotina

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çãoFunçãoDescriçãoPaísRotina
      PesquisarAxPesquiPesquisa de registro. Está opção será removida devida presença de
      recurso nativo no Browse.
      TodosCTBA020.PRW
      VisualizarCtba020VisVisualização de registro. Será adequada para o padrão MVC.TodosCTBA020.PRW
      IncluirCtba020IncInclusão de registro. Será adequada para o padrão MVC.TodosCTBA020.PRW
      AlterarCtba020AltAlteração de registro. Será adequada para o padrão MVC.TodosCTBA020.PRW
      ExcluirCtba020DelExclusão de registro. Será adequada para o padrão MVC.TodosCTBA020.PRW
      ImportarCtba020ImpImportação de registros.TodosCTBA020.PRW
      ExportarCtba020ExpExportação de registros.TodosCTBA020.PRW
      LegendaCtba020legLegenda do Browse. Está opção será removida, devida apresentação
      ocorrer no duplo clique no ícone da legenda.
      TodosCTBA020.PRW
      ConhecimentoMSDocumentAssociação de documentos aos registros.TodosCTBA020.PRW
      Imprimir Browse-Opção inclusa automaticamente.--
      Controles ContábeisCTBA001Controles contábeis.Exceto BrasilCTBA020RUS.PRW
      CTBA020MEX.PRW
      CTBA020ARG.PRW
      ...
    • Browse em arvore:

      OpçãoFunçãoDescriçãoPaísRotina
      Ajuda-Opção inclusa automaticamente.--
      PesquisarCtba3Pes()Pesquisa de registroTodosCTBATree
      IncluirCtba3Inc()Inclusão de registroTodosCTBATree
      AlterarCtba3Alt()Alteração de registroTodosCTBATree
      ExcluirCtba3Exc()Exclusão de registroTodosCTBATree
      RecalcularCTTreeRfsh()Refaz a estrutura da árvore de registrosTodosCTBATree
      Configurar-Opção inclusa automaticamente.--
  • Integrações

    As integrações existentes com o cadastro de plano de contas serão adequadas conforme o detalhamento abaixo:

    • Rotina Automática (MSExecAuto):

      Devido a conversão para MVC, o MSExecAuto não será mais utilizado, sendo necessário utilizar a inclusão por meio de instanciação do modelo de dados (ex: FWLoadModel("CTBA020")).


    • Mensagem Única (EAI - Enterprise Application Integration):
       
      O adapter do plano de contas (CTBI020), utiliza a rotina automática (MSExecAuto) para realizar a integração, necessitando adequar para o uso do modelo de dados. Para enviar os processos ocorridos no cadastro de plano de contas para o adapter, será efetuada a adequação abaixo:

       

      FunçãoDescriçãoFonte
      FwIntegDefFunçã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

       

    • SIGAPCO - Planejamento e Controle Orçamentário
       
      O módulo SIGAPCO se integra para possibilitar a sincronização do cadastro de plano de contas com as contas orçamentárias. Este processo é ativado por meio dos parâmetros: MV_PCOINTE = 1 e  MV_PCOSINC = 2. Seguem abaixo os pontos de integração:

       

      AçãoDescriçãoFunçãoFonteMétodo
      ExclusãoValida se a conta orçamentária pode ser excluídaPCOA010ELK()CTBA020EVPCO.PRW 
      ExclusãoValida se a conta orçamentária foi excluída para prosseguir o processoPCOVLDSINC()
      PCOSincCO()
      CTBA020EVPCO.PRW 
      InclusãoApós a gravação do plano de contas, gera a conta orçamentária.PCOSincCO()CTBA020EVPCO.PRW 
      AlteraçãoApó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çãoDescriçãoFunçãoFonteMétodo
      InclusãoInclusão de registroModel - GFEA090CTBA020EVGFE.PRW 
      AlteraçãoAlteração de registroModel - GFEA090CTBA020EVGFE.PRW 
      ExclusãoExclusão de registroModel - GFEA090CTBA020EVGFE.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çãoRotina Externa
    CTBA020()CONA020.PRW
    CTBA020Del()CTBATree.PRW
    CTBA020Inc()CTBATree.PRW
    CTBA020Alt()CTBATree.PRW
    SV020Mem()CTBA350.PRW
    CTBA030.PRW
    CTBA040.PRW
    CTBA060.PRW
  • Tratamentos Localizados
    • Para os países México e República Dominicana, não é utilizado o sub-cadastro de Plano Referencial. Desta forma, o tratamento para apresentação do Plano Referencial e a validação, inclusão, alteração e exclusão, devem ser tratados nos fontes das demais localizações.
       
    • Para o país Angola, há uma chamada para a função CT998x5LL(), utilizada para criação da tabela genérica LL - Classificação de Contas no Lalur, devido o cadastro no ATUSX, essa função não precisa ser chamada no cadastro de plano de contas.

 

  • 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:

     

    CampoFunção
    CT1_CONTACtb020cta()
    CT1_CLASSECtb020Prox()
    Ctb020Var()
    Ctb020LP()
    CT1_RESCtb020NoRe()
    CT1_DTBLINCTB020DTIN()
    CT1_DTBLFICTB020DTFI()
    CT1_DCCtb020Dc()
    CT1_NCUSTOCtb020Cust()
    CTS_CODPLACTBA020DIC()
    CTS_CONTAGCTBA020DIC()
    CVD_VERSAOCtb020Vers()
    CVD_CTAREFCtb020CRef()

Tabelas Utilizadas

    • CT1 – Plano de Contas
    • CTS – Visões Gerenciais
    • CVD – Plano de Contas Referenciais
    • CVF – Estrutura da Visão
    • GUE – Conta Contábil
    • CVE – Visão Gerencial
    • CVN – Planos de Contas de Referência
    • CW8Histórico de Alterações


Dicionário de Dados

 

  • Alteração  de Tabela no arquivo SX2 – Tabelas:

    PrefixoCT1
    Obj. SistemaCTBA020
  • Alteração  de Campos no arquivo SX3 – Campos:
    • Tabela CT1 - Plano de Contas:

 

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


CampoCT1_CTASUP
ValidaçãoValCtaSup()
CampoCT1_CTAVM
ValidaçãoVazio().Or.ValidaConta(FWFldGet("CT1_CTAVM"))
CampoCT1_CTARED
Validação

Vazio().Or.ValidaConta(FWFldGet("CT1_CTARED"))

CampoCT1_CTALP
Validação

Vazio() .Or. ValidaConta(FWFldGet("CT1_CTALP")) .Or. (FWFldGet("CT1_CTALP") = '*')


CampoCT1_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"))


CampoCT1_TRNSEF
Validação

Vazio() .Or.  ValidaConta(FWFldGet("CT1_TRNSEF"))


CampoCT1_CTPART
Validação

Vazio() .or. ExistCpo('CT1',FWFldGet("CT1_CTPART"),1)


Campo

CT1_CTCPAR

Validação

Vazio() .or. ExistCpo('CT1',FWFldGet("CT1_CTCPAR"),1)






    • Tabela CTS - Visões Gerenciais:

 

Campo

CTS_IDENT

Usado

Sim

 

  • Criação de Gatilhos no arquivo SX7 – Gatilhos:
    • Tabela CVD – Plano de Contas Referenciais:

Campo

CVD_CODPLA

Sequência

003

Cnt. Domínio

CVD_VERSAO

Tipo

1 - Primario

Regra

SPACE(LEN(CVD->CVD_VERSAO))

Posiciona?

2 - Não

 

  • Exclusão de Gatilhos no arquivo SX7 – Gatilhos:
    • Tabela CT1 – Plano de Contas:

Campo

CT1_CONTA

Sequência

001

Cnt. Domínio

CT1_CTLALU

Tipo

1 - Primario

Regra

M->CT1_CONTA

Posiciona?

2 - Não



  • Alteração de Gatilhos no arquivo SX7 – Gatilhos:
    • Tabela CVD – Plano de Contas Referenciais:

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")



  • Criação de Pastas no arquivo SXA – Pastas:
    • Tabela CT1 – Plano de Contas:

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.