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, SE5FK5) 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á poderão ser Por Processos, onde serão retornadas as informações conforme o processo selecionado (Ativo Fixo, Compras/Estoque Custos, Financeiro Contas a Pagar, Financeiro Contas a Receber , Estoquee 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 |
---|
| Bloco de código |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Request |
---|
linenumbers | true |
---|
collapse | true |
---|
| true |
---|
collapse | true |
---|
| {
"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 |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Response: Get |
---|
linenumbers | true |
---|
collapse | true |
---|
| {
"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"{
"branchs": [],
"dataMin": '10/01/2021',
"dataMax": '21/01/2021',
"AccountantAccounts": [],
"conciliateBy": 1 */ 1 = processo, 2 = extrato bancário */,
"process?": '000000000',
"bankStatement?": {bank: '', account: '', agency: ''},
"operation?": [],
"filterEntity": true,
"costCenters": [],
"accountingItems": [],
"clvl": []
} |
Bloco de código |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Response: GetPost, Put e Delete |
---|
linenumbers | true |
---|
collapse | true |
---|
| {
"items": [
{
"accountingentry": "D MG 0103-04-2020001000010000000001",
"success": true
},
{
"accountingentry": "D MG "OriginEntries":[0103-04-2020001000010000000002",
"success": true
},
{
"BranchIdaccountingentry": :"D MG 01RJ 0205-04-2020001000020000000003",
"OriginEntry":"success": false
},
{
"accountingentry": :"D MGRJ 01030205-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 |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Request |
---|
linenumbers | true |
---|
collapse | true |
---|
| {
"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 |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Response: Get |
---|
linenumbers | true |
---|
collapse | true |
---|
| {
"items2020001000010000000001",
"OriginValue":1000.00,
"Accounted":true,
"Reconcilied":true
},
{
"BranchId":"D MG 01",
"OriginEntry":"D MG 0103-04-2020001000010000000001",
"OriginValue":1000.00,
"Accounted":true,
"Reconcilied":true
},
{
"BranchId":"D RJ 02",
"OriginEntry":"D RJ 0205-04-2020001000020000000010",
"OriginValue":5000.00,
"Accounted":true,
"Reconcilied":false
},
{
"BranchId":"D RJ 02",
"OriginEntry":"D RJ 0206-04-2020001000020000000002",
"OriginValue":20000.00,
"Accounted":true,
"Reconcilied":true
}
],
"AccountingEntries": [
{
"BranchIdbranch":"D MG 01",
"MovementDatemovementdate":"03-04-2020",
"BatchNumberbatchnumber":"08850",
"SubLotsubLot":"001",
"Documentdocument":"000001",
"Itemitem":"001",
"ItemTypeitemtype":"1",
"EntryValueentryvalue":1000.00,
"Reconciliedreconcilied":true
},
{
"BranchIdbranch":"D MG 01",
"MovementDatemovementdate":"03-04-2020",
"BatchNumberbatchnumber":"08850",
"SubLotsublot":"001",
"Documentdocument":"000001",
"Itemitem":"002",
"ItemTypeitemtype":"2",
"EntryValueentryvalue":1000.00,
"Reconciliedreconcilied":true
},
{
"BranchIdbranch":"D RJ 02",
"MovementDatemovementdate":"05-04-2020",
"BatchNumberbatchnumber":"08850",
"SubLotsublot":"001",
"Documentdocument":"000001",
"Itemitem":"001",
"ItemTypeitemType":"3",
"EntryValueentryValue":5000.00,
"Reconciliedreconcilied":false
},
{
"BranchIdbranch":"D RJ 01",
"MovementDatemovementdate":"06-04-2020",
"BatchNumberbatchnumber":"08850",
"SubLotsublot":"001",
"Documentdocument":"000005",
"Itemitem":"001",
"ItemTypeitemtype":"1",
"EntryValueentryvalue":20000.00,
"Reconciliedreconcilied":true
}
],
"hasNext":true,
"po_sync_date":"2021-02-09T21:00:38Z"
} |
Bloco de código |
---|
language | coldfusion |
---|
theme | DJango |
---|
firstline | 1 |
---|
title | Json Response: Post, Put e Delete |
---|
linenumbers | true |
---|
collapse | true |
---|
| {
"AccountingEntriesitems": [
{
"AccountingEntryaccountingentry": "D MG 0103-04-2020001000010000000001",
"success": true
},
{
"AccountingEntryaccountingentry": "D MG 0103-04-2020001000010000000002",
"success": true
},
{
"AccountingEntryaccountingentry": :"D RJ 0205-04-2020001000020000000003",
"success": false
},
{
"AccountingEntryaccountingentry": :"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âmetrosCampo | Titulo | Descrição |
---|
XXXQLA_FILIAL | Filial | Filial do Sistema | XXXQLA_CODIGO | Codigo | Codigo da Conciliacao | XXQLA_TABORI | Tabela Origem | Tabela de Origem | XXXQLA_CHVORI | Chave Origem | Chave Registro Origem | XXXQLA_CHVCTB | Chave Contabil | Chave Registro Contabil | XXXQLA_USER | Usuario | Usuario da Conciliacao | XXXQLA_DATA | Data Conc | Data da Conciliacao | XXXQLA_HORA | Hora Conc | Hora da Conciliacao |
06. Tabelas Utilizadas- XXX QLA - Conciliacao Contabil
Informações |
---|
| Serão realizadas as gravações de data, hora e usuário responsável pela conciliação (#026). |
|