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)

As customizações nativas dos componentes dinâmicos do PO-UI estão detalhadas na documentação Manual de personalização e customização PO-UI e não serão abordadas neste documento.

02. API x Pontos UPC Relacionados


A API REST - cqp/api/v1/fichaCQInspecao.p deve ser cadastrada no menu do Datasul para que seja possível informar o programa customizado do cliente.  Para mais detalhes sobre como cadastrar uma UPC para API, consulte o tópico 5 da documentação  Customização PO-UI.

Nesta API REST foi implementada a técnica de chamada de UPC padrão para APIs REST Datasul.

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


Manipulação de Dados
EndpointEventoEntradaObjetivo
findByIdfindById

Payload, PathParams, QueryParams

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

FindAllFindAll

Payload, PathParams, QueryParams

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

getResults

findSampling

Payload, PathParams, QueryParams

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

findSamplingfindSampling

Payload, PathParams, QueryParams

Permite alterar os dados antes de apresentá-los na tela.

getStockMovement

Payload

Retorna os dados de estoque do roteiro

findStockMovementfindStockMovement
Permite alterar os dados retornados antes de apresentá-los na tela.
saveResultsbeforeSaveResults
permite capturar os dados enviados antes da execução do método
saveResultsafterSaveResults 
permite alterar os dados retornados ou atualizar no os dados capturados no banco de dados após a execução do método
saveSamplingbeforeSaveSampling
Salva dos dados de amostragem, caso entre os exames retornados para o roteiro exista exame que tenha amostragem.   Permite capturar os dados enviados antes de salvar no banco.
saveSamplingafterSaveSampling
Permite alterar os dados retornados após a execução do método.
confirmInspectionbeforeConfirmInspection


afterConfirmInspection

saveStockMovementbeforeSaveStockMovement 


afterSaveStockMovement

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 - Formulário de Parâmetros Itens de Obrigações Fiscais

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 da aba SCANC Distribuidora de combustível, deve vir um array de objetos que implementam a interface PoDynamicFormField.

"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