Árvore de páginas

Versões comparadas

Chave

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

01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS Prestadores de Serviços Terceirização

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoServiços

Módulo:Prestadores de Serviço Terceirização
Função:TECA580G
Ticket:Não há
Requisito/Story/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:

At580HRAt580GHE

Parâmetros

01 - Horario

    01 - Hora Início 

    aHoras[1] : "07:00"

    02- Hora Fim

    aHoras[2] : "16:00"

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]:  

04 - Data Fim 

  PARAMIXB[4]:  

05 - Data de Referência

PARAMIXB[5]: 

06 - Turno

PARAMIXB[6]: "001"

07 - Sequência

PARAMIXB[7]: "01"

aHorasArray

    [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]}

RetornoaHoras


#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 fimuma 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

  • Não há





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>