Pular para o conteúdo principal

MCB008 — Movimentação MCB008

Fonte​

  • Source: source/MCB008/
  • Form: source/MCB008/UMCB008.pas / UMCB008.dfm
  • DataModule: source/MCB008/UdmMCB008.pas / UdmMCB008.dfm
  • Package: source/MCB008/MCB008.dpk

Objetivo​

Importa arquivo texto (layout posicional com 265+ colunas) gerado por sistema externo de Folha de Pagamento e grava os lancamentos contábeis resultantes no livro contábil da empresa logada. Cada linha do arquivo vira um movimento em MOVTOCONTABIL via procedure IMPORTA_FOLHA, com registro da competencia importada em IMPORTACAOFOLHA. Permite tambem desfazer a importacao de uma competencia especifica.

Funcionalidades​

  • Selecionar arquivo de importacao (botao da lupa ao lado do campo Arquivo, com filtro *Empresa Folha*.*).
  • Importar Movimentos (gera os lancamentos contábeis linha a linha).
  • Desfazer Importacao (apaga os movimentos contábeis e o registro de importacao da competencia informada).
  • Atualizacao da consulta (recarrega a Empr. Folha).
  • Limpar (cancela edicao em curso).
  • Sair.
  • Controle de acesso: quando programa.tpAcesso = 2, os botoes Novo e seu separador sao ocultados no toolbar.

Estrutura da Tela​

A tela e um MDI child com toolbar lateral esquerda e tres grupos empilhados na area principal.

Toolbar lateral (esquerda)​

BotaoAtalhoAcao
Novo RegistroF5Foca o botao de selecao de arquivo
Cancelar RegistroF4Cancela edicao em curso
Atualizar RegistrosF2Rollback + reabre consulta da empresa
SairF12 / EscFecha a tela

Grupo "Importacao da Folha de Pagamento"​

Campo visivelComponenteObservacao
Empr. FolhaTDBEdit (read-only)Mostra EMPRESA.CD_EMPRFOLHA da empresa logada. Pre-requisito para liberar a importacao.
ArquivoTEdit (read-only)Caminho do arquivo escolhido via dialogo Selecionar Diretorio (botao da lupa).
ProgressoTGaugeBarra de progresso, acompanha registros do arquivo referentes a empresa logada.
Importar MovimentosTBitBtn (bold)Executa a importacao do arquivo.

Grupo "Erros"​

Campo visivelComponenteObservacao
(memo)TMemo (memErro)Lista de registros rejeitados com nro da linha, mensagem e SQL gerado.

Grupo "Apagar Importacao Realizada"​

Campo visivelComponenteObservacao
Data CompetenciaTwwDBDateTimePickerDisplayFormat mm/yyyy. Competencia a ser desfeita.
Desfazer ImportacaoTBitBtn (bold)Apaga os movimentos contábeis (TP_DOCTO = 'F') do intervalo da competencia e o registro em IMPORTACAOFOLHA.

Parametros que Influenciam​

TabelaCampoEfeito
EMPRESACD_EMPRFOLHAPre-requisito duro: se a empresa logada nao tiver CD_EMPRFOLHA preenchido (configurado em ADM002/Dados Adicionais), a tela abre com os botoes Abrir/Importar/Desfazer desabilitados e levanta W-0000 com a mensagem orientando a configuracao. Tambem e usado como filtro: durante a leitura do arquivo, somente linhas cujas 18 primeiras posicoes (codigo da empresa no sistema da folha) batem com CD_EMPRFOLHA sao contabilizadas e importadas. O mesmo valor alimenta o filtro do dialogo Selecionar Diretorio (*EMPRFOLHA*.*).
PARMCONTABILCD_CONTACAIXAConta contábil de Caixa da empresa logada, pesquisada via SELECT CD_CONTACAIXA FROM PARMCONTABIL WHERE CD_EMPRESA = <empresa>. Quando nao configurada, o codigo assume -1 como sentinela. E obtida antes do loop de importacao e fica disponivel como referencia de conta caixa no contexto da rotina (ver MCB001 - Parametros Contábeis).

Regras de Negocio​

  • Empresa da Folha obrigatoria (W-0000): se EMPRESA.CD_EMPRFOLHA da empresa logada estiver vazio, a tela bloqueia importacao/desfazer/abrir e orienta configurar em ADM002/Dados Adicionais.
  • Arquivo obrigatorio (W-0000): btnImportar exige o campo Arquivo preenchido; caso contrario, foca btnAbrir e levanta W-0000 com "E obrigatorio informar o Arquivo de Importacao !".
  • Filtro por empresa da folha: somente linhas do arquivo cujas posicoes 1..18 (Copy(Registro,1,18)) correspondem a CD_EMPRFOLHA sao contadas no progresso e processadas.
  • Competencia extraida do primeiro registro valido: a variavel iMesAno (formato MM/YYYY) vem das posicoes 21..22 (mes) e 23..26 (ano) do primeiro registro aceito, e determina a competencia unica da importacao.
  • Reimportacao da mesma competencia: se ja existe IMPORTACAOFOLHA para (CD_EMPRESA, DT_COMPETENCIA), o sistema pergunta via MessageBox "Este arquivo ja foi processado. Confirma a Reimportacao dos Dados?". Em caso afirmativo, apaga MOVTOCONTABIL com TP_DOCTO = 'F' no intervalo PRIMEIRODIAMES..ULTIMODIAMES e tambem o registro IMPORTACAOFOLHA.
  • Sequencia de importacao: CD_IMPORTACAOFOLHA e gerado por MAX(CD_IMPORTACAOFOLHA) + 1 filtrado por empresa (ou 1 se nao houver registro).
  • Registro de importacao: antes do loop de lancamentos, insere um IMPORTACAOFOLHA (CD_EMPRESA, CD_IMPORTACAOFOLHA, DT_COMPETENCIA, DT_REGISTRO=NOW).
  • Geracao do movimento contábil: para cada linha, chama IMPORTA_FOLHA com 9 parametros: empresa logada, empresa da folha (pos 1..18), data do registro (pos 19..26 em DD/MM/AAAA), conta credito (pos 27..44), conta debito (pos 45..62), valor (pos 63..79 convertido para decimal via virgula), historico (pos 80..97), complemento (pos 98..247 com espacos duplos removidos via removeEspacos), CD_IMPORTACAOFOLHA e centro de custo (pos 248..265). Se a procedure retornar O_DS_MENSAGEM nao vazio, e disparada Exception com o texto; capturada no on E: JException, incrementa contador de rejeitados e grava o erro no memo.
  • Tratamento de erros: JException e classificada como rejeicao de linha (nao aborta); Exception geral fecha o arquivo e aborta a importacao com W-0000.
  • Commit atomico: ao terminar o loop, transaction.Commit + novo StartTransaction. Se houve rejeitados, MessageBox informa a quantidade; caso contrario, "Importacao Concluida com Sucesso!".
  • Desfazer importacao: exige Competencia preenchida. Confirma via MessageBox "Tem Certeza que Deseja Desfazer a Importacao dos Dados ?". Se confirmado, apaga MOVTOCONTABIL com TP_DOCTO='F' no intervalo da competencia e o IMPORTACAOFOLHA correspondente. Cancelamento dispara Exception('Exclusao de Importacao Cancelada !').
  • Limpeza de complemento: removeEspacos colapsa espacos duplos consecutivos em um unico espaco antes de passar o complemento para a procedure.
  • Ciclo de vida transacional: FormClose faz Rollback + Free do DataModule + descarregarPrograma.

Datasets e SQL​

DatasetDescricao
tabFILTRO (TFDQuery)SELECT E.CD_EMPRFOLHA, CAST(NULL AS DATE) COMPETENCIA FROM EMPRESA E WHERE E.CD_EMPRESA = :CD_EMPRESA - fonte de dados dos controles visuais Empr. Folha (DBEdit) e Data Competencia (DateTimePicker). O campo COMPETENCIA e calculado em memoria, nao persiste.
updFILTRO (TFDUpdateSQL)Insert/Modify/Delete/FetchRow sobre EMPRESA ancorados em CD_EMPRFOLHA. Em pratica a tela nao edita EMPRESA; o CachedUpdates = True existe pelo vinculo do DBEdit.
isqlFUNCIONARIO (string)Buffer com o SQL original de tabFILTRO, usado para restaurar a consulta em btnAtualizarClick.

SQL ad-hoc executados via ExecutaConsulta/ExecUpdate (padrao jDB):

  • SELECT CD_CONTACAIXA FROM PARMCONTABIL WHERE CD_EMPRESA = <empresa>
  • SELECT CD_IMPORTACAOFOLHA FROM IMPORTACAOFOLHA WHERE CD_EMPRESA = <empresa> AND DT_COMPETENCIA = <mm/yyyy>
  • SELECT MAX(CD_IMPORTACAOFOLHA)+1 FROM IMPORTACAOFOLHA WHERE CD_EMPRESA = <empresa>
  • INSERT INTO IMPORTACAOFOLHA (CD_EMPRESA, CD_IMPORTACAOFOLHA, DT_COMPETENCIA, DT_REGISTRO) VALUES (...)
  • DELETE FROM MOVTOCONTABIL WHERE CD_EMPRESA = <empresa> AND TP_DOCTO = 'F' AND DT_LANCAMENTO BETWEEN PRIMEIRODIAMES(...) AND ULTIMODIAMES(...)
  • DELETE FROM IMPORTACAOFOLHA WHERE CD_EMPRESA = <empresa> AND DT_COMPETENCIA = <mm/yyyy>
  • SELECT O_DS_MENSAGEM FROM IMPORTA_FOLHA(<9 params>)

Perguntas Frequentes​


Perguntas Gerais​

P: Qual é a finalidade da tela MCB008? R: A tela MCB008 é a tela de Importação de Folha de Pagamento do sistema. Nela é possível importar os dados da folha de pagamento para as movimentações contábeis, realizando a leitura de um arquivo de importação e gerando os lançamentos contábeis correspondentes. A tela também permite desfazer importações realizadas anteriormente, revertendo os lançamentos gerados.

P: Como realizar a importação dos dados da folha de pagamento? R: Para realizar a importação, acesse a tela MCB008 e informe o caminho do Arquivo de Importação no campo correspondente. Verifique se a empresa da folha de pagamento está corretamente configurada na tela ADM002 (Cadastro de Empresas), na aba Dados Adicionais. Após informar o arquivo, clique no botão de importação para iniciar o processamento. O sistema lerá o arquivo e gerará os lançamentos contábeis automaticamente. Ao final, será exibida uma mensagem indicando o resultado da importação.

P: Como desfazer uma importação de folha de pagamento? R: Para desfazer uma importação já realizada, acesse a tela MCB008 e selecione a importação que deseja reverter. Clique no botão de exclusão/desfazer. O sistema exibirá a mensagem de confirmação "Tem Certeza que Deseja Desfazer a Importação dos Dados?". Ao confirmar, todos os lançamentos contábeis gerados pela importação selecionada serão excluídos. Ao final, será exibida a mensagem "Exclusão de Importação Concluída com Sucesso!".


Mensagens de Confirmação​

P: O que significa a mensagem "Este arquivo já foi processado. Confirma a Reimportação dos Dados?" R: Esta mensagem é exibida quando o arquivo de importação selecionado já foi processado anteriormente. O sistema detectou que os dados desse arquivo já foram importados. Ao confirmar, o sistema realizará a reimportação dos dados, podendo sobrescrever ou duplicar os lançamentos existentes. Caso não deseje reimportar, clique em "Não" para cancelar a operação.

P: O que significa a mensagem "Tem Certeza que Deseja Desfazer a Importação dos Dados?" R: Esta mensagem de confirmação é exibida quando o usuário solicita a reversão de uma importação de folha de pagamento. Ao confirmar, o sistema excluirá todos os lançamentos contábeis que foram gerados pela importação selecionada. Esta operação não poderá ser desfeita, portanto certifique-se de que deseja realmente reverter a importação antes de confirmar.


Mensagens Informativas​

P: O que significa a mensagem "Importação Concluída com Sucesso!"? R: Esta mensagem informativa é exibida após o processamento completo do arquivo de importação da folha de pagamento, indicando que todos os registros foram importados e os lançamentos contábeis foram gerados com sucesso, sem nenhuma rejeição.

P: O que significa a mensagem "Importação Concluída com X Registros Rejeitados!"? R: Esta mensagem informativa é exibida quando a importação do arquivo foi concluída, porém alguns registros não puderam ser processados. O número indicado por "X" representa a quantidade de registros que foram rejeitados durante o processamento. Verifique os registros rejeitados para identificar possíveis inconsistências nos dados do arquivo de importação, como contas contábeis inexistentes, valores inválidos ou dados obrigatórios não preenchidos.

P: O que significa a mensagem "Exclusão de Importação Concluída com Sucesso!"? R: Esta mensagem informativa é exibida após a reversão bem-sucedida de uma importação de folha de pagamento. Indica que todos os lançamentos contábeis gerados pela importação foram excluídos com sucesso do sistema.


Mensagens de Validação e Erros​

P: O sistema apresenta a mensagem "A Empresa da Folha não foi Informada. Verifique! [ADM002/Dados Adicionais]". Como devo proceder? R: Esta mensagem indica que a empresa responsável pela folha de pagamento não está configurada no sistema. Acesse a tela de Cadastro de Empresas (ADM002) e navegue até a aba Dados Adicionais. Nessa aba, informe corretamente a empresa da folha de pagamento no campo correspondente. Após salvar a configuração, retorne à tela MCB008 e tente realizar a importação novamente.

P: O sistema apresenta a mensagem "É obrigatório informar o Arquivo de Importação!". Como devo proceder? R: Esta mensagem é exibida quando o campo do Arquivo de Importação está vazio. É obrigatório informar o caminho completo do arquivo que contém os dados da folha de pagamento a ser importada. Clique no botão de busca para localizar o arquivo no sistema de arquivos ou digite o caminho completo do arquivo no campo correspondente.

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
EMPRESADELETE, INSERT, SELECT, UPDATE
IMPORTACAOFOLHADELETE, INSERT, SELECT
MOVTOCONTABILDELETE, SELECT

Tabelas de Leitura (SELECT)​

TabelaOperacoes
PARMCONTABILSELECT

Procedures Chamadas​

ProcedureTabelas Acessadas
IMPORTA_FOLHAEMPRESA (SELECT), MOVTOCONTABIL (INSERT), MOVTOCONTABILCC (INSERT), SEQUENCIA (SELECT/UPDATE)

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
EMPRESASELECT
MOVTOCONTABILINSERT
MOVTOCONTABILCCINSERT
SEQUENCIASELECT, UPDATE

Dependencias Aferentes​

Outras telas que escrevem nas tabelas lidas por MCB008 (EMPRESA, IMPORTACAOFOLHA, MOVTOCONTABIL, PARMCONTABIL). Lista ordenada por quantidade de tabelas comuns e limitada as 30 telas mais relevantes.

MóduloTabelas em comum
CEQ005EMPRESA, MOVTOCONTABIL
CEQ015EMPRESA, MOVTOCONTABIL
CNF001EMPRESA, MOVTOCONTABIL
CNF002EMPRESA, MOVTOCONTABIL
CNF007EMPRESA, MOVTOCONTABIL
CNF009EMPRESA, MOVTOCONTABIL
CNF011EMPRESA, MOVTOCONTABIL
CNF012EMPRESA, MOVTOCONTABIL
CPD002EMPRESA, MOVTOCONTABIL
CRC001EMPRESA, MOVTOCONTABIL
MCA004EMPRESA, MOVTOCONTABIL
MCA007EMPRESA, MOVTOCONTABIL
MCA010EMPRESA, MOVTOCONTABIL
MCA012EMPRESA, MOVTOCONTABIL
MCA013EMPRESA, MOVTOCONTABIL
MCB003EMPRESA, MOVTOCONTABIL
MCO005EMPRESA, MOVTOCONTABIL
MEQ003EMPRESA, MOVTOCONTABIL
MEQ005EMPRESA, MOVTOCONTABIL
MEQ006EMPRESA, MOVTOCONTABIL
MEQ015EMPRESA, MOVTOCONTABIL
MEQ020EMPRESA, MOVTOCONTABIL
MEQ023EMPRESA, MOVTOCONTABIL
MEQ024EMPRESA, MOVTOCONTABIL
MEQ037EMPRESA, MOVTOCONTABIL
MEQ039EMPRESA, MOVTOCONTABIL
MEQ042EMPRESA, MOVTOCONTABIL
MEQ044EMPRESA, MOVTOCONTABIL
MEQ049EMPRESA, MOVTOCONTABIL
MEQ059EMPRESA, MOVTOCONTABIL

Dependencias Eferentes​

Outras telas que leem as tabelas escritas por MCB008 (direta ou via procedure: EMPRESA, IMPORTACAOFOLHA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA). Total na base: 1275 telas. Lista ordenada por quantidade de tabelas comuns e limitada as 30 telas mais relevantes.

MóduloTabelas em comum
MCB002EMPRESA, IMPORTACAOFOLHA, MOVTOCONTABIL, SEQUENCIA
MFC035EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA
MFI011EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA
jCentroResultadoEMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA
CCB001EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC
CCB005EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC
CEQ005EMPRESA, MOVTOCONTABIL, SEQUENCIA
CEQ015EMPRESA, MOVTOCONTABIL, SEQUENCIA
CFC001EMPRESA, MOVTOCONTABIL, SEQUENCIA
CFC002EMPRESA, MOVTOCONTABIL, SEQUENCIA
CFC009EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF001EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF002EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF007EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF009EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF011EMPRESA, MOVTOCONTABIL, SEQUENCIA
CNF012EMPRESA, MOVTOCONTABIL, SEQUENCIA
CPD002EMPRESA, MOVTOCONTABIL, SEQUENCIA
CPD009EMPRESA, MOVTOCONTABIL, SEQUENCIA
CRC001EMPRESA, MOVTOCONTABIL, SEQUENCIA
JunsoftAPIBoletosEMPRESA, MOVTOCONTABIL, SEQUENCIA
JunsoftEstoqueEMPRESA, MOVTOCONTABIL, SEQUENCIA
JunsoftIntegracaoEMPRESA, MOVTOCONTABIL, SEQUENCIA
JunsoftNFSe2EMPRESA, MOVTOCONTABIL, SEQUENCIA
JunsoftServiceFatAppEMPRESA, MOVTOCONTABIL, SEQUENCIA
MCA004EMPRESA, MOVTOCONTABIL, SEQUENCIA
MCA007EMPRESA, MOVTOCONTABIL, SEQUENCIA
MCA008EMPRESA, MOVTOCONTABIL, SEQUENCIA
MCA009EMPRESA, MOVTOCONTABIL, SEQUENCIA
MCA010EMPRESA, MOVTOCONTABIL, SEQUENCIA