01. DADOS GERAIS Produto:
Solucoes_totvsSolucao TOTVS Prestadores de Serviços Terceirização
Linha de Produto: Segmento: Módulo: Prestadores de Serviço Terceirização Função: TECA580G Ticket: Não há Requisito/S tory/Issue (informe o requisito relacionado) : DSERSGS-10628
02. SITUAÇÃO/REQUISITO Necessidade de um P.E no TECA580G para alteração dos horários na geração das agendas para horários flexíveis com manutenções planejadas.
03. SOLUÇÃO Ponto de Entrada Descrição: Microsiga Protheus® Localização: Serviços Programa Fonte: TECA580G.PRW Função: At580HR At580GHE
Parâmetros Nome
Tipo
Descrição
PARAMIXB[1] Array Array para informações de alteração de horário.
01 - Código da TGY
PARAMIXB[1]: "000000001028897"
02 - Cód.Atendente
PARAMIXB[2]: "00001989"
03 - Data Inicial -
PARAMIXB[3]: 01/09/2020
04 - Data Fim
PARAMIXB[4]: 30/09/2020
05 - Data de Referência
PARAMIXB[5]: 30/09/2020
06 - Turno
PARAMIXB[6]: "001"
07 - Sequência
PARAMIXB[7]: "01"
aHoras Array 01 - Horario
01 - Hora Início
aHoras[1] : "07:00"
02- Hora Fim
aHoras[2] : "16:00" [01] = RECNO()) [02] = ABB->ABB_CODIGO [03] = ABB->ABB_CODTEC [04] = ABB->ABB_HRINI [05] = ABB->ABB_HRFIM [06] = ABB->ABB_TIPOMV [07] = ABB->ABB_DTINI [08] = ABB->ABB_DTFIM [09] = Sequência [10] = TDV_DTREF
PARAMIXB[2] Array aMnt[x] [x][01] = TXH_CODTFF [x][02] = TXH_HORAFI [x][03] = TXH_HORAIN [x][04] = TXH_MANUT [x][05] = TDX_SEQTUR [x][06] = TGW_DIASEM [x][07] = TGW_HORINI [x][08] = TGW_HORFIM [x][09] = TXH_MTFIL [x][10] = TXH_FERIAD [x][11] = TXH_CODPAI [x][12] = TXH_CODIGO
PARAMIXB[3]
Array aRet{aAgd,aMnt[x]}
Retorno aHoras
#INCLUDE 'PROTHEUS.CH' #INCLUDE "PONCALEN.CH"
User Function AT580HR User Function At580GHE () Local cCodTGY Local aAgd := PARAMIXB[1] Local cCodAtend Local aMnt := PARAMIXB[2] Local cDtIni Local aRet := PARAMIXB[3] Local cDtFim := PARAMIXB[4] Local cTurno := PARAMIXB[5] Local cSeq := PARAMIXB[6] Local cEntra1 := "06:33" Local cSaida1 := "12:00" Local cEntra2 := "13:00" Local cSaida2 := "17:33" Local aHoras := {} Local nI := 1 For nI := 1 To 2 If nI == 1 Aadd(aHoras, {cEntra1,; cSaida1}) ElseIf nI == 2 Aadd(aHoras, {cEntra2,; cSaida2}) EndIf Next nI Return aHoras Local nAux := 0 Local nHrIni := 13.03 Local nHrFim := 17.33
nAux := ASCAN(aMnt, {|a| a[6] == aAgd[9] .AND.; TecNumToHr(nHrIni) == aAgd[4] .AND.; TecNumToHr(nHrFim) == aAgd[5] .AND.; cValToChar(DOW(aAgd[10])) == a[7] }) If nAux > 0 aMnt[nAux][8] := nHrIni aMnt[nAux][9] := nHrFim aMnt[nAux][3] := "18:33" aMnt[nAux][4] := "13:03" AADD(aRet, {aAgd, aMnt[nAux]}) Endif Return aRet
Obs: O retorno sempre deverá ser um array com duas posições, sendo elas a primeira o horário de início e a segunda o horário de fim uma posição com o array de agenda e a outra posição com o array de manutenção .
04. DEMAIS INFORMAÇÕES Não há
05. ASSUNTOS RELACIONADOS
HTML<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;
}
.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after {
background: #FF9900; !important
}
.menu-item.active-tab {
border-bottom: none !important;
}
</style>