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)