Árvore de páginas

Ponto de entrada que permite bloquear uma ferramenta relacionada à um Bem ao se gerar uma OS.

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

MNTA295

Distribuição de Solicitação de Serviço

Rotina(s) envolvida(s)Nome Técnico
MNTA295Distribuição de Solicitação de Serviço
MNTA902Árvore Lógica

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

Ponto de Entrada chamado ao gerar uma OS a partir de uma SS.

Localização:

SIGAMNT: Atualizações/Ordens de Serviço/Corretiva

Programa Fonte:

MNTA295.PRX

Função:

MNTA295D()

Retorno:

NomeTipoDescriçãoObrigatório
lRetLógicoSe efetuará o bloqueio.Sim

 

Exemplo:

#Include 'Protheus.ch'

User Function MNTA295D()

Local lRet := .T.

//Efetua o bloqueio da Ferramenta se o Bem (ST9) estiver indicando uma ferramenta (T9_FERRAME)

If MsgYesNo("Será gerado um bloqueio para Ferramenta, Confirma?")

cCodFer := NGSEEK("ST9",STJ->TJ_CODBEM,1,"T9_RECFERR") //Código da Ferramenta

aFER := {}

aAdd(aFER,{"0",cCodFer,1,STJ->TJ_DTMPINI,STJ->TJ_HOMPINI,STJ->TJ_DTMPFIM,STJ->TJ_HOMPFIM,STJ->TJ_ORDEM,STJ->TJ_PLANO,STJ->TJ_CCUSTO})

a330FER(aFER[1],STJ->TJ_CODBEM)

Else

lRet := .F.

EndIf


Return lRet


Static Function A330FER(aFER,cCBEM)

 

Local dDATA,cFER,nFER

Local lBEMFERR := .F.

 

dDATA := aFER[4]

cFER := Left(aFER[2],Len(SH9->H9_FERRAM))

NGIFDBSEEK('SH4',cFER,1,.F.)

If SH4->H4_QUANT < aFER[3]

NGDBAREAORDE("STA",1)

cCHASTA := "FALTAM "+STR(aFER[3]-SH4->H4_QUANT,3)+" FERRAMENTAS"

cCHARET := Alltrim(cCHASTA)+Space(len(STA->TA_DESCRIC)-Len(cCHASTA))

cCODSTA := Alltrim(aFER[2])+Space(Len(STA->TA_CODIGO) - Len(Alltrim(aFER[2])))

cCODTAR := Alltrim(aFER[1])+Space(Len(STA->TA_TAREFA) - Len(Alltrim(aFER[1])))

cCHASTA := aFER[8]+aFER[9]+cCODTAR+"F"+cCODSTA+cCHARET

If !dbSeek(xFILIAL("STA")+cCHASTA)

MNTGRAVSTA(aFER[8],aFER[9],aFER[1],"F",aFER[2],;

"FALTAM "+STR(aFER[3]-SH4->H4_QUANT,3)+" FERRAMENTAS")

EndIf

EndIf

 

nFER := 0

NGDBAREAORDE("SH9",3)

dbSeek( xFilial("SH9") + "F" + cFER + DtoS(aFER[4]) , .T. )

If Eof() .or. xFilial("SH9") != SH9->H9_FILIAL .or. SH9->H9_TIPO != "F" .or. cFER != SH9->H9_FERRAM .or. SH9->H9_DTINI > aFER[4]

dbSkip(-1)

If Eof() .or. Bof() .or. xFilial("SH9") != SH9->H9_FILIAL .or. SH9->H9_TIPO != "F" .or. cFER != SH9->H9_FERRAM

dbSkip()

EndIf

EndIf

While !Eof() .And. SH9->H9_FILIAL == xFilial("SH9") .And. SH9->H9_TIPO == "F" .And. SH9->H9_FERRAM == cFER .And. SH9->H9_DTINI <= aFER[6]

If DtoS(aFER[4])+aFER[5] < DtoS(SH9->H9_DTFIM)+SH9->H9_HRFIM .and.;

DtoS(aFER[6])+aFER[7] > DtoS(SH9->H9_DTINI)+SH9->H9_HRINI

 

nFER += SH9->H9_QUANT

EndIf

NGDBSELSKIP("SH9")

End

 

If (SH4->H4_QUANT < (nFER+aFER[3]))

NGDBAREAORDE("STA",1)

cCHASTA := "FERRAMENTA NAO DISPONIVEL"

cCHARET := Alltrim(cCHASTA)+Space(len(STA->TA_DESCRIC)-Len(cCHASTA))

cCODSTA := Alltrim(aFER[2])+Space(Len(STA->TA_CODIGO)-Len(Alltrim(aFER[2])))

cCODTAR := Alltrim(aFER[1])+Space(Len(STA->TA_TAREFA)-Len(Alltrim(aFER[1])))

 

cCHASTA := aFER[8]+aFER[9]+cCODTAR+"F"+cCODSTA+cCHARET

If !dbSeek(xFILIAL("STA")+cCHASTA)

MNTGRAVSTA(aFER[8],aFER[9],aFER[1],"F",aFER[2],"FERRAMENTA NAO DISPONIVEL")

EndIf

EndIf

 

cALIASO := ALIAS()

 

If cCBEM <> Nil

If NGIFDBSEEK('ST9',cCBEM,1,.F.)

If !Empty(ST9->T9_RECFERR)

If ST9->T9_FERRAME == "F"

lBEMFERR := .T.

EndIf

EndIf

EndIf

EndIf

 

If lBEMFERR .Or. cCBEM = Nil

cMOTIVO := "OS.MANUT."+aFER[8]+" PLANO "

If Type("M->TI_PLANO") = "C"

cMOTIVO += M->TI_PLANO

ElseIf Type("M->TJ_PLANO") = "C"

cMOTIVO += M->TJ_PLANO

EndIf

MNTGRAVSH9(,,cMOTIVO,aFER[4],aFER[6],aFER[5],aFER[7],"F","1",aFER[2],aFER[3])

EndIf

SH9->(dbSetOrder(1))


Return Nil