Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice
stylenone

01. 

...

VISIÓN GENERAL

Un empleado (en este escenario, lo llamamos Participante) necesita realizar un viaje corporativo, por algún motivo, sea este cual fuera (ej: atención/visita al cliente, reunión de negocios, evento). Entonces esta rutina tendrá como principal objetivo registrar la solicitud de este viaje, considerando informaciones relevantes para controlar los gastos del viaje y sus

...

Um funcionário (neste cenário, o chamamos de Participante) necessita fazer uma viagem corporativa, por algum motivo, seja ele qual for (ex: atendimento/visita ao cliente, reunião de negócios, evento). Então esta rotina terá como principal objetivo registrar a solicitação dessa viagem, contemplando informações relevantes para controlar as despesas da viagem e suas políticas.

Informações
titleImportante

Esta rotina contempla apenas solicitações do Protheus. As viagens integradas com o Reserve não geram solicitação, pois são compradas e emitidas diretamente pela agência.

Nos itens da viagem será possível selecionar e justificar/detalhar os seguintes serviços:

rutina considera solamente solicitudes del Protheus. Los viajes integrados con el Reserve no generan solicitud, porque se compran y emiten directamente en la agencia.


En los ítems del viaje se podrán seleccionar y justificar/detallar los siguientes servicios:

  • Vuelo
  • Hotel
  • Automóvil
  • Por carretera
  • Seguros
  • Otros
  • Vôo
  • Hotel
  • Carro
  • Rodoviário
  • Seguros
  • Outros


Aviso
titleAtenção
  • Estes itens de serviço são parametrizáveis e estão no Assistente de Configuração. Caso a empresa não ofereça algum destes itens em sua política, será possível oculta-lo(s).
  • O item Outros é o único em que não é necessário a compra de serviço, logo solicitações somente com este serviço não passam pela etapa de conferência da solicitação. Esta é necessária quando um colaborador deseja solicitar somente um adiantamento, pois irá fazer, por exemplo, uma visita a um cliente com veículo próprio e deseja somente o adiantamento.

Quando parametrizadas para aprovação após a solicitação, será gerada uma pendência de aprovação para o superior dos participantes. Caso contrário esta pode ser enviada para o departamento de viagens (diretamente após a solicitação ou em um segundo momento através da opção de envio) e a viagem será gerada automaticamente.

Exemplo:

A empresa pode decidir por passar por todas as aprovações, neste caso o fluxo será:

Image Removed

Atención
  • Estos ítems de servicio son parametrizables y están en el asistente de configuración Si la empresa no ofrece alguno de estos ítems en su política, se puede ocultarlos.
  • El ítem Otros es el único en que no es necesario comprar servicio, entonces solicitudes solo con este servicio no pasan por la etapa de verificación de la solicitud. Esta es necesaria cuando un colaborador desea solicitar solamente un anticipo, porque hará, por ejemplo, una visita a un cliente con vehículo propio y desea solamente el anticipo.

Cuando se parametrizan para aprobación después de solicitarlas, se generará un asunto pendiente de aprobación para el superior de los participantes. En caso contrario, esta se puede enviar al departamento de viajes (directamente después de la solicitud o en un segundo momento a través de la opción de envío) y el viaje se generará automáticamente.

Ejemplo:

La empresa puede decidir por pasar por todas las aprobaciones, en este caso el flujo será:

Image Added

O entonces puede ser que tan solo una de las aprobaciones sea necesaria, en este caso tenemosOu então pode ser que apenas uma das aprovações seja necessária, neste caso temos:


02. 

...

EJEMPLO DE

...

UTILIZACIÓN

Acceso a la rutina por el camino: Actualizaciones > Viajes > Solicitud de viaje

El viajero debe informar los datos básicos del viaje en el encabezado de su solicitud, como origen y destino, fechas de partida y llegada, cliente para atención (si hubiera

...

Acesso à rotina pelo caminho: Atualizações > Viagens > Solicitação de Viagem
O viajante deve informar os dados básicos da viagem no cabeçalho da sua solicitação, como origem e destino, datas de partida e chegada, cliente para atendimento (se houver), etc.
Para cada serviço deve ser informado oservicio se deben informar lo(s) Participante(s) e ay su(s) suarespectivo(s) respectivaEnte(s) Entidade(s) de Custocosto.


Além disso, na aba Adiantamentos é possível marcar quais participantes receberão adiantamento.
O valor calculado é uma previsão e é exibido somente quando estiver
Además, en la solapa Anticipos se pueden marcar los participantes que recibirán el anticipo.
El valor calculado es una previsión y se muestra solamente si estuviera parametrizado:

03. 

...

RUTINA AUTOMÁTICA

Para execução da rotina ejecutar la rutina automática, ilustramos algumas algunas funcionalidades como Inclusão Inclusión (MyFA666Inc), Alteração Modificación (MyFA666Alt) e Exclusão y Borrado (MyFA666Del), nos seguintes exemplosen los siguientes ejemplos:

...

Bloco de código
languagejava
themeMidnight
titleExemplo de execução da rotina automática
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

//---------- Inclusión Inclusaode dala solicitacaosolicitud de viagemviaje ----------//
User Function MyFA666Inc()

Local oModel := Nil
Local oModelFW3 := Nil
Local oModelFW4 := Nil
Local oModelFW5 := Nil
Local oModelFW6 := Nil
Local cFilAtu := ""

RpcSetEnv("T1","D MG 01 ","claudio.ribeiro","1") // Inicializa ambienteentorno comcon usuario solicitante

oModel := FWLoadModel("FINA666")
oModelFW3 := oModel:GetModel("FW3MASTER") // CabecalhoEncabezado dadel viagemviaje
oModelFW4 := oModel:GetModel("FW4DETAIL") // ServicosServicios 
oModelFW5 := oModel:GetModel("FW5DETAIL") // Participantes
oModelFW6 := oModel:GetModel("FW6DETAIL") // Centro de custocosto
cFilAtu := xFilial("FW3")

oModel:SetOperation(MODEL_OPERATION_INSERT)
oModel:Activate()
// Informa el Preencheencabezado cabecalhode dala solicitacaosolicitud de viagemviaje
oModelFW3:SetValue("FW3_FILIAL",cFilAtu)
oModelFW3:SetValue("FW3_NACION","1")
oModelFW3:SetValue("FW3_CODORI","SP")
oModelFW3:SetValue("FW3_CODDES","RJ")
oModelFW3:SetValue("FW3_DTINI",StoD("20190702"))
oModelFW3:SetValue("FW3_DTFIM",StoD("20190705"))
oModelFW3:SetValue("FW3_CLIENT","001 ")
oModelFW3:SetValue("FW3_LOJA","01")
oModelFW3:SetValue("FW3_STATUS","0") // Em AbertoPendiente, statusEstatus inicial
// PreencheInforma la gridcuadrícula dodel servicoservicio incluso en nala solicitacaosolicitud dadel viagemviaje
oModelFW4:SetValue("FW4_ITEM",StrZero(1,TamSX3("FW4_ITEM")[1]))
oModelFW4:SetValue("FW4_TIPO","1") // AereoAéreo
oModelFW4:SetValue("FW4_OBS", "Visita aoal cliente")
// Informa la Preenchecuadrícula gridde doslos participantes viajantesviajeros
oModelFW5:SetValue("FW5_ITEM",StrZero(1,TamSX3("FW4_ITEM")[1]))
oModelFW5:SetValue("FW5_PARTIC","000001")
oModelFW5:SetValue("FW5_ADIANT",.T.) // AdicionaAgrega adiantamentoanticipo aoal participante
oModelFW5:AddLine() // AdicionaAgrega linhalínea para umun segundo viajanteviajero
oModelFW5:SetValue("FW5_ITEM",StrZero(2,TamSX3("FW4_ITEM")[1]))
oModelFW5:SetValue("FW5_PARTIC","000002")
oModelFW5:SetValue("FW5_ADIANT",.T.) // AdicionaAgrega adiantamentoanticipo aoal participante
// Informa Preenchela gridcuadrícula dodel centro de custocosto
oModelFW6:SetValue("FW6_ITEM",StrZero(1,TamSX3("FW4_ITEM")[1]))
oModelFW6:SetValue("FW6_CC","002 ")
oModelFW6:SetValue("FW6_PORCEN",100)
oModelFW5:GoLine(1)
// Validacao e gravacao dos dados seValidación y grabación de los datos si fueran consistentes
If oModel:VldData() 
     oModel:CommitData()
     Conout("InclusaoInclusión de dala solicitacaosolicitud dedel viagemviaje concluidafinalizada comcon sucessoéxito.")
Else 
     VarInfo("",oModel:GetErrorMessage())
     Conout("ErroError en nala validacaovalidación, solicitacaosolicitud de viagemviaje naono foise incluidaincluyó.")
EndIf

oModel:DeActivate()
oModel:Destroy()
RpcClearEnv()

Return


//---------- Modificación Alteracaode dala solicitacaosolicitud de viagemviaje ----------//
User Function MyFA666Alt()

Local aKeyFW4 := {}
Local oModel := Nil
Local oModelFW5 := Nil
Local oModelFW6 := Nil
Local cSolic := "0000000010"

RpcSetEnv("T1","D MG 01 ","richard.santos","1") // Inicializa ambienteentorno comcon usuario solicitante

dbSelectArea("FW3")
dbSetOrder(1)
dbSeek(xFilial("FW3")+cSolic)
// CarregaCarga modelo de dadosdatos comcon ala solicitacaosolicitud de viagemviaje posicionadamarcada
oModel := FWLoadModel("FINA666")
oModelFW5 := oModel:GetModel("FW5DETAIL") // Participantes
oModelFW6 := oModel:GetModel("FW6DETAIL") // Centro de custocosto
// ChaveClave de buscabúsqueda dodel participante dentro de dala solSol. dade viagemViaje
aKeyFW4 := { {"FW5_FILIAL",xFilial("FW5")},{"FW5_SOLICI",cSolic},{"FW5_ITEM","01"},{"FW5_PARTIC","000002"} }

oModel:SetOperation(MODEL_OPERATION_UPDATE)
oModel:Activate()
// Retira Removeuno umde doslos viajantesviajeros, en noeste caso oel participante 000002
If oModelFW5:SeekLine(aKeyFLE)
     oModelFW5:DeleteLine()
Else
     Conout("ViajanteViajero naono encontrado nestaen esta solicitacaosolicitud de viagemviaje.")
EndIf
// AlteraModifica oel centro de custocosto (posicionadomarcado automáticamente automaticamenteen nola primeiroprimera gridcuadrícula)
oModelFW6:SetValue("FW6_CC","003 ")

// Validación y Validacaograbación ede gravacaolos dosdatos dadossi sefueran consistentes
If oModel:VldData() 
     oModel:CommitData()
     Conout("AlteracaoModificación de dala solicitacaosolicitud de viagemviaje efetuadaefectuada comcon sucessoéxito.")
Else 
     VarInfo("",oModel:GetErrorMessage())
     Conout("ErroError en nala validacaovalidación, solicitacaosolicitud de viagemviaje naono foise alteradamodificó.")
EndIf

oModel:DeActivate()
oModel:Destroy()
RpcClearEnv()

Return


//---------- ExclusaoBorrado de dala solicitacaosolicitud de viagemviaje ----------//
User Function MyFA666Del()

Local oModel := Nil
Local cSolic := "0000000010"

RpcSetEnv("T1","D MG 01 ","claudio.ribeiro","1") // Inicializa ambienteentorno comcon usuario solicitante

dbSelectArea("FW3")
dbSetOrder(1)
dbSeek(xFilial("FW3")+cSolic)
// CarregaCarga modelo de dadosdatos comcon ala solicitacaosolicitud de viagemviaje posicionadamarcada
oModel:= FWLoadModel("FINA666")
oModel:SetOperation(MODEL_OPERATION_DELETE)
oModel:Activate()

// ValidacaoValidación ey gravacaograbación dadel exclusaoborrado
If oModel:VldData() 
     oModel:CommitData()
     Conout("SolicitacaoSolicitud de viagemviaje excluidaborrada comcon sucessoéxito.")
Else 
     VarInfo("",oModel:GetErrorMessage())
     Conout("ErroError en nala validacaovalidación, solicitacaosolicitud de viagemviaje naono foise excluidaborró.")
EndIf

oModel:DeActivate()
oModel:Destroy()
RpcClearEnv()

Return



...

04. TABELAS

...

  • FW3 - Cabeçalho da SolicitaçãoEncabezado de la solicitud
  • FW4 - Serviços Servicios (itensítems)
  • FW5 - Participantes
  • FW6 - Entidades Entes de Custoscostos


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>