CONTEÚDO

  1. Visão Geral
  2. API x Pontos UPC Relacionados
  3. JSON de metadata
  4. Especificidades de customização
  5. Observações Gerais

01. Visão Geral 

Este documento tem como objetivo detalhar as possibilidades de personalização na tela HTML do programa  (html.cq022)

O método de customização para o html.cq0222 está baseado em código Progress, portanto não requer conhecimento específico de Angular, apenas conhecimento básico de JSON.

02. API x Pontos UPC Relacionados

Cadastrar no menu do Datasul a API REST - cqp/api/v1/fichaCQInspecao.p.   Para mais detalhes, consulte o tópico 5 da documentação Customização PO-UI.


O programa customizado (UPC) deverá tratar os seguintes parâmetros:
•    Endpoint: identifica o método que está sendo executado
•    Evento: identifica o evento/ponto UPC dentro do método
•    Programa: nome do programa que está sendo executado (API REST)
•    Objeto JSON: handle do objeto que contém o JSON que está sendo recebido ou retornado pelo método

Exemplo de UPC:


Manipulação de Dados
EndpointEvento
Objetivo
findByIdfindById

Get: retorna os dados de um único roteiro.   Permite alterar os dados retornados antes de apresentá-los na tela.

FindAllFindAll

Query: retorna os dados de vários roteiros, conforme filtro.   Permite alterar os dados antes de apresentá-los na tela.

getResults

FindResults


Permite alterar os dados dos exames e resultados do roteiro (tanto os pendentes quanto os já digitados) antes de apresentá-los na tela.

saveResultsbeforeSaveResults
Permite alterar os resultados dos exames antes de salvar.
saveResultsafterSaveResults 
Recebe os dados que foram salvos no banco de dados, permitindo que outras ações customizadas sejam executadas.
saveSamplingbeforeSaveSampling
Passa os dados de tela, incluindo a Quantidade de Não Conformes, permitindo interferir antes de salvar no banco de dados.
saveSamplingafterSaveSampling
Permite ações customizadas após salvar no banco de dados.
confirmInspectionbeforeConfirmInspection
Executado antes de encerrar a inspeção.

afterConfirmInspection
Executado após de encerrar a inspeção.
saveStockMovementbeforeSaveStockMovement 
Executado antes de salvar a movimentação do Estoque.

afterSaveStockMovement
Executado após salvar a movimentação do Estoque.
findSamplingfindSampling

Recebe os dados de Amostragem antes de apresentá-los na tela.

findStockMovementfindStockMovement

Permite alterar valores default da tela de movimentação de estoque, antes de apresentá-los na tela.

03. JSON de metadata

É possível retornar os metadados das telas para analisar a estrutura do JSON, executando as requests abaixo (após realizar o login no produto Datasul):

TipoEndpointObservações
Edição de Parâmetros

https://<servidor>:<porta>/api/ofp/v1/itemsParametersOF/metadata?type=edit

Utiliza o código do item como Query Param

Visualização de Parâmetros

https://<servidor>:<porta>/api/ofp/v1/itemsParametersOF/metadata?type=view

Utiliza o código do item como Query Param

04. Especificidades de Customização

A tela não utiliza o componente dinâmico completo (po-page-dynamic-edit), mas sim po-page com componentes como po-input, po-decimal, entre outros. Portanto, alguns elementos não podem ser customizados.

PropriedadeDescrição
scancFuelDistributorForm

Formulário dinâmico 

"scancFuelDistributorForm": [
         {
            "gridColumns": 6,
            "searchService": "/dts/datasul-rest/resources/prg/ofp/v1/itensObligations",
            "columns": [
                {
                    "property": "productCode",
                    "label": "Código",
                    "type": "string"
                },
                {
                    "property": "description",
                    "label": "Descrição",
                    "type": "string"
                },
                {
                    "property": "measureUnit",
                    "label": "Unidade medida",
                    "type": "string"
                }
            ],
            "fieldLabel": "measureUnit",
            "property": "productCode",
            "format": [
                "productCode",
                "description"
            ],
            "label": "Código produto",
            "placeholder": "Selecione o código do produto",
            "type": "string",
            "fieldValue": "productCode",
            "order": 1
        },
        {
            "gridColumns": 6,
            "searchService": "/dts/datasul-rest/resources/prg/ofp/v1/productStockVariation",
            "columns": [
                {
                    "property": "code",
                    "label": "Código",
                    "type": "string"
                },
                {
                    "property": "description",
                    "label": "Descrição",
                    "type": "string"
                },
                {
                    "property": "unity",
                    "label": "Unidade medida",
                    "type": "string"
                }
            ],
            "fieldLabel": "unity",
            "property": "productStockVariation",
            "format": [
                "code",
                "description"
            ],
            "label": "Produto variação estoque",
            "placeholder": "Selecione o código do produto",
            "type": "string",
            "fieldValue": "code",
            "order": 2
        },
        {
            "thousandMaxlength": 3,
            "gridColumns": 3,
            "property": "stateDivisionProducing",
            "label": "% Repartição UF do produtor",
            "placeholder": "Insira a % de repartição por UF do produtor",
            "type": "currency",
            "decimalsLength": 2,
            "order": 3
        },
        {
            "thousandMaxlength": 3,
            "gridColumns": 3,
            "property": "stateDivisionDestination",
            "label": "% Repartição UF de destino",
            "placeholder": "Insira a % de repartição por UF de destino",
            "type": "currency",
            "decimalsLength": 2,
            "order": 4
        }]
scancRefineryForm

Formulário dinâmico da aba SCANC Refinaria dos parâmetros dos itens de obrigações fiscais, deve vir um array de objetos que implementam a interface PoDynamicFormField.

"scancRefineryForm": [
        {
            "gridColumns": 6,
            "property": "refineryProduct",
            "label": "Produto refinaria",
            "placeholder": "Insira o produto refinaria",
            "type": "string",
            "maxLength": 10,
            "order": 5
        },
        {
            "gridColumns": 6,
            "searchService": "/dts/datasul-rest/resources/prg/ofp/v1/productStockVariation",
            "columns": [
                {
                    "property": "code",
                    "label": "Código",
                    "type": "string"
                },
                {
                    "property": "description",
                    "label": "Descrição",
                    "type": "string"
                },
                {
                    "property": "unity",
                    "label": "Unidade medida",
                    "type": "string"
                }
            ],
            "fieldLabel": "unity",
            "property": "productRegNF",
            "format": [
                "code",
                "description"
            ],
            "label": "Produto reg NF",
            "placeholder": "Selecione o código do produto",
            "type": "string",
            "fieldValue": "code",
            "order": 6
        }
    ]
espedForm

Formulário dinâmico da aba Campos SPED dos parâmetros dos itens de obrigações fiscais, deve vir um array de objetos que implementam a interface PoDynamicFormField.

"spedForm": [
        {
            "gridColumns": 6,
            "property": "IPIFramework",
            "label": "Enquadramento IPI",
            "placeholder": "Insira o enquadramento IPI",
            "type": "string",
            "maxLength": 5,
            "order": 7
        },
        {
            "thousandMaxlength": 3,
            "gridColumns": 6,
            "property": "internalICMSRate",
            "label": "Alíquota ICMS interna",
            "placeholder": "Insira a alíquota de ICMS interna",
            "type": "currency",
            "decimalsLength": 2,
            "order": 8
        }
    ]

05. Observações Gerais