Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice
maxLevel4

01. VISÃO GERAL

A Conciliação de dados é uma técnica que realiza o cruzamento (match) de dados na origem e destino, realizando comparações e verificando divergências, permitindo assim, a diminuição de erros, falta ou redundância de dados, promove ganhos como aumento da precisão, facilidade nos fechamentos, evitar fraudes e possibilidade de correções.

...

Informações
titleAtenção

Este conjunto de funcionalidades estará disponível apenas no release 12.1.33

02. ARQUITETURA

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameConciliação
simpleViewerfalse
width
diagramWidth993
revision2

03. CONFIGURAÇÃO

O desenvolvimento da funcionalidade Conciliação Contábil  Conciliador Protheus será realizada na plataforma web, assim, será necessária a utilização de desenvolvimento client-side (Front-End) com a tecnologia Angular e a biblioteca PO-UI e server-side (Back-End) com a tecnologia ADVPL.

A comunicação será realizada através das configurações disponíveis:

Configuração da Porta Multiprotocolo e Configuração Rest (AppServer.ini):

View file
nameappserver.ini
height250

Application Server - Porta Multiprotocolo

Rest - ADVPL

Configuração para desenvolvimento TL++:

Visão Geral

Repositório

Configuração

TLPP.

Front-End:

Criando um novo projeto Angular com PO UI


Pré-requisitos:

...

Fonte: PO UI - Primeiros passos

Menu

O desenvolvimento será On-Premises, ou seja, será necessário adicionar o item Conciliação Contábil no Menu Protheus para que esteja disponível, como trata-se de uma funcionalidade web, esses aplicativos devem se armazenados no RPO e possuir um controle de alterações:

...

Os arquivos serão gerados dentro da pasta dist dentro da pasta principal do projeto.

Back-End:

A comunicação será realizada através das configurações disponíveis:


Configuração da Porta Multiprotocolo e Configuração Rest (AppServer.ini):


View file
nameappserver.ini
height250


Application Server - Porta Multiprotocolo

Rest - ADVPL


Configuração para desenvolvimento TL++:

Visão Geral

Repositório

Configuração


Para que o aplicativo Angular POUI seja compilado utilizado no repositório Protheus, o conteúdo dentro da gerado na pasta dist deverá ser zipado, após, sua extensão mudada para app. Deve-se criar um fonte com extensão prw,  este fará a chamada do app . Todo o conteúdo deverá ficar em uma pasta, inclusive o fonte .prw que fará a chamada do app, em seguida, solicitar compilação da pastaatravés da função FWCallApp, ambos devem ser compilados no repositório Protheus.

Observação:  O conteúdo da pasta dist deverá ser zipado dentro de uma pasta com o mesmo nome do prw responsável pela chamada, no exemplo abaixo foi utilizado PREXAMPLE:


Exemplo de fonte chamando a função FwCallApp para abertura de rotinas PO-UI no menu Protheus:

...

Tdn: Abrindo Aplicativos Web no Protheus

Deploy


Deploy de pipeline PO-UI usando Gitea + Drone

...

Informações
titleConceitos Importantes

Fundamentos de Devops

POUI - Desenvolvimentos e expedições

04. 

...

DASHBOARD

Será uma área onde teremos alguns gráficos para exibir ao usuário alguns dados relevantes sobre a conciliação contábil da empresa, exemplo: o percentual de conciliação de uma determinada conta. 90% conciliados, 10% não conciliados, em forma de gráfico. Ainda não temos muitas informações sobre essa seção. (#025).

MENU LATERAL

O menu será construído com o componente Menu do PO UI. Quando um novo projeto Angular é criado com o PO UI, o sistema pergunta se o usuário quer gerar uma estrutura padrão que é utilizada nos projetos da TOTVS. Selecionando essa opção, o menu é gerado automaticamente junto com a estrutura, sendo somente necessário adicionar os links.

Image Removed

FILTROS

...

Cadastros e APIs

Cadastro de Configurações

tabsImplementação,Imagensids
Totvs custom tabs box
tabsImplementação,Imagens
idscadastro_configuracoes

Será necessário realizar os cadastros iniciais para utilização do conciliador, serão as configurações para utilização, as informações serão gravados na tabela QLB (Conciliador - Chaves) e devem conter:

Totvs custom tabs box-items
default
yes
referencia
filtros_implementacao,filtros_imagens
campos

QLB_CODCFG - Código identificador da configuração a ser conciliada

QLB_DESCFG - Descrição da configuração a ser conciliada

QLB_TABORI - Tabela de Origem da conciliação

QLB_TABDES - Tabela de Destino da conciliação

QLB_FIELDS - Campos que serão apresentados no conciliador (origem e destino)

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_FIelds
linenumberstrue
collapsetrue
{ "data_ori": ["E1_FILIAL", "E1_PREFIXO", "E1_NUM", "E1_PARCELA", "E1_TIPO", "E1_CLIENTE", "E1_LOJA", "E1_EMISSAO", "E1_VALOR"], "data_des": [ "CT2_FILIAL", "CT2_DATA", "CT2_LOTE", "CT2_SBLOTE", "CT2_DOC", "CT2_LINHA", "CT2_VALOR", "CT2_HIST"] }

QLB_REGORI - Regras a serem utilizadas na query dos das de origem

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_REGORI
linenumberstrue
collapsetrue
[ { "table": "CV3", "typejoin": "left", "relation": [ "E1_FILIAL = SUBSTRING(CV3_KEY, 1, 8)", "E1_PREFIXO = SUBSTRING(CV3_KEY, 9, 2)", "E1_NUM = SUBSTRING(CV3_KEY, 11, 6)", "E1_PARCELA = SUBSTRING(CV3_KEY, 17, 1)", "E1_TIPO = SUBSTRING(CV3_KEY, 18, 1)" ] } ]

QLB_REGDES - Regras a serem utilizadas na query dos das de destino

Bloco de código
languagecoldfusion
Totvs custom tabs box items
defaultyes
referenciafiltros_implementacao

Front-End:

Os campos do filtro serão construídos com o componente DynamicForm do PO UI. Ao carregar a tela, será necessário chamar uma API que recupera os filtros já salvos pelo usuário. Caso o endpoint retorne vazio, significa que o usuário ainda não salvou nenhum filtro. 

Por questão de performance, os endpoints dos selects/multiselects vão ser chamados somente quando clicados nos inputs. 

Os campos serão por seleção, ou seja, o usuário poderá selecionar todos os itens ou um item específico. Os inputs serão construídos com o módulo MultiSelect do PO UI. (#001)

Abaixo todos os filtros que vão estar disponíveis para configuração:

  • Filial (multiselect)
  • Data (de/até) (date)
  • Conta contábil (multiselect)
  • Moeda (select)
  • Conciliar por (select) (dependendo do filtro, abrirá um novo campo para o usuário colocar o número do processo ou extrato bancário) (#003), (#028)
  • Lançamento Padrão (multiselect) (#006)
  • Filtra entidade (select boolean)
  • Centro de custo (multiselect)
  • Item contábil (multiselect)
  • Clvl (multiselect)
  • Lote (#002)
  • Valor mínimo (#019)
  • Valor máximo (#019)

Teremos um filtro de valor mínimo e valor máximo para que o sistema desconsidere a divergência de valores (caso haja) nos itens conciliados automaticamente. (#019)

Como citado acima, após salvar o formulário, o front fará uma requisição para o back-end enviando os dados que o usuário selecionou nos filtros. Quando o usuário acessar novamente, os filtros estarão salvos. (#007)

Cada campo terá um parâmetro onde será possível adicionar um texto de ajuda para aquele campo específico. O local de exibição da ajuda na tela ainda não está definido. (#008)

Como o PO UI não tem a função de ordenar colunas arrastando e soltando como existe no Protheus, só é possível alterar a ordem das colunas por meio do gerenciador de colunas que existe nas tabelas do PO UI. (#023) 

Back-End:

Será necessário uma API para salvar os filtros do usuário e uma outra API para recuperar o filtro já salvo.

Para que o filtro que o usuário realizou reflita nos grids, o front vai chamar as APIs que trazem as informações dos grids passando os valores dos filtros como query strings, assim a API vai saber o que filtrar na hora de trazer o resultado.

Os filtros deverão possuir help para facilitar entendimento do usuário.

Serão necessárias disponibilidade das APIs abaixo:

  • API para informações de Filiais - Branch (SM0)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson RequestConfiguração - QLB_REGDES
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "items { "table": "CV3", "typejoin": "left", "relation": [
 "CT2_FILIAL = CV3_FILIAL", "CT2_LOTE = CV3_LOTKEY",  {
            "id":"T1D MG 01",
			"label":"D MG 01",
			"value":"D MG 01",
			"deleted":""
        },
        {
           "id":"T1D RJ 01",
			"label":"D RJ 01",
			"value":"D RJ 01",
			"deleted":""
        },
        {
            "id":"T1M PR 01",
			"label":"M PR 01",
			"value":"M PR 01",
			"deleted":""
        },
        {
            "id":"T1M SP 01",
			"label":"M SP 01",
			"value":"D SP 01",
			"deleted":""
        }      
    ],
	"hasNext":true,
    "po_sync_date":"2021-02-09T21:00:38Z"
}
  • API para informações do Plano de Contas Contábeis - AccountantAccount (CT1)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
	{ "BranchId": "D MG 01"},
	{ "BranchId": "D RJ 02"}
]
"CT2_SBLOTE = CV3_SBLKEY", "CT2_DOC = CV3_DOCKEY", "CT2_LINHA = CV3_LINKEY", "CT2_TPSALD = CV3_TPSKEY", "CT2_EMPORI = CV3_EMPKEY", "CT2_FILORI = CV3_FLOKEY " ] } ]

QLB_FILTER - Filtros utilizados para busca dos dados (origem e destino)

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_FILTER
linenumberstrue
collapsetrue
{ "tabori": [ { "order": "10", "field": "E1_TIPO", "operation": "=" }, { "order": "11", "field": "E1_NATUREZ", "operation": "=" }, { "order": "12", "field": "E1_VALOR", "operation": ">=" }, { "order": "13", "field": "E1_VALOR", "operation": "=<" }, { "order": "01", "field": "E1_EMISSAO", "operation": ">=" }, { "order": "02", "field": "E1_EMISSAO", "operation": "<=" }, { "order": "03", "field": "E1_VENCREA", "operation": ">=" }, { "order": "04", "field": "E1_VENCREA", "operation": "<=" }, { "order": "05", "field": "E1_CLIENTE", "operation": "=" }, { "order": "06", "field": "E1_LOJA", "operation": "=" }, { "order": "07", "field": "E1_PREFIXO", "operation": "=" }, { "order": "08", "field": "E1_NUM", "operation": ">=" }, { "order": "09", "field": "E1_NUM", "operation": "=<" } ],  "tabdes": [ { "order": "01", "field": "CT2_DATA", "operation": ">=" }, { "order": "02", "field": "CT2_DATA", "operation": "<=" }, { "order": "03", "field": "CT2_LOTE", "operation": "=" }, { "order": "04", "field": "CT2_DEBITO", "operation": "=" }, { "order": "05", "field": "CT2_CCD", "operation": "=" }, { "order": "06", "field": "CT2_ITEMD", "operation": "=" }, { "order": "07", "field": "CT2_CLVLDB", "operation": "=" } ] }

QLB_CIDOR - Campo ID da tabela de origem

QLB_CIDDES - Campo ID da tabela de destino 

QLB_DESCOR - Descrição da tabela origem

QLB_DESCDE - Descrição da tabela destino


APIs

Totvs custom tabs box
tabsImplementação,Imagens
idsapis_imagens

CONFIGURAÇÕES e FILTROS

Possibilitará ao usuário buscar as configurações cadastradas no conciliador e também os filtros para obter os dados de origem e destino.

Totvs custom tabs box items
defaultyes
referenciaconfiguracoes_filtros

API para recuperar as configurações adicionadas pelo usuário e os filtros a serem utilizados, deverá buscar essas informações nos campos QLB_CODCFG, QLB_DESCFG e QLB_FILTER.

  • matchsetting
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "filter": {
                "tabdes": [
                    {
                        "order": "01",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "CT2_LOTE",
                        "title": "Numero Lote",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "04",
                        "field": "CT2_DEBITO",
                        "title": "Cta Debito",
                        "type": "C",
                        "size": 20,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "05",
                        "field": "CT2_CCD",
                        "title": "C Custo Deb",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "CT2_ITEMD",
                        "title": "Item Debito",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "CT2_CLVLDB",
                        "title": "Cl Vlr Deb",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    }
                ],
                "tabori": [
                    {
                        "order": "10",
                        "field": "E1_TIPO",
                        "title": "Tipo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "11",
                        "field": "E1_NATUREZ",
                        "title": "Natureza",
                        "type": "C",
                        "size": 10,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "12",
                        "field": "E1_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": ">="
                    },
                    {
                        "order": "13",
                        "field": "E1_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": "=<"
                    },
                    {
                        "order": "01",
                        "field": "E1_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "E1_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "E1_VENCREA",
                        "title": "Vencto real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "04",
                        "field": "E1_VENCREA",
                        "title": "Vencto real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "05",
                        "field": "E1_CLIENTE",
                        "title": "Cliente",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "E1_LOJA",
                        "title": "Loja",
                        "type": "C",
                        "size": 2,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "E1_PREFIXO",
                        "title": "Prefixo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "08",
                        "field": "E1_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "09",
                        "field": "E1_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "=<"
                    }
                ]
            },
            "tabdes": "LANCAMENTOS CONTABEIS(CT2)",
            "codcfg": "0101",
            "tabori": "CONTAS A RECEBER(SE1)",
            "value": "T1||0101",
            "branch": "",
            "label": "0101-CONTABIL X CONTAS A RECEBER"
        },
        {
            "filter": {
                "tabdes": [
                    {
                        "order": "01",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "CT2_LOTE",
                        "title": "Numero Lote",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "04",
                        "field": "CT2_CREDIT",
                        "title": "Cta Credito",
                        "type": "C",
                        "size": 20,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "05",
                        "field": "CT2_CCC",
                        "title": "C Custo Crd",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "CT2_ITEMC",
                        "title": "Item Credito",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "CT2_CLVLCR",
                        "title": "Cl Vlr Cred",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    }
                ],
                "tabori": [
                    {
                        "order": "10",
                        "field": "E2_TIPO",
                        "title": "Tipo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "11",
                        "field": "E2_NATUREZ",
                        "title": "Natureza",
                        "type": "C",
                        "size": 10,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "12",
                        "field": "E2_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": ">="
                    },
                    {
                        "order": "13",
                        "field": "E2_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": "=<"
                    },
                    {
                        "order": "01",
                        "field": "E2_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "E2_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "E2_VENCREA",
                        "title": "Vencto Real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "04",
                        "field": "E2_VENCREA",
                        "title": "Vencto Real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "05",
                        "field": "E2_FORNECE",
                        "title": "Fornecedor",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "E2_LOJA",
                        "title": "Loja",
                        "type": "C",
                        "size": 2,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "E2_PREFIXO",
                        "title": "Prefixo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "08",
                        "field": "E2_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "09",
                        "field": "E2_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "=<"
                    }
                ]
            },
            "tabdes": "LANCAMENTOS CONTABEIS(CT2)",
            "codcfg": "0102",
            "tabori": "CONTAS A PAGAR(SE2)",
            "value": "T1||0102",
            "branch": "",
            "label": "0102-CONTABIL X CONTAS A PAGAR"
        }
    ],
    "hasNext": false,
    "po_sync_date": "2021-08-25T17:19:20Z"
}          


API para criar as tabelas e popular temporárias origem e destino, conterá os campos utilizados e as informações das tabelas, utilizará os campos QLB_TABORI, QLB_TABDES, QLB_FIELDS, QLB_REGORI e QLB_REGDES.

  • matchprocessing
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
{
   "codcfg": "0101",
   "date": "20210728",
   "time": "16:12",
   "user": "a.santos",
   "tabdes": [
      {
         "field": "CT2_DATA",
         "operation": ">=",
         "value": "20210701",
         "type": "D"
      },
      {
         "field": "CT2_DATA",
         "operation": "<=",
         "value": "20210731",
         "type": "D"
      },
      {
         "field": "CT2_LOTE",
         "operation": "=",
         "value": "008850",
         "type": "C"
      },
      {
         "field": "(CT2_DEBITO OR CT2_CREDIT)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_CCD OR CT2_CCC)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_ITEMD OR CT2_ITEMC)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_CLVLDB OR CT2_CLVLCR)",
         "operation": "=",
         "value": "",
         "type": "C"
      }
   ],
   "tabori": [
      {
          "field": "E1_TIPO",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_NATUREZ",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_VALOR",
          "operation": ">=",
          "value": 0.00,
          "type": "N"
      },
      {
          "field": "E1_VALOR",
          "operation": "<=",
          "value": 1000.00,
          "type": "N"
      },
      {
          "field": "E1_EMISSAO",
          "operation": ">=",
          "value": "20210701",
          "type": "D"
      },
      {
          "field": "E1_EMISSAO",
          "operation": "<=",
          "value": "20210731",
          "type": "D"
      },
      {
          "field": "E1_VENCREA",
          "operation": ">=",
          "value": "",
          "type": "D"
      },
      {
          "field": "E1_VENCREA",
          "operation": "<=",
          "value": "",
          "type": "D"
      },
      {
          "field": "E1_CLIENTE",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_LOJA",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_PREFIXO",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
           "field": "E1_NUM",
           "operation": ">=",
           "value": "",
           "type": "C"
      },
      {
          "field": "E1_NUM",
          "operation": "=<",
          "value": "",
          "type": "C"
      }
   ]
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "tabori": "TC25144444",
    "tabdes": "TC25144448"
}

...

GRID

Totvs custom tabs box
tabsImplementação,Grid, Modal de Confirmação, Alerta de Status
idsgrid_implementacao,grid_imagem,grid_modal,grid_alert
Totvs custom tabs box
tabsImplementação,Grid, Modal de Confirmação, Alerta de Status
idsgrid_implementacao,grid_imagem,grid_modal,grid_alert

Os grids apresentarão as informações utilizadas na conciliação, serão separadas em Origem e Destino, os campos para apresentação dos dados serão configuráveis e devem ser adicionados na tabela QLB, campo QLB_FIELDS.

Teremos essas opções no combobox citado acima: 

  • Registros conciliados
  • Registros não conciliados

Os registros serão apresentados conforme os filtros adicionados pelo usuário, as informações que tiverem match automático aparecerão marcados na origem e destino e estão prontos para conciliação, não poderão ser desmarcados pois atenderam a regra automática. Já os registros que não tiverem match automático, poderão ser selecionados na origem e destino para conciliação manual.

Após clicar no botão "Conciliar", um modal (aba 3) será exibido para que o usuário confirme sua ação. O modal será construído com o componente Modal do PO UI. Depois da confirmação do usuário, o sistema irá exibir um alerta para o usuário informando o usuário sobre o resultado da ação (aba 4). O alerta será construído com o Interceptor do PO UI, em conjunto com o back-end.

Será possível realizar a exportação das tabelas via excel. Ao exportar o arquivo, os matches precisam estar alinhados para facilitar a visualização. No arquivo também terá a informação dos filtros que foram selecionados.


Totvs custom tabs box items
defaultyes
referenciagrid_implementacao

Api responsável por realizar a consulta nas tabelas temporárias de origem e destino e apresentar as informações para apresentação no front-end.

  • conciliateitems:
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Get
linenumberstrue
collapsetrue
{
    "items": [
        {
            "a1tpcamp": "",
            "a1loja": "01",
            "a1prior": "",
            "a1pais": "",
            "a1rimamt": "",
            "a1regpb": "",
            "a1dtfimv": "",
            "a1condpag": "",
            "a1diaspag": 0,
            "a1tribfav": "",
            "a1pessoa": "J",
            "a1endcob": "TESTEMACARIO, 1977",
            "a1dest2": "",
            "a1endent": "",
            "a1subcod": "",
            "a1tpissrs": "",
            "a1dest1": "",
            "a1dest3": "",
            "a1prfcod": "",
            "a1clicnv": "",
            "a1pricom": "1987-8-31",
            "a1ultcom": "2021-8-6",
            "a1nrocom": 254,
            "a1bco1": "",
            "a1bco2": "",
            "a1bco3": "",
            "a1bco4": "",
            "a1bco5": "",
            "a1lc": 1000000,
            "a1iencont": "",
            "a1hrtrans": "",
            "a1compent": "",
            "a1percatm": 0,
            "a1abatimp": "",
            "a1contab": "",
            "a1nome": "CLIENTE PADRAO",
            "a1codmune": "",
            "a1nropag": 64,
            "a1unidven": "",
            "a1outrmun": "",
            "a1aliqir": 15,
            "a1munc": "",
            "a1end": "R...",
            "a1vend": "",
            "a1mune": "",
            "a1cond": "",
            "a1codmemb": "",
            "a1simples": "",
            "a1naturez": "IRGCT",
            "a1tipprfl": "",
            "a1inovaut": "",
            "a1userlga": "0#  3@  20 30c",
            "a1cod": "000001",
            "a1userlgi": "",
            "a1tabela": "",
            "a1cargo1": "",
            "a1cargo2": "",
            "a1comis": 0,
            "a1cepe": "",
            "a1venclc": "",
            "a1cargo3": "",
            "a1tipcli": "",
            "a1cepc": "",
            "a1tipo": "F",
            "a1tpmemb": "",
            "a1codpais": "",
            "a1incult": "",
            "a1cnae": "",
            "a1grptrib": "",
            "a1tipper": "",
            "a1tpfret": "",
            "a1recfet": "",
            "a1cdrdes": "",
            "a1rg": "",
            "a1fax": "",
            "a1mundfc": "",
            "a1indret": "",
            "a1contrib": "",
            "a1msexp": "",
            "a1alifixa": "",
            "a1desc": 0,
            "a1entid": "",
            "a1codter": "",
            "a1lcfin": 0,
            "a1tda": "",
            "a1super": "",
            "a1moedalc": 0,
            "a1est": "SP",
            "a1ddd": "",
            "a1estc": "",
            "a1telex": "",
            "a1ddi": "",
            "a1tipocli": "",
            "a1este": "",
            "a1reccsll": "",
            "a1issrslc": "",
            "a1vinculo": "",
            "a1tpdp": "",
            "a1suframa": "",
            "a1metr": 89.66,
            "a1atr": 0,
            "a1rtec": "",
            "a1matr": 0,
            "a1codfid": "",
            "a1fomezer": "",
            "a1tel": "",
            "a1perfil": 0,
            "a1mun": "SAO PAULO",
            "a1chqdevo": 0,
            "a1salfin": 0,
            "a1clifat": "",
            "a1resfat": "",
            "a1calcsuf": "",
            "a1minirf": "",
            "a1entori": "",
            "a1rfasemt": "",
            "a1m996": "",
            "a1inscrm": "",
            "a1clasven": "",
            "a1salfinm": 0,
            "a1cxposta": "",
            "a1sativ2": "",
            "a1dtnasc": "",
            "a1sativ4": "",
            "a1ibge": "",
            "a1classe": "",
            "a1observ": "",
            "a1sativ8": "",
            "a1sativ6": "",
            "a1sativ7": "",
            "a1sativ1": "",
            "a1complem": "",
            "a1vacum": 110083.67,
            "a1codhist": "",
            "a1contato": "",
            "a1tpessoa": "",
            "a1agreg": "",
            "a1sativ3": "",
            "a1reciss": "",
            "a1tmpstd": "00:00",
            "a1ctare": "",
            "a1inciss": "",
            "a1numra": "",
            "a1loccons": "",
            "a1irbax": "",
            "a1sativ5": "",
            "a1usadda": "",
            "a1maidupl": 103835.32,
            "a1saldupm": 57365.05,
            "a1idhist": "",
            "a1msaldo": 119276.7,
            "a1imgumov": "",
            "a1idestn": "",
            "a1pagatr": 190479.97,
            "a1endrec": "",
            "a1salped": 94.74,
            "a1fildeb": "",
            "a1codmarc": "",
            "a1fretiss": "",
            "a1dscreg": "",
            "a1simpnac": "",
            "a1tpreg": "",
            "a1nif": "",
            "a1nvestn": 0,
            "a1codmun": "",
            "a1grpven": "",
            "a1mcompra": 152889,
            "a1codmusu": "",
            "a1codsiaf": "",
            "a1recirrf": "1",
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
		{
            "value": "T1D MG 01000001",
			"branch":"D MG 01",
			"label":"000001",
			"deleted":""
        },
        {
         	"value": "T1D MG 01000003",
			"branch":"D MG 01",
			"label":"000003",
			"deleted":""
        },
        {
          	"value": "T1D MG 01000005",
			"branch":"D MG 01",
			"label":"000005",
			"deleted":""
        },
        {
            "valuea1ec06db": "T1D RJ 02000001",
			"branchId":"D RJ 02",
			"label":"000001",
			"deleted":""            "a1pfisica": "",
            "a1codloc": "",
        },
	     {"a1hrcad": "",
            "valuea1dtcad": "T1D RJ 02000005",
			"branch":"D RJ 02",
			"label":"000005",
			"deleted":""            "a1ec06cr": "",
        }  
    ],
	"hasNext"a1perfecp":true 0,
    "po_sync_date":"2021-02-09T21:00:38Z"
}
  • API para informações de Lançamento Padrão - StandardEntry (CT5)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
       { "BranchIda1salpedb": 0,
  "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items"a1bairroc": ["",
        {
    "a1recinss": "",
       "value": "T1D MG 01595",
			"branch":"D MG 01",
			"label"a1bairroe": "595",
			"sequential":"001",
			"deleted":""            "a1rfabov": "",
            "a1endnot": "",
        }     "a1codfor": "",
         {
   "a1salpedl": -111.450000000000003,
       	"value": "T1D MG 01596",
			"branch":"D MG 01",
			"label":"596",
			"sequential":"001",
			"deleted":""a1hrexpo": "",
        },
    "a1ec08db": "",
   {
           	"valuea1timekee": "T1D MG 01598",
			"branch":"D MG 01",
			"label":"598",
			"sequential":"001",
			"deleted":""
            "a1filial": "D MG",
            "a1msblql": "",
         }    "a1chvcam": "",
        {     "a1regiao": "",
            "valuea1inscrur": "T1D RJ 02595",
			"branch":"D RJ 02",
			"label":"595",
			"sequential":"001",
			"deleted":""
            "a1temvis": 0,
            "a1ultvis": "",
            "a1prstser": "",
         },
	    {"a1tmpvis": "",
            "valuea1dtiniv": "T1D RJ 02597",
			"branch":"D RJ 02",
			"label":"597",
			"sequential":"001",
			"deleted":""            "a1reserve": "",
        }  
    ],
	"hasNext":true,
"a1reccofi": "",
            "po_sync_datea1ec08cr":"2021-02-09T21:00:38Z"
}
  • API para informações de Centro de Custo - CostCenter (CTT)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
 "",
           { "BranchIda1recpis": "D MG 01"},
     {       "BranchIda1crdma": "D",
   RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {"a1mensage": "",
            "valuea1prfvld": "T1D MG 01CC000001",
			"branch":"D MG 01",
			"label":"CC000001",
			"deleted":""
              "a1tpj": "",
            "a1formvis": "",
      },
      "a1dtultit": "",
 {
           	"valuea1recfmd": "T1D MG 01CC000002",
			"branch":"D MG 01",
			"label":"CC000002",
			"deleted":""
            "a1regesim": "",
             }"a1saldup": 724493.56,
        {
     "a1dtulchq": "",
            	"valuea1b2b": "T1D MG 01CC000005",
			"branch":"D MG 01",
			"label":"CC000005",
			"deleted":""
              "a1nreduz": "CLIENTE PADRAO",
            "a1blemail": "",
      },
        {"a1cbo": "",
            "valuea1obs": "T1D RJ 02CC000002",
			"branch":"D RJ 02",
			"label":"CC000002",
			"deleted":""
            "a1codage": "",
         },
	    {"a1comage": 0,
            "valuea1email": "T1D RJ 02CC000003",
			"branch":"D RJ 02",
			"label":"CC000003",
			"deleted":""            "a1hpage": "",
            "a1incltmg": "",
            "a1cep": "",
        }  
    ],
	"hasNext":true,
    "po_sync_date":"2021-02-09T21:00:38Z"
}
  • API para informações de Itens Contábeis - Department (CTD)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
"a1conta": "",
           { "BranchIda1inscr": "D MG 01"},
        { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items"a1abics": [
"",
            {"a1rfacs": "",
            "valuea1filtrf": "T1D MG 01CTD00001",
			"branch":"D MG 01",
			"label":"CTD00001",
			"deleted":""            "a1clipri": "",
            "a1lojpri": "",
        },
        {
"a1bairro": "",
            	"valuea1ativida": "T1D MG 01CTD00005",
			"branch":"D MG 01",
			"label":"CTD00005",
			"deleted":""            "a1situa": "",
            "a1cgc": "",
        },
        {
"a1prfobs": "",
            	"valuea1ipweb": "T1D MG 01CTD00008",
			"branchId":"D MG 01",
			"label":"CTD00008",
			"deleted":""
               "a1transf": "",
     },
        {"a1tpnfse": "",
            "valuea1transp": "T1|D RJ 02CTD00001",
			"branch":"D RJ 02",
			"label":"CTD00001",
			"deleted":""
            "a1ec09db": "",
         },
	    {"a1ec09cr": "",
            "valuea1ceinss": "T1D RJ 02CTD00002",
			"branch":"D RJ 02",
			"label":"CTD00002",
			"deleted":""            "a1ec05db": "",
        }  
    ],
	"hasNexta1titprot":true -1,
            "po_sync_datea1ec05cr":"2021-02-09T21:00:38Z"
}
  • API para informações de Classe de Valor - ClassValue (CTH)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
 "",
            "a1origct": "",
            "a1ec07db": "",
            "a1estado": "",
            "a1ec07cr": "",
           { "a1cbairre": "",
            "valuea1codseg": "T1D MG 01CTH00001",
			"branch":"D MG 01",
			"label":"CTH00001",
			"deleted":            "a1origem": "",
            "a1matfun": "",
            "a1risco": ""
        },
        {
            	"valuea1tpcamp": "T1D MG 01CTH00005",
			"branch":"D MG 01",
			"label":"CTH00005",
			"deleted":""            "a1loja": "01",
        },
        {"a1prior": "",
            "valuea1pais": "T1D MG 01CTH00008",
			"branch":"D MG 01",
			"label":"CTH00008",
			"deleted":""            "a1rimamt": "",
            "a1regpb": "",
        },
        {"a1dtfimv": "",
            "valuea1condpag": "T1D RJ 02CTH00001",
			"branch":"D RJ 02",
			"label":"CTH00001",
			"deleted":""
            "a1diaspag": 0,
            "a1tribfav": "",
         },
	    {"a1pessoa": "J",
            "valuea1endcob": "T1D RJ 02CTH00002",
			"branch":"D RJ 02",
			"label":"CTH00002",
			"deleted":""            "a1dest2": "",
            "a1endent": "",
        }  
    ],
	"hasNext":true,
"a1subcod": "",
      "po_sync_date      "a1tpissrs":"2021-02-09T21:00:38Z"
}
  • API para informações de Moedas - Currency (CTO)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
 "",
           { "BranchIda1dest1": "D MG 01"},
    {  "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
    "a1dest3": "",
             {"a1prfcod": "",
            "valuea1clicnv": "T1D MG 0101",
			"branch":"D MG 01",
			"label":"01",
			"description":"REAL",
			"deleted":""
            "a1pricom": "1998-1-12",
            "a1ultcom": "2021-5-14",
            "a1nrocom": 50,
            "a1bco1": "",
         },
    "a1bco2": "",
             {
"a1bco3": "",
            	"valuea1bco4": "T1D MG 0102",
			"branch":"D MG 01",
			"label":"02",
			"description":"DOLAR",
			"deleted":""
             "a1bco5": "",
       },
     "a1lc": 0,
  {
           	"valuea1iencont": "T1D MG 0103",
			"branch":"D MG 01",
			"label":"03",
			"description":"EURO",
			"deleted":""            "a1hrtrans": "",
            "a1compent": "",
        },
        {"a1percatm": 0,
            "valuea1abatimp": "T1|D RJ 0201",
			"branch":"D RJ 02",
			"label":"01",
			"description":"REAL",
			"deleted":""
1",
            "a1contab": "",
            "a1nome": "CLIENTE ANDREA",
         },
	    {"a1codmune": "",
            "valuea1nropag": "T1|D RJ 0202",
			"branch":"D RJ 02",
			"label":"02",
			"description":"DOLAR",
			"deleted":"" 18,
            "a1unidven": "",
            "a1outrmun": "",
            "a1aliqir": 0,
        }  
    ],
	"hasNext":true,
"a1munc": "",
            "po_sync_datea1end":"2021-02-09T21:00:38Z"
}
  • API para informações bancárias - Bank (SA6) com a opção Get (#014)
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
 "RUA DAS ESTRELAS,100",
           { "BranchIda1vend": "D MG 01"},
    {        "BranchIda1mune": "D",
   RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {"a1cond": "",
            "ida1codmemb": "T1|D MG 01001000010000000001,
			"branch":"D MG 01",
			"code":"001",
			"number":"00001",
			"acountantaccountcode":"0000000001",
			"deleted":""
        },
"",
            "a1simples": "",
            "a1naturez": "000001",
            "a1tipprfl": "",
            "a1inovaut": "2",
            "a1userlga": "0#  6@  50Ž 40€",
         {    "a1cod": "000002",
           	 "ida1userlgi": "T1D MG 01002000010000000001,
			"branch":"D MG 01",
			"code":"002",
			"number":"00001",
			"acountantaccountcode":"0000000001",
			"deleted":""
0#  0@  50z 40h",
            "a1tabela": "",
            "a1cargo1": "",
            "a1cargo2": "",
            "a1comis": 0,
            "a1cepe": "",
            }"a1venclc": "",
          {  "a1cargo3": "",
           	 "ida1tipcli": "T1|D MG 01001000020000000010,
			"branch":"D MG 01",
			"code":"001",
			"number":"00002",
			"acountantaccountcode":"0000000010",
			"deleted":""
"1",
            "a1cepc": "",
            "a1tipo": "F",
            "a1tpmemb": "",
            "a1codpais": "",
            "a1incult": "",
          }  "a1cnae": "",
        {     "a1grptrib": "",
            "ida1tipper": "T1D MG 01001000010000000005,
			"branch":"D RJ 02",
			"code":"001",
			"number":"00001",
			"acountantaccountcode":"0000000005",
			"deleted":"""",
            "a1tpfret": "",
            "a1recfet": "",
            "a1cdrdes": "",
            "a1rg": "",
        },
	     {"a1fax": "",
            "ida1mundfc": "T1D MG 01001000030000000008,
			"branch":"D RJ 02",
			"code":"001",
			"number":"00003",
			"acountantaccountcode":"0000000008",
			"deleted":""
"",
            "a1indret": "",
            "a1contrib": "",
            "a1msexp": "",
            "a1alifixa": "",
            "a1desc": 0,
  }  
    ],
	"hasNext":true,
    "po_sync_datea1entid":"2021-02-09T21:00:38Z"
}

API para informações de Lotes Contábeis - BatchNumber (SX5, tabela 09)

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
"Branchs": [
    { "BranchId": "D MG 01"},
 "",
           { "BranchIda1codter": ""D,
   RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {"a1lcfin": 0,
            "valuea1tda": "T1 8850,
			"branch":"",
			"label":"8850",
			"deleted":""
  ,
            "a1super": "",
      },
      "a1moedalc": 2,
 {
           	"valuea1est": "T1 8800,
			"branch":"",
			"label":"8800",
			"deleted":""
   SP",
     },
        {"a1ddd": "",
           	"value": "T1 8860,
			"branch":"",
			"label"a1estc": "8860",
			"deleted":""            "a1telex": "",
        }
    ],
	"hasNexta1ddi":true "",
      "po_sync_date      "a1tipocli":"2021-02-09T21:00:38Z"
}
Informações
titleAtenção

As APIs que forem disponibilizadas para clientes deverão ser desenvolvidas e documentadas conforme padrão de Api Totvs

Totvs custom tabs box items
defaultno
referenciafiltros_imagens

Image Removed

GRID

Apresenta os lançamentos contábeis e os lançamentos da origem baseados nos filtros que o cliente selecionou.

Totvs custom tabs box items
defaultyes
referenciagrid_implementacao

Front-end:

A tabela será construída com o componente Table do PO UI. Na aba Exemplos já existe um exemplo de como construir a tabela no mesmo modelo que o especificado.

Antes do usuário ter acesso as informações do grid, ele precisa primeiro preencher os filtros para que sejam retornados os valores conforme o filtro ele selecionou.

Como citado na seção de filtros, é necessário o front passar uma query string com os filtros selecionados na chamada desses endpoints para que eles realizem o filtro de registros ao buscar no banco de dados.

No final de cada linha, teremos um botão "..." que conterá mais ações que o usuário poderá realizar com o registro selecionado, como Edição, Exclusão, Impressão, etc (as ações citadas estão pendentes de um protótipo de alta fidelidade no Figma com as telas das ações).

O usuário poderá configurar a exibição das colunas conforme a sua preferência. Após o usuário alterar a visibilidade das colunas e fechar o modal de configuração, o front enviará para a API as colunas que o usuário selecionou, e da próxima vez que ele atualizar a tela, a API vai trazer essas informações com as colunas que o usuário selecionou. O usuário poderá resetar a seleção de colunas abrindo o gerenciador de colunas e clicando em "restaurar padrão". (#022)

Na tabela de lançamentos contábeis, será possível adicionar lançamentos manuais, para que seja possível conciliar com a tabela de origem. (#009)

Acima das tabelas, teremos um combobox onde o usuário poderá filtrar por registros conciliados ou não conciliados ou registros contabilizados ou não contabilizados. O front fará o filtro sozinho, sem o auxilio da API. (#04, #011, #027)

Teremos essas opções no combobox citado acima: 

  • Registros contabilizados e conciliados
  • Registros não contabilizados e conciliados
  • Registros contabilizados e não conciliados
  • Registros não contabilizados e não conciliados

Após clicar no botão "Conciliar", um modal (aba 3) será exibido para que o usuário confirme sua ação. O modal será construído com o componente Modal do PO UI. Depois da confirmação do usuário, o sistema irá exibir um alerta para o usuário informando o usuário sobre o resultado da ação (aba 4). O alerta será construído com o Interceptor do PO UI, em conjunto com o back-end.

Abaixo dos grids, haverá dois totalizadores que vão calcular o valor de cada grid respectivamente. (#012).

Grid deverá possuir uma opção na parte superior para "Marcar Todos" ou marcar registro individual no check do próprio item (#015).  

Ao clicar no item origem ou destino, este item e seu correspondente na outra grid devem mudar de cor, dessa forma, facilitará a identificação (#016, #020).

Grid deve apresentar uma coluna "CTB" nos registros de origem, para indicar quando já foram contabilizados (#017).

Quando o valor da contabilização não bater com o valor origem, item deve apresentar uma cor diferente para identificação de divergências (#018).

Será possível realizar a exportação das tabelas via excel. Ao exportar o arquivo, os matches precisam estar alinhados para facilitar a visualização. No arquivo também terá a informação dos filtros que foram selecionados. (#020, #021).

Ao clicar sobre o registro de origem, sistema deverá exibir o rastreio, por exemplo se foi um lançamento com Nota Fiscal de Saída, Nota Fiscal de Entrada, Movimentação Bancária etc (#024).

Caso nos filtros seja selecionado fazer uma conciliação por saldo, as colunas da tabela serão alteradas para atender esse estilo de contabilidade. Os extratos terão um drill drown onde será possível ver todos os descontos dentro daquele extrato caso clicado para expandir a linha. Segue um exemplo: PO Table - Airfare (#028)

Back-end:

Será necessária disponibilidade das API abaixo, as consultas serão realizadas conforme os parâmetros informados:

  • API para Lançamentos Contábeis (CT2) com as opções Get, Post, Put e Delete, receberá os parâmetros: Filial, Data, Número de Lote, Sub-Lote, Documento, Conciliados e Lançamento Padrão. Deve-se preencher o ComboBox com o status do lançamento: Conciliados, Não Conciliados

Na opção Get, deve-se retornar  dois objetos, um contendo os registros origens (SN4, SC5, SC7, SF1, SF2, SE1, SE2, FK5) dos lançamentos contábeis recuperados, quando tratar-se de lançamentos contábeis aglutinados, será necessário trazer cada origem relacionada e outro contendo as contabilizações destes registros juntamente com a conciliação quando já ocorreu (#010).

A apresentação dos registros de origem poderão ser Por Processos, onde serão retornadas as informações conforme o processo selecionado (Ativo Fixo, Compras/Estoque Custos, Contas a Pagar, Contas a Receber e Faturamento) ou Por Extrato Bancário, neste caso, a conciliação ocorre de maneira sintética, por saldo bancário olhando o extrato bancário (#028).

Quando apresentação por Extrato Bancário e um Recebimento de Título no Financeiro ocorreu no período filtrado, este será apresentado no grid de origem e sistema deverá apresentar também o lançamento que originou esse recebimento, mesmo que em outro período, exemplo: Lançamento que ocorreu em Novembro e o Recebimento em Dezembro e data informada no Filtro de Dezembro, deve-se apresentar os títulos origem de Novembro (#005).

Ainda na apresentação por Extrato Bancário, deve-se retornar os valores Saldo Inicial e Saldo Atual, com base na tabela SE8 (E8_SALATUA e E8_DTSALAT), ver função fa380Rec no fonte FINA380.PRX (#013). 

A opção Post, deve realizar a inclusão de novas conciliações de acordo com os parâmetros informados, Put deverá realizar alterações nas Conciliações Contábeis já existentes e finalmente a opção Delete, realizará a exclusão das Conciliações Contábeis selecionadas.

Para melhor performance, necessário avaliar a possível criação de stored procedure para consultas e manipulações das informações na Conciliação Contábil e processo de retorno das informações deve ocorrer de forma assíncrona.

  • API para informações de Origem dos Lançamentos:
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
{
	"branchs": [],
	"dataMin": '10/01/2021',
	"dataMax": '21/01/2021',
	"AccountantAccounts": [],
	"conciliateBy": 1 */ 1 = processo, 2 = extrato bancário */,
	"process":  1 */ 1 = ativo fixo, 2 = materiais, 3 = faturamento, 4 = contas a pagar, 5 = contas a receber */,
	"bankStatement": {code: '', number: '', acountantaccountcode: ''},
	"operation": 1 */ 1 = ativo fixo, 2 = materiais, 3 = faturamento, 4 = contas a pagar, 5 = contas a receber */,
	"filterEntity": true,
	"costCenters": [],
	"accountingItems": [],
	"clvl": []
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Get
linenumberstrue
collapsetrue
{
    "items":[
		{
			"branch":"D MG 01",
			"originentry":"D MG 0103-04-2020001000010000000001",
			"originvalue":1000.00,
			"origintable":"SN4",
			"originoperation":"1",
			"accounted":true,
			"reconcilied":true
		},
		{
			"branch":"D MG 01",
			"originentry":"D MG 0103-04-2020001000010000000001",
			"originvalue":1000.00,
			"origintable":"SN4",
			"originoperation":"1",
			"accounted":true,
			"reconcilied":true
		},
		{
			"branch":"D RJ 02",
			"originentry":"D RJ 0205-04-2020001000020000000010",
			"originvalue":5000.00,
			"origintable":"SF2",
			"originoperation":"3",
			"accounted":true,
			"reconcilied":false
		},
		{
			"branch":"D RJ 02",
			"originentry":"D RJ 0206-04-2020001000020000000002",
			"originvalue":20000.00,
			"origintable":"SE1",
			"originoperation":"5",
			"accounted":true,
			"reconcilied":true
		}
    ],
	"hasNext":true,
    "po_sync_date":"2021-02-09T21:00:38Z"
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Post, Put e Delete
linenumberstrue
collapsetrue
{
	"items": [
		{
			"accountingentry": "D MG 0103-04-2020001000010000000001",
			"success": true
		},
		{
			"accountingentry": "D MG 0103-04-2020001000010000000002",
			"success": true
		},
		{
			"accountingentry": :"D RJ 0205-04-2020001000020000000003",
			"success": false
		},
		{
			"accountingentry": :"D RJ 0205-04-2020001000020000000010",
			"success": true
		}
	],
	"hasNext":true,
    "po_sync_date":"2021-02-09T21:00:38Z"
}
  • API para informações de Lançamentos Contabilizados:
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
{
	"branchs": [],
	"dataMin": '10/01/2021',
	"dataMax": '21/01/2021',
	"AccountantAccounts": [],
	"conciliateBy": 1 */ 1 = processo, 2 = extrato bancário */,
	"process":  1 */ 1 = ativo fixo, 2 = materiais, 3 = faturamento, 4 = contas a pagar, 5 = contas a receber */,
	"bankStatement": {code: '', number: '', acountantaccountcode: ''},
	"operation": 1 */ 1 = ativo fixo, 2 = materiais, 3 = faturamento, 4 = contas a pagar, 5 = contas a receber */,
	"filterEntity": true,
	"costCenters": [],
	"accountingItems": [],
	"clvl": []
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Get
linenumberstrue
collapsetrue
{
	"items": [
        { "",
            "a1este": "",
            "a1reccsll": "S",
            "a1issrslc": "",
            "a1vinculo": "",
            "a1tpdp": "2",
            "a1suframa": "",
            "a1metr": -9.970000000000001,
            "a1atr": 0,
            "a1rtec": "",
            "a1matr": 4,
            "a1codfid": "",
            "a1fomezer": "",
            "a1tel": "",
            "a1perfil": 0,
            "a1mun": "SAO PAULO",
            "a1chqdevo": 0,
            "a1salfin": 0,
            "a1clifat": "",
            "a1resfat": "",
            "a1calcsuf": "",
            "a1minirf": "2",
            "a1entori": "",
            "a1rfasemt": "",
            "a1m996": "",
            "a1inscrm": "",
            "a1clasven": "",
            "a1salfinm": 0,
            "a1cxposta": "",
            "a1sativ2": "",
            "a1dtnasc": "",
            "a1sativ4": "",
            "a1ibge": "",
            "a1classe": "",
            "a1observ": "",
            "a1sativ8": "",
            "a1sativ6": "",
            "a1sativ7": "",
            "a1sativ1": "",
            "a1complem": "",
            "a1vacum": 62768.3,
            "a1codhist": "",
            "a1contato": "",
            "a1tpessoa": "",
            "a1agreg": "",
            "a1sativ3": "",
            "a1reciss": "",
            "a1tmpstd": "00:00",
            "a1ctare": "",
            "a1inciss": "",
            "a1numra": "",
            "a1loccons": "",
            "a1irbax": "2",
            "a1sativ5": "",
            "a1usadda": "2",
            "a1maidupl": 25063.91,
            "a1saldupm": 23812.1,
            "a1idhist": "",
            "a1msaldo": 31290.38,
            "a1imgumov": "",
            "a1idestn": "",
            "a1pagatr": 3000,
            "a1endrec": "",
            "a1salped": 0,
            "a1fildeb": "",
            "a1codmarc": "",
            "a1fretiss": "",
            "a1dscreg": "",
            "a1simpnac": "",
            "a1tpreg": "",
            "a1nif": "",
            "a1nvestn": 0,
            "a1codmun": "",
            "a1grpven": "",
            "a1mcompra": 25063.91,
            "a1codmusu": "",
            "a1codsiaf": "",
            "a1recirrf": "",
            "a1ec06db": "",
            "a1pfisica": "",
            "a1codloc": "",
            "a1hrcad": "",
            "a1dtcad": "",
            "a1ec06cr": "",
            "a1perfecp": 0,
            "a1salpedb": 0,
            "a1bairroc": "",
            "a1recinss": "",
            "a1bairroe": "",
            "a1rfabov": "",
            "a1endnot": "",
            "a1codfor": "",
            "a1salpedl": 0,
            "a1hrexpo": "",
            "a1ec08db": "",
            "a1timekee": "",
            "a1filial": "D MG",
            "a1msblql": "2",
            "a1chvcam": "",
            "a1regiao": "",
            "a1inscrur": "",
            "a1temvis": 0,
            "a1ultvis": "",
            "a1prstser": "",
            "a1tmpvis": "00:00",
            "a1dtiniv": "",
            "a1reserve": "",
            "a1reccofi": "S",
            "a1ec08cr": "",
            "a1recpis": "S",
            "a1crdma": "",
            "a1mensage": "",
            "a1prfvld": "",
            "a1tpj": "",
            "a1formvis": "",
            "a1dtultit": "",
            "a1recfmd": "",
            "a1regesim": "2",
            "a1saldup": 80936.3,
            "a1dtulchq": "",
            "a1b2b": "2",
            "a1nreduz": "CLIENTE ANDREA",
            "a1blemail": "",
            "a1cbo": "",
            "brancha1obs": "D MG 01",
            "movementdatea1codage": "03-04-2020",
			"batchnumber":"08850",
			"subLot":"001",
			"document":"000001",
			"item":"001",
			"itemtype":"1",
			"entryvalue":1000.00,
			"reconcilied":true            "a1comage": 0,
            "a1email": "",
            "a1hpage": "",
            "a1incltmg": "",
            "a1cep": "",
        },
    "a1conta": "",
   {
         	"brancha1inscr": "D MG 01",
            "movementdatea1abics": "03-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000001",
			"item":"002",
			"itemtype":"2",
			"entryvalue":1000.00,
			"reconcilied":true
              "a1rfacs": "",
            "a1filtrf": "",
            "a1clipri": "",
            "a1lojpri": "",
      },
      "a1bairro": "",
 {
           	"brancha1ativida": "D RJ 02",
            "movementdatea1situa": "05-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000001",
			"item":"001",
			"itemType":"3",
			"entryValue":5000.00,
			"reconcilied":false            "a1cgc": "56061652416451",
            "a1prfobs": "",
            "a1ipweb": "",
            "a1transf": "",
        },
        {"a1tpnfse": "",
            "brancha1transp": "D RJ 01",
            "movementdatea1ec09db": "06-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000005",
			"item":"001",
			"itemtype":"1",
			"entryvalue":20000.00,
			"reconcilied":true            "a1ec09cr": "",
            "a1ceinss": "",
            "a1ec05db": "",
            "a1titprot": 0,
            "a1ec05cr": "",
        }
    ],
	"hasNexta1origct":true "",
        "po_sync_date    "a1ec07db":"2021-02-09T21:00:38Z"
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Post, Put e Delete
linenumberstrue
collapsetrue
{
	"items": [
		{
			"accountingentry": "D MG 0103-04-2020001000010000000001",
			"success": true
		},
		{
			"accountingentry": "D MG 0103-04-2020001000010000000002",
			"success": true
		},
		{
			"accountingentry": :"D RJ 0205-04-2020001000020000000003",
			"success": false
		},
		{
			"accountingentry": :"D RJ 0205-04-2020001000020000000010",
			"success": true
		}
	],
	"hasNext":true,
    "po_sync_date":"2021-02-09T21:00:38Z"
}

Também é necessário que o back-end retorne a propriedade _messages no objeto de retorno nas APIs de exclusão, edição e salvamento da conciliação de registros, como explicado detalhadamente nesta página do PO UI. Resumindo, essa propriedade serve para que o front-end exiba as mensagens de alerta conforme o status da requisição.

05. Campos e Parâmetros

 "",
            "a1estado": "",
            "a1ec07cr": "",
            "a1cbairre": "",
            "a1codseg": "",
            "a1origem": "",
            "a1matfun": "",
            "a1risco": ""
        }
    ],
    "hasNext": true,
    "po_sync_date": "2021-08-25T18:13:18Z"
}


05. Campos e Parâmetros

Campo

Titulo

Descrição

QLA_FILIALFilialFilial do Sistema
QLA_CODCONCd. ConciliaSequencial da Conciliação
QLA_CODCFGCod. ConfigCódigo da Configuração
QLA_TABORITabela OrigemTabela de Origem
QLA_TABDESTabela DestinoTabela de Destino
QLA_USERUsuarioUsuario da Conciliacao
QLA_DATAData ConcData da Conciliacao
QLA_HORAHora ConcHora da Conciliacao

Campo

Titulo

Descrição

QLB_FILIALFilial      Filial do Sistema        
QLB_CODCFGCod. Config.Código da Configuração   
QLB_DESCFGDesc. ConfigDescrição da Configuração
QLB_FIELDSCampos Conc.Campos do conciliador    
QLB_FILTERFiltros ConcFiltros do Conciliador   
QLB_TABORITab. Origem Tabela de Origem         
QLB_DESCORDesc Tab OriDescrição Tabela Origem  
QLB_REGORIRegra OrigemRegra de Origem          
QLB_CIDORICpo Id Orig Campo Id. Origem         
QLB_TABDESTab. DestinoTabela de Destino        
QLB_DESCDEDesc Tab DesDescrição Tabela Destino 
QLB_REGDESReg Destino Regras de Destino        
QLB_CIDDESCpo Id Dest Campo Id de destino      

Campo

Titulo

Descrição

QLC_FILIALFilial      Filial do Sistema        
QLC_CODCONCd. ConciliaSequencial de Conciliação
QLC_IDCONCId. ConciliaId de conciliação        
QLC_REGCONRegra ConcilRegra de Conciliação     
QLC_SEQUENSequencia   Código Sequencial        
QLC_IDDESTId. Destino Id do registro de Destino
QLC_IDORIGId. Origem  Id do Registro de Origem 

Campo

Titulo

Descrição

QLA_FILIALFilialFilial do Sistema
QLA_CODIGOCodigo Codigo da Conciliacao
QLA_TABORITabela OrigemTabela de Origem
QLA_CHVORIChave OrigemChave Registro Origem
QLA_CHVCTBChave ContabilChave Registro Contabil
QLA_USERUsuarioUsuario da Conciliacao
QLA_DATAData ConcData da Conciliacao
QLA_HORAHora ConcHora da Conciliacao

06. Tabelas Utilizadas

  • QLA - Conciliacao Contabil
Informações
titleImportante

Serão realizadas as gravações de data, hora e usuário responsável pela conciliação (#026).

Totvs custom tabs box items
defaultno
referenciagrid_imagem

Image Removed

Totvs custom tabs box items
defaultno
referenciagrid_modal

Image Removed

  • Conciliação Genérica
  • QLB - Conciliador - Chaves
  • QLC - Registros Conciliados
Totvs custom tabs box items
defaultno
referenciagrid_alert
Image Removed



HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>