Ponto de Entrada
Descrição: | Este ponto de entrada está localizado na rotina Orc. por Fases (OFIXA011). Sua funcionalidade permite que o usuário crie/atualize as opções do Ações Relacionadas do browse principal da rotina Orc. por Fases (OFIXA011). |
Parâmetros: | aRotina := array contendo as opções de interação padrão do browse principal da rotina |
Eventos: | /* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Funcao ³ OFIXA011 ³ Autor ³ Andre Luis Almeida / Luis Delorme ³ Data ³ 26/01/09 ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descricao ³ Orcamento de Pecas e Servicos ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Uso ³ Veiculos ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ Function OFIXA011(_nNumAge,lNoMBrowse)
Local aRegs := {} Local cFasOrcFil := "" Local ii := 0 Default _nNumAge := ""
Private cCadastro := STR0001 // Orcamento de Pecas e Servicos Private aRotina := MenuDef() Private cFilAg := IIF( !Empty(_nNumAge), " .AND. VS1->VS1_NUMAGE = '" + _nNumAge + "' " , "" ) Private cFilAgend := IIF( !Empty(_nNumAge), " AND VS1_NUMAGE = '" + _nNumAge + "' " , "" ) Private nCloOrc := .f. Private nAviso := 0 Private lLibPV := .f. //
Private lNoMBrow := lNoMBrowse
if Empty(Alltrim(GetNewPar("MV_FMLPECA",""))) MsgInfo(STR0076) return .f. endif /// //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Pergunte para Configuracao da Rotina ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ AADD(aRegs,{STR0055, STR0055, STR0055, "mv_ch1", "N", 1 , 0, 1, "C", '' , "mv_par01", STR0056, STR0056 , STR0056 , "" , "" , STR0057 , STR0057 , STR0057 , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , {STR0058,STR0059,STR0060},{},{}}) If cGetVersao >= "12" .and. FMXAjustaSX1 FMX_AJSX1("OF011F12",aRegs) ElseIf cGetVersao < "12" AjustaSX1("OF011F12",aRegs) EndIf
Pergunte("OF011F12",.f.) nVerParFat := Mv_Par01
If !lNoMBrowse SetKey(VK_F12,{||FSO11F12()}) EndIf
///////////////////////////////////////////////////////////////////////////////////////////////////// // Valida se a empresa tem autorizacao para utilizar os modulos de Oficina e Auto Peças // ///////////////////////////////////////////////////////////////////////////////////////////////////// If !AMIIn(14,41) .or. !FMX_AMIIn({"OFIXA011","OFIOM350" }) Return() EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Quando a rotina for chamada do Agendamento nao pode ³ //³ FATURAR e CLONAR orcamento, pois os valores totais da ³ //³ VS1, VS3 e VS4 pode não estar corretos ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ if !Empty(_nNumAge) aRotina := MenuDefAG() endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Ponto de entrada para alteração do aRotina (menu) ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If ( ExistBlock("OXA011BOT") ) // Ponto de entrada para adicionar botões na mbrowse na tela de orçamentos fases aRotina := ExecBlock("OXA011BOT",.f.,.f.,{aRotina}) EndIf If lNoMBrowse dbSelectArea("VO1") If ( nOpc <> 0 ) .And. !Deleted() bBlock := &( "{ |a,b,c,d,e| " + aRotina[ nOpc,2 ] + "(a,b,c,d,e) }" ) Eval( bBlock, Alias(), (Alias())->(Recno()),nOpc) EndIf Else //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Endereca a funcao de BROWSE ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ DBSelectArea("VAI") DBSetOrder(4) DBSeek(xFilial("VAI")+__cUserId) cFilVend := "" cFilFase := "" if VAI->VAI_TIPTEC == "4" cFilVend := " VS1_CODVEN = '"+VAI->VAI_CODVEN+"' AND " endif if Alltrim(VAI->VAI_FASORC) != "" for ii := 1 to Len(Alltrim(VAI->VAI_FASORC)) cFasOrcFil += subs(Alltrim(VAI->VAI_FASORC),ii,1)+"," Next cFilFase := " AND VS1_STATUS IN " + FORMATIN(left(cFasOrcFil,len(cFasOrcFil)-1),',') // 'C','0','1'... endif // dbSelectArea("VS1") dbSetOrder(1) // If ExistBlock("POA011FT") // Ponto de Entrada para Filtro no Browse cFiltroX11 := ExecBlock("POA011FT",.f.,.f.,{.f.}) // FilBrowse('VS1',{}, cFiltroX11) // Filtra as compras elseIf ExistBlock("POXA011FBR") // Ponto de Entrada para Filtro no Browse cFiltroX11 := ExecBlock("POXA011FBR",.f.,.f.,{.f.}) cFiltroX11 := cFilVend + " (VS1_TIPORC = '1' OR VS1_TIPORC = '2') " + cFilFase + cFilAgend + " AND " + cFiltroX11 // Filtra as compras Else cFiltroX11 := cFilVend + " (VS1_TIPORC = '1' OR VS1_TIPORC = '2') " + cFilFase + cFilAgend // Filtra as compras endif mBrowse( 6, 1,22,75,"VS1",,,,,,OXA011LEG(),,,,,,,,cFiltroX11) // VS1->(dbClearFilter()) EndIf
Return |
Programa Fonte: | OFIXA011.PRW |
Função: | OFIXA011 |
Retorno: | aRotina := array atualizado pelo ponto de entrada contendo as opções de interação do browse principal da rotina |
Exemplo:
#include "PROTHEUS.CH"
/*
===============================================================================
###############################################################################
##+----------+------------+-------+-----------------------+------+----------+##
##|Função | OXA011BOT | Autor | Otavio Favarelli | Data | 09/01/15 |##
##+----------+------------+-------+-----------------------+------+----------+##
##|Descrição | Ponto de Entrada no Ações Relacionadas do Orc. por Fases |##
##+----------+--------------------------------------------------------------+##
##|Uso | Auro-Peças e Oficina |##
##+----------+--------------------------------------------------------------+##
###############################################################################
===============================================================================
*/
User Function OXA011BOT()
If !FM_PILHA("OFIOM350")
aadd(aRotina,{ "Consulta Locação" ,"FS41P01" , 0 , 1})
EndIf
Return(aRotina)