Árvore de páginas


Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome físico:

ccp/v1/ordersSuggestions.p


Objetivo
Tem a função de fazer o processamento das ordens de compra gerando sugestões de pedido de compras, juntando uma ou mais ordens em um único card/seção.  Essa junção é feita obedecendo aos seguintes critérios:

  • Estabelecimento
  • Fornecedor
  • Condição de Pagamento
  • Natureza de Compra
  • Processo
  • Transportador


Funcionamento
A API fornece uma série de métodos que podem ser executados individualmente para apresentação das informações da(s) sugestões de compra.

A sintaxe para a chamada da API, que deve ser de forma persistente:

run ccp/rules/ordersSuggestionsRules.p persistent set h-handle.

A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.

Métodos Negócio

Quando a API estiver executada em modo persistente, os seguintes métodos estarão disponíveis para execução:

pi-metadata-v1

RequisitoNenhum.

Sintaxe

RUN pi-metadata-v1 in handle (INPUT oInput,

                                              OUTPUT oOutput).

Descrição







Repassa o parâmetro do tipo de evento recebido pela API de comunicação (ccp/api/v1/ordersSuggestions) para a camada de negócio (ccp/metadata/orderSuggetionsMetadata) chamando o método pi-metadata-v1.

Retorna o metadados com os campos referentes a tela de Listagem (list), Edição (edit) ou Detalhe (detail), dependendo de qual tipo foi enviado pela requisição, para a montagem dinâmica da tela com as informações vindas do backend.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros requisitados para busca de metadados. 

  • queryParams: 
    • type: Utilizando este atributo com uma das opções abaixo, permite retornar as informações de: 
      • list: Traz os metadados referentes a tabela de ordens de compra, que apresenta as ordens relacionadas a uma sugestão de pedido
      • edit: Traz os metadados referentes a tela de Gerar Pedido
      • detail: Traz os metadados referentes a tela de detalhamento da ordem
  • pathParams:
    • metadata: Informar: metadata.

Exemplo

{
    "queryParams": {
    "type": "list"
  },
    "pathParams": [
       "metadata"
    ],
}

cEventCharacterINPUTIdentifica qual o tipo de evento vindo do queryParams para a busca do metadado correto.
cVersionCharacterINPUTIdentifica a versão da API.

oOutput

JsonObject

OUTPUT

Retorno contendo o metadados com os campos conforme parâmetros recebidos:

  • Metadados List

List

Exemplo de retorno

{
    "tableFields": [
        {
            "property": "orderLineNumber",
            "width": "12%",
            "label": "Ordem",
            "type": "cellTemplate"
        },
        {
            "subtitles": [
                {
                    "color": "color-05",
                    "tooltip": "Muito Alta",
                    "label": "Muito Alta",
                    "value": 1,
                    "content": " "
                },
                {
                    "color": "color-07",
                    "tooltip": "Alta",
                    "label": "Alta",
                    "value": 2,
                    "content": " "
                },
                {
                    "color": "color-08",
                    "tooltip": "Média",
                    "label": "Média",
                    "value": 3,
                    "content": " "
                },
                {
                    "color": "color-11",
                    "tooltip": "Baixa",
                    "label": "Baixa",
                    "value": 4,
                    "content": " "
                }
            ],
            "property": "urgency",
            "width": "10%",
            "label": "Urgência",
            "sortable": false,
            "type": "subtitle"
        },
        {
            "property": "itemCode",
            "width": "22%",
            "label": "Item",
            "type": "cellTemplate"
        },
        {
            "property": "quantity",
            "width": "13%",
            "label": "Quantidade",
            "type": "cellTemplate"
        },
        {
            "property": "quotationValidityDays",
            "width": "16%",
            "label": "Dias Validade",
            "type": "number"
        },
        {
            "property": "unitPriceInDefaultCurrency",
            "format": "R$",
            "width": "17%",
            "label": "Preço Unitário",
            "type": "currency"
        },
        {
            "property": "totalPriceInDefaultCurrency",
            "format": "R$",
            "width": "15%",
            "label": "Preço Total",
            "type": "currency"
        }
    ],
    "validateFields": [],
    "formFields": []
}

    Descrição dos campos:
tableFields: São os campos a serem apresentados na tabela, sendo eles:
      • property: Nome de referência do campo.
      • width: Tamanho do campo.
      • label: Rótulo do campo exibido.
      • type: Tipo do valor campo.
sortable: Controla se a coluna será considerada como "ordenavel". Caso seja definido um valor falso, a coluna não será usada para ordenação.format: Formato de exibição do valor da coluna.
  • subtitles: Define um array de objetos para as colunas de legenda. Os campos são:
    • color: Cor que é apresentada na legenda para determinado valor.
    • tooltip: Tooltip que aparece ao colocar o mouse sobre a legenda.
    • label: Rótulo da legenda.
    • value: Valor que será usado como referência para exibição do conteúdo na coluna.
    • content: Conteúdo que será exibido na coluna da tabela.
  • validateFields: Lista que define os campos que irão disparar o validate do form.
  • formFields: Referente ao formulário dinâmico, que permitirá customização através de EPC.

  • Metadados Edit

Edit

Exemplo de retorno
{
    "validateFields": [
        "messageCode"
    ],
    "fields": [
        {
            "gridColumns": 6,
            "searchService": "\/dts\/datasul-rest\/resources\/prg\/supply\/v2\/buyers",
            "columns": [
                {
                    "property": "BuyerId",
                    "label": "Comprador",
                    "type": "string"
                },
                {
                    "property": "Email",
                    "label": "E-mail",
                    "type": "string"
                },
                {
                    "property": "PurchasingGroup",
                    "label": "Grupo de compras",
                    "type": "string"
                }
            ],
            "property": "responsible",
            "gridSmColumns": 12,
            "format": [
                "BuyerId"
            ],
            "label": "Responsável",
            "fieldValue": "BuyerId",
            "advancedFilters": [
                {
                    "property": "BuyerId",
                    "label": "Comprador",
                    "type": "string"
                },
                {
                    "property": "Email",
                    "label": "E-mail",
                    "type": "string"
                },
                {
                    "property": "PurchasingGroup",
                    "label": "Grupo de compras",
                    "type": "string"
                }
            ],
            "required": true
        },
        {
            "gridColumns": 6,
            "searchService": "\/dts\/datasul-rest\/resources\/prg\/cdp\/v1\/customerPublic",
            "columns": [
                {
                    "property": "customerCode",
                    "label": "Código",
                    "type": "number"
                },
                {
                    "property": "shortName",
                    "label": "Nome abreviado",
                    "type": "string"
                },
                {
                    "property": "customerName",
                    "label": "Nome do emitente",
                    "type": "string"
                },
                {
                    "property": "personalId",
                    "label": "CGC",
                    "type": "string"
                }
            ],
            "property": "deliveryEntity",
            "gridSmColumns": 12,
            "format": [
                "customerCode",
                "shortName"
            ],
            "label": "Emitente de entrega",
            "fieldValue": "customerCode",
            "advancedFilters": [
                {
                    "gridColumns": 6,
                    "property": "customerCode",
                    "label": "Código",
                    "type": "number"
                },
                {
                    "gridColumns": 6,
                    "property": "shortName",
                    "label": "Nome abreviado",
                    "type": "string"
                },
                {
                    "gridColumns": 6,
                    "property": "customerName",
                    "label": "Nome do emitente",
                    "type": "string"
                },
                {
                    "gridColumns": 6,
                    "property": "personalId",
                    "label": "CGC",
                    "type": "string"
                }
            ],
            "required": true
        },
        {
            "gridColumns": 6,
            "searchService": "\/dts\/datasul-rest\/resources\/prg\/cdp\/v1\/messagePublic",
            "columns": [
                {
                    "property": "messageCode",
                    "label": "Código",
                    "type": "number"
                },
                {
                    "property": "messageDescription",
                    "label": "Descrição",
                    "type": "string"
                },
                {
                    "property": "messageText",
                    "label": "Texto",
                    "type": "string"
                }
            ],
            "property": "messageCode",
            "gridSmColumns": 12,
            "format": [
                "messageCode",
                "messageDescription"
            ],
            "label": "Código de mensagem",
            "fieldValue": "messageCode",
            "advancedFilters": [
                {
                    "gridColumns": 6,
                    "property": "messageCode",
                    "label": "Código de mensagem",
                    "type": "number"
                },
                {
                    "gridColumns": 6,
                    "property": "messageDescription",
                    "label": "Descrição",
                    "type": "string"
                }
            ],
            "required": true
        },
        {
            "gridColumns": 6,
            "property": "messageText",
            "gridSmColumns": 12,
            "disabled": true,
            "label": "",
            "rows": 3
        },
        {
            "gridColumns": 12,
            "property": "comments",
            "gridSmColumns": 12,
            "label": "Comentários",
            "rows": 3
        }
    ]
}

Descrição dos campos:

  • validateFields: Lista que define os campos que irão disparar o validate do form.
  • fields: São os campos a serem apresentados na tela de Gerar Pedido, tendo as seguintes propriedades:
    • gridColumns: Tamanho de exibição do campo em telas.
    • searchService: Serviço de busca usado em cada campo.
      • columns: Colunas apresentadas na tabela que é mostrada ao clicar no zoom do campo.
        • property: Nome de referência do campo.
        • label: Rótulo do campo exibido.
        • type: Tipo do valor campo.
    • gridSmColumns: Tamanho de exibição do campo em telas.
    • format: Formato de exibição do valor da coluna.
    • fieldValue: Valor da propriedade do campo.
    • advancedFilters: Array contendo os campos apresentados ao clicar na "Busca Avançada".
    • required: Indica que o campo será obrigatório.
    • rows: Quantidade de linhas exibidas nos campos "messageText" e "comments".


  • Metadados Detail:

Detail

Exemplo de retorno
{
    "businessUnityFields": [
        {
            "property": "businessUnity",
            "width": "20%",
            "label": "Unidade negócio",
            "type": "number"
        },
        {
            "property": "businessUnityDescription",
            "width": "60%",
            "label": "Descrição",
            "type": "string"
        },
        {
            "property": "percentBusinessUnity",
            "width": "20%",
            "label": "% Unidade negócio",
            "type": "number"
        }
    ],
    "detailFields": [
        {
            "gridColumns": 3,
            "divider": "Dados Principais",
            "property": "itemCode",
            "label": "Item"
        },
        {
            "gridColumns": 3,
            "property": "siteCode",
            "label": "Estabelecimento"
        },
        {
            "gridColumns": 3,
            "property": "warehouse",
            "label": "Depósito"
        },
        {
            "gridColumns": 3,
            "property": "paymentTermId",
            "label": "Condição pagamento"
        },
        {
            "gridColumns": 3,
            "property": "serviceOrder",
            "label": "Ordem serviço"
        },
        {
            "gridColumns": 3,
            "property": "buyerCode",
            "label": "Comprador"
        },
        {
            "gridColumns": 3,
            "property": "requesterName",
            "label": "Requisitante"
        },
        {
            "gridColumns": 3,
            "property": "issueDate",
            "label": "Data emissão"
        },
        {
            "gridColumns": 3,
            "property": "orderNumber",
            "label": "Pedido"
        },
        {
            "gridColumns": 3,
            "property": "orderDate",
            "label": "Data pedido"
        },
        {
            "gridColumns": 3,
            "property": "investmentOrder",
            "label": "Ordem investimento"
        },
        {
            "gridColumns": 3,
            "property": "operationCode",
            "label": "Operação"
        },
        {
            "gridColumns": 3,
            "property": "numberAltPrice",
            "label": "Num alt preço"
        },
        {
            "gridColumns": 3,
            "property": "deliveryPlace",
            "label": "Local entrega"
        },
        {
            "gridColumns": 3,
            "property": "comments",
            "label": "Narrativa"
        }
    ],
    "breadcrumb": {
        "items": [
            {
                "link": "\/",
                "label": "Gerar Pedidos"
            },
            {
                "link": "\/orderLineDetails",
                "label": "Consulta Ordem"
            }
        ]
    },
    "contractFields": [
        {
            "gridColumns": 3,
            "property": "contractNumber",
            "label": "Número contrato"
        },
        {
            "gridColumns": 3,
            "property": "itemContractSequence",
            "label": "Sequência item"
        },
        {
            "gridColumns": 3,
            "property": "controlTypeDesc",
            "label": "Tipo controle"
        },
        {
            "gridColumns": 3,
            "property": "statusContractCode",
            "label": "Situação"
        },
        {
            "gridColumns": 3,
            "property": "pendingApproval",
            "label": "Pendente aprovação"
        }
    ],
    "requisitionFields": [
        {
            "property": "requestNumber",
            "width": "16%",
            "label": "Requisição",
            "type": "number"
        },
        {
            "property": "requestItem",
            "width": "20%",
            "label": "Item",
            "type": "string"
        },
        {
            "property": "depositReqCode",
            "width": "10%",
            "label": "Dep",
            "type": "string"
        },
        {
            "property": "establishmentReqCode",
            "width": "10%",
            "label": "Est",
            "type": "string"
        },
        {
            "property": "localizationReqCode",
            "width": "10%",
            "label": "Localiz",
            "type": "string"
        },
        {
            "property": "referenceCode",
            "width": "10%",
            "label": "Ref",
            "type": "string"
        },
        {
            "property": "serviceDate",
            "width": "12%",
            "label": "Atendimento",
            "type": "string"
        },
        {
            "property": "deliveryReqDate",
            "width": "12%",
            "label": "Entrega",
            "type": "string"
        }
    ],
    "tabFields": [
        {
            "gridColumns": 3,
            "property": "currencyCode",
            "label": "Moeda"
        },
        {
            "gridColumns": 3,
            "property": "orderTypeDescription",
            "label": "Natureza"
        },
        {
            "gridColumns": 3,
            "property": "origin",
            "label": "Origem"
        },
        {
            "gridColumns": 3,
            "property": "totalPrice",
            "label": "Preço"
        },
        {
            "gridColumns": 3,
            "property": "unitPrice",
            "label": "Preço unitário"
        },
        {
            "gridColumns": 3,
            "property": "aliquotIPI",
            "label": "Alíquota IPI"
        },
        {
            "gridColumns": 3,
            "property": "valueIPI",
            "label": "Valor IPI"
        },
        {
            "gridColumns": 3,
            "property": "originPrice",
            "label": "Preço origem"
        },
        {
            "gridColumns": 3,
            "property": "expenseType",
            "label": "Tipo despesa"
        },
        {
            "gridColumns": 3,
            "property": "document",
            "label": "Documento"
        },
        {
            "gridColumns": 3,
            "property": "expectation",
            "label": "Expect compra"
        },
        {
            "gridColumns": 3,
            "property": "movementDate",
            "label": "Data movimento"
        },
        {
            "gridColumns": 3,
            "property": "accountCode",
            "label": "Conta"
        },
        {
            "gridColumns": 3,
            "property": "costCenter",
            "label": "Centro custo"
        },
        {
            "gridColumns": 3,
            "property": "businessUnit",
            "label": "Unidade negócio"
        },
        {
            "gridColumns": 3,
            "property": "managinEstablishmentCode",
            "label": "Estabelecimento gestor"
        }
    ]
}

Descrição dos campos:

  • businessUnityFields: Array referente a aba da tabela de Unidade de Negócio da tela de Detalhe da Ordem. Suas propriedades são:
    • property: Nome de referência do campo.
    • width: Tamanho do campo.
    • label: Rótulo do campo exibido.
    • type: Tipo do valor campo.
  • detailFields: Campos apresentados no detalhe da ordem de compra.
    • gridColumns: Tamanho de exibição do campo em telas.
    • divider: Exibirá um divisor acima, utilizando o texto inserido como título.
    • property: Nome de referência do campo.
    • label: Rótulo do campo exibido.
  • breadcrumb: Objeto com propriedades do breadcrumb, componente que gera uma estrutura de navegação que apresenta ao usuário a localização da URL atual, exibindo as antecessoras conforme é realizado a navegação na aplicação:
    • items: Lista de itens do breadcrumb:
      • link: Url do item.
      • label: Rótulo do item.
  • contractFields: Array referente a aba de Contrato da tela de Detalhe da Ordem.
  • requisitionFields: Array referente a aba contendo a tabela de Requisição da tela de Detalhe da Ordem.
  • tabFields: Array contendo os campos referente a aba Complementar

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna a busca dos dados do metadados escolhido ou erros ocorridos durante a busca.



pi-query-v1

RequisitoTer registro nas tabelas de sugestão de pedido, registro esse criado através da execução do método pi-process.

Sintaxe

RUN pi-query-v1 in handle (INPUT oInput,

                                        OUTPUT oOutput).

Descrição







Executa a consulta das sugestões de pedido de compra no banco de dados, geradas pelo método pi-process e repassa os parâmetro da requisição recebido pela API de comunicação (ccp/api/v1/ordersSuggestions.p) para a camada de negócio (ccp/rules/ordersSuggestionsRules.p) chamando o método pi-query-v1. É possível filtrar a API utilizando filtros simples e complexos.

Retorna as sugestões de pedido de compra. Se houver filtro, retorna os valores filtrados.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de sugestões de pedido de compra:

  • queryParams:  É permitido informar filtros simples e complexos. 
    • page: Informar: numero da paginação;
    • pageSize informa a quantidade de campos que será retornado por cada paginação;

Exemplo

{
    "queryParams": {
       page: 1,

               pageSize: 5

    }

}

aResult

JsonArray

OUTPUT

Retorno da requisição trazendo as informações das sugestões de pedido de compra.

Exemplo de retorno

{
    "total": 5,
    "hasNext": true,
    "items": [
        {
            "orderType": 1,
            "paymentTermId": 60,
            "freightPaymentType": false,
            "siteCode": "1",
            "package": 0,
            "totalPrice": 64957.2,
            "vendorId": 1,
            "currencySymbol": "R$",
            "totalPurchaseOrders": 28,
            "userCode": "dmansupimpa2",
            "suggestionSequence": 1,
            "paymentTermDescription": "60 DIAS",
            "processSequence": 1,
            "incoterm": "",
            "carrierCode": 7,
            "freightPrice": 0.0,
            "vendorShortName": "COTROLEDb",
            "quotationProcessId": 0.0
        },
        {
            "orderType": 1,
            "paymentTermId": 1532,
            "freightPaymentType": false,
            "siteCode": "1",
            "package": 0,
            "totalPrice": 2748.8,
            "vendorId": 1,
            "currencySymbol": "R$",
            "totalPurchaseOrders": 3,
            "userCode": "dmansupimpa2",
            "suggestionSequence": 2,
            "paymentTermDescription": "5 DIAS FORA MES",
            "processSequence": 1,
            "incoterm": "",
            "carrierCode": 7,
            "freightPrice": 0.0,
            "vendorShortName": "COTROLEDb",
            "quotationProcessId": 0.0
        },
        {
            "orderType": 1,
            "paymentTermId": 10,
            "freightPaymentType": false,
            "siteCode": "1",
            "package": 0,
            "totalPrice": 711.9,
            "vendorId": 1,
            "currencySymbol": "R$",
            "totalPurchaseOrders": 2,
            "userCode": "dmansupimpa2",
            "suggestionSequence": 3,
            "paymentTermDescription": "10 DIAS",
            "processSequence": 1,
            "incoterm": "",
            "carrierCode": 7,
            "freightPrice": 0.0,
            "vendorShortName": "COTROLEDb",
            "quotationProcessId": 0.0
        },
        {
            "orderType": 1,
            "paymentTermId": 1,
            "freightPaymentType": false,
            "siteCode": "1",
            "package": 0,
            "totalPrice": 129.0625,
            "vendorId": 3,
            "currencySymbol": "R$",
            "totalPurchaseOrders": 1,
            "userCode": "dmansupimpa2",
            "suggestionSequence": 4,
            "paymentTermDescription": "SEM ONUS",
            "processSequence": 1,
            "incoterm": "",
            "carrierCode": 9,
            "freightPrice": 0.0,
            "vendorShortName": "3",
            "quotationProcessId": 0.0
        },
        {
            "orderType": 1,
            "paymentTermId": 0,
            "freightPaymentType": false,
            "siteCode": "1",
            "package": 0,
            "totalPrice": 821.0923,
            "vendorId": 1,
            "currencySymbol": "R$",
            "totalPurchaseOrders": 11,
            "userCode": "dmansupimpa2",
            "suggestionSequence": 5,
            "paymentTermDescription": null,
            "processSequence": 1,
            "incoterm": "",
            "carrierCode": 7,
            "freightPrice": 0.0,
            "vendorShortName": "COTROLEDb",
            "quotationProcessId": 0.0
        }
    ]
}

Descrição dos campos:

  • total: Total de registros encontrados
  • hasNext: Indica se tem mais páginas com registros a serem mostrados
  • items: Array com os registros retornados:
    • orderType: Natureza
    • paymentTermId: Código da condição de pagamento
    • freightPaymentType: Pagamento do frete 
    • siteCode: Código do estabelecimento
    • package: Número do processo da ordem
    • totalPrice: Valor total
    • vendorId: Código do emitente
    • currencySymbol: Símbolo da moeda
    • totalPurchaseOrders: Quantidade de ordens na sugestão
    • userCode: Código do usuário
    • suggestionSequence: Sequência do card da sugestão de pedido de compra
    • paymentTermDescription: Descrição da condição do pagamento
    • processSequence: Sequência do processo criado pelo método pi-process
    • incoterm: Incoterm
    • carrierCode: Código do transportador
    • freightPrice: Valor do frete
    • vendorShortName: Nome abreviado do fornecedor
    • quotationProcessId: Código da solicitação de cotação

lHasNext

Logical

OUTPUT

Indica que existem mais registros a serem mostrados.

aExpandables

JsonArray

OUTPUT

Cria um novo array caso a tabela de processo de sugestão de pedido de compra não esteja disponível.

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna a busca das sugestões de pedido de compra bem como seus dados, ou erros ocorridos durante a busca.



pi-query-orderlines-v1

RequisitoTer registro nas tabelas de sugestão de pedido, registro esse criado através da execução do método pi-process.

Sintaxe

RUN pi-query-orderlines-v1 in handle (INPUT oInput,

                                                         OUTPUT oOutput).

Descrição






Busca as ordens de compra das sugestões cadastradas na tabela de ordens da sugestão do pedido de compra (sugest-ped-comp-ordem) através de uma chave. Para montar a chave é necessário o código do usuário, sequência do processamento e sequência da sugestão (valores esses que podem ser consultados via pi-query-v1).

Repassa o parâmetro recebido pela API de comunicação (ccp/api/v1/ordersSuggestions.p) para a camada de negócio (ccp/rules/ordersSuggestionsRules.p) chamando o método pi-query-orderlines-v1.

Retorna as informações das ordens relacionadas a chave enviada por pathParam.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca das ordens de compras atreladas a uma sugestão de pedido de compra:

  • pathParams
    • usuário: código do usuário a ser consultado.
    • process: numero do processo gerado após a execução do método "pi-process".
    • sugestão: numero do card da sugestão.
    • orderLines: endPoint atual (pi-query-orderlines-v1).
  • queryParams: 
    • page: informar número da paginação (se não for especificado valor, será automaticamente 1).
    • pageSize: quantidade de campos que será retornado por paginação.
Exemplo

{

    "pathParams"[

       "Dmansupimpa2",

       1,

       1,

               orderlines

     ],

    "queryParams": {

      "page": 1,

             "pageSize": 20

  }
}

aResult

JsonArray

OUTPUT

Retorno trazendo todas as ordens atreladas ao usuário, processo e sequência enviados por pathParams.

Exemplo

{
    "total": 2,
    "hasNext": false,
    "items": [
        {
            "freightPaymentType": false,
            "comments": "",
            "quantity": 1.0,
            "totalPriceInDefaultCurrency": 678.0,
            "unitOfMeasure": "pc",
            "freightPriceInDefaultCurrency": 0.0,
            "itemCode": ".brianna",
            "unitPriceInDefaultCurrency": 678.0,
            "userCode": "dmansupimpa2",
            "quotationValidityDate": "2023-12-15",
            "firstDeliveryDate": "2023-12-14",
            "suggestOrderLineSeq": 1,
            "urgencyDescription": "Media",
            "urgency": 3,
            "quotationValidityDays": 1,
            "suggestSeq": 3,
            "processSeq": 1,
            "itemDescription": ".brianna",
            "orderLineNumber": 9999764,
            "expiredQuote": true
        },
        {
            "freightPaymentType": false,
            "comments": "",
            "quantity": 30.0,
            "totalPriceInDefaultCurrency": 33.9,
            "unitOfMeasure": "pc",
            "freightPriceInDefaultCurrency": 0.0,
            "itemCode": ".brianna",
            "unitPriceInDefaultCurrency": 1.13,
            "userCode": "dmansupimpa2",
            "quotationValidityDate": "2023-12-22",
            "firstDeliveryDate": "2023-12-11",
            "suggestOrderLineSeq": 2,
            "urgencyDescription": "Media",
            "urgency": 3,
            "quotationValidityDays": 1,
            "suggestSeq": 3,
            "processSeq": 1,
            "itemDescription": ".brianna",
            "orderLineNumber": 9999741,
            "expiredQuote": true
        }
    ]
}

Descrição dos campos:

  • total: Total de registros encontrados
  • hasNext: Indica se tem mais páginas com registros a serem mostrados
  • items: Array com os registros retornados:
    • freightPaymentType: Frete
    • comments: Narrativa
    • quantity: Quantidade solicitada
    • totalPriceInDefaultCurrency: Preço total na moeda padrão
    • unitOfMeasure: Unidade de medida
    • freightPriceInDefaultCurrency: Valor do frete na moeda padrão
    • itemCode: Código do item
    • unitPriceInDefaultCurrency: Preço unitário na moeda padrão
    • userCode: Código de usuário
    • quotationValidityDate: Data validade cotação
    • firstDeliveryDate: Data primeira entrega
    • suggestOrderLineSeq: Sequência da sugestão da ordem
    • urgencyDescription: Descrição da urgência
    • urgency: Urgência
    • quotationValidityDays: Dias validade
    • suggestSeq: Sequência da sugestão
    • processSeq: Sequência do processo
    • itemDescription: Descrição do item
    • orderLineNumber: Número da ordem de compra
    • expiredQuote: Cotação expirada
lHasNextLogicalOUTPUTIndica que existem mais registros a serem mostrados.

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna as ordens de uma sugestão de pedido de compra conforme a chave, ou erros ocorridos durante a busca



pi-validate-fields

RequisitoNenhum.
Sintaxe

RUN piValidateFields in handle (INPUT oInput,

                                                    OUTPUT oOutput).

Descrição







Valida se o campo messageText, responsável por trazer o texto da mensagem na modal de Gerar Pedido, está preenchido corretamente conforme seu campo auxiliar "messageCode" (Código de mensagem, na modal Gerar Pedido). Caso haja alguma falha no preenchimento, ele será validado e retornado preenchido corretamente em um JSON, evitando assim erro na exibição das informações.

O parâmetro é repassado pela api de comunicação (ccp/api/v1/ordersSuggestions) para a camada de negócio (ccp/rules/ordersSuggestionsRules) chamando o método piValidateFields.

Retorna o texto da mensagem enviada por payload.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de ordens específicos.

  • pathParams: 
    • validate: endPoint do método atual (piValidateFields)
  • payload:
    • É enviado o código do campo messageCode

Exemplo payload

{
    "value": {
        "messageCode": 1
    }
}

oOutput

JsonObject

OUTPUT

Informações do respectivo texto cadastrado para o código da mensagem enviado por payload

Exemplo de retorno

{
    "value": {
        "messageText": "Atenção as Condições Obrigatórias Para Fornecimento anexo a este pedido de compra. O prazo de pagamento deve ser contado a partir do dia seguinte a data de emissão da NF. P\/ a entrega de item(ns) com validade inferior a 120dd, informar o comprador responsável antes do faturamento\/entrega. Obrigatório informar o nº Pedido na NF.",
        "messageCode": 1
    }
}

Descrição dos campos:

  • messageText: Campo da modal Gerar Pedido que apresenta o texto cadastrado para o código da mensagem escolhido no campo "Código de mensagem"
  • messageCode: Código da mensagem. Seu texto é apresentado no campo "messageText", ao lado.

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante a busca dos dados.

Retorno

Texto cadastrado para o código da mensagem enviado por payload, bem como o próprio código da mensagem.



pi-process-v1

RequisitoNenhum.

Sintaxe

RUN pi-process-v1 in handle (INPUT oInput,

                                                OUTPUT oOutput).

Descrição







Realiza o processamento das sugestões de pedido, ou seja, procura as ordens de compra com campos em comum e cria os registros das tabelas sugest-ped-comp-process, sugest-ped-comp e sugest-ped-comp-ordem. Repassa os parâmetros recebidos pela API de comunicação (ccp/rules/ordersSuggestions)  para a camada de negócio (ccp/rules/ordersSuggestionsRules) chamando o método pi-process-v1.

O processamento é feito com base no que for recebido por payload. Além do payload vazio, é possível enviar nele filtros limitando assim as ordens que serão consideradas para a geração de sugestões, com base em diferentes critérios e combinações. 

Uma sugestão de compra é gerada quando uma ou mais ordens seguem todas as especificações a seguir:

  • Estabelecimento: As ordens devem possuir o mesmo estabelecimento indicado.

  • Emitente: O emitente das ordens precisa ser o mesmo.

  • Condição de Pagamento: As ordens devem compartilhar a mesma condição de pagamento.

  • Natureza: A natureza da transação deve ser idêntica entre as ordens consideradas.

  • Processo: O número do processo vinculado à ordem precisa ser idêntico.

  • Transportador: A empresa transportadora deve ser a mesma em todas as ordens.

  • Número do Processo de Cotação: As ordens precisam possuir o mesmo número de processo de cotação.

  • Incoterm: O Incoterm deve ser idêntico entre as ordens.

  • Situação: A ordem deve estar como "Cotada".
  • Pedido de compra: Não possuir pedido de compra atrelado a essa ordem.
  • Expectativa: As ordens não podem estar como Expectativa de Compra.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de ordens específicos.

  • pathParams: 
    • process (endPoint do método atual).
  • payload: O payload pode ter os seguintes filtros atrelados:
    • orderLineNumber: Número das ordens especificada;
    • requestNumber: Código da solicitação de compra;
    • vendorId: Código do fornecedor;
    • urgency: Numero da urgência (pode ser de 1 ate 4);
    • buyerCode: Código dos compradores;
    • siteCode: Estabelecimento;
    • quotationProcessId: Código do processo de cotação;
    • itemCode: Código do item;
    • quotationDate: Período da cotação :
      • start: Data inicial;
      • end: Data final.
    • orderDate: Data do pedido;
    • orderBy: Campo que será utilizado para a ordenação das sugestões de compra.
Exemplo Payload - 1

{
    "orderLineNumber": [
      57781476,
      57781480,
      57781479
    ],
    "requestNumber": [
      100,
      1,
      2
    ],
    "vendorId": [
      1,
      3
    ],
    "urgency": [
      1,
      2,
      3,
      4
    ],
    "buyerCode": [
      "super",
      "*mia",
      "@dss",
      "0012"
    ],
    "siteCode": [
      "001",
      "003"
    ],
    "quotationProcessId": [
      4,
      2,
      3
    ],
    "itemCode": [
      " .compras",
      " .compras_mcl"
    ],
    "quotationDate": {
      "start": "2023-12-13",
      "end": "2024-01-12"
    },
    "orderDate": "2024-01-03",
    "orderBy": "urgency"
  }

Exemplo Payload - 2

{
  "orderLineNumber": [
    5438
  ],
  "urgency": [
    1,
    2,
    3,
    4
  ],
  "quotationDate": {
    "start": "2023-12-11",
    "end": "2024-01-10"
  },
  "orderDate": "2024-01-10",
  "orderBy": "urgency"
}

Exemplo cabeçalho

{
    "pathParams": [
       process
    ]

}

oOutput

JsonObject

OUTPUT

Retorno da requisição trazendo as informações da finalização do processamento.

Exemplo de retorno

{
    "initialDatetime": "2024-01-10T11:37:55.000-03:00",
    "processSequence": 1,
    "progressPercent": 100,
    "finalDatetime": "2024-01-10T11:37:57.732-03:00",
    "userCode": "dmansupimpa2",
    "creationDatetime": "2024-01-10T11:37:55.000-03:00",
    "status": 3
}

Descrição dos campos:

  • initialDatetime: Data e hora inicial do processamento
  • processSequence: Sequência do processo, será atrelada as sugestões de pedido
  • progressPercent: Percentual de progresso do processamento
  • finalDatetime: Data e hora final do processamento
  • userCode: Usuário que fez o processamento
  • creationDatetime: Data da criação do processo
  • status: Status do processamento, 3 significa que foi encerrado.

Retorno

Retorna os dados relacionados a criação do processamento da sugestão.