Árvore de páginas

Ponto de Entrada

Descrição:

O Ponto de Entrada será executado na rotina Manut. de Tarefas (VEIVM130). Selecione a tarefa e clique em "Executar". Ao clicar em OK o Ponto de Entrada VM130AET será executado antes da gravação da tabela VAY.

Localização:

Atualizações \ Mov Atendimento \ Manut. de Tarefas (VEIVM130)

Eventos:

If lOk


If ( ExistBlock("VM130AET") )

If !(ExecBlock("VM130AET",.F.,.F.,{cRStatus, dDtRealiz, nRValSol, nRValLib}))

return .f.

EndIf

EndIf


If cRStatus == STR0006 // Aprovado

cTp := "1"

If VAX->(FieldPos("VAX_LIBERA")) <> 0

If VAX->VAX_LIBERA <> "0"

nRecVVA := VVA->(RecNo())

cQuery := "SELECT VVA.R_E_C_N_O_ VVARECNO FROM "+RetSQLName("VVA")+" VVA WHERE "

cQuery += "VVA.VVA_FILIAL='"+xFilial("VVA")+"' AND VVA.VVA_NUMTRA='"+left(VAY->VAY_NUMIDE+space(20),TamSx3("VVA_NUMTRA")[1])+"' AND VVA.D_E_L_E_T_=' '"

dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cSQLVVA , .F. , .T. )

While !( cSQLVVA )->( Eof() )

DbSelectArea("VVA")

DbGoTo(( cSQLVVA )->( VVARECNO ))

RecLock("VVA",.F.)

If VAX->VAX_LIBERA == "1" // Liberar para Faturamento

VVA->VVA_DTLIBF := dDataBase // Data da Liberacao

ElseIf VAX->VAX_LIBERA == "2" // Liberar para Entrega

VVA->VVA_DTLIBE := dDataBase // Data da Liberacao

EndIf

MsUnlock()

( cSQLVVA )->( DbSkip() )

EndDo

( cSQLVVA )->( dbCloseArea() )

If nRecVVA > 0

VVA->(DbGoTo(nRecVVA))

EndIf

DbSelectArea("VAY")

EndIf

EndIf

ElseIf cRStatus == STR0005 // Aprovado com restricoes

cTp := "2"

ElseIf cRStatus == STR0007 // Rejeitado

cTp := "3"

EndIf

DbSelectArea("VAY")

RecLock("VAY",.f.)

VAY->VAY_STATUS := cTp

VAY->VAY_VALLIB := nRValLib

VAY->VAY_OBSTAR := cRObsTar

if !Empty(dDtRealiz)

VAY->VAY_DATREA := dDtRealiz

Else

VAY->VAY_DATREA := dDatabase

Endif

VAY->VAY_USUEXE := __cUserID

VAY->VAY_DATEXE := dDataBase

VAY->VAY_HOREXE := Val(Substr(Time(),1,2)+Substr(Time(),4,2))

MsUnLock()


// PONTO DE ENTRADA no final depois execução da tarefa (aprovação ou não).

If ExistBlock("VM130DET")

ExecBlock("VM130DET",.f.,.f.)

EndIf


EndIf

EndIf

Programa Fonte:

VEIVM130.PRW

Função:

FS_EXECUTAR()

Parâmetros:
NomeTipoDescrição

cRStatus

Caractere

Tipo = Aprovado / Aprovado com restricoes / Rejeitado

dRealizDataData da Realização
nValSolNuméricoValor Solicitado
nValLibNuméricoValor Liberado
Retorno:
NomeTipoDescrição

lRetorno

Lógico

Retorna .t. / .f. para dar continuidade ao Processo

Exemplo:

Include totvs.ch

User Function VM130AET()


Local cStatus := ParamIXB[1]

Local dRealiz := ParamIXB[2]

Local nValSol := ParamIXB[3]

Local nValLib := ParamIXB[4]


Return MsgYesNo("Ponto de Entrada VM130AET executado com sucesso!" + CHR(13) + CHR(10) +;

"Status : " + cStatus + CHR(13) + CHR(10) +;

"Realiz : " + Dtos(dRealiz) + CHR(13) + CHR(10) +;

"Val Sol: " + Str(nValSol) + CHR(13) + CHR(10) +;

"Val Lib: " + Str(nValLib))