Árvore de páginas

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Gestão de Serviços
Função:PNMTABC01.prw
Ticket:Não Há.
Requisito/Story/Issue (informe o requisito relacionado) :DSERSGS-8320


02. SITUAÇÃO/REQUISITO

Com integração entre Gestão de Serviços e RH, foi desenvolvida funcionalidade de alocação por hora, onde não ha dependência de escala para alocar somente horas e turno.

03. SOLUÇÃO

Com o recurso disponível só é possível com a mudança na query da função GetAgenda.

Código Antes:

Static Function GetAgenda(cCodAtend, dDataIni, dDataFim)
Local aAgenda := {}
Local cAlsTrb := GetNextAlias()
Local aAux := {}
Local nPos := 0
Local nPosAnt := 0
Local cCcSpace   := Space( GetSx3Cache( "RA_CC" , "X3_TAMANHO" ) )
Local nLimIntra := SuperGetMV("MV_TECINTR", .F., 6)
Local nTotHrs := 0
Local dDia := STOD("")
Local cHora := ""
Local cCampos := ""

cCampos := "%"
cCampos += If(_lIntra ,", TDW_INTRA", "")
cCampos += If(_lSum444,", TDV_FERSAI, TDV_FSTPEX, TDV_FSEXTN", "")
cCampos += "%"

BeginSQL Alias cAlsTrb
    SELECT 
        ABR_DTINIA, ABR_HRINIA, ABR_DTFIMA, ABR_HRFIMA, ABR_MOTIVO,
        ABB_DTINI, ABB_HRINI, ABB_DTFIM, ABB_HRFIM, ABB_MANUT,
        TDV_DTREF, TDV_TPDIA, TDV_TURNO, TDV_SEQTRN, TDV_FERIAD, TDV_FTPEXT, TDV_FEXTN, TDV_FERIAD, TDV_HRMEN, TDV_HRMAI, TDV_TPEXT,
        TDV_TPEXTN, TDV_NONHOR, TDV_CODREF, TDV_INSREP, TDV_INTVL1, TDV_INTVL2, TDV_INTVL3,
        R6_INIHNOT, R6_FIMHNOT, R6_MINHNOT, R6_APODFER, R6_TPEXFER, R6_TPEXFEN, R6_AUTOHEF %Exp:cCampos%
    
    FROM %Table:ABB% ABB
    
    LEFT JOIN %Table:ABR% ABR ON
        ABR.ABR_FILIAL = %xFilial:ABR% AND
        ABR.ABR_AGENDA = ABB.ABB_CODIGO AND
        ABR.%NotDel%
    
    LEFT JOIN %Table:TDV% TDV ON
        TDV.TDV_FILIAL = %xFilial:TDV% AND
        TDV.TDV_CODABB = ABB.ABB_CODIGO AND
        TDV.TDV_DTREF >= %Exp:dDataIni% AND
        TDV.TDV_DTREF <= %Exp:dDataFim% AND
        TDV.%NotDel%	
    
    INNER JOIN %Table:SR6% SR6 ON
        SR6.R6_FILIAL =   %xFilial:SR6% AND
        SR6.R6_TURNO = TDV.TDV_TURNO AND
        SR6.%NotDel%
        
    INNER JOIN %Table:ABQ% ABQ ON
        ABQ.ABQ_FILIAL = %xFilial:ABQ% AND
        ABQ.ABQ_CONTRT || ABQ.ABQ_ITEM || ABQ.ABQ_ORIGEM = ABB.ABB_IDCFAL AND
        ABQ.%NotDel%
    
    INNER JOIN %Table:TFF% TFF ON
        TFF.TFF_FILIAL = ABQ.ABQ_FILTFF AND
        TFF.TFF_COD = ABQ.ABQ_CODTFF AND
        TFF.%NotDel%	
        
    INNER JOIN %Table:TDW% TDW ON
        TDW.TDW_FILIAL = %xFilial:TDW% AND
        TDW.TDW_COD = TFF.TFF_ESCALA AND
        TDW.%NotDel%
            
    WHERE 
        ABB.ABB_FILIAL = %xFilial:ABB% AND	
        TDV.TDV_DTREF >= %Exp:dDataIni% AND
        TDV.TDV_DTREF <= %Exp:dDataFim% AND
        ABB.ABB_CODTEC = %Exp:cCodAtend% AND
        ABB.%NotDel%

    ORDER BY ABB.ABB_DTINI, ABB.ABB_HRINI
    
EndSQL	

Alteração: 

Alteração: 
Static Function GetAgenda(cCodAtend, dDataIni, dDataFim)
Local aAgenda := {}
Local cAlsTrb := GetNextAlias()
Local aAux := {}
Local nPos := 0
Local nPosAnt := 0
Local cCcSpace   := Space( GetSx3Cache( "RA_CC" , "X3_TAMANHO" ) )
Local nLimIntra := SuperGetMV("MV_TECINTR", .F., 6)
Local nTotHrs := 0
Local dDia := STOD("")
Local cHora := ""
Local cCampos := ""

cCampos := "%"
cCampos += If(_lIntra ,", TDW_INTRA", "")
cCampos += If(_lSum444,", TDV_FERSAI, TDV_FSTPEX, TDV_FSEXTN", "")
cCampos += "%"

BeginSQL Alias cAlsTrb
    SELECT 
        ABR_DTINIA, ABR_HRINIA, ABR_DTFIMA, ABR_HRFIMA, ABR_MOTIVO,
        ABB_DTINI, ABB_HRINI, ABB_DTFIM, ABB_HRFIM, ABB_MANUT,
        TDV_DTREF, TDV_TPDIA, TDV_TURNO, TDV_SEQTRN, TDV_FERIAD, TDV_FTPEXT, TDV_FEXTN, TDV_FERIAD, TDV_HRMEN, TDV_HRMAI, TDV_TPEXT,
        TDV_TPEXTN, TDV_NONHOR, TDV_CODREF, TDV_INSREP, TDV_INTVL1, TDV_INTVL2, TDV_INTVL3,
        R6_INIHNOT, R6_FIMHNOT, R6_MINHNOT, R6_APODFER, R6_TPEXFER, R6_TPEXFEN, R6_AUTOHEF %Exp:cCampos%
    
    FROM %Table:ABB% ABB
    
    LEFT JOIN %Table:ABR% ABR ON
        ABR.ABR_FILIAL = %xFilial:ABR% AND
        ABR.ABR_AGENDA = ABB.ABB_CODIGO AND
        ABR.%NotDel%
    
    LEFT JOIN %Table:TDV% TDV ON
        TDV.TDV_FILIAL = %xFilial:TDV% AND
        TDV.TDV_CODABB = ABB.ABB_CODIGO AND
        TDV.TDV_DTREF >= %Exp:dDataIni% AND
        TDV.TDV_DTREF <= %Exp:dDataFim% AND
        TDV.%NotDel%	
    
    INNER JOIN %Table:SR6% SR6 ON
        SR6.R6_FILIAL =   %xFilial:SR6% AND
        SR6.R6_TURNO = TDV.TDV_TURNO AND
        SR6.%NotDel%
        
    INNER JOIN %Table:ABQ% ABQ ON
        ABQ.ABQ_FILIAL = %xFilial:ABQ% AND
        ABQ.ABQ_CONTRT || ABQ.ABQ_ITEM || ABQ.ABQ_ORIGEM = ABB.ABB_IDCFAL AND
        ABQ.%NotDel%
    
    INNER JOIN %Table:TFF% TFF ON
        TFF.TFF_FILIAL = ABQ.ABQ_FILTFF AND
        TFF.TFF_COD = ABQ.ABQ_CODTFF AND
        TFF.%NotDel%	
        
    LEFT JOIN %Table:TDW% TDW ON
        TDW.TDW_FILIAL = %xFilial:TDW% AND
        TDW.TDW_COD = TFF.TFF_ESCALA AND
        TDW.%NotDel%
            
    WHERE 
        ABB.ABB_FILIAL = %xFilial:ABB% AND	
        TDV.TDV_DTREF >= %Exp:dDataIni% AND
        TDV.TDV_DTREF <= %Exp:dDataFim% AND
        ABB.ABB_CODTEC = %Exp:cCodAtend% AND
        ABB.%NotDel%

    ORDER BY ABB.ABB_DTINI, ABB.ABB_HRINI
    
EndSQL	

A alteração consiste na linha na linha 56 onde é necessário fazer a troca do INNER para LEFT uma vez que o requisito não contem escala.

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS

  • Não há.