Árvore de páginas

Descrição

Este Ponto de Entrada é executado antes da reapresentação do Browse na rotina de Orçamento Fases.

Observações

 

Exemplos

#include "Protheus.ch"

User Function OX011FIM()

MsgInfo("Ponte de Entrada OX011FIM chamado com Sucesso!","Atenção")

Return

Preview

Veja também

 

Idioma

Português(Brasil)

Versões

Todas

Sistemas Operacionais Suportados

Todos

Compatível com as Bases de Dados

Todas

Updates

 

Parâmetros

 

Retorno

 

Eventos de chamada do Ponto de Entrada

Function OXA011(cAlias,nReg,nOpc)
Local lRet := .f.
Local lVS1NUMLIS := .f.
Local lProbDes := .f.

// regras de permissao
if nOpc == 6 // FATURAR // Faturar orcamento:

if VS1->VS1_TIPORC == "1" .AND. VS1->VS1_STATUS == "F" .AND. !Empty(VS1->VS1_NUMNFI)
dbSelectArea("SF2")
dbSetOrder(1)
if dbSeek(xFilial("SF2")+VS1->VS1_NUMNFI+VS1->VS1_SERNFI)
If MsgYesNo(STR0073+ VS1->VS1_NUMNFI+"/"+VS1->VS1_SERNFI+". "+STR0074)
dbSelectArea("VS1")
Reclock("VS1",.f.)
VS1->VS1_STATUS := "X"
MsUnlock()
return .f.
Else
return .f.
Endif
Else
MsgInfo(STR0073+ VS1->VS1_NUMNFI+"/"+VS1->VS1_SERNFI+". "+STR0075,STR0037)
return .f.
Endif
Endif

if VS1->VS1_STATUS == "X" .or. VS1->VS1_STATUS == "C" .or. VS1->VS1_STATUS == "I" // Sempre, a menos que esteja cancelado ou ja faturado
MsgInfo(STR0020,STR0018)
return .f.
endif

lVS1NUMLIS := VS1->(FieldPos("VS1_NUMLIS")) > 0

if !Empty(VS1->VS1_NUMLIB)
dbSelectArea("VS6")
dbSetOrder(1)
dbSeek(xFilial("VS6")+VS1->VS1_NUMLIB)
If Empty(VS6->VS6_DATAUT) // OI001ATU(cNumOrc,cFaseAtu)
MsgInfo(STR0021 + IIF( (GetNewPar("MV_GLIBVEN","N") == "S") .AND. lVS1NUMLIS , Chr(13) + Chr(10) + Chr(13) + Chr(10) + STR0031 , "" ) ,STR0018)
lProbDes := .t.
Endif
Endif
If lVS1NUMLIS .and. !Empty(VS1->VS1_NUMLIS)
dbSelectArea("VS6")
dbSetOrder(1)
dbSeek(xFilial("VS6")+VS1->VS1_NUMLIS)
If Empty(VS6->VS6_DATAUT)
MsgInfo(STR0021 + Chr(13) + Chr(10) + Chr(13) + Chr(10) + STR0032 ,STR0018)
lProbDes := .t.
Endif
EndIf
If lProbDes
Return .f.
EndIf
DBSelectArea("VAI")
DBSetOrder(4)
DBSeek(xFilial("VAI")+__cUserId)
if VAI->VAI_FATBAL == "0"
MsgInfo(STR0022,STR0018)
return .f.
endif
endif
if VS1->VS1_DATVAL < ddatabase .and. nOpc <> 2 .and. nOpc <> 3 .and. nOpc <> 5
MsgInfo(STR0017,STR0018)
return .f.
endif
if nOpc == 4 // Alterar orcamento:
if VS1->VS1_STATUS != "0" // Somente quando estiver apenas digitado
MsgInfo(STR0019,STR0018)
return .f.
endif
endif
if nOpc == 5 // CANCELAR
if VS1->VS1_STATUS == "X" .or. VS1->VS1_STATUS == "C" .or. VS1->VS1_STATUS == "I" // Sempre, a menos que esteja cancelado ou ja faturado
MsgInfo(STR0023,STR0018)
return .f.
endif
endif
//
if nOpc == 6
DBSelectArea("VS1")
if !Empty(VS1->VS1_NUMAGE) .and. VS1->VS1_VTOTNF == 0
MsgInfo(STR0033,STR0034)
return .f.
endif
endif
if nOpc == 4 .or. nOpc == 6 .or. nOpc == 5
DBSelectArea("VS1")
if !Softlock("VS1")
return .f.
endif
endif
//
if ExistBlock("OA011APRO")
if !ExecBlock("OA011APRO",.f.,.f.,\{nOpc\})
MsUnlockAll()
Return(.f.)
Endif
Endif
//
lRet = OFIXX001(NIL,NIL,NIL,nOpc)
//
MsUnlockAll()
//
SA1->(MsUnlock()) // Nao remover, pois quando integrado com o Venda Direta o registro permanecia bloqueado
//
If ExistBlock("OA011FIM") // Ponto de Entrada no Final da chamada de Menu do Orçamento fases
ExecBlock("OA011FIM",.f.,.f.)
EndIf
//
If !lNoMBrow
DBSelectArea("VAI")
DBSetOrder(4)

Variáveis

 

Programa Fonte

OFIXA011

  • Sem rótulos