Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus 

Segmento:

Backoffice SP 

Módulo:CONTABILIDADE GERENCIAL (SIGACTB)
Função:CÓPIA DE SALDOS (CTBM300)
Ticket:Interno
Requisito/Story/Issue (informe o requisito relacionado) :DSERCTR1-44162


02. 
SITUAÇÃO/REQUISITO

A rotina está preenchimento indevidamente do campo CT2_USERGA para os lançamentos de origem, isso é devido ao fato de que o usuário não está realizando alterações em nenhuma informação durante a execução de uma rotina contábil chamada CTBM300 no lançamento de origem.

03. SOLUÇÃO

Implementada a melhoria para que o campo CT2_USERGA não seja alterado no momento da cópia no lançamento de Origem.

Para isso, foi criada a tabela QLN - Controle de Lançamentos que servirá de controle interno para sabermos quais registros foram copiados, tendo os campos de QLN_FILIAL, QLN_MSUIDT e QLN_STATUS.


Importante

Necessário estar com o DbAccess igual ou superior a versão 22.1.1.5

Na tabela CT2 deve existir o campo CT2_MSUIDT


Mudanças na Rotina:

Originalmente, os lançamentos nascidos de uma Cópia eram criados na tabela CT2 e o lançamento que serviu de origem para esse lançamento copiado tinha o conteúdo do campo CT2_CTLSLD atualizado para 2.

Com o campo CT2_CTLSLD igual a 2 no lançamento de origem, a rotina entendia que esse registro já foi usado anteriormente para gerar um lançamento de cópia.
Então para gerar uma nova cópia tendo esse mesmo registro como origem, era necessário estar com a pergunta MV_PAR18 - "Limpar controle de copia ?  " Igual a Sim, e assim a rotina atualizava o conteúdo do campo CT2_CTLSLD para 0, gerava os novos lançamentos e posteriormente atualizada o campo CT2_CTLSLD para 2 novamente no lançamento de origem.

O problema disso é que ao alterar o campo de status (CT2_CTLSLD), o campo CT2_USERGA também é editado com o usuário que está fazendo a cópia, o que para questões de auditoria é um problema, pois o sistema informa que o usuário que apenas fez uma cópia realizou uma alteração no lançamento copiado.


Agora com a melhoria, a ideia é basicamente a mesma. Porem, ao invés da rotina atualizar o campo CT2_CTLSLD nos lançamentos de origem, a rotina irá verificar se o lançamento de origem já foram copiados, caso o lançamento nunca foi copiado, o mesmo será incluído na tabela QLN com Status igual a 2 "Lançamento Copiado".

Nesse cenário ao realizar a cópia de um lançamento de origem que já foi copiado anteriormente, é necessário estar com a  pergunta MV_PAR18 - "Limpar controle de copia ?  " Igual a Sim igual antes, mas ao invés da rotina buscar no lançamento de origem o conteúdo do campo CT2_CTLSLD a rotina irá buscar na tabela QLN o conteúdo do campo QLN_STATUS.

       E assim a rotina atualizava o conteúdo do campo QLN_STATUS para 0, gera os novos lançamentos e posteriormente atualizada o campo QLN_STATUS para 2 novamente, fazendo assim nenhuma alteração no lançamento de origem quando o mesmo for copiado.


SX2 - Tabelas

X2_CHAVE

X2_ARQUIVOX2_NOMEX2_MODOX2_MODOUNX2_MODOEMPX2_UNICOX2_DISPLAY
QLNQLNT10  CONTROLE DE LANÇAMENTOS       EEEQLN_FILIAL+QLN_MSUIDTQLN_FILIAL+QLN_MSUIDT+QLN_STATUS

     SX3 - Campos

X3_ARQUIVOX3_ORDEMX3_CAMPOX3_TIPOX3_TAMANHOX3_TITULOX3_DESCRICX3_PICTUREX3_BROWSEX3_VISUALX3_CONTEXT
QLN1QLN_FILIALC8Filial      Filial do Sistema                                          N

QLN2QLN_MSUIDTC36Campo UUID  Campo UUID                                NVR
QLN3QLN_STATUSC1Status CopiaStatus Copia             @!                                           NAR

    SIX - Índices

INDICEORDEMCHAVEDESCRICAO
QLN1QLN_FILIAL+QLN_MSUIDT  Campo UUID                                                            



Importante

O compartilhamento da Tabela QLN deve seguir o mesmo da tabela CT2.

04. DEMAIS INFORMAÇÕES

Não se aplica

05. ASSUNTOS RELACIONADOS

18663241 DSERCTR1-43895 DT CTBM300 - COPIA PREENCHE OS CAMPOS USERGA E USERGI INCORRETOS