<Regra de negócio é o que define a forma de fazer o negócio, o processo definido e/ou as regras que devem ser contempladas. Devem ser descritas restrições, validações, condições e exceções do processo. Caso necessário, incluir neste capítulo também regras de integridade que devem ser observadas no momento do desenvolvimento>.
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
COLCAM2_dlgRecalculo.APP | Alteração | COLCAM2-> Cálculos-> Recálculo dos Apontamentos | - |
COLCAM2_dlgRecJava.APP | Criação | COLCAM2-> Cálculos-> Recálculo dos Apontamentos | - |
COLCAM2_dlgRecalculo.APP | Criação | COLCAM2-> Cálculos-> Recálculo dos Apontamentos das Turmas | - |
CCOLCAM_frmCargaJava.APL | Criação | COLCAM2-> Parâmetros-> Carregamento das Fórmulas | |
- Criação de Parâmetros
- Criar um parâmetro para controlar se utiliza a rotina de recálculo em Java ou Centura
i. Seção: COLCAM
ii. Entrada: FG_MET_RECALCULO
iii. Tipo: C
iv. Valor: C
v. Descrição: Método da rotina de Recálculo dos Apontamentos
vi. Valores Válidos: C = Centura / J = Java
vii. Cadastrar este parâmetro no PAR_PIMS com o valor padrão de “C”
viii. Alteração na tela de Parâmetros do Colcam
- Alteração no objeto: COLCAM_frmParCOLCAM.APP;
- Comentar os dados do parâmetro já existente na aba Gerais: COLCAM-> FG_CALCULO_JAVA;
- Incluir este novo parâmetro com campos para informar o código e recuperar a descrição, no lugar do parâmetro comentado acima;
- Criar um parâmetro para controlar se calcula o prêmio sobre a produção no apontamento
i. Seção: COLCAM
ii. Entrada: FG_PREM_PROD_APTO
iii. Tipo: C
iv. Valor: N
v. Descrição: Calcula o prêmio de produtividade com o apontamento
vi. Valores Válidos: S = Sim / N = Não
vii. Cadastrar este parâmetro no PAR_PIMS com o valor padrão de “N”
viii. Alteração na tela de Parâmetros do Colcam
- Alteração no objeto: COLCAM_frmParCOLCAM.APP;
- Incluir na aba “Apto.Automático”;
- Criar um “check” com este parâmetro com a descrição do parâmetro acima;
- Criação da opção para Carregamento das Fórmulas e do Serviço Java
- Criar um novo diálogo para carregamento das Formulas e do Serviço Java;
- Criar um novo objeto no COLCAM2 na opção: COLCAM2-> Parâmetros-> Carregamento das Fórmulas;
- Criar o objeto: CCOLCAM_frmCargaJava.APL na pasta FRAME_OA\FONTES igual as outras rotinas do Colcam que já existem nesta pasta;
- Só habilitar no menu esta nova opção se o parâmetro COLCAM-> FG_MET_RECALCULO estiver com “J”;
- Esta nova opção irá carregar um diálogo somente com um botão “OK”;
- O clique no botão OK irá acionar uma função que fará a chamado do Serviço Java para carregamento e compilação das fórmulas do COLCAM e aguardar a resposta do Java;
- Se o retorno for ok, fechar o diálogo e mostrar a mensagem que as Fórmulas foram carregadas com sucesso e fechar o diálogo;
- Se o retorno for algum erro, mostrar a mensagem de erro e fechar o diálogo;
- Precisamos estudar a melhor forma de mostrar os erros encontrados na execução da rotina Java, se será somente uma mensagem na tela ou gerar um log com as ocorrências e mostrar este log no final do processamento;
- Incluir a chamada desta mesma função na mensagem de SAM_Create do COLCAM.APP e COLCAM2.APP, pra poder carregar/compilar as fórmulas quando carregar o aplicativo;
- Só executar este carregamento se o parâmetro COLCAM-> FG_MET_RECALCULO estiver com “J”;
- Criação do diálogo para Recálculo dos Apontamentos em Java
- Cria o COLCAM2_dlgRecJava.APP, incluir um diálogo com o layout abaixo:
- Validações nos campos informados pelo usuário:
i. Data inicial não pode ser Menor ou Igual as seguintes datas:
- Geração do Histórico de Corte, recuperada da função fDtHistColprod( )
- Geração do Histórico de Mão de Obra, recuperada do parâmetro COLCAM-> DT_HISTMDO
- Geração do Histórico de Produção por Operação, recuperada do parâmetro COLCAM-> DT_PRODOPER
- Geração do Histórico Geral, recuperada do parâmetro COLCAM-> DT_HISTBOLETIM
- Cálculo da Folha de Pagamento, recuperada da função: fDtFechaFolha( )
ii. Data final não pode ser:
- Menor que a Data Inicial
- Menou ou Igual as seguintes datas:
- Geração do Histórico de Corte, recuperada da função fDtHistColprod( )
- Geração do Histórico de Mão de Obra, recuperada do parâmetro COLCAM-> DT_HISTMDO
- Geração do Histórico de Produção por Operação, recuperada do parâmetro COLCAM-> DT_PRODOPER
- Geração do Histórico Geral, recuperada do parâmetro COLCAM-> DT_HISTBOLETIM
- Cálculo da Folha de Pagamento, recuperada da função: fDtFechaFolha( )
- Os filtros terão as seguintes características:
i. Classe de Pagamento: F4 da tabela CLASSE_PGT mostrando CD_CLASSE, DE_CLASSE e filtrando INSTANCIA=:sINSTLOGIN e FG_TP_CLASSE = ‘R’
ii. Turma: F4 da tabela TURMAS mostrando CD_TURMA, DE_TURMA e filtrando INSTANCIA=:sINSTLOGIN
iii. Funcionário: F4 da tabela FUNCIONARS + CLASSE_PGT mostrando CD_FUNC, DE_FUNC, CD_CLASSE e filtrando FUNCIONARS.CD_CLASSE = CLASSE_PGT.CD_CLASSE e CLASSE_PGT.INSTANCIA = :sINSTLOGIN
iv. Situação: F4 dos valores fixos: V-Ativo/F-Férias/A-Afastado/Q-Quitação/D-Demitido
v. Operação: F4 da tabela OPERACOES mostrando CD_OPERACAO, DE_OPERACAO
vi. Verba: F4 da tabela VERBAS mostrando CD_VERBA, DE_VERBA e filtrando INSTANCIA=:sINSTLOGIN
- Quando o usuário clicar no OK
i. Validar novamente as datas inicial e final
ii. Validar se a folha de pagamento já foi calculada
- Se as variáveis gsFG_FECHA_FOLHA = "C" e gsFG_ALTER_FOLHA = 'N'
- Executar o sql nas tabelas BOLRUR_DE, FUNCIONARS e CLASSE_PGT igual a validação que já existe na rotina de recálculo atual e se encontrar lançamentos avisar ao usuário e não continuar;
iii. Recuperar o número do ID_CALCULO através da sequence já existente da “Functional Class: clsContrProc”-> CHAVE_PROCESSO
iv. Chamar a rotina Java de recálculo dos apontamentos
v. Criar um loop que ficará lendo a tabela COLCAM_RECALCULO, filtrandos os lançamentos do ID_CALCULO recuperado acima e populando a tabela tela com seus atributos
vi. Finalizar o loop somente quando na tabela COLCAM_RECALCULO for criado um lançamento com o CD_FASE_PROC = 999
- No final do processamento abrir o log gerado na tabela LOG_FILE, utilizando o diálogo SalModalDialog( dlgImprLOGFILE2, hWndMDI, "COLCAM", nCD_PROCESSO);
- Alteração no menu para abertura dos diálogos separados para Java ou Centura
- Inserir o objeto COLCAM2_dlgRecJava.APP nas Libraries do COLCAM2;
- Na mensagem de SAM_Create e PAM_CreateComplete do COLCAM2 incluir a atribuição da variável para controle da chamado do objeto de recálculo
Se o parâmetro COLCAM-> FG_MET_RECALCULO = ‘J’
OBJ_RECALCULO = ‘dlgRecJava’
Senão
OBJ_RECALCULO = ‘dlgRecalculo’
- Alterar o menu COLCAM2-> Cálculos-> Recálculo dos Apontamentos, para passar a controlar acesso e chamar a rotina a partir da variável OBJ_RECALCULO;
- Criar uma nova opção de menu COLCAM2-> Cálculos-> Recálculo dos Apontamentos das Turmas, no final do menu de Cálculos do COLCAM2
i. Esta opção irá chamar também o objeto: COLCAM2_dlgRecalculo
ii. Quando este diálogo for aberto por esta opção de menu, desabilitar as opções de “Recalcular qual Boletim” e deixar sempre marcada a opção “das Turmas”
- Criação da rotina de Recálculo dos Apontamentos em Java
- Cada uma das rotinas abaixo deve ser uma função que precisa funcionar isoladamente, pois pode ser chamada pelo recálculo ou por outras rotinas dentro do Colcam. A idéia é fazer com que as rotinas hoje existentes no Colcam sejam substituídas por estas novas escritas em Java. Por isso elas precisam funcionar de maneira independente;
- Criar uma função principal de Recálculo dos Apontamentos que irá chamar as funções na sequência abaixo;
- Para todas as rotinas listadas abaixo, executar para os apontamentos filtrados de acordo com os valores informados na tela;
- No início e fim de cada execução das rotinas abaixo, gerar no início e atualizar no final, o lançamento na tabela COLCAM_RECALCULO com a fase e data/hora de início e fim;
- A geração do log de ocorrências deverá ser sempre na tabela LOG_FILE. Atentar para a chave primária desta tabela na gravação dos log´s. (A rotina de cálculo para a folha já gera lançamentos nesta tabela);
- Ordem de execução das rotinas e geração da tabela COLCAM_RECALCULO
i. Deleção e Reinicialização dos Apontamentos
ii. Distribuição das Horas
iii. Recálculo da Quantidade Auxiliar
iv. Recálculo do Valor
v. Recálculo do Complemento
vi. Geração Automática de Verbas
vii. Geração das Verbas de Horas de Percurso
viii. Geração das Verbas de Prêmio sobre a Produção
ix. Recálculo da Diária Equivalente
x. Recálculo da Diária Convertida
xi. Crítica dos Apontamentos
xii. Cálculo do Prêmio sobre a Produção
- No final do processamento gerar o registro na tabela COLCAM_RECALCULO com
i. CD_FASE_PROC = 999
ii. DE_FASE_PROC = ‘Fim do Processamento’
iii. DT_HR_INI_FASE_PROC com a data/hora inicial do recálculo
iv. DT_HR_INI_FASE_PROC com a data/hora final do recálculo
- Prever nesta rotina de recálculo uma maneira de ela poder ser agendada. Neste precisamos pensar como armazenar/parametrizar:
i. Data/hora para execução;
ii. Como informar o período de recálculo;
iii. Como informar os filtros da tela;
- Rotinas individuais dos processamentos em Java
- Deleção e Reinicialização dos Apontamentos Gerados Automaticamente
i. Apagar os lançamentos da tabela BOLRUR_DE com FG_HORRURAL='S' ou FG_DESCANSO='S' ou FG_AUTOMATICA='S' ou FG_AUTOMATICA='I', obedecendo os filtros informados na tela;
ii. Apagar os lançamentos da tabela HORRURAL com FG_HORRURAL='S', obedecendo os filtros informados na tela;
iii. Executar um update na tabela BOLRUR_DE nos atributos abaixo, obedecendo os filtros informados na tela:
- CD_VB_COMPL=NULL
- VL_COMPL=NULL
- QT_COMPL=NULL
- CD_VB_COMPL2=NULL
- VL_COMPL2=NULL
- QT_COMPL2=NULL
- QT_HR_COMPL=NULL
- QT_HR_COMPL2=NULL
- QT_DIARIAS=NULL
- QT_DIAR_CONV=NULL
- VL_PREMIO=NULL
- Se o parâmetro COLCAM-> FG_TP_COMPL = "J":
- QT_QTDE_ANT=QT_AUXILIAR
- VL_COMPL=VL_TOTAL
iv. Apagar os lançamentos gerados na tabela de banco de horas: BANCO_HORAS com FG_ORIGEM=’0’, obedecendo os filtros informados na tela;
- Distribuição das Horas
i. Utilizar os fontes da Functional Class: clsDistHoraRural;
ii. Executar os procedimentos de inicialização da função: Function: fInicializeClass;
iii. Executar os procedimentos da função: Function: fDistHoraRural, eliminando somente a deleção dos apontamentos;
iv. Executar esta rotina de distribuição, somente para os registros que satisfizerem os filtros da tela;
- Recálculo da Quantidade Auxiliar
i. Recuperar os lançamentos da tabela BOLRUR_DE obedecendo os filtros da tela;
ii. Atualizar as variáveis para execução da fórmula de quantidade de acordo com os valores abaixo:
- gnWhere[0] = Quantidade Apontada (BOLRUR_DE-> QT_QTDE)
- gnWhere[1] = Valor Padrão (BOLRUR_DE-> VL_PADRAO)
- gnWhere[2] = Valor unitário apontado (BOLRUR_DE-> VL_UNITARIO)
- gnWhere[3] = Fator de conversão da quantidade definido na verba (VERBAS-> QT_CONV_TONEL)
- gnWhere[4] = Código do funcionário (BOLRUR_DE-> CD_FUNC)
- gnWhere[5] = Código da verba (BOLRUR_DE-> CD_VERBA)
- gnWhere[6] = Código da Operação (BOLRUR_DE-> CD_OPERACAO)
- gnWhere[7] = Código do Campeão (BOLRUR_DE-> CD_CAMPEAO)
- gnWhere[8] = Código do Índice Econômico (VERBAS-> CD_IND_ECO)
- gnWhere[9] = BOLRUR_DE-> CD_SAFRA
- gsWhere[0] = BOLRUR_DE-> CD_UPNIVEL1
- gsWhere[1] = BOLRUR_DE-> CD_UPNIVEL2
- gsWhere[2] = BOLRUR_DE-> CD_UPNIVEL3
- gdWhere[0] = Data do Apontamento (BOLRUR_DE-> DT_OPERACAO)
iii. Para cada lançamento atualizar o atributo QT_AUXILIAR de acordo com a regra, sempre arredondando com 6 casas decimais:
- Se a verba do apontamento possuir fórmula, então executar a fórmula (VERBAS-> NM_FORMULA_QTDE)
- QT_AUXILIAR = Valor retornado da fórmula
- Se a verba for do tipo “Hora Relógio” (VERBAS-> FG_HR_RELOG = ‘S’)
- QT_AUXILIAR = (((QT_QTDE - fInt(QT_QTDE)) * 100) / 60) + fInt(QT_QTDE)
- Se a verba for para conversão em toneladas (VERBAS-> FG_CONV_TONEL = ‘S’ e VERBAS-> QT_CONV_TONEL > 0)
- QT_AUXILIAR = (QT_QTDE / VL_PADRAO) * VERBAS-> QT_CONV_TONEL
- Se a verba for do tipo “Tonelada” (VERBAS-> FG_TONELADA = ‘S’)
- Recuperar o peso do Campeão de acordo com o modelo do campeão (vide regra na rotina de recálculo em Centura). Recomendo fazer uma função específica para esta tarefa.
- QT_AUXILIAR = (QT_QTDE * PESOBASE-> QT_PESOBASE) / 1000
- Se não for nenhum caso acima
- QT_AUXILIAR = QT_QTDE
- Atualizar no banco o atributo BOLRUR_DE-> QT_AUXILIAR com o valor calculado acima
- Recálculo do Valor
i. Recuperar os lançamentos da tabela BOLRUR_DE obedecendo os filtros da tela;
ii. Para cada lançamento atualizar o atributo VL_TOTAL com o resultado de retorno da execução da fórmula definida na verba (VERBAS-> NM_FORMULA);
iii. Atualizar as variáveis para execução da fórmula de Valor de acordo com os valores abaixo:
- Input[1] = Quantidade
Se COLCAM-> FG_MOD_BOL_FECH = ‘2’ ou ‘4’ e VERBAS-> FG_TONELADA = ‘S’
Se BOLRUR_DE-> FG_TP_PRECO = NULO
Input[1] = (BOLRUR_DE-> QT_QTDE * fFORMULA( 'FECHATON')) / 1000
Senão
Input[1] = (BOLRUR_DE-> QT_QTDE * fFORMULA( 'FECHATONP')) / 1000
Senão
Input[1] = BOLRUR_DE-> QT_UXILIAR
- Input[2] = Valor Unitario (BOLRUR_DE-> VL_UNITARIO)
- gnWhere[0] = Código do indexador (VERBAS-> CD_IND_ECO)
- gnWhere[1] = Código da Safra (BOLRUR_DE-> CD_SAFRA)
- gnWhere[2] = Número do Campeão (BOLRUR_DE-> CD_CAMPEAO)
- gnWhere[3] = Valor do Salário do Funcionário em horas (recuperado da função fRecSalario( CD_FUNC, DT_OPERACAO, 'H' )
- gnWhere[4] = Quantidade caminhões no dia (Sum(QT_AUXLIAR) para os lançamentos de mesma INSTANCIA, CD_FUNC, DT_OPERACAO e CD_VERBA)
- gnWhere[5] = Código do funcionário (BOLRUR_DE-> CD_FUNC)
- gnWhere[6] = Quantidade de Pessoas (fixo 0 zero)
- gnWhere[7] = Valor Padrão (BOLRUR_DE-> VL_PADRAO)
- gnWhere[8] = Código da Turma (BOLRUR_DE-> CD_TURMA)
- gnWhere[9] = Código da Operação (BOLRUR_DE-> CD_OPERACAO)
- gnWhere[10] = Quantidade Apontada (BOLRUR_DE-> QT_QTDE)
- gnWhere[11] = Valor do prêmio (fixo nulo)
- gnWhere[12] = Código do prêmio (fixo nulo)
- gnWhere[13] = Código do indicador do prêmio (fixo nulo)
- gnWhere[14] = Quantidade de dias proporcional a admissão (fixo nulo)
- gnWhere[15] = Quantidade Auxiliar ou Convertida (BOLRUR_DE-> QT_AUXILIAR)
- gsWhere[0] = BOLRUR_DE-> CD_UPNIVEL1
- gsWhere[1] = BOLRUR_DE-> CD_UPNIVEL2
- gsWhere[2] = BOLRUR_DE-> CD_UPNIVEL3
- gsWhere[3] = BOLRUR_DE-> FG_ACRESCIMO
- gsWhere[4] = BOLRUR_DE-> FG_TP_PRECO
- gdWhere[0] = Data do apontamento (BOLRUR_DE-> DT_OPERACAO)
- gdWhere[1] = Início cálculo do Prêmio (fixo nulo)
- gdWhere[2] = Fim cálculo do Prêmio (fixo nulo)
- gdWhere[3] = Início semana cálculo do Prêmio (fixo nulo)
- gdWhere[4] = Fim semana cálculo do Prêmio (fixo nulo)
iv. Executar a fórmula para cálculo do valor e atualizar no banco a tabela BOLRUR_DE, com os valores:
- VL_TOTAL = resultado da fórmula
- FG_CALCULADO = “S” se o VL_TOTAL != 0 ou FG_CALCULADO = ‘N’ se VL_TOTAL = 0 ou nulo
- FG_GER_FOLHA = SalStrLeftX( FG_GER_FOLHA, 1 ) || 'A'
- FG_BLOQUEADO =
- Se VL_TOTAL antes do recálculo = VL_TOTAL depois do recálculo e FG_BLOQUEADO = ‘N’ e COLCAM-> FG_CRITICA = 'S' e COLCAM-> FG_CRITICA_RECALC = ‘S’
i. FG_BLOQUEADO = ‘A’
- Senão
i. FG_BLOQUEADO = NULL
- Recálculo do Complemento
i. Só executar esta rotina se o parâmetro COLCAM-> FG_GER_COMPL = ‘S’;
ii. Utilizar os fontes da classe: Functional Class: clsfComplVerba para desenvolvimento desta rotina;
iii. Inicializar os parâmetros e variáveis contidos na Function: fInicializeClass, somente dos parâmetros e variáveis desta rotina;
iv. Executar os procedimentos contidos na Function: fComplVerba, somente o pedaço que está no teste “If fisFG_GER_COMPL = 'S'”, menos as rotinas de deleção e update de apontamentos já executadas na fase “a”;
v. Executar esta rotina de complemento, somente para os registros que satisfizerem os filtros da tela;
- Geração Automática de Verbas
i. Só executar esta rotina se o parâmetro COLCAM-> FG_GERA_VERBA= ‘S’;
ii. Utilizar os fontes da classe: Functional Class: clsfComplVerba para desenvolvimento desta rotina;
iii. Inicializar os parâmetros e variáveis contidos na Function: fInicializeClass, somente dos parâmetros e variáveis desta rotina;
iv. Executar os procedimentos contidos na Function: fComplVerba, somente o pedaço que está no teste “If fisFG_GERA_VERBA = 'S'”, menos as rotinas de deleção e update de apontamentos já executadas na fase “a”;
v. Executar esta rotina de geração, somente para os registros que satisfizerem os filtros da tela;
- Geração das Verbas de Horas de Percurso
i. Só executar esta rotina se o parâmetro COLCAM-> FG_GER_HITI_FUNC= ‘S’;
ii. Utilizar os fontes da classe: Functional Class: clsfComplVerba para desenvolvimento desta rotina;
iii. Inicializar os parâmetros e variáveis contidos na Function: fInicializeClass, somente dos parâmetros e variáveis desta rotina;
iv. Executar os procedimentos contidos na Function: fComplVerba, somente o pedaço que está no teste “If fisFG_GER_HITI_FUNC = 'S'”;
v. Executar esta rotina de geração, somente para os registros que satisfizerem os filtros da tela;
- Geração das Verbas de Prêmio sobre a Produção
i. Só executar esta rotina se o parâmetro COLCAM-> FG_GERA_PREM_APTO= ‘S’ ou FG_GERA_PREM_APTO = 'R' e CLASSE_PGT-> CD_VERBA_PPROD > 0;
ii. Utilizar os fontes da classe: Functional Class: clsfComplVerba para desenvolvimento desta rotina;
iii. Inicializar os parâmetros e variáveis contidos na Function: fInicializeClass, somente dos parâmetros e variáveis desta rotina;
iv. Executar os procedimentos contidos na Function: fComplVerba, somente o pedaço que está no teste “If (fisFG_GERA_PREM_APTO = 'S' or fisFG_GERA_PREM_APTO = 'R') and iCD_VERBA_PPROD > 0”, menos as rotinas de deleção de apontamentos já executadas na fase “a”;
v. Executar esta rotina de geração, somente para os registros que satisfizerem os filtros da tela;
- Recálculo da Diária Equivalente
i. Recuperar os lançamentos da tabela BOLRUR_DE obedecendo os filtros da tela e VERBAS-> FG_DIARIA = ‘S’;
ii. Para cada lançamento calcular a diária equivalente do apontamento com a regra, se o valor do parâmetro: COLCAM-> FG_RAT_PES_H = ‘1’
- QT_DIARIAS = VL_TOTAL / Somatória do VL_TOTAL para a mesma INSTANCIA, CD_FUNC, DT_OPERACAO e VERBAS-> FG_DIARIA=’S’
iii. Se o parâmetro COLCAM-> FG_RAT_PES_H = ‘2’
- QT_DIARIAS = HR_TRABAL / Somatória do HR_TRABAL para a mesma INSTANCIA, CD_FUNC, DT_OPERACAO e VERBAS-> FG_DIARIA=’S’
iv. Atualizar o atributo BOLRUR_DE-> QT_DIARIAS de acordo com a regra acima;
v. A regra total e os comandos para calcular esta diária estão no documento “Cálculo da Diária Equivalente.TXT”;
- Recálculo da Diária Convertida
i. Recuperar os lançamentos da tabela BOLRUR_DE obedecendo os filtros da tela;
ii. Para cada lançamento calcular a diária convertida do apontamento, de acordo com a regra:
- Recuperar o registro na tabela PARAM_OPER_VERBA para a chave INSTANCIA, CD_OPERACAO e CD_VERBA igual do apontamento ou CD_VERBA= 99999, recuperando o atributo PARAM_OPER_VERBA-> CD_IND_DIARIA;
- Calcular o valor da diária com a regra:
- Se o PARAM_OPER_VERBA-> CD_IND_DIARIA > 0, recuperar o valor do índice econômico na tabela VALINDICE-> VL_IND_ECO com a chave: INSTANCIA, CD_IND_ECO = PARAM_OPER_VERBA-> CD_IND_DIARIA e DT_REFER <= BOLRUR_DE-> DT_OPERACAO, ordenando por DT_REFER DESC;
- Se PARAM_OPER_VERBA-> CD_IND_DIARIA for nulo ou igual a zero, recupera o valor do salário/dia do funcionário com a função: fRecSalario( CD_FUNC, DT_OPERACAO, 'D' )
- Calcular o valor da diária convertida com o cálculo:
- QT_DIAR_CONV = VL_TOTAL / Valor da diária recuperado no item acima, arredondando com 2 casas decimais;
- Quando for montar os comandos sql pra esta rotina, me chame que vamos tentar otimizá-los;
iii. Atualizar o atributo BOLRUR_DE-> QT_DIAR_CONV de acordo com a regra acima;
- Crítica dos Apontamentos
i. Só executar esta rotina se o parâmetro COLCAM-> FG_CRITICA = ‘S’;
ii. Utilizar os fontes da classe: Functional Class: clsfCritica para desenvolvimento desta rotina;
iii. Inicializar os parâmetros e variáveis contidos na Function: fInicializeClass, somente dos parâmetros e variáveis desta rotina;
iv. Executar os procedimentos contidos na Function: fCriticaBolrur, somente para a tabela BOLRUR_DE
v. Executar esta rotina de crítica, somente para os registros que satistizerem os filtros da tela;
- Cálculo do Prêmio sobre a Produção
i. Só executar esta rotina se o parâmetro COLCAM-> FG_PREM_PROD_APTO = ‘S’
ii. Executar a rotina de cálculo do prêmio conforme descrito no documento “Cálculo do Prêmio.TXT”
iii. Executar esta rotina de cálculo do prêmio, somente para os registros que satistizerem os filtros da tela;
- 7. Dicionário de Dados
Tabela: COLCAM_RECALCULO
Atributo | Descrição | Tipo | Não Nulo |
ID_CALCULO | Identificação do processamento | N 20,0 | Sim |
CD_FASE_PROC | Código da fase de processamento | N 5,0 | Sim |
DE_FASE_PROC | Descrição da fase de processamento | C 100 | Sim |
DT_HR_INI_FASE_PROC | Data e hora de início da fase | S 10 | Não |
DT_HR_FIM_FASE_PROC | Data e hora de fim da fase | S 10 | Não |
ROWVERSION | Controle interno | N 5,0 | Não |
PK: ID_CALCULO,CD_FASE_PROC
- 8. Parâmetros
Seção | Entrada | Tipo | Valor | Valores Válidos | Descrição |
COLCAM | FG_MET_RECALCULO | C | C | C = Centura / J = Java | Método da rotina de Recálculo dos Apontamentos |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
- 9. Objetos
Obj. Principal | Tipo | Descrição | Posição | Menu |
COLCAM2_dlgRecalculo | P | Recálculo dos Apontamentos | 03.03.00.00.00.000 | Recálculo dos Apontamentos |
COLCAM2_dlgRecJava | P | Recálculo dos Apontamentos | 03.03.00.00.00.000 | Recálculo dos Apontamentos |
COLCAM2_dlgRecalculo | P | Recálculo dos Apontamentos das Turmas | 03.36.00.00.00.000 | Recálculo dos Apontamentos das Turmas |
| | | | |
| | | | |
Exemplo de Aplicação:
- Criar o campo “% Mínimo Espécie” (AAA_PERESP) onde o usuário informará o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação.
- Criar o campo “Referência Mínima para Cálculo” (AAA_REFCAL) onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades como a referência mínima para calcular o débito total do aluno.
- Criar o parâmetro MV_ACPARNE que definirá se as informações de “% Mínimo Espécie” e “Referência Mínima para Cálculo” serão obrigatórias.
- O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional>.
Tabelas Utilizadas
- SE2 – Cadastro de Contas a Pagar
- FI9 – Controle de Emissão de DARF>.