Histórico da Página
DESVIO
DA REGRA DODO PROCESSO NA GERAÇÃO DAS ORDENS DE SERVIÇO NO PLANO DE MANUTENÇÃO
Características do Requisito
Linha de Produto: | Microsiga Protheus |
Segmento: | Manufatura |
Módulo: | SIGAMNT - Manutenção de Ativos e Gestão de Frotas |
Rotina: |
Rotina
Nome Técnico
MNTA330
|
|
Chamados Relacionados
País(es): | Todos |
Banco(s) de Dados: | Todos |
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | Ponto de Entrada que possibilita alterar regra do plano de manutenção. |
Localização: | SIGAMNT: Atualizações/Plano de Manutenção/Plano |
Eventos:
Plano (MNTA330)
Programa Fonte: | MNTA330.PRX | |||||||||||||||||||||||||
Função: | MNTA330G() | |||||||||||||||||||||||||
Variáveis: |
| |||||||||||||||||||||||||
Retorno: |
|
Informações | ||
---|---|---|
| ||
O ponto de entrada é chamado após estar posicionado na tabela STF, sendo assim é possível acessar suas informações. |
Exemplo:
#Include 'Protheus.ch'
User Function MNTA330G()
Local _TIPO := PARAMIXB[1] // retorna o tipo de controle da manutenção
Local _CUMDOIS := PARAMIXB[2] //retorna se tipo do contador
//Verifica se a manutenção é controlada por contador e primeiro contador
If _TIPO == "C" .And. _CUMDOIS = 1
//neste exemplo irá gerar apenas uma ordem de serviço para cada manutenção com a data atual e contador a 100
If _CONPROX == 0
_CONPROX := 100
_DTPROX := dDatabase
Return .t.
EndIf
EndIf
Ao utilizar este ponto de entrada, todos os tipos de manutenções deverão ser tratadas neste ponto de entrada. |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#Include 'Protheus.ch'
/*
Neste exemplo de ponto de entrada está sendo tratado apenas as manutenções do tipo "C" - Contador.
Por se tratar de um exemplo não está sendo considerado outros tipos de acompanhamento.
É de responsabilidade do usuário adequá-lo para sua necessidade.
Caso seja utilizado em um ambiente com outros tipos de acompanhamento, sem o tratamento necessário, nenhuma manutenção será gerada para tais.
*/
User Function MNTA330G()
Local _TIPO := PARAMIXB[1] // retorna o tipo de controle da manutenção
Local _CUMDOIS := PARAMIXB[2] //retorna se tipo do contador
Local lRet := .F.
Local nINTEI := 0
Local nRESTO := 0
Local nPOSPO := 0
Local cVALOR
Local nINCDAT := 0
If _TIPO == "C" .And. _CUMDOIS == 1 //Verifica se a manutenção é controlada por contador e primeiro contador
If _CONPROX == 0
_CONPROX := STF->TF_CONMANU + STF->TF_INENMAN
_DTPROX := ((_CONPROX - M->T9_CONTACU) / M->T9_VARDIA)
Else
_CONPROX := _CONPROX+STF->TF_INENMAN
_DTPROX := (_CONPROX - M->T9_CONTACU) / M->T9_VARDIA
EndIf
nINTEI := Int(_DTPROX)
nRESTO := If(nINTEI < 0,_DTPROX*-1,_DTPROX) - If(nINTEI < 0,nINTEI*-1,nINTEI)
If nRESTO > 0
cVALOR := Alltrim(Str(nRESTO))
nPOSPO := At('.',cVALOR)
EndIf
nRESTO := If (nPOSPO > 0,Val(Substr(cVALOR,nPOSPO+1,1)),0)
If nRESTO > 5
nINCDAT := If(nINTEI <= 0,nINTEI-1,nINTEI+1)
Else
nINCDAT := nINTEI
EndIf
_DTPROX := M->T9_DTULTAC + nINCDAT
If _DTPROX <= M->TF_DTULTMA
_DTPROX := M->TF_DTULTMA + 1
EndIf
lRet := !(_DTPROX > M->TI_DATAFIM)
EndIf
Return lRet |