Histórico da Página
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Method BuscaDados(oFiltros, cTipo, cSubTipo) Class PrevisaoEntregaOP Local aSaldos := {} Local aPeriodos := PCPMonitorUtils():RetornaListaPeriodosFuturo(oFiltros["04_TIPOPERIODO"],cValToChar(oFiltros["05_PERIODO"])) Local aChaves := {} Local cAliasQry := GetNextAlias() Local cJsonDados := "" Local cUnMed := "" Local cQuery := "" Local dDataAjust := Nil Local dDataIni := dDatabase Local dDataFin := dDatabase Local lPerdInf := SuperGetMV("MV_PERDINF",.F.,.F.) Local nIndSerie := 0 Local nPosTag := 0 Local nOPsTotal := 0 Local nQtPTotal := 0 Local nX := 0 Local oJsonRet := JsonObject():New() Local oPeriodos := JsonObject():New() //Propriedades que devem ser retornadas para monitores do tipo gráfico oJsonRet["corTitulo"] := "black" //Cor do título do monitor. Se não for informada, assumirá o valor #2590aa oJsonRet["alturaMinimaWidget"] := "350px" //Altura mínima do monitor. Se não for informada, assumirá o valor 350px oJsonRet["alturaMaximaWidget"] := "500px" //Altura máxima do monitor. Se não for informada, assumirá o valor 350px oJsonRet["tags"] := {} //Array de objetos json com as tags que serão visualizadas no monitor oJsonRet["series"] := {} //Array de objetos json com as séries do gráfico oJsonRet["categorias"] := {} //Array de strings com as categorias do gráfico oFiltros["01_C2_FILIAL"] := PadR(oFiltros["01_C2_FILIAL"], FWSizeFilial()) cUnMed := Posicione("SB1",1,xFilial("SB1",oFiltros["01_C2_FILIAL"])+oFiltros["02_C2_PRODUTO"],"B1_UM") dDataIni := aPeriodos[1][1] dDataFin := aPeriodos[Len(aPeriodos)][2] //Query com os filtros para buscar os valores das séries para as categorias cQuery := " SELECT " cQuery += " SC2.C2_FILIAL, " cQuery += " SC2.C2_PRODUTO, " cQuery += " SC2.C2_DATPRF, " If oFiltros["03_TIPOQUANT"] == 'O' cQuery += " SUM(SC2.C2_QUANT)" Else cQuery += " SUM(SC2.C2_QUANT - SC2.C2_QUJE" If !lPerdInf cQuery += " - SC2.C2_PERDA" EndIf cQuery += ")" EndIf cQuery += " AS QUANTIDADE_PRODUTO, " cQuery += " COUNT(*) AS NUMERO_OPS " cQuery += " FROM "+RetSqlName("SC2")+" SC2 " cQuery += " WHERE SC2.C2_FILIAL = '"+xFilial("SC2",oFiltros["01_C2_FILIAL"])+"' " cQuery += " AND SC2.C2_PRODUTO = '"+oFiltros["02_C2_PRODUTO"]+"' " cQuery += " AND SC2.C2_DATPRF BETWEEN '"+dToS(dDataIni)+"' AND '"+dToS(dDataFin)+"' " cQuery += " AND SC2.C2_DATRF = ' '" cQuery += " AND SC2.D_E_L_E_T_ = ' ' " cQuery += " GROUP BY SC2.C2_FILIAL, SC2.C2_PRODUTO, SC2.C2_DATPRF " cQuery += " ORDER BY SC2.C2_FILIAL, SC2.C2_PRODUTO, SC2.C2_DATPRF " dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasQry,.F.,.F.) While (cAliasQry)->(!Eof()) dDataAjust := dToC(PCPMonitorUtils():RetornaPeriodoInicial(oFiltros["04_TIPOPERIODO"],sToD((cAliasQry)->C2_DATPRF))) nOPsTotal += (cAliasQry)->NUMERO_OPS nQtPTotal += (cAliasQry)->QUANTIDADE_PRODUTO If oPeriodos:HasProperty(dDataAjust) oPeriodos[dDataAjust] += (cAliasQry)->QUANTIDADE_PRODUTO Else oPeriodos[dDataAjust] := (cAliasQry)->QUANTIDADE_PRODUTO EndIf (cAliasQry)->(DBSKIP()) End (cAliasQry)->(dbCloseArea()) aChaves := oPeriodos:GetNames() oJsonRet["categorias"] := aChaves For nX := 1 To Len(aChaves) aAdd(aSaldos, oPeriodos[aChaves[nX]]) Next nX //Adiciona série no gráfico PCPMonitorUtils():AdicionaSerieGraficoMonitor(oJson["series"],@nIndSerie,COR_AZUL"rgb(0,0,165)",aSaldos,cUnMed) //Adiciona tags ao monitor PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-calendar",dToC(dDataIni) + " - " + dToC(dDataFin)) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-calculator",PCPMonitorUtils():RetornaDescricaoTipoPeriodo(oFiltros["04_TIPOPERIODO"])) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-bar-code",oFiltros["02_C2_PRODUTO"]) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-star-filled",cValToChar(nOPsTotal) + IIF(nOPsTotal > 1," Ordens"," Ordem") ) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-star-filled",cValToChar(nQtPTotal) + " " + cUnMed ) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPosTag,"po-icon-calculator",IIF(oFiltros["03_TIPOQUANT"] == "O","Quantidade Original","Saldo a Produzir")) cJsonDados := oJsonRet:toJson() FwFreeArray(aChaves) FwFreeArray(aPeriodos) FwFreeArray(aSaldos) FreeObj(oPeriodos) FreeObj(oJsonRet) Return cJsonDados |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas