Á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

Conjunto de funcionalidades para gerir as atividades financeiras de forma ágil com uma interface moderna.

Informações
titleAtenção

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

02. CONFIGURAÇÃO

Porta Multiprotocolo

  • Na seção GENERAL, deve-se incluir a chave App_Environment, cujo o valor deve ser o nome do ambiente que os serviços rodarão. 
  • Na seção DRIVERS,  deve-se habilitar a porta multiprotocolo na chave MultiProtocolPort com o valor = 1.

Para mais informações sobre essa configuração acesse a página Application Server - Porta Multiprotocolo.

Bloco de código
languagejava
themeMidnight
titleAppServer.ini
[Drivers]
MultiProtocolPort=1

[GENERAL]
App_Environment=protheus  // Ambiente com os serviços

Menu

Adicionar ao seu menu FINANCEIRO a chamada da função TFC010 (TOTVS Financial Controller).

03. MOVIMENTAÇÕES FINANCEIRAS

Solução intuitiva que possibilita ao usuário visualizar e acompanhar a saúde financeira da empresa e tomar decisões.

Serão considerados nos saldos apenas os títulos configurados como fluxo de caixa (E1_FLUXO/ E2_FLUXO = S).

Disponibilizado 3 visões: diária, semanal e mensal. 

SALDOS

Totvs custom tabs box
tabsConceito,Imagens
idssaldo_conceito,saldo_imagens
Totvs custom tabs box items
defaultyes
referenciasaldo_conceito

Conjunto de informações em distribuídas em card's.

Saldo inicial: Considera o saldo bancário sendo possível a seleção dos bancos a serem considerados.

Entradas: Apresenta as entradas prevista no dia, nos próximos 7 dias e 30 dias conforme a visão selecionada, sendo possível incluir os movimentos vencidos.

Saídas: Apresenta as saídas prevista no dia, nos próximos 7 dias e 30 dias conforme a visão selecionada, sendo possível incluir os movimentos vencidos.

Saldo final: Soma dos valores apresentados. 

Totvs custom tabs box items
defaultno
referenciasaldo_imagens

Image Removed

FLUXO DE CAIXA

Totvs custom tabs box
tabsConceito,Fluxo de caixa, Detalhes do período - Exportação
idsfluxo_conceito,fluxo_imagens,detalhes
Totvs custom tabs box items
defaultyes
referenciafluxo_conceito

Apresenta a soma da carteira agrupada conforme a visão selecionada.

A série de saldo final se inicia com o saldo inicial bancária.

Ao clicar sobre uma série serão apresentados os títulos que compões o período com a opção de exportação.

Totvs custom tabs box items
defaultno
referenciafluxo_imagens

Image Removed

Totvs custom tabs box items
defaultno
referenciadetalhes

Image Removed

SALDO POR CARTEIRA

Totvs custom tabs box
tabsConceito,Imagens
idscarteiras_conceito,carteiras_imagens
Totvs custom tabs box items
defaultyes
referenciacarteiras_conceito

Apresentas as informações da carteira, considerando ou não os valores vencidos.

Totvs custom tabs box items
defaultno
referenciacarteiras_imagens

Image Removed

04. MOVIMENTAÇÕES FINANCEIRAS - ENTRADAS E SAÍDAS

Saúde financeira da carteira e lista de títulos.

Disponível a opção de filtros e exportação dos títulos para planilha.

SAÚDE DA CARTEIRA

Totvs custom tabs box
tabsConceito,Imagens
idsentradassaidas_conceito,entradassaidas_imagens
Totvs custom tabs box items
defaultyes
referenciaentradassaidas_conceito

Apresenta o total da carteira em gráfico separado em vencidos e a vencer.

São apresentados os valores aglutinados em períodos para para facilitar a visualização.

Para cada gráfico será apresentado o seu percentual sobre o valor total da carteira.

Totvs custom tabs box items
defaultno
referenciaentradassaidas_imagens

Image Removed

LISTA DE TÍTULOS

Totvs custom tabs box
tabsConceito,Imagens lista,Imagens filtro
idstitulos_conceito,titulos_imagens,titulos_imagens_filtro
Totvs custom tabs box items
defaultyes
referenciatitulos_conceito

Lista de títulos da carteira.

Busca avançada com os principais campos e por status.

Exportação para planilha dos títulos listados com as opções:

  • Dados completos: exporta todos os títulos correspondentes ao filtro aplicado.
  • Somente dados apresentados: exporta os títulos carregados em tela.
Totvs custom tabs box items
defaultno
referenciatitulos_imagens

Image Removed

Totvs custom tabs box items
defaultno
referenciatitulos_imagens_filtro

Image Removed

05. MOVIMENTAÇÕES FINANCEIRAS - SIMULAÇÃO

Simulação de movimentos para avaliar a saúde financeira em períodos.

Possibilita a inclusão de movimentos para simular saldos futuros.

Conciliação contábil é a ação de comparar os valores debitados e creditados nas contas de uma organização, para verificar a ocorrência de divergências tributárias e assegurar a precisão contábil. Por meio da comparação do que entra e do que sai, a empresa é capaz de verificar a existência de erros que possam comprometer os valores finais do balanço patrimonial ou fraudes e corrigi-los.

Hoje, os clientes que usam o Protheus fazem essa conciliação de valores por meio de softwares terceiros ou manualmente. Dependendo do tamanho da empresa, essa conciliação pode durar horas, dias ou semanas para ser concluída, além de estar sujeita a erro humano, já que é feita no “olhômetro”. A proposta da tela é solucionar esse problema para que a conciliação seja feita de maneira rápida e fácil, com uma grande redução de riscos sobre erros humanos na hora da execução, além de expandir a solução Protheus para os clientes que usam outros softwares de conciliação contábil.

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
diagramWidth1093
revision2

03. CONFIGURAÇÃO

O desenvolvimento da funcionalidade Conciliação Contábil 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


Criando um novo projeto Angular com PO UI

Pré-requisitos:

Recomendado:

Após instalar os itens citados acima, é necessário procurar uma pasta onde você gostaria de deixar o seu projeto alocado.

Abra o caminho dessa pasta no seu terminal de preferencia (recomendo o uso do Git Bash) e digite o comando:

Bloco de código
themeDJango
ng new NOMEDOPROJETO --routing=true --style=scss

Obs: Os parâmetros --routing e --style respectivamente são para que o projeto seja criado com o sistema de rotas já implementado e para que o padrão de arquivos de estilo do projeto sejam no formato SCSS, dessa forma podemos utilizar o pré-processador SASS.

Após ter feito esse processo, precisamos incluir o PO UI no projeto. Para fazer isso, navegue até a pasta principal do seu projeto e rode o seguinte comando:

Bloco de código
themeDJango
ng add @po-ui/ng-components

No processo de instalação, o terminal irá perguntar se deseja incluir uma estrutura inicial em seu projeto com menu lateral, página e toolbar, utilizando componentes do PO (estrutura padrão dos aplicativos que utilizam PO UI na TOTVS) Basta informar a tecla Y.

Uma última configuração é necessária para que o seu projeto fique no padrão TOTVS. É necessário instalar o tema oficial da TOTVS no PO UI. Rode o seguinte comando na pasta principal do seu projeto:

Bloco de código
themeDJango
npm install @totvs/po-theme

Depois da instalação ser finalizada, vá até o arquivo angular.json, procure o parâmetro "styles" dentro de "projects" e insira o caminho abaixo:

Bloco de código
themeDJango
"styles": [
  "node_modules/@totvs/po-theme/css/po-theme-default.min.css"
]

Caso já exista algum caminho dentro de styles que não seja relativo ao tema do PO, não é necessário remover.

Pronto, agora use o comando abaixo na pasta principal do seu projeto para roda-lo:

Bloco de código
themeDJango
ng serve

Acessando o endereço http://localhost:4200 após o build, você deve ver a estrutura padrão do PO UI.

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:

Para gerar a compilação dos arquivos Angular (PO UI) que vão no repositório Protheus, basta abrir a pasta principal do projeto, abrir o seu console de preferência (cmd, gitbash, etc) e rodar o comando:

Bloco de código
themeDJango
ng build -c production

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

Image Added

Para que o aplicativo Angular seja compilado no repositório Protheus, o conteúdo dentro da pasta dist deverá ser zipado, após, sua extensão mudada para .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 pasta:

Image Added


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

Image Added


Adicionando rotina PREXAMPLE no Menu Protheus:

Image Added


Tdn: Abrindo Aplicativos Web no Protheus

Deploy


Deploy de pipeline PO-UI usando Gitea + Drone

Os processos de desenvolvimento, testes, empacotamento e distribuição de software utilizando PO-UI devem ser realizados com Deploy de pipeline PO-UI usando Gitea + Drone, estas são as ferramenta adotadas pela Totvs para realização das tarefas de modo simples e automatizado.


Controle e versionamento
Todo controle e versionamento de repositórios deverá ser feita através do Gitea.

Gitea


Ferramenta de orquestração
A ferramenta de orquestração, ou seja, que organizará os scripts para execuções, deverá ser feita através do Drone CI.

Drone CI


Pipeline
Scripts (sequências de comandos) a serem criados e salvos com a extensão .sh (Shell script) e que serão utilizados pelo Drone CI para que seja capaz de realizar de forma automatizada testes e disponibilizar builds de desenvolvimentos para publicação.

Pipeline


Informações
titleConceitos Importantes

Fundamentos de Devops

POUI - Desenvolvimentos e expedições

04. Tela principal

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 Added

FILTROS

Solução que possibilita o usuário filtrar os resultados dos registros apresentados na lista de lançamentos contábeis/lançamentos de origem.

Totvs custom tabs box
tabsImplementação,Imagens
idsfiltros_implementacao,filtros_imagens
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 Request
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "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"}
]
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":""
        },
        {
            "value": "T1D RJ 02000001",
			"branchId":"D RJ 02",
			"label":"000001",
			"deleted":""
        },
	    {
            "value": "T1D RJ 02000005",
			"branch":"D RJ 02",
			"label":"000005",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "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": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "value": "T1D MG 01595",
			"branch":"D MG 01",
			"label":"595",
			"sequential":"001",
			"deleted":""
        },
        {
           	"value": "T1D MG 01596",
			"branch":"D MG 01",
			"label":"596",
			"sequential":"001",
			"deleted":""
        },
        {
           	"value": "T1D MG 01598",
			"branch":"D MG 01",
			"label":"598",
			"sequential":"001",
			"deleted":""
        },
        {
            "value": "T1D RJ 02595",
			"branch":"D RJ 02",
			"label":"595",
			"sequential":"001",
			"deleted":""
        },
	    {
            "value": "T1D RJ 02597",
			"branch":"D RJ 02",
			"label":"597",
			"sequential":"001",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "po_sync_date":"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": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "value": "T1D MG 01CC000001",
			"branch":"D MG 01",
			"label":"CC000001",
			"deleted":""
        },
        {
           	"value": "T1D MG 01CC000002",
			"branch":"D MG 01",
			"label":"CC000002",
			"deleted":""
        },
        {
           	"value": "T1D MG 01CC000005",
			"branch":"D MG 01",
			"label":"CC000005",
			"deleted":""
        },
        {
            "value": "T1D RJ 02CC000002",
			"branch":"D RJ 02",
			"label":"CC000002",
			"deleted":""
        },
	    {
            "value": "T1D RJ 02CC000003",
			"branch":"D RJ 02",
			"label":"CC000003",
			"deleted":""
        }  
    ],
	"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": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "value": "T1D MG 01CTD00001",
			"branch":"D MG 01",
			"label":"CTD00001",
			"deleted":""
        },
        {
           	"value": "T1D MG 01CTD00005",
			"branch":"D MG 01",
			"label":"CTD00005",
			"deleted":""
        },
        {
           	"value": "T1D MG 01CTD00008",
			"branchId":"D MG 01",
			"label":"CTD00008",
			"deleted":""
        },
        {
            "value": "T1|D RJ 02CTD00001",
			"branch":"D RJ 02",
			"label":"CTD00001",
			"deleted":""
        },
	    {
            "value": "T1D RJ 02CTD00002",
			"branch":"D RJ 02",
			"label":"CTD00002",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "po_sync_date":"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": [
        {
            "value": "T1D MG 01CTH00001",
			"branch":"D MG 01",
			"label":"CTH00001",
			"deleted":""
        },
        {
           	"value": "T1D MG 01CTH00005",
			"branch":"D MG 01",
			"label":"CTH00005",
			"deleted":""
        },
        {
            "value": "T1D MG 01CTH00008",
			"branch":"D MG 01",
			"label":"CTH00008",
			"deleted":""
        },
        {
            "value": "T1D RJ 02CTH00001",
			"branch":"D RJ 02",
			"label":"CTH00001",
			"deleted":""
        },
	    {
            "value": "T1D RJ 02CTH00002",
			"branch":"D RJ 02",
			"label":"CTH00002",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "po_sync_date":"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": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "value": "T1D MG 0101",
			"branch":"D MG 01",
			"label":"01",
			"description":"REAL",
			"deleted":""
        },
        {
           	"value": "T1D MG 0102",
			"branch":"D MG 01",
			"label":"02",
			"description":"DOLAR",
			"deleted":""
        },
        {
           	"value": "T1D MG 0103",
			"branch":"D MG 01",
			"label":"03",
			"description":"EURO",
			"deleted":""
        },
        {
            "value": "T1|D RJ 0201",
			"branch":"D RJ 02",
			"label":"01",
			"description":"REAL",
			"deleted":""
        },
	    {
            "value": "T1|D RJ 0202",
			"branch":"D RJ 02",
			"label":"02",
			"description":"DOLAR",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "po_sync_date":"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": [
    { "BranchId": "D MG 01"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "id": "T1|D MG 01001000010000000001,
			"branch":"D MG 01",
			"code":"001",
			"number":"00001",
			"acountantaccountcode":"0000000001",
			"deleted":""
        },
        {
           	"id": "T1D MG 01002000010000000001,
			"branch":"D MG 01",
			"code":"002",
			"number":"00001",
			"acountantaccountcode":"0000000001",
			"deleted":""
        },
        {
           	"id": "T1|D MG 01001000020000000010,
			"branch":"D MG 01",
			"code":"001",
			"number":"00002",
			"acountantaccountcode":"0000000010",
			"deleted":""
        },
        {
            "id": "T1D MG 01001000010000000005,
			"branch":"D RJ 02",
			"code":"001",
			"number":"00001",
			"acountantaccountcode":"0000000005",
			"deleted":""
        },
	    {
            "id": "T1D MG 01001000030000000008,
			"branch":"D RJ 02",
			"code":"001",
			"number":"00003",
			"acountantaccountcode":"0000000008",
			"deleted":""
        }  
    ],
	"hasNext":true,
    "po_sync_date":"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"},
    { "BranchId": "D RJ 02"}
]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
	"items": [
        {
            "value": "T1 8850,
			"branch":"",
			"label":"8850",
			"deleted":""
        },
        {
           	"value": "T1 8800,
			"branch":"",
			"label":"8800",
			"deleted":""
        },
        {
           	"value": "T1 8860,
			"branch":"",
			"label":"8860",
			"deleted":""
        }
    ],
	"hasNext":true,
    "po_sync_date":"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 Added

...

GRID

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

simulacao_conceito,simulacao_imagens
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 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": [
        {
            "branch":"D MG 01",
            "movementdate":"03-04-2020",
			"batchnumber":"08850",
			"subLot":"001",
			"document":"000001",
			"item":"001",
			"itemtype":"1",
			"entryvalue":1000.00,
			"reconcilied":true
        },
        {
         	"branch":"D MG 01",
            "movementdate":"03-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000001",
			"item":"002",
			"itemtype":"2",
			"entryvalue":1000.00,
			"reconcilied":true
        },
        {
           	"branch":"D RJ 02",
            "movementdate":"05-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000001",
			"item":"001",
			"itemType":"3",
			"entryValue":5000.00,
			"reconcilied":false
        },
        {
            "branch":"D RJ 01",
            "movementdate":"06-04-2020",
			"batchnumber":"08850",
			"sublot":"001",
			"document":"000005",
			"item":"001",
			"itemtype":"1",
			"entryvalue":20000.00,
			"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"
}


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

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 Added

Totvs custom tabs box
tabsConceito,Imagens
ids

Totvs custom tabs box items
defaultyesno
referenciasimulacaogrid_conceitomodal

Image AddedPossibilita a inclusão de movimentos e edição para criar saldos futuros para uma rápida análise

Totvs custom tabs box items
defaultno
referenciasimulacaogrid_imagensalert

Image RemovedImage Added

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>