em construção.....

Objetivos
Tem a função de fazer um pre processamento das ordens de compra gerando sugestões de ordens de compras com o intuito de juntar 1 ou mais ordens de compra em um unico card. Essa junção é feita seguindo algumas regras especificas para que possa ser feito essa junção ao card.(pi-process);

possuem a função de pegar os metadatas das apresentação dos dados no front-end haver com as sugestões de compra (sendo eles: list, detail e edit) (pi-metadata);

possui a função de trazer as regras de validação de fornecedores (pi-validate-fields);

possui a função de trazer as ordens de compras atrelas a uma sugestão criada pelo process (pi-query-orderlines);

possui a função de trazer os valores das sugestões que foram geradas no process (por padrão o valor é 15 mas pode ser alterado pelo (COISALEGAL) ) (pi-query).


Funcionalidade 
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.

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

pi-process (post)

RequisitoNenhum.

Descrição







Repassa o parâmetro do tipo de evento recebido pela API de comunicação (ccp/rules/ordersSuggestions)  para o script de negocio (ccp/rules/ordersSuggestionsRules) chamando o método pi-process-v1.

Faz pre-processamento das ordens seguindo as regras de : 

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de ordens específicos.

pathParams:  Informar: numero da ordem.

Exemplo cabeçalho

{
    "pathParams": [
       process
    ]

}

Exemplo payload

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

oOutput

JsonObject

OUTPUT

Retorno da requisição trazendo as informações da finalização do pre 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
}

Retorno

Retorna a busca dos dados da ordem escolhida ou erros ocorridos durante a busca

pi-query

RequisitoPrecisa primeiro ter executado a pi-process

Descrição







Repassa os parâmetro da requisição (do tipo de evento) recebido pela API de comunicação (ccp/api/v1/ordersSuggestions.p) para o script de negocio (ccp/rules/ordersSuggestionsRules.p) chamando o método pi-query-orderlines-v1.

Retornando os valores das sugestões passadas pelo pathParams.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de sugestões de compra.

  • queryParams:  
    • page: Informar: numero da paginação;
    • pageSize informa a quantidade de campos que será retornado por cada paginação;
    • filter: pode ser utilizado filtros complexos.

Exemplo

{
    "queryParams": {
       page: 1,

               pageSize: 5
    }

}





oOutput

JsonObject

OUTPUT

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

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
        }
    ]
}

HasNext

Logical

OUTPUT

indica se seguindo a paginação, possui mais resultados a serem mostrados\

RowErrors

Temp-table

OUTPUT

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

Retorno

Retorna a busca dos dados das sugestões de compra (seguindo os parâmetros page e pageSize) encontradas ou erros ocorridos durante a busca

pi-query-orderlines

Requisitoprecisa primeiro ter executado a pi-process.

Descrição






Pega as ordens de compra atrelados a uma sugestão de compra, gerada pela pi-proces, passando os parâmetros necessários pelo pathParams e queryParams.

Repassa o parâmetro do tipo de evento recebido pela API de comunicação para o script de negocio (ccp/rules/purchaseOrderLinesV2) chamando o método pi-query-orderlines-V1.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

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

  • pathParams
    • usuário: código do usuário que esta sendo utilizado;
    • process: numero do processo gerado após a execução do 'pi-process';
    • sugestão: numero do card da sugestão;
    • orderLines: apenas chama a função pi-query-ordelines-V1
  • queryParams: 
    • page: informar: numero da paginação(caso não sege informado automaticamente ele será 1).
    • pageSize: informa a quantidade de campos que será retornado por paginação
Exemplo

{

    "pathParams"[

       "Dmansupimpa2",

       1,

       1,

               orderlines

     ],

    "queryParams": {

      "page": 1,

             "pageSize": 20

  }
}

oOutput

JsonObject

OUTPUT

Retorno contendo o as informações de todos as ordens na paginação escolhida:

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
        }
    ]
}

lHasNext,

number

OUTPUT

Informa um valor booleano se tem ou não uma próxima pagina

RowErrors

Temp-table

OUTPUT

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

Retorno

Retorna uma busca das ordens baseados em uma sugestão de pedido de compra seguindo a paginação escolhida ou erros ocorridos durante a busca

pi-metadata

RequisitoNenhum.

Descrição







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

Retorna os valores dos metadados associados com base nos pathParams e queryParams fornecidos.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros requisitados para busca de metadatas. 

  • queryParams: 
    • type:
      • list: Traz os metadatas referente a configuração da tabela que mostra as ordens relacionadas a sugestão de compra
      • edit: Traz os metadatas referente a configuração da listagem das sugestões de compra.
      • detail: Traz os metadatas referente a configuração da tela de detalhamento da ordem
  • pathParams:
    • metada: Diz que é uma requisição de metadata, é obrigatorio ter 

Exemplo

{
    "pathParams": [
       "metadata"
    ]

         "queryParams": {

                 "type":  "list"

     }

}

oOutput

JsonObject

OUTPUT

Retorno da requisição trazendo os valores do metadata pesquisada 

  • 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": []
}

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
        }
    ]
}
  • 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"
        }
    ]
}

RowErrors

Temp-table

OUTPUT

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

Retorno

Retorna a busca dos dados do metadata escolhido ou erros ocorridos durante a busca

pi-validate-fields (post)

RequisitoNenhum.

Descrição







faz a conferencia se o campo messageText esta preechido, caso não, ele retornara um com json com ele preenchido corretamente


Repassa o parâmetro do tipo de evento recebido pela API de comunicação (ccp/api/v1/ordersSuggestions)para o script de negocio (ccp/rules/ordersSuggestionsRules) chamando o método pi-validate-fields-v1.


Retornando os valores da ordem passada pelo pathParams.

Parâmetro

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para busca de ordens específicos.

  • pathParams: 
    • validate: informa que é uma requisição para pi-validate-fields.

Exemplo cabeçalho

{
    "pathParams": [
       "validate"
    ]

}

Exemplo payload

{

   value: {

      messageCode: 1

   }

}

oOutput

JsonObject

OUTPUT

Retorno da requisição trazendo as informações da ordem pesquisada 

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
    }
}

RowErrors

Temp-table

OUTPUT

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

Retorno

Campo messageText preenchido corretamente.