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)
| Botao | Atalho | Acao |
|---|---|---|
| Novo Registro | F5 | Foca o botao de selecao de arquivo |
| Cancelar Registro | F4 | Cancela edicao em curso |
| Atualizar Registros | F2 | Rollback + reabre consulta da empresa |
| Sair | F12 / Esc | Fecha a tela |
Grupo "Importacao da Folha de Pagamento"
| Campo visivel | Componente | Observacao |
|---|---|---|
| Empr. Folha | TDBEdit (read-only) | Mostra EMPRESA.CD_EMPRFOLHA da empresa logada. Pre-requisito para liberar a importacao. |
| Arquivo | TEdit (read-only) | Caminho do arquivo escolhido via dialogo Selecionar Diretorio (botao da lupa). |
| Progresso | TGauge | Barra de progresso, acompanha registros do arquivo referentes a empresa logada. |
| Importar Movimentos | TBitBtn (bold) | Executa a importacao do arquivo. |
Grupo "Erros"
| Campo visivel | Componente | Observacao |
|---|---|---|
| (memo) | TMemo (memErro) | Lista de registros rejeitados com nro da linha, mensagem e SQL gerado. |
Grupo "Apagar Importacao Realizada"
| Campo visivel | Componente | Observacao |
|---|---|---|
| Data Competencia | TwwDBDateTimePicker | DisplayFormat mm/yyyy. Competencia a ser desfeita. |
| Desfazer Importacao | TBitBtn (bold) | Apaga os movimentos contábeis (TP_DOCTO = 'F') do intervalo da competencia e o registro em IMPORTACAOFOLHA. |
Parametros que Influenciam
| Tabela | Campo | Efeito |
|---|---|---|
| EMPRESA | CD_EMPRFOLHA | Pre-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*.*). |
| PARMCONTABIL | CD_CONTACAIXA | Conta 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_EMPRFOLHAda empresa logada estiver vazio, a tela bloqueia importacao/desfazer/abrir e orienta configurar emADM002/Dados Adicionais. - Arquivo obrigatorio (W-0000):
btnImportarexige o campo Arquivo preenchido; caso contrario, focabtnAbrire levantaW-0000com "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 aCD_EMPRFOLHAsao contadas no progresso e processadas. - Competencia extraida do primeiro registro valido: a variavel
iMesAno(formatoMM/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
IMPORTACAOFOLHApara(CD_EMPRESA, DT_COMPETENCIA), o sistema pergunta via MessageBox "Este arquivo ja foi processado. Confirma a Reimportacao dos Dados?". Em caso afirmativo, apagaMOVTOCONTABILcomTP_DOCTO = 'F'no intervaloPRIMEIRODIAMES..ULTIMODIAMESe tambem o registroIMPORTACAOFOLHA. - Sequencia de importacao:
CD_IMPORTACAOFOLHAe gerado porMAX(CD_IMPORTACAOFOLHA) + 1filtrado por empresa (ou1se 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_FOLHAcom 9 parametros: empresa logada, empresa da folha (pos 1..18), data do registro (pos 19..26 emDD/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 viaremoveEspacos),CD_IMPORTACAOFOLHAe centro de custo (pos 248..265). Se a procedure retornarO_DS_MENSAGEMnao vazio, e disparadaExceptioncom o texto; capturada noon E: JException, incrementa contador de rejeitados e grava o erro no memo. - Tratamento de erros:
JExceptione classificada como rejeicao de linha (nao aborta);Exceptiongeral fecha o arquivo e aborta a importacao comW-0000. - Commit atomico: ao terminar o loop,
transaction.Commit+ novoStartTransaction. Se houve rejeitados, MessageBox informa a quantidade; caso contrario, "Importacao Concluida com Sucesso!". - Desfazer importacao: exige
Competenciapreenchida. Confirma via MessageBox "Tem Certeza que Deseja Desfazer a Importacao dos Dados ?". Se confirmado, apagaMOVTOCONTABILcomTP_DOCTO='F'no intervalo da competencia e oIMPORTACAOFOLHAcorrespondente. Cancelamento disparaException('Exclusao de Importacao Cancelada !'). - Limpeza de complemento:
removeEspacoscolapsa espacos duplos consecutivos em um unico espaco antes de passar o complemento para a procedure. - Ciclo de vida transacional:
FormClosefazRollback+Freedo DataModule +descarregarPrograma.
Datasets e SQL
| Dataset | Descricao |
|---|---|
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)
| Tabela | Operacoes |
|---|---|
| EMPRESA | DELETE, INSERT, SELECT, UPDATE |
| IMPORTACAOFOLHA | DELETE, INSERT, SELECT |
| MOVTOCONTABIL | DELETE, SELECT |
Tabelas de Leitura (SELECT)
| Tabela | Operacoes |
|---|---|
| PARMCONTABIL | SELECT |
Procedures Chamadas
| Procedure | Tabelas Acessadas |
|---|---|
| IMPORTA_FOLHA | EMPRESA (SELECT), MOVTOCONTABIL (INSERT), MOVTOCONTABILCC (INSERT), SEQUENCIA (SELECT/UPDATE) |
Tabelas via Procedures (acesso indireto)
| Tabela | Operacoes |
|---|---|
| EMPRESA | SELECT |
| MOVTOCONTABIL | INSERT |
| MOVTOCONTABILCC | INSERT |
| SEQUENCIA | SELECT, 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ódulo | Tabelas em comum |
|---|---|
| CEQ005 | EMPRESA, MOVTOCONTABIL |
| CEQ015 | EMPRESA, MOVTOCONTABIL |
| CNF001 | EMPRESA, MOVTOCONTABIL |
| CNF002 | EMPRESA, MOVTOCONTABIL |
| CNF007 | EMPRESA, MOVTOCONTABIL |
| CNF009 | EMPRESA, MOVTOCONTABIL |
| CNF011 | EMPRESA, MOVTOCONTABIL |
| CNF012 | EMPRESA, MOVTOCONTABIL |
| CPD002 | EMPRESA, MOVTOCONTABIL |
| CRC001 | EMPRESA, MOVTOCONTABIL |
| MCA004 | EMPRESA, MOVTOCONTABIL |
| MCA007 | EMPRESA, MOVTOCONTABIL |
| MCA010 | EMPRESA, MOVTOCONTABIL |
| MCA012 | EMPRESA, MOVTOCONTABIL |
| MCA013 | EMPRESA, MOVTOCONTABIL |
| MCB003 | EMPRESA, MOVTOCONTABIL |
| MCO005 | EMPRESA, MOVTOCONTABIL |
| MEQ003 | EMPRESA, MOVTOCONTABIL |
| MEQ005 | EMPRESA, MOVTOCONTABIL |
| MEQ006 | EMPRESA, MOVTOCONTABIL |
| MEQ015 | EMPRESA, MOVTOCONTABIL |
| MEQ020 | EMPRESA, MOVTOCONTABIL |
| MEQ023 | EMPRESA, MOVTOCONTABIL |
| MEQ024 | EMPRESA, MOVTOCONTABIL |
| MEQ037 | EMPRESA, MOVTOCONTABIL |
| MEQ039 | EMPRESA, MOVTOCONTABIL |
| MEQ042 | EMPRESA, MOVTOCONTABIL |
| MEQ044 | EMPRESA, MOVTOCONTABIL |
| MEQ049 | EMPRESA, MOVTOCONTABIL |
| MEQ059 | EMPRESA, 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ódulo | Tabelas em comum |
|---|---|
| MCB002 | EMPRESA, IMPORTACAOFOLHA, MOVTOCONTABIL, SEQUENCIA |
| MFC035 | EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA |
| MFI011 | EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA |
jCentroResultado | EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC, SEQUENCIA |
| CCB001 | EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC |
| CCB005 | EMPRESA, MOVTOCONTABIL, MOVTOCONTABILCC |
| CEQ005 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CEQ015 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CFC001 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CFC002 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CFC009 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF001 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF002 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF007 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF009 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF011 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CNF012 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CPD002 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CPD009 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| CRC001 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
JunsoftAPIBoletos | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
JunsoftEstoque | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
JunsoftIntegracao | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
JunsoftNFSe2 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
JunsoftServiceFatApp | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| MCA004 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| MCA007 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| MCA008 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| MCA009 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |
| MCA010 | EMPRESA, MOVTOCONTABIL, SEQUENCIA |