Linha de Produto: | Microsiga Protheus. | ||||||||||||||||||||||||
Segmento: | Serviços. | ||||||||||||||||||||||||
Módulo: | Contabilidade Gerencial (SIGACTB). | ||||||||||||||||||||||||
Rotina: |
| ||||||||||||||||||||||||
Cadastros Iniciais: | Cadastros básicos da Contabilidade Gerencial: Calendário Contábil, Moedas Contábeis, Moeda X Calendário,Plano de Contas, Lançamento Padronizados . Financeiro : Cadastro de Natureza, Clientes/Fornecedores, Lançamentos Padronizados utilizados na Contabilização Off Line. Estoques : Cadastro de Natureza , Produtos, Locais de Estoque, Lançamentos Padronizados do módulo utilizados no processo de Contabilização do Recálculo do Custo Médio, Movimentações Internas. | ||||||||||||||||||||||||
Parâmetro(s): | MV_CTBUPRC | ||||||||||||||||||||||||
Requisito (ISSUE): | Criação do parâmetro MV_CTBUPRC. Este parâmetro, se existir e parametrizado com .T., irá criar o arquivo temporário da contabilização no banco de dados. Serão realizadas as verificações da regra e contra-regra, as amarrações ( CtbAmarra) e as validações da função linhaOK serão feitas por procedures dinâmicas. A gravação dos lançamentos contábeis (CT2), do rastreamento de lançamento (CV3) serão feitas por procedures dinâmicas. A tabela CQA será populada caso a atualização de saldos seja on line ( MV_ATUSAL = 'S' e o CTBA193.PRW esteja rodando no Schedule). Obs: quando se utilizar este recurso não será permitido alterar o lançamento durante a contabilização ( MV_ALTLCTO = N). | ||||||||||||||||||||||||
País(es): | Brasil | ||||||||||||||||||||||||
Banco(s) de Dados: | SqlServer, Oracle. | ||||||||||||||||||||||||
Tabelas Utilizadas: | CT2, CTK, CV3, CQA, CT5, SD3 | ||||||||||||||||||||||||
Sistema(s) Operacional(is): | Todos homologados para o Protheus. |
MV_CTBUPRC
O parâmetro MV_CTBUPRC se existir e estiver parametrizado como verdadeiro (.T.), irá criar o arquivo temporário da contabilização no banco de dados. Serão realizadas as verificações da regra e contra-regra, as amarrações ( CtbAmarra) e as validações da função linhaOK por procedures dinâmicas. A gravação dos lançamentos contábeis (CT2), rastreamento de lançamento (CV3) serão feitas por procedures dinâmicas. A tabela CQA será populada caso o parâmetro para a atualização de saldos seja on line ( MV_ATUSAL = 'S') e o CTBA193.PRW esteja configurado para ser executado em schedule. Deixar o parâmetro MV_PRELAN = 'D' ( gera pré-lançamento em caso de inconsistência no lançamento).
Observações:
Quando se utilizar desse recurso, não será permitido alterar o lançamento durante a contabilização, portanto o parâmetro MV_ALTLCTO deve estar parametrizado com 'N'.
Essa melhoria será disponibilizada nas seguintes rotinas de contabilização contábil: CTBA500, CTBAFIN, MATA330 e MATA331.
Na rotina CTBAFIN mesmo que o o parâmetro da execução em multithread esteja habilitado, se os parâmetros para a utilização dessa nova funcionalidade estirem ativos, será feita em conexão unica.
Campos CT5_CTRLSD, CT5_MLTSLD
CT5_CTRLSD - campo que indica se o controle de tipo de saldo será feito '1 - sim' ou não '2 - não'.
CT5_MLTSLD - campo que contém os tipos de saldos em que os lançamentos serão gerados na contabilização de integração. Será preenchido dessa forma '1;3;'.
Nas rotinas de lançamentos contábeis de integração acima citados, esses dois campos podem trabalhar em conjunto, gerando lançamentos contábeis nos tipos de saldos determinados no campo CT5_MLTSLD.
Exemplo:
Caso o campo CT5_CTRLSD ( controla saldo, 1 - sim, 2- não ) estiver preenchido com '1 - sim ' e o campo CT5_MLTSLD ( tipos de saldos em que os lançamentos serão gerados ) estiver preenchido com '1;3' nos lançamentos padronizados das rotinas acima descritas, serão gerados lançamentos contábeis nos tipos de saldo '1' e '3'.
obs: com as configurações citadas no exemplo acima, embora sejam gerados lançamentos em mais de um tipo de saldo na tabela CT2, na tabela CTK será gerado somente uma linha.
Descrição: | Este ponto de entrada (PE) permite a gravação de dados complementares na tabela de lançamentos contábeis (CT2) durante o processo de contabilização de lançamentos de integração com outros módulos do Protheus. |
Localização: | Rotina customizada. Não fica no menu |
Eventos: | CT105CT2 |
Programa Fonte: | CTBA105 |
Função: | CT105CT2_XX, onde xx é o código da empresa |
Retorno: | Não tem retorno. o Usuário deve garantir que a gravação dos complementos seja bem sucedida. |
Descrição: | Este ponto de entrada (PE) permite a gravação de dados complementares na tabela de lançamentos contábeis (CT2) durante o processo de contabilização de lançamentos de integração com outros módulos do Protheus. |
Localização: | Rotina customizada. Não fica no menu |
Eventos: | CTBGRV |
Programa Fonte: | Ctba105 |
Função: | CTBGRV_XX, onde xx é o código da empresa |
Retorno: | Não tem retorno. o Usuário deve garantir que a gravação dos complementos seja bem sucedida. |
Os pontos de entradas acima serão chamados nas procedures dinâmicas criada para gravação de lançamentos, portanto, a implementação deles é de responsabilidade do usuário. Uma vez criados os PE's no SGBD, estes devem ser implementados para gravação de dados adicionais.
Serão chamados na ordem e da forma descrita abaixo:
Obs: código em SQLSERVER
/* -----------------------------------------
PE CT105CT2
----------------------------------------- */
If ( @IN_cProg != 'CTBA101' and @IN_cProg != 'CTBA102' and @IN_cProg != 'CTBA103' ) And @IN_LSIMULA = '0' begin
Exec CT105CT2_xx @IN_nMoedas, @cCT2_DATA, @cCT2_LOTE, @cCT2_SBLOTE, @cCT2_DOC, @IN_lCusto, @IN_lItem, @IN_lCLVL, @IN_TOTINF, @IN_LATUBASE, @IN_LREPROC
end
/* -----------------------------------------
PE CTBGRV
----------------------------------------- */
If @IN_LSIMULA = '0' begin
Exec CTBGRV_xx @IN_NOPC, @IN_cProg
End
Na primeira vez em que as procedures dinâmicas de gravação de lançamentos forem criadas, os pontos de entradas também serão criados no SGBD. Uma vez criados, a exclusão destes PE's só poderá ser feita manualmente no SGBD.
Exemplo:
Corpo do PE CT105CT2_XX e os parâmetros de entrada.
Create Procedure CT105CT2_XX (
@IN_NMOEDAS integer,
@IN_DATALANC Char( 08 ),
@IN_LOTE Char( 06 ),
@IN_SBLOTE Char( 03 ),
@IN_DOC Char( 06 ),
@IN_LCUSTO Char( 01 ),
@IN_LITEM Char( 01 ),
@IN_LCLVL Char( 01 ),
@IN_TOTINF float,
@IN_LATUBASE Char( 01 ),
@IN_LREPROC Char( 01 )
)
as
/* ------------------------------------------------------------------------------------
Ponto de entrada padrao : CT105CT2
---------------------------------------------
@IN_NMOEDAS - Nro de Moedas Usadas
@IN_DATALANC - Data do Lancto
@IN_LOTE - Nro do Lote Contábil
@IN_SBLOTE - Sublote contábil
@IN_DOC - Nro do Documento contabil
@IN_LCUSTO - Indica se Trabalha com CCusto, '1' trabalha, '0' Nao
@IN_LITEM - Indica se Trabalha com Item , '1' trabalha, '0' Nao
@IN_LCLVL - Indica se Trabalha com Classe de Valor, '1' trabalha, '0' Nao
@IN_TOTINF - Total Informado
@IN_LATUBASE - Indica se atualiza tabelas de Saldos. Se '1' atualiza
@IN_LREPROC - Indoca se é Reproc Contábil
-------------------------------------------------------------------------------------- */
Declare @iMoedas Integer
Declare @cDataLanc Char( 08 )
Declare @cLote Char( 06 )
Declare @cSbLote Char( 03 )
Declare @cDoc Char( 06 )
Declare @lCusto Char( 01 )
Declare @lItem Char( 01 )
Declare @lClvl Char( 01 )
Declare @nTotInf Float
Declare @lAtuBase Char( 01 )
Declare @lReproc Char( 01 )
Begin
select @iMoedas = @IN_NMOEDAS
select @cDataLanc = @IN_DATALANC
select @cLote = @IN_LOTE
select @cSbLote = @IN_SBLOTE
select @cDoc = @IN_DOC
select @lCusto = @IN_LCUSTO
select @lItem = @IN_LITEM
select @lClvl = @IN_LCLVL
select @nTotInf = @IN_TOTINF
select @lAtuBase = @IN_LATUBASE
select @lReproc = @IN_LREPROC
End
Corpo do PE CTBGRV_XX e os parâmetros de entrada.
Create Procedure CTBGRV_XX (
@IN_NOPC integer,
@IN_CPROG Char( 08 ),
)
as
/* ------------------------------------------------------------------------------------
Ponto de entrada padrao : CT105CT2
---------------------------------------------
@IN_NOPC - 3 - Inclusao, 4- alteração, 6 - Estorno - ( recebe sempre 3 )
@IN_CPROG - Nome do Programa
-------------------------------------------------------------------------------------- */
Declare @nOpc Integer
Declare @cProg Char( 10 )
Begin
select @nOpc = @IN_NOPC
select @cProg = @IN_CPROG
End