Árvore de páginas

CONTEÚDO

  1. Visão Geral                                                                     clique no conteúdo para acesso rápido à informação desejada ↓
  2. API x Pontos UPC Relacionados
  3. JSON de metadata
  4. Especificidades de Customização
    1. Tela - Listagem Parâmetros Estabelecimento x GNRE
    2. Tela - Novo/Editar Parâmetros Estabelecimento x GNRE
      1. Aba Geral
      2. Aba Fornecedor x UF
  5. Observações Gerais

01. Visão Geral 

Este documento tem como objetivo descrever o que poderá ser customizado na tela HTML do programa Guias GNRE item de menu Parâmetros Estabelecimento x GNRE (html-mft.guiasGnre), aqui será descrito quais componentes e elementos podem ser customizados.

Importante

Esse documento somente cita itens de customização que diferem da customização padrão de uma tela HTML utilizando PO-UI, ou seja, somente as especificidades de customização do programa HTML em questão. As customizações nativas dos componentes dinâmicos do PO-UI podem ser verificadas aqui e não serão abordadas nesse documento.

02. API x Pontos UPC Relacionados 

Segue a lista de APIs e Pontos de UPC responsáveis pelo processamento da interface dinâmica e dos dados do programa.
Para maiores detalhes de como cadastrar uma UPC para essa API podem ser visualizados aqui.

  • API REST: ftp/api/v1/gnreParameters.p

  • URL base para requisições: https://<servidor>:<porta>/api/ftp/v1/gnreParameters


Manipulação de Objetos da Interface (Metadata)
Método (API)Endpoint (API)Endpoint (UPC)Evento (UPC)Entrada (UPC)Observação
GETURL_Base/metadata/?type=listgetMetaData

list

Metadados

Estrutura metadados da listagem.

GETURL_Base/metadata/?type=newgetMetaData

new

Metadados

Estrutura metadados da tela de inclusão.

GETURL_Base/metadata/<código estabelecimento>?type=editgetMetaData

edit

Metadados

Estrutura metadados da tela de edição.

GETURL_Base/metadata/<código estabelecimento>?type=copygetMetaData

detail

Metadados

Estrutura metadados da tela de detalhes.



Manipulação de Dados
Método (API)Endpoint (API)Endpoint (UPC)Evento (UPC)Entrada (UPC)Observação
GETURL_Base/<codigo estabelecimento>findById

findById

Dados do registro

Executado depois de buscar um registro específico.

GETURL_Base?pageSize=10&page=1findAll

findAll

Dados dos registros

Executado depois de buscar os registros.

POST

URL_Base

create

beforeCreate

Payload*

Executado antes de criar um registro.

POSTURL_Basecreate

afterCreate

Payload*

Executado depois da criação de um registro.

PUTURL_Baseupdate

beforeUpdate

Payload*

Executado antes da alteração de um registro.

PUTURL_Baseupdate

afterUpdate

Payload*

Executado depois da alteração de um registro.

DELETEURL_Base/<código estabelecimento>delete

beforeDelete

Vazio

Executado antes da eliminação de um registro.

DELETEURL_Base/<código estabelecimento>delete

afterDelete

Vazio

Executado depois da eliminação de um registro.

Exemplo de Payload (body da requisição)
{
    "descTpDespICMSUfDest": "INVESTIMENTO ETE",
    "descTpDespFCP": "INVESTIMENTO ETE",
    "estab": "1",
    "ccICMSST": "",
    "espICMSST": "dp",
    "descEspFCP": "duplicata",
    "espICMSUfDest": "dp",
    "updateInfAdicAuto": false,
    "descEspICMSUfDest": "duplicata",
    "ctFCP": "11361198",
    "updateApbAuto": true,
    "tpDespICMSST": 21,
    "espFCP": "dp",
    "ccFCP": "",
    "descEspICMSST": "duplicata",
    "ctICMSUfDest": "11361198",
    "ccICMSUfDest": "",
    "descTpDespICMSST": "INVESTIMENTO ETE",
    "tpDespFCP": 21,
    "integApb": true,
    "estabName": "Estabelecimento Automação - TOTVS",
    "tpDespICMSUfDest": 21,
    "ctICMSST": "00001116"
}

03. JSON de metadata

É possível retornar o metadata das telas para fazer a análise da estrutura do JSON, executando as requests abaixo (depois de logado no produto Datasul):

Tipo

Método (API)

Endpoint (API)

Observações

Listagem

GET

URL_Base/metadata/?type=list


Inclusão

GET

URL_Base/metadata/?type=new


Edição

GET

URL_Base/metadata/<código estabelecimento>?type=edit

Utiliza o código do estabelecimento como path param.

Copia

GET

URL_Base/metadata/<código estabelecimento>?type=copy

Utiliza o código do estabelecimento como path param.

04. Especificidades de Customização

a) Tela - Listagem Parâmetros Estabelecimento x GNRE 

A tela de listar não foi desenvolvida utilizando o componente dinâmico completo, como o po-page-dynamic-table por exemplo, e sim usando po-page com uma po-table, por conta disso alguns elementos da tela não podem ser customizados e algumas propriedades do metadata são utilizados de forma um pouco diferente, a seguir a descrição de cada customização possível.

PropriedadeDescription
title

Título da página.

Exemplo
"title":"Parâmetros Estabelecimento x GNRE"

pageCustomActions

Utilizado para remover o botão de novo parâmetros ou para inserir novos botões, o botão inserido aqui deve conter label e url.

Exemplo
"pageCustomActions":[{
    "label":"Novo Parâmetro",
    "url":"\/gnre\/gnreParameters\/new"
}]

tableCustomActions

Utilizado para remover os botões de editar, copiar e deletar das ações da tabela ou para inserir novos. Para que uma ação padrão não seja criada basta que o metadata não contenha os labels de Edit, Copy e Delete, caso necessário criar ou ação diferente ela deve possuir tanto label quanto url.

Exemplo
"tableCustomActions":[{
    "label":"Edit"

},{
    "label":"Copy"
},{
    "label":"Delete"

}]

columnsList

Lista das colunas da tabela, contém um array de objetos que implementam a interface PoTableColumn. Para mais informações do que é possível acessar a documentação do Portinari: po-table

Exemplo
"columnsList":[{
    "allowColumnsManager":true,
    "property":"estab",
    "label":"Estabelecimento",
    "type":"string",
    "key":true,
    "order":1
},{
    "allowColumnsManager":true,
    "booleanTrue":"Sim",
    "property":"integApb",
    "booleanFalse":"Não",
    "label":"Integra APB",
    "type":"boolean",
    "order":2
},{
    "allowColumnsManager":true,
    "booleanTrue":"Sim",
    "property":"updateApbAuto",
    "booleanFalse":"Não",
    "label":"Atualiza APB Automático",
    "type":"boolean",
    "order":3
}]

icmsStView

Elemento que se encontra dentro da expansão da linha da tabela, dados sobre o ICMS ST. Neste componente é utilizado o po-dynamic-view e todas as propriedades do PoDynamicViewField podem ser utilizadas.

Caso o icmsStViewicmsUfDestView e o fcpView não sejam enviados a expansão da linha não será exibida, caso apenas um ou dois desses elementos não sejam enviados a expansão ainda é criada, exibindo os elementos enviados.

Exemplo
"icmsSTView":[{
    "gridColumns":6,
    "property":"espICMSST",
    "label":"Espécie",
    "type":"string", 
    "order":1
},{
    "gridColumns":6,
    "property":"tpDespICMSST",
    "label":"Tipo Despesa",
    "type":"string",
    "order":2
},{
    "gridColumns":6,
    "property":"ctICMSST",
    "label":"Conta Contábil",
    "type":"string",
    "order":3
},{
    "gridColumns":6,
    "property":"ccICMSST",
    "label":"Centro Custo",
    "type":"string",
    "order":4
}],

icmsUfDestView

Elemento que se encontra dentro da expansão da linha da tabela, dados sobre o ICMS Uf Dest. Neste componente é utilizado o po-dynamic-view e todas as propriedades do PoDynamicViewField podem ser utilizadas.

Caso o icmsStViewicmsUfDestView e o fcpView não sejam enviados a expansão da linha não será exibida, caso apenas um ou dois desses elementos não sejam enviados a expansão ainda é criada, exibindo os elementos enviados.

Exemplo
"icmsUfDestView":[{
    "gridColumns":6,
    "property":"espICMSUfDest"",
    "label":"Espécie",
    "type":"string", 
    "order":1
},{
    "gridColumns":6,
    "property":"tpDespICMSUfDest"",
    "label":"Tipo Despesa",
    "type":"string",
    "order":2
},{
    "gridColumns":6,
    "property":"ctICMSUfDest"",
    "label":"Conta Contábil",
    "type":"string",
    "order":3
},{
    "gridColumns":6,
    "property":"ccICMSUfDest""",
    "label":"Centro Custo",
    "type":"string",
    "order":4
}],

fcpView

Expansão da linha da tabela, dados sobre o ICMS Uf Dest. Neste componente é utilizado o po-dynamic-view e todas as propriedades do PoDynamicViewField podem ser utilizadas.

Caso o icmsStViewicmsUfDestView e o fcpView não sejam enviados a expansão da linha não será exibida, caso apenas um ou dois desses elementos não sejam enviados a expansão ainda é criada, exibindo os elementos enviados.

Exemplo
"icmsUfDestView":[{
    "gridColumns":6,
    "property":"espICMSUfDest"",
    "label":"Espécie",
    "type":"string", 
    "order":1
},{
    "gridColumns":6,
    "property":"tpDespICMSUfDest"",
    "label":"Tipo Despesa",
    "type":"string",
    "order":2
},{
    "gridColumns":6,
    "property":"ctICMSUfDest"",
    "label":"Conta Contábil",
    "type":"string",
    "order":3
},{
    "gridColumns":6,
    "property":"ccICMSUfDest""",
    "label":"Centro Custo",
    "type":"string",
    "order":4
}],

b) Tela - Novo/Editar Parâmetros Estabelecimento x GNRE 

A tela de novo/editar não foi desenvolvida utilizando o componente dinâmico completo, como o po-page-dynamic-table por exemplo, e sim utilizando o po-page-default, po-lookup, po-dynamic-form, po-tabs e po-table, por conta disso alguns elementos da tela não podem ser customizados e algumas propriedades do metadata são utilizados de forma um pouco diferente, a seguir a descrição de cada customização possível.

i) Aba Geral

CampoDescrição
title

Título da página, essa informação pode ser:

  • novo;
  • editando;
  • copiando.

dependendo do type enviado na requisição que busca o metadata.

Exemplo
"title":"Novo Parâmetro Estabelecimento X GNRE"
breadcrumb

O caminho de migalhas da página, mostrando a página atual e a pagina anterior com o link para voltar

Exemplo
"items":[{
        "link":"\/gnre\/gnreParameters",
        "label":"Lista Parâmetros Estabelecimento x GNRE"
    },
    {
       "link":"\/gnre\/gnreParameters",
       "label":"Novo Parâmetro"
    }
]

urlGnre

URL utilizada para buscar os dados da aba "Geral"

Exemplo
"urlGnre":"\/dts\/datasul-rest\/resources\/prg\/ftp\/v1\/gnreParameters"
generalTab

formulário dinâmico da aba geral, deve vir um array de objetos que implementam a interface PoDynamicFormField. Para mais informações do que é possível inserir acessar a documentação do Portinari: po-dynamic-form

Exemplo
Obs: O exemplo aqui contem apenas 1 dos switches e 1 dos lookups como exemplo, pois o json completo para essa aba é longo.

"generalTab":[{
    "gridColumns":6,
    "booleanTrue":"Sim",
    "property":"integApb",
    "booleanFalse":"Não",
    "optional":true,
    "label":"Integrar com o Contas a pagar",
    "type":"boolean",
    "order":2
},{
    "gridColumns":6,
    "columns":[{
        "visible":true,
        "property":"code",
        "width":"25%",
        "label":"Código",
        "type":"string"
    },
    {
        "visible":true,
        "property":"description",
        "width":"50%",
        "label":"Descrição",
        "type":"string"
    },
    {
        "property":"documentTypeDescription",
        "width":"25%",
        "label":"Tipo",
        "type":"string"
    }],
    "format":[
        "code",
        "description"
    ],
    "optional":true,
    "label":"Espécie Padrão",
    "params":{
        "module":"apb",
        "order":"module"
    },
    "fieldValue":"code",
    "required":false,
    "divider":"ICMS ST",
    "searchService":"\/dts\/datasul-rest\/resources\/prg\/fin\/v1\/documentType",
    "fieldLabel":"description",
    "property":"espICMSST",
    "disabled":true,
    "order":5
}]

validateFields

Campos do formulário que terão validações quando forem preenchidos, corresponde a propriedade p-validate-fields do componente dinâmico po-dynamic-form.

Exemplo
"validateFields":[
      "estab",
      "integApb",
      "ctICMSST",
      "ctICMSUfDest",
      "ctFCP"
]


ii) Aba Fornecedor x UF 

CampoDescrição
urlGnreUf
URL utilizada para buscar os dados da aba "Fornecedor x UF"


Exemplo
"urlGnreUf":"\/dts\/datasul-rest\/resources\/prg\/ftp\/v1\/gnreParametersProviderUf"
fornecUfTabColumns

Lista das colunas da tabela de Fornecedor x UF, Deve vir um array de objetos que implementam a interface PoTableColumn. Para mais informações do que é possível inserir acessar a documentação do Portinari: po-table

Exemplo
"fornecUfTabColumns":[{
     "allowColumnsManager":true,
     "property":"providerName",
     "label":"Fornecedor",
     "type":"string",
     "order":17
},
{
     "allowColumnsManager":true,
     "property":"ufName",
     "label":"Estado",
     "type":"string",
     "order":18
}]
tableCustomActions

Campo utilizado para exibir ou não a ação de delete da tebela de UF x Fornecedor, caso não venha o DELETE nesta propriedade o botão não é criado.

Exemplo
"tableCustomActions":[{
     "label":"Delete"
}]
assocFornecUfModal

Campos da modal de Relalação Forncedor x UF, a modal possui um po-dynamic-form e aceita todas as propriedades da interface PoDynamicFormField. Para mais informações do que é possível inserir acessar a documentação do Portinari: po-dynamic-form

Exemplo
"assocFornecUfModal":[{
    "gridColumns":12,
    "searchService":"\/dts\/datasul-rest\/resources\/prg\/cdp\/v1\/customerPublic",
    "columns":[{
        ...
    }],
    "fieldLabel":"customerName",
    "property":"provider",
    "format":[
        "customerCode",
        "customerName"
    ],
    "label":"Fornecedor",
    "params":{
        "order":"customerCode"
    },
    "fieldValue":"customerCode",
    "required":true,
    "order":19
},
{
    "gridColumns":12,
    "optionsMulti":true,
    "property":"uf",
    "options":[{
        "label":"AC - Acre",
        "value":"AC"
    },
    { ... 
    }],
    "label":"Estado",
    "type":"label",
    "required":true,
    "order":20
}]

05. Observações Gerais 

  • Todos os objetos que não foram citados, a principio, não podem ser customizados.
  • Caso deseja-se customizar algum componente além dos descritos nesse documento e no documento padrão de customização do PO-UI, favor abrir um ticket solicitando e justificando a necessidade de customização.
  • Clique aqui para baixar um fonte exemplo de UPC para esse programa.