Histórico da Página
DESVIO DO 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: |
| ||||
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 | |||||||||||||||||||||||||
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. 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 |