Consistência de Projeto
O objetivo desta tela é descrever o tratamento de consistência de planilhas de Serviço e Atividades e Projeto baseado em fórmulas pré-definidas.
Nesta tela é possível Validar a fórmula criada para as Planilhas de Serviços, Planilha de Atividades e o Projeto.
Para isso deve-se cadastrar uma fórmula (Menu - Opções - Parâmetros - TOTVS Obras e Projetos - Projetos - Planilha de Serviços/Planilha de Atividades ou Projeto) no campo Fórmula de Consistência, com a fórmula que tratam os dados da validação.
A consistência poderá ser feita a qualquer momento através do menu principal e também ao gerar uma revisão, desde que esteja parametrizado;
Exemplo:
Este processo visa fornecer informações de quais serviços da Planilha de Serviços, quais atividades da Planilha de Atividades e quais possíveis irregularidades podem existir no projeto em aberto.
Exemplos de Tipos de Fórmulas:
Devem ser implementadas funções de fórmulas para que atendam as validações das planilhas e projetos, algumas idéias de validações, como as listadas abaixo já podem ser testadas e ajustadas:
*Para as validações abaixo foram utilizadas as funções de fórmula com os seguintes códigos: 97, 98, TABTRF, QTDEALOCADAATVSRV, CONSISTIRCOTACAOPRJ.
• Verificar se existe algum insumo sem preço
SELECT COUNT(1) TOTAL FROM MISM (NOLOCK) WHERE (SELECT COUNT(1) TOTAL FROM MISMPRC (NOLOCK) WHERE IDPRJ = :FRM_98 AND CODCOLIGADA = :FRM_97 AND IDISM = MISM.IDISM AND PRECOATIVO = 1 ) = 0 AND IDPRJ = :FRM_98 AND CODCOLIGADA = :FRM_97
EXECSQL('2222'); Se RESULTSQL('2222','total') > 0 Entao 0 Senao 1 FimSe
• Verificar se a unidade do preço é a mesma do insumo e se são compatíveis
SELECT COUNT(1) TOTAL FROM MISM (NOLOCK) INNER JOIN MISMPRC (NOLOCK) ON MISM.CODCOLIGADA = MISMPRC.CODCOLIGADA AND MISM.IDPRJ = MISMPRC.IDPRJ AND MISM.IDISM = MISMPRC.IDISM LEFT JOIN TUND TUNDISM (NOLOCK) ON TUNDISM.CODUND = MISM.CODUND LEFT JOIN TUND TUNDPRC (NOLOCK) ON TUNDPRC.CODUND = MISMPRC.CODUND WHERE TUNDISM.CODUNDBASE <> TUNDPRC.CODUNDBASE AND MISM.CODCOLIGADA = :FRM_97 AND MISM.IDPRJ = :FRM_98
EXECSQL('2223'); Se RESULTSQL('2223','total') > 0 Entao 0 Senao 1 FimSe
• Verificar se existe cotação de moeda para efetuar indexação ou conversão do preço
CONSISTIRCOTACAOPRJ
• Verificar se existe alguma tarefa sem valor
Se TABTRF('ATIVA') = 1 Entao Se TABTRF('VALORTOTAL') > 0 Entao 1 Senao 0 FimSe FimSe
• Verificar se existe alguma tarefa com quantidade zerada
Se TABTRF('ATIVA') = 1 Entao Se TABTRF('SERVICO') = 1 Entao Se TABTRF('QUANTIDADE') > 0 Entao 1 Senao 0 FimSe Senao 1 FimSe Senao 1 FimSe
• O sistema deverá garantir que todos os serviços foram totalmente alocados, nunca com quantidades superiores as previstas na Planilha de Serviço
Se TABTRF('SERVICO') = 1 Entao Se QTDEALOCADAATVSRV <> TABTRF('QUANTIDADE') Entao 0 Senao 1 FimSe SeNao 1 FimSe