Árvore de páginas

MRPAPIDET - Sobrescrever retorno da API de detalhes

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):
NomeTipoDescriçãoDefaultObrigatórioReferencia
PARAMIXB[1]Caractere

Ticket selecionado na consulta da tela.




PARAMIXB[2]CaractereProduto selecionado para consulta de detalhes.


PARAMIXB[3]CaractereIdentificador do opcional do produto.


PARAMIXB[4]ArrayArray com o retorno original da API.


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 MRPAPIDET permite o usuário alterar o retorno da API de detalhes da tela de resultados do MRP. Por meio dele é possível adicionar ou remover registros na tela de resultados detalhados da consulta de um produto.
Localização:

Função getResDet do fonte MRPDetails.prw

Eventos:

Chamado ao finalizar a carga de detalhes de um produto na tela de resultados do MRP.

Programa Fonte:MRPDetails.prw

Sintaxe:

MRPAPIDET( ) → aItens

Retorno:

Deve retornar um array com os objetos json que serão exibidos em tela.

Definição dos objetos json que devem ser retornados:

PropriedadeTipoValores válidosConteúdo
branchIdCaractere

Valor da coluna "Filial" (visível apenas quando o MRP Multiempresa estiver ativado).

ticketCaractere
Ticket do MRP.
productCaractere
Código do produto.
optionalIdCaractere
Identificador do opcional do produto.
periodDateCaractere

Valor da coluna "Data".

documentTypeCaractere
ValorLabel
SISaldo inicial
SPSaldo Período
EMEmpenho
DMDemanda
OPOrdem de produção
SUOP - SubProduto
OTOP/Transferência
SCSolicitação de compra
PCPedido de compra
AUAutorização de Entrega
ESEstoque de segurança
TRTransferência
LVLote Vencido
PMPlano Mestre
SRSaldo Rejeitado CQ
DTDe Terceiro
ETEm Terceiro
SBSaldo Bloqueado

Valor da coluna "Tipo".

documentCodeCaractere
Valor da coluna "Documento".
fatherProductCaractere
Valor da coluna "Produto Pai".
registerTypeCaractere
ValorLabel
1Entrada
2Saída
3Saldo
4Saldo
Valor da coluna "Tipo".
quantityNumérico
Valor da coluna "Quantidade".
balanceNumérico
Valor da coluna "Saldo Final".
documentStatusCaractere
ValorLabel
MMRP
FFirme
PPrevisto
Valor da coluna "Status".
warehouseCaractere
Valor da coluna "Armazém".
detailArray

Array contendo objetos json com a seguinte definição:

PropriedadeTipoConteúdo
prodOrigemCaractereValor da coluna "Produto Origem".
quantidadeNuméricoValor da coluna "Quantidade".
docOrigemCaractereValor da coluna "Documento Origem".
Valores que serão exibidos nos detalhes da linha.
Observações:
Exemplo
#INCLUDE "PROTHEUS.CH"

User Function MRPAPIDET()
    Local aDetails := {}
    Local cAlias   := GetNextAlias()
    Local nTotal   := 0
    Local cTicket  := PARAMIXB[1]
    Local cProduto := PARAMIXB[2]
    Local cIdOpc   := PARAMIXB[3]
    Local aItems   := PARAMIXB[4]

    BeginSQL alias cAlias
        SELECT MV_TABELA, Count(1) qtdDocs
          FROM %table:SMV%
         WHERE MV_FILIAL = %xFilial:HWC%
           AND MV_TICKET = %exp:cTicket%
           AND MV_PRODUT = %exp:cProduto%
           AND MV_IDOPC  = %exp:cIdOpc%
           AND %notDel%
         GROUP BY MV_TABELA
    EndSQL

    While (cAlias)->(!EoF())
        nTotal += (cAlias)->qtdDocs

        aAdd(aDetails, JsonObject():New())

        aDetails[Len(aDetails)]["prodOrigem"] := ""
        aDetails[Len(aDetails)]["quantidade"] := (cAlias)->qtdDocs
        
        Do Case
            Case (cAlias)->MV_TABELA == "T4S"
                aDetails[Len(aDetails)]["docOrigem"] := "Empenhos"

            Case (cAlias)->MV_TABELA == "T4U"
                aDetails[Len(aDetails)]["docOrigem"] := "Pedidos de compra"

            Case (cAlias)->MV_TABELA == "T4J"
                aDetails[Len(aDetails)]["docOrigem"] := "Demandas"

            Case (cAlias)->MV_TABELA == "T4T"
                aDetails[Len(aDetails)]["docOrigem"] := "Solicitações de compra"

            Case (cAlias)->MV_TABELA == "T4V"
                aDetails[Len(aDetails)]["docOrigem"] := "Saldo inicial"

            Case (cAlias)->MV_TABELA == "T4Q"
                aDetails[Len(aDetails)]["docOrigem"] := "Ordens de produção"

            Case (cAlias)->MV_TABELA == "ET "
                aDetails[Len(aDetails)]["docOrigem"] := "Em terceiro"

            Case (cAlias)->MV_TABELA == "DT "
                aDetails[Len(aDetails)]["docOrigem"] := "De terceiro"

            Case (cAlias)->MV_TABELA == "SB "
                aDetails[Len(aDetails)]["docOrigem"] := "Saldo bloqueado"

        EndCase
        
        (cAlias)->(dbSkip())
    End
    (cAlias)->(dbCloseArea())

    aSize(aItems, Len(aItems)+1)
    aIns(aItems, 1)

    aItems[1] := JsonObject():New()
    aItems[1]["branchId"      ] := xFilial("HWC")
    aItems[1]["ticket"        ] := cTicket
    aItems[1]["product"       ] := cProduto
    aItems[1]["optionalId"    ] := cIdOpc
    aItems[1]["periodDate"    ] := ""
    aItems[1]["documentType"  ] := ""
    aItems[1]["documentCode"  ] := "Quantidade de documentos considerados pelo MRP"
    aItems[1]["fatherProduct" ] := ""
    aItems[1]["registerType"  ] := ""
    aItems[1]["quantity"      ] := nTotal
    aItems[1]["balance"       ] := 0
    aItems[1]["documentStatus"] := ""
    aItems[1]["warehouse"     ] := ""
    aItems[1]["detail"        ] := aDetails

Return aItems