Child pages
  • ER_AGRPIMS01-28_Melhoria_Performance_no_Recalculo_dos_apontamentos_dos_Rurais

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

PIMSCS

Módulo

Colcam

Segmento Executor

Agroindústria

Projeto1

AGRO PIMS

IRM1

AGRPIMS01-25

Requisito1

AGRPIMS01-28

Subtarefa1

AGRPIMS01-38

País

( x ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

(Obrigatório)

Objetivo

 Este projeto tem como objetivo reescrever a rotina de Recálculo dos Apontamentos do Colcam na tecnologia Java. Esta mudança irá proporcionar maior rapidez na execução da rotina e irá criar a possibilidade de agendamento da execução da mesma.

 

<Nesta etapa informar o objetivo da especificação do requisito, ou seja, o que a funcionalidade deve fazer. Exemplo: Permitir que o usuário defina o percentual mínimo em espécie (dinheiro), a referência mínima para calculo dos débitos do aluno e o período de validade do parâmetro de negociação>.

(Obrigatório)

Definição da Regra de Negócio

 

<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 
  1. Criação de Parâmetros
    1. 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

          1. Alteração no objeto: COLCAM_frmParCOLCAM.APP;
          2. Comentar os dados do parâmetro já existente na aba Gerais: COLCAM-> FG_CALCULO_JAVA;
          3. Incluir este novo parâmetro com campos para informar o código e recuperar a descrição, no lugar do parâmetro comentado acima;
    1. 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

          1. Alteração no objeto: COLCAM_frmParCOLCAM.APP;
          2. Incluir na aba “Apto.Automático”;
          3. Criar um “check” com este parâmetro com a descrição do parâmetro acima;

 

  1. Criação da opção para Carregamento das Fórmulas e do Serviço Java
    1. Criar um novo diálogo para carregamento das Formulas e do Serviço Java;
    2. Criar um novo objeto no COLCAM2 na opção: COLCAM2-> Parâmetros-> Carregamento das Fórmulas;
    3. Criar o objeto: CCOLCAM_frmCargaJava.APL na pasta FRAME_OA\FONTES igual as outras rotinas do Colcam que já existem nesta pasta;
    4. Só habilitar no menu esta nova opção se o parâmetro COLCAM-> FG_MET_RECALCULO estiver com “J”;
    5. Esta nova opção irá carregar um diálogo somente com um botão “OK”;
    6. 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;
    7. 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;
    8. Se o retorno for algum erro, mostrar a mensagem de erro e fechar o diálogo;
    9. 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;
    10. 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;
    11. Só executar este carregamento se o parâmetro COLCAM-> FG_MET_RECALCULO estiver com “J”;

 

 

  1. Criação do diálogo para Recálculo dos Apontamentos em Java
    1. Cria o COLCAM2_dlgRecJava.APP, incluir um diálogo com o layout abaixo:

             

          

    1. Validações nos campos informados pelo usuário:

                                                   i.      Data inicial não pode ser Menor ou Igual as seguintes datas:

          1. Geração do Histórico de Corte, recuperada da função fDtHistColprod( )
          2. Geração do Histórico de Mão de Obra, recuperada do parâmetro COLCAM-> DT_HISTMDO
          3. Geração do Histórico de Produção por Operação, recuperada do parâmetro COLCAM-> DT_PRODOPER
          4. Geração do Histórico Geral, recuperada do parâmetro COLCAM-> DT_HISTBOLETIM
          5. Cálculo da Folha de Pagamento, recuperada da função: fDtFechaFolha( )

                                                  ii.      Data final não pode ser:

          1. Menor que a Data Inicial
          2. Menou ou Igual as seguintes datas:
            1. Geração do Histórico de Corte, recuperada da função fDtHistColprod( )
            2. Geração do Histórico de Mão de Obra, recuperada do parâmetro COLCAM-> DT_HISTMDO
            3. Geração do Histórico de Produção por Operação, recuperada do parâmetro COLCAM-> DT_PRODOPER
            4. Geração do Histórico Geral, recuperada do parâmetro COLCAM-> DT_HISTBOLETIM
            5. Cálculo da Folha de Pagamento, recuperada da função: fDtFechaFolha( )
    1. 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

    1. 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

          1. Se as variáveis gsFG_FECHA_FOLHA = "C" e gsFG_ALTER_FOLHA = 'N'
          2. 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

    1. No final do processamento abrir o log gerado na tabela LOG_FILE, utilizando o diálogo SalModalDialog( dlgImprLOGFILE2, hWndMDI, "COLCAM", nCD_PROCESSO);

 

  1. Alteração no menu para abertura dos diálogos separados para Java ou Centura
    1. Inserir o objeto COLCAM2_dlgRecJava.APP nas Libraries do COLCAM2;
    2. 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’

    1. 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;
    2. 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”

 

  1. Criação da rotina de Recálculo dos Apontamentos em Java
    1. 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;
    2. Criar uma função principal de Recálculo dos Apontamentos que irá chamar as funções na sequência abaixo;
    3. Para todas as rotinas listadas abaixo, executar para os apontamentos filtrados de acordo com os valores informados na tela;
    4. 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;
    5. 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);
    6. 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

    1. 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

    1. 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;

 

  1. Rotinas individuais dos processamentos em Java
    1. 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:

          1. CD_VB_COMPL=NULL
          2. VL_COMPL=NULL
          3. QT_COMPL=NULL
          4. CD_VB_COMPL2=NULL
          5. VL_COMPL2=NULL
          6. QT_COMPL2=NULL
          7. QT_HR_COMPL=NULL
          8. QT_HR_COMPL2=NULL
          9. QT_DIARIAS=NULL
          10. QT_DIAR_CONV=NULL
          11. VL_PREMIO=NULL
          12. Se o parâmetro COLCAM-> FG_TP_COMPL = "J":
            1. QT_QTDE_ANT=QT_AUXILIAR
            2. 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;

 

    1. 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;

 

    1. 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:

          1. gnWhere[0] = Quantidade Apontada (BOLRUR_DE-> QT_QTDE)
          2. gnWhere[1] = Valor Padrão (BOLRUR_DE-> VL_PADRAO)
          3. gnWhere[2] = Valor unitário apontado (BOLRUR_DE-> VL_UNITARIO)
          4. gnWhere[3] = Fator de conversão da quantidade definido na verba (VERBAS-> QT_CONV_TONEL)
          5. gnWhere[4] = Código do funcionário (BOLRUR_DE-> CD_FUNC)
          6. gnWhere[5] = Código da verba (BOLRUR_DE-> CD_VERBA)
          7. gnWhere[6] = Código da Operação (BOLRUR_DE-> CD_OPERACAO)
          8. gnWhere[7] = Código do Campeão (BOLRUR_DE-> CD_CAMPEAO)
          9. gnWhere[8] = Código do Índice Econômico (VERBAS-> CD_IND_ECO)
          10. gnWhere[9] = BOLRUR_DE-> CD_SAFRA
          11. gsWhere[0] = BOLRUR_DE-> CD_UPNIVEL1
          12. gsWhere[1] = BOLRUR_DE-> CD_UPNIVEL2
          13. gsWhere[2] = BOLRUR_DE-> CD_UPNIVEL3
          14. 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:

    1. Se a verba do apontamento possuir fórmula, então executar a fórmula (VERBAS-> NM_FORMULA_QTDE)
      1. QT_AUXILIAR = Valor retornado da fórmula
      2. Se a verba for do tipo “Hora Relógio” (VERBAS-> FG_HR_RELOG = ‘S’)
        1. QT_AUXILIAR = (((QT_QTDE - fInt(QT_QTDE)) * 100) / 60) + fInt(QT_QTDE)
        2. Se a verba for para conversão em toneladas (VERBAS-> FG_CONV_TONEL = ‘S’ e VERBAS-> QT_CONV_TONEL > 0)
        3. QT_AUXILIAR = (QT_QTDE / VL_PADRAO) * VERBAS-> QT_CONV_TONEL
        4. Se a verba for do tipo “Tonelada” (VERBAS-> FG_TONELADA = ‘S’)
        5. 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.
        6. QT_AUXILIAR = (QT_QTDE * PESOBASE-> QT_PESOBASE) / 1000
        7. Se não for nenhum caso acima
        8. QT_AUXILIAR = QT_QTDE
        9. Atualizar no banco o atributo BOLRUR_DE-> QT_AUXILIAR com o valor calculado acima

 

    1. 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:

          1. 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

          1. Input[2]  = Valor Unitario (BOLRUR_DE-> VL_UNITARIO)
          2. gnWhere[0] = Código do indexador (VERBAS-> CD_IND_ECO)
          3. gnWhere[1] = Código da Safra (BOLRUR_DE-> CD_SAFRA)
          4. gnWhere[2] = Número do Campeão (BOLRUR_DE-> CD_CAMPEAO)
          5. gnWhere[3] = Valor do Salário do Funcionário em horas (recuperado da função fRecSalario( CD_FUNC, DT_OPERACAO, 'H' )
          6. gnWhere[4] = Quantidade caminhões no dia (Sum(QT_AUXLIAR) para os lançamentos de mesma INSTANCIA, CD_FUNC, DT_OPERACAO e CD_VERBA)
          7. gnWhere[5] = Código do funcionário (BOLRUR_DE-> CD_FUNC)
          8. gnWhere[6] = Quantidade de Pessoas (fixo 0 zero)
          9. gnWhere[7] = Valor Padrão  (BOLRUR_DE-> VL_PADRAO)
          10. gnWhere[8] = Código da Turma  (BOLRUR_DE-> CD_TURMA)
          11. gnWhere[9] = Código da Operação  (BOLRUR_DE-> CD_OPERACAO)
          12. gnWhere[10] = Quantidade Apontada  (BOLRUR_DE-> QT_QTDE)
          13. gnWhere[11] = Valor do prêmio (fixo nulo)
          14. gnWhere[12] = Código do prêmio (fixo nulo)
          15. gnWhere[13] = Código do indicador do prêmio (fixo nulo)
          16. gnWhere[14] = Quantidade de dias proporcional a admissão (fixo nulo)
          17. gnWhere[15] = Quantidade Auxiliar ou Convertida  (BOLRUR_DE-> QT_AUXILIAR)
          18. gsWhere[0] =  BOLRUR_DE-> CD_UPNIVEL1
          19. gsWhere[1] =  BOLRUR_DE-> CD_UPNIVEL2
          20. gsWhere[2] =  BOLRUR_DE-> CD_UPNIVEL3
          21. gsWhere[3] =  BOLRUR_DE-> FG_ACRESCIMO
          22. gsWhere[4] =  BOLRUR_DE-> FG_TP_PRECO
          23. gdWhere[0] = Data do apontamento  (BOLRUR_DE-> DT_OPERACAO)
          24. gdWhere[1] = Início cálculo do Prêmio (fixo nulo)
          25. gdWhere[2] = Fim cálculo do Prêmio (fixo nulo)
          26. gdWhere[3] = Início semana cálculo do Prêmio (fixo nulo)
          27. 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:

          1. VL_TOTAL = resultado da fórmula
          2. FG_CALCULADO = “S” se o VL_TOTAL != 0 ou FG_CALCULADO = ‘N’ se VL_TOTAL = 0 ou nulo
          3. FG_GER_FOLHA = SalStrLeftX( FG_GER_FOLHA, 1 ) || 'A'
          4. FG_BLOQUEADO =
            1. 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’

            1. Senão

                                                                                                                           i.      FG_BLOQUEADO = NULL

 

  1. 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;

 

  1. 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;

 

  1. 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;

 

  1. 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;

 

  1. 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’

          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’

          1. 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”;

 

  1. 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:

      1. 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;
      2. Calcular o valor da diária com a regra:
      3. 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;
      4. 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' )
      5. Calcular o valor da diária convertida com o cálculo:
        1. QT_DIAR_CONV = VL_TOTAL / Valor da diária recuperado no item acima, arredondando com 2 casas decimais;
      6. 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;

 

  1. 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;

 

  1. 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;

 

 

  1. 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

 

  1. 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. 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>.

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO

 

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

 

 

 

Programas

 

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

 

Cadastro de Papéis

<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

 

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 


[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.