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) |
---|