Árvore de páginas

Ponto de Entrada

Descrição:

Este Ponto de Entrada está localizado na rotina Req Servicos/apont (OFIOM030), executado após gravação da alteração de um registro, tem como finalidade possibilitar customizações.

Localização:

Atualizações \ Mov Oficina \ Req Servicos/apont (OFIOM030)

Eventos:

// Altera Servico

For i:=1 to Len(aServicos)


DbSelectArea("VO4")

DbSetOrder(8)


If aServicos[i,2] # M->VO4_TIPTEM


If !aServicos[i,1]

Loop

EndIf


EndIf


DbSeek(xFilial("VO4") + aServicos[i,10] )


Do While !Eof() .And. VO4->VO4_NOSNUM == aServicos[i,10] .And. VO4->VO4_FILIAL == xFilial("VO4")


If VO4->VO4_TIPTEM == aServicos[i,2] .And. VO4->VO4_CODSER == aServicos[i,5]


OFM0300011_PosicionaVO6( VO4->VO4_CODSER )


DbSelectArea("VO4")

If !RecLock("VO4",.F.)

Help(" ",1,"REGNLOCK")

lRet := .f.

DisarmTransaction()

Break

EndIf


VO4->VO4_FILIAL := xFilial("VO4")

VO4->VO4_TIPTEM := M->VO4_TIPTEM

VO4->VO4_FATPAR := M->VO4_FATPAR

VO4->VO4_LOJA := M->VO4_LOJA

VO4->VO4_DEPINT := M->VO4_DEPINT

VO4->VO4_DEPGAR := M->VO4_DEPGAR


If !Empty(M->VO4_TIPSER) .And. VO4->VO4_TIPSER == aServicos[i,13] .And. aServicos[i,1]

VO4->VO4_TIPSER := M->VO4_TIPSER

EndIf


If VO4->VO4_VHRDIG # "1"

VO4->VO4_VALHOR := FG_ValHor(VO4->VO4_TIPTEM,OM030TPVLSRV(VO4->VO4_TIPTEM,VO4->VO4_NOSNUM),VO4->VO4_VHRDIG,VO4->VO4_VALHOR,,,VO4->VO4_TIPSER,VO4->VO4_FATPAR,VO4->VO4_LOJA)

EndIf


VO4->VO4_VALSER := VO6->VO6_VALSER // GRAVAR o Valor do Serviço


MsUnLock()


DbSelectArea("VFB")

DbSetOrder(3)

DbSeek(xFilial("VFB")+VO1->VO1_PROVEI+VO1->VO1_LOJPRO+VO1->VO1_CHAINT+VO1->VO1_NUMOSV+"S")


While !Eof() .And. VFB->VFB_FILIAL+VFB->VFB_CODCLI+VFB->VFB_LOJA+VFB->VFB_CHAINT+VFB->VFB_NUMOSV+VFB->VFB_SERPEC == xFilial("VFB")+VO1->VO1_PROVEI+VO1->VO1_LOJPRO+VO1->VO1_CHAINT+VO1->VO1_NUMOSV+"S"


If VFB->VFB_CODSER == aServicos[i,5]


If !RecLock("VFB",.F.)

Help(" ",1,"REGNLOCK")

lRet := .f.

DisarmTransaction()

Break

EndIf


VFB->VFB_CODCLI := VO1->VO1_PROVEI

VFB->VFB_LOJA := VO1->VO1_LOJPRO

VFB->VFB_TIPTEM := M->VO4_TIPTEM

MsUnlock()


EndIf


DbSelectArea("VFB")

DbSkip()


EndDo


EndIf


DbSelectArea("VO4")

DbSkip()


EndDo


If aServicos[i,1] .and. VO2->(FieldPos("VO2_DATALT")) > 0

DbSelectArea("VO2")

RecLock("VO2",.f.)

VO2->VO2_DATALT := DDATABASE

MsUnLock()

EndIf


// Alteração de Tipo de Tempo

// Obs: FieldPos("VOU_SERINT") pois o campo é novo, antes o código não realizava essa alteração!

If aServicos[i,1] .And. VOU->(FieldPos("VOU_SERINT")) > 0

// Verificar se o Serviço está Relacionado e então

// alterar o Tipo de Tempo (o campo "VOU_TIPTEM" deve ser alterado)

// VO1

DbSelectArea("VO1")

DbSetOrder(1) // VO1_FILIAL + VO1_NUMOSV

If DbSeek(xFilial("VO1") + VO1->VO1_NUMOSV)

// VOU

DbSelectArea("VOU")

DbSetOrder(2) // VOU_FILIAL + VOU_CHASSI

If DbSeek(xFilial("VOU") + VO1->VO1_CHASSI)

While !VOU->(Eof()) .And. xFilial("VOU") == VOU->VOU_FILIAL .And. VO1->VO1_CHASSI == VOU->VOU_CHASSI .And. VO1->VO1_NUMOSV == VOU->VOU_NUMOSV

If aServicos[i,5] == VOU->VOU_CODSER .And. aServicos[i,2] == VOU->VOU_TIPTEM

RecLock("VOU", .F.)

VOU->VOU_TIPTEM := M->VO4_TIPTEM

MsUnlock()

EndIf


VOU->(dbSkip())

EndDo

EndIf

EndIf

EndIf


// Array

If aServicos[i,1] .and. !Empty(M->VO4_TIPSER)

aServicos[i,13] := M->VO4_TIPSER

EndIf

aServicos[i,1] := .F.

aServicos[i,2] := M->VO4_TIPTEM

aServicos[i,3] := M->VO4_FATPAR

aServicos[i,4] := M->VO4_LOJA

aServicos[i,7] := M->VO4_DEPINT

aServicos[i,8] := M->VO4_DEPGAR


Next


If !(lLimCre)

Help(" ",1,"CATALOGO")

EndIf


If !lOM030Auto

oLbItens:SetFocus()

EndIf


// Ponto de Entrada para verificações customizadas após Gravação da Alteração realizada com sucesso

If ExistBlock("OM030ADG")

ExecBlock("OM030ADG",.f.,.f.)

Endif


End Transaction

lMsHelpAuto := .f.

Programa Fonte:

OFIOM030.PRW

Função:

FS_ALTSRV()

Parâmetros:

N/A

Retorno:

N/A

Exemplo:

Include totvs.ch

/*

ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍ»±±

±±ºPrograma ³ OM030ADG º Autor ³ MIL º Data ³ 21/08/2020 º±±

±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍ͹±±

±±ºDescricao ³ PE executado na rotina Rotina Req Servicos/apont (OFIOM030)º±±

±±º ³ para verificações customizadas após gravação da alteração º±±

±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

*/

User Function OM030ADG()

MsgAlert("Ponto de Entrada OM030ADG executado com sucesso!", "Atenção")

Return .t.