Histórico da Página
POGetProd - Manipular informações na pesquisa de produtos para a ordem de produção no APP Minha Produção
Linha de Produto: | Protheus | ||||||||||||||||||
Segmento: | Manufatura | ||||||||||||||||||
Módulo: | SIGAPCP - Planejamento e Controle da Produção | ||||||||||||||||||
Parâmetro(s): |
| ||||||||||||||||||
Idiomas: | Todos | ||||||||||||||||||
País(es): | Todos | ||||||||||||||||||
Banco(s) de Dados: | Todos | ||||||||||||||||||
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | O ponto de entrada POGetProd é executado na requisição de consulta dos produtos após informar os parâmetros de pesquisa. As duas informações customizadas que poderão ser adicionadas a um card na pesquisa terão três atributos cada uma. O primeiro é "CustomLabel", que é referente a um rótulo ou descrição do valor que será adicionado. O segundo é "CustomValue", que é referente ao valor vinculado ao rótulo criado. Ex.: oJson["CustomLabel"] := "Máquina", oJson["CustomValue"] := "Injetora". O terceiro é "CustomLink", que é referente ao link que será aberto no navegador quando o usuário clicar no campo de valor. Obs.: Para mostrar a informação customizada no card de pesquisa, o único atributo de preenchimento obrigatório é o "CustomValue". Se o atributo "CustomLink" for informado, o atributo "CustomValue" será um link que será aberto no navegador, caso contrário, será apenas um campo texto. | ||||||||
Localização: | API prodOrderApp, método Get queryProducts- Responsável por devolver os produtos que se encaixam nos parâmetros da pesquisa. | ||||||||
Eventos: | Não se aplica. | ||||||||
Programa Fonte: | ProductionOrderAppAPI.PRW | ||||||||
Sintaxe: | POGetProd( ) --> aItemsObj | ||||||||
Retorno: |
| ||||||||
Observações: | Não é permitida a utilização de qualquer componente de interface gráfica nesse ponto de entrada, visto que a função será executada durante uma requisição REST. |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "TOTVS.CH" User Function POGetProd() Local aAreaSB1 := SB1->(GetArea()) Local cForm aAreaSB2 := SB2->(GetArea()) Local aItemsObj := PARAMIXB[21] Local cAliasSB2 := GetNextAlias() Local cForm aItemsObj := PARAMIXB[1] 2] Local cLocal := "" Local cQuerySB2 := "" Local nLenArr := Len(aItemsObj) Local nSaldo := 0 Local nX := 0 Local oJson := Nil If AllTrim(cForm) == "OPFORM" For nX:=1 To nLenArr //Adicionando informações customizadas ao card de um produto na pesquisa dbSelectArea("SB1") SB1->(dbSetOrder(1)) If SB1->(MsSeek(xFilial("SB1") + AllTrim(aItemsObj[nX]["Code"]))) cLocal :== "PRODUTO" SB1->B1_LOCPAD cQuerySB2 := "SELECT *" cQuerySB2 += " FROM " + RetSqlName("SB2") cQuerySB2 += " WHERE B2_FILIAL = '" + xFilial("SB2") + "'" cQuerySB2 += " AND B2_COD = '" + AllTrim(aItemsObj[nX]["CustomLabel1"] := "" Code"]) + "'" cQuerySB2 += " AND B2_LOCAL = '" + cLocal + "'" cQuerySB2 += " AND D_E_L_E_T_ = ' '" dbUseArea(.T., "TOPCONN", TcGenQry( , , cQuerySB2), cAliasSB2, .T., .T.) While (cAliasSB2)->(!Eof()) nSaldo += SaldoSB2(,,,,,cAliasSB2,,,,,) dbSkip() End (cAliasSB2)->(dbCloseArea()) aItemsObj[nX]["CustomValue1CustomLabel1"] := "Injetora 01" Saldo no armazém padrão (" + cLocal + ")" aItemsObj[nX]["CustomLink1CustomValue1"] := ""CValToChar(nSaldo) aItemsObj[nX]["CustomLabel2CustomLink1"] := "Processo Prod." nSaldo := 0 EndIf aItemsObj[nX]["CustomValue2CustomLabel2"] := "Link Processo" aItemsObj[nX]["CustomValue2"] := "Pesquisa produto no Google" aItemsObj[nX]["CustomLink2"] := "http://www.google.com.br/search?q=" + AllTrim(aItemsObj[nX]["Code"]) Next nX //Adicionando novo card de produto no retorno da pesquisa If AllTrim(cForm) == "OPFORM" oJson := JsonObject():New() oJson["Code"] := "PRODUTO3" oJson["Description"] := "DESCRICAO PRODUTO 3" oJson["CustomLabel1"] := "" oJson["CustomValue1"] := "" oJson["CustomLink1"] := "" oJson["CustomLabel2"] := "" oJson["CustomValue2"] := "" oJson["CustomLink2"] := "" aAdd(aItemsObj, oJson) EndIf //excluindo card de produto do retorno da pesquisa nX := Ascan(aItemsObj,{|x| AllTrim(x["Code"]) == "PRODUTO"}) If nX > 0 Next nXaDel(aItemsObj, nX) aSize(aItemsObj, Len(aItemsObj)-1) EndIf FreeObj(oJson) Return aItemsObj |