Árvore de páginas

Versões comparadas

Chave

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


Section
Painel
borderColorsolid
title(i) TOTVS Acompanha custos

Painel com Dashboard para gerenciar e alertar distorções nas transações de estoque, permitindo análise e gerando notificações sobre itens críticos e distorções de custo, para que seja validado se os consumos e apontamentos de produção estão com valores  adequados.
Realizando também um checklist das tarefas de fechamento.

Image Removed

Painel
borderStylesolid
titleRecursos disponíveis
Expandir
titleOnboarding
Image Added

A funcionalidade do Onboarding tem o propósito de auxiliar o usuário no seu primeiro acesso, sendo exibido ao iniciar a aplicação em seu primeiro acesso, ou selecionando a opção de ajuda no canto superior direito, ao lado do ícone de perfil.Image Removed



Expandir
titleInformações técnicas
  • Front End

    1. Para a criação da feature, utilizamos componentes do framework PO-UI para facilitar e agilizar o desenvolvimento, sendo:

<po-modal>https://po-ui.io/documentation/po-modal

<po-checkbox> - https://po-ui.io/documentation/po-checkbox

<po-button>https://po-ui.io/documentation/po-button

  • Back End

    1. Foi desenvolvido uma classe REST de controle para entrada e saída de dados através da linguagem TLPP, sendo responsável por gerações e gravações de registros nas tabelas de perfil de usuário do Framework.
    2. Estruturação API:Image Removed

Image Added

  1. Especificações de Serviços


Expandir
titleGET /api/v1/acUser/:userId

Retorna o status do perfil do usuário informado:

Bloco de código
languagejs
themeConfluence
{
		"showModal": true,
		"userId": 000000,
		"userName": "Administrador"
}

Descrição de Campos:

  • showModal: boolean – Define se será apresentado o Onboarding
  • userId: string – Retorno o código do usuário consultado
  • userName: string – Retorna nome do usuário consultado
Expandir
titlePOST /api/v1/acUser/:userId

Permite cadastrar um novo registro de perfil de usuário com as definições passadas pelo body da requisição.

Bloco de código
languagejs
themeConfluence
{
		"showModal": false,
}

O seu retorno esperado será:

Bloco de código
languagejs
themeConfluence
{
		"showModal": false,
		"userId": "000000",
		"userName": "Administrador"
}

Descrição de Campos:

  • showModal: boolean – Define se será apresentado o Onboarding
  • userId: string – Retorno o código do usuário consultado
  • userName: string – Retorna nome do usuário consultado


Expandir
titlePUT /api/v1/acUser/:userID

Permite alterar o status da configuração de perfil do usuário através da informações passadas pelo body da requisição.

Bloco de código
languagejs
themeConfluence
{
		"showModal": true,
}
Bloco de código
languagejs
themeConfluence
{
		"showModal": true,
		"userId": "000000",
		"userName": "Administrador"
}

Descrição de Campos:

  • showModal: boolean – Define se será apresentado o Onboarding
  • userId: string – Retorno o código do usuário consultado
  • userName: string – Retorna nome do usuário consultado


Expandir
title
Acompanhamento dos Custos
Expandir
titleAlerta do Sistema
Expandir
titleFechamento de estoque
Painel
borderStylesolid
titleArquitetura
GET api/acConfigProf/v1/profile/restore

Permite alterar o status da configuração de perfil do usuário através da informações passadas pelo body da requisição.

Bloco de código
languagejs
themeConfluence
{
		"showModal": true,
}
Bloco de código
languagejs
themeConfluence
{
		"showModal": true,
		"userId": "000000",
		"userName": "Administrador"
}

Descrição de Campos:

  • showModal: boolean – Define se será apresentado o Onboarding
  • userId: string – Retorno o código do usuário consultado
  • userName: string – Retorna nome do usuário consultado


Expandir
titleAcompanhamento dos Custos


Expandir
titleAlerta do Sistema


Expandir
titleFechamento de estoque
Expandir
titleConfiguração de parâmetros
Image Added

Através do menu de fechamento é possível acessar o botão configurar parâmetros, essa uma funcionalidade foi disponibilizada para salvar as configurações previas de recalculo de custo médio e fechando para virada de saldo, essa configuração é considera para cara filial, dessa forma caso o cliente realize o processamento em mais de uma  filial será possível tratar as particularidades de processamento.

  • Acessando a primeira vez o sistema vai capturar as ultimas configurações do arquivo SX1(Pergunte) retornado em tela somente para validação, com uma ressalva dos parâmetros do tipo string (caracter) pois esses devem ser informado na primeira utilização ou serão considerados com o seu conteúdo em branco.
  • Utilização

Ao realizar a configuração o sistema vai gravar em seu perfil com a filial que realizou a configuração para processamento.

Image Added

  • Alterar a configuração:

Tendo necessidade de alterar a configuração de processamento, basta acessar a rotina o sistema vai resgatar as informação do perfil depois de alterar clicar em salvar novamente.

Image Added

  • Restaurar configurações:

E possível restaurar configurações padrões mediante ao SX1(cadastro de pergunte Protheus).

Image Added

Expandir
titleParâmetros do configurador

Image Added

Expandir
titleInformações técnicas
  • Front End

    1. Para a criação da feature, utilizamos componentes do framework PO-UI para facilitar e agilizar o desenvolvimento, sendo:

<po-modal>https://po-ui.io/documentation/po-modal

<po-checkbox> - https://po-ui.io/documentation/po-checkbox

<po-button>https://po-ui.io/documentation/po-button

<po-select> - https://po-ui.io/documentation/po-select

<po-checkbox> - https://po-ui.io/documentation/po-checkbox

<po-widget> - https://po-ui.io/documentation/po-widget

  • Back End

    1. Foi desenvolvido uma classe REST de controle para entrada e saída de dados através da linguagem TLPP, sendo responsável por gerações e gravações de registros nas tabelas de perfil de usuário do Framework
    2. Estrutura da API:
    3. Image Added
    4. Especificações de Serviços


Expandir
titleGET api/acConfigProf/v1/profile/:userId

Retorna o SX1 (Pergunte do MATA330 e MATA280 ) ou perfil salvo do usuário na filial corrente.

Bloco de código
languagejs
themeConfluence
{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": ""
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}

Descrição de Campos:

  • closing: string – Separador com informações dos perguntes da rotina MATA280 (Virada dos saldos)
    • parameter: string MV_PAR relacionado a rotina MATA280 vidara dos saldos 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos 
  • recalculation: string – Retorno o código do usuário consultado.
    • parameter: string MV_PAR relacionado a rotina MATA330 recalculo do custos medio 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos
Expandir
titlePOST /api/acConfigProf/v1/profile/:userId

Permite cadastrar uma configuração de parâmetros de usuário com as definições passadas pelo body da requisição.

Bloco de código
languagejs
themeConfluence
{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": "ZZZZZZZ"
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}

O seu retorno esperado será:

Bloco de código
languagejs
themeConfluence
Permite cadastrar uma configuração de parâmetros de usuário com as definições passadas pelo body da requisição.

{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": "ZZZZZZZ"
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}

Descrição de Campos:

  • closing: string – Separador com informações dos perguntes da rotina MATA280 (Virada dos saldos)
    • parameter: string MV_PAR relacionado a rotina MATA280 vidara dos saldos 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos 
  • recalculation: string – Retorno o código do usuário consultado.
    • parameter: string MV_PAR relacionado a rotina MATA330 recalculo do custos medio 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos


Expandir
titlePUT /api/acConfigProf/v1/profile/:userID

Permite alterar a configuração de parâmetros do usuário através da informações passadas pelo body da requisição.

Bloco de código
languagejs
themeConfluence
{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": ""
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}
Bloco de código
languagejs
themeConfluence
{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": ""
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}

Descrição de Campos:

  • closing: string – Separador com informações dos perguntes da rotina MATA280 (Virada dos saldos)
    • parameter: string MV_PAR relacionado a rotina MATA280 vidara dos saldos 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos 
  • recalculation: string – Retorno o código do usuário consultado.
    • parameter: string MV_PAR relacionado a rotina MATA330 recalculo do custos medio 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos
Expandir
titleGET api/acConfigProf/v1/profile/restore

Permite resturar o perfil para configurações padrão do protheus 

Não necessita de envio o retorno será conforma abaixo porem com as informações do arquivo SX1 - perguntes do MATA280 e MATA330


Bloco de código
languagejs
themeConfluence
{
    "closing": {
        "mta280": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": ""
            },
            {
                "parameter": "mv_par04",
                "value": true
            }
        ]
    },
    "recalculation": {
        "mta330": [
            {
                "parameter": "mv_par01",
                "value": ""
            },
            {
                "parameter": "mv_par02",
                "value": false
            },
            {
                "parameter": "mv_par03",
                "value": false
            },
            {
                "parameter": "mv_par04",
                "value": true
            },
            {
                "parameter": "mv_par05",
                "value": 0
            },
            {
                "parameter": "mv_par06",
                "value": 1
            },
            {
                "parameter": "mv_par07",
                "value": ""
            },
            {
                "parameter": "mv_par08",
                "value": ""
            },
            {
                "parameter": "mv_par09",
                "value": false
            },
            {
                "parameter": "mv_par10",
                "value": 3
            },
            {
                "parameter": "mv_par11",
                "value": false
            },
            {
                "parameter": "mv_par12",
                "value": ""
            },
            {
                "parameter": "mv_par13",
                "value": true
            },
            {
                "parameter": "mv_par14",
                "value": 2
            },
            {
                "parameter": "mv_par15",
                "value": true
            },
            {
                "parameter": "mv_par16",
                "value": 2
            },
            {
                "parameter": "mv_par17",
                "value": 1
            },
            {
                "parameter": "mv_par18",
                "value": 1
            },
            {
                "parameter": "mv_par19",
                "value": true
            },
            {
                "parameter": "mv_par20",
                "value": 2
            },
            {
                "parameter": "mv_par21",
                "value": false
            }
        ]
    }
}

Descrição de Campos:

  • closing: string – Separador com informações dos perguntes da rotina MATA280 (Virada dos saldos)
    • parameter: string MV_PAR relacionado a rotina MATA280 vidara dos saldos 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos 
  • recalculation: string – Retorno o código do usuário consultado.
    • parameter: string MV_PAR relacionado a rotina MATA330 recalculo do custos medio 
    • value boolean - para os parâmetros do tipo sim ou não, string para os tipos texto e números para os combos
Expandir
titleNovo Fechamento

Image Added

Novo Fechamento, recurso que permite iniciar a jornada de fechamento basta definir o tipo de contabilização e clicar em novo fechamento.


Expandir
titleHistórico de Fechamentos

Image Added

Na abertura da funcionalidade de Fechamentos, será exibido uma estrutura com os últimos fechamentos realizados em forma de lista  ao qual seguirá em duas configurações:

  • 1º Configuração

Não havendo fechamento realizado através da jornada da nova funcionalidade, será apenas exibido o último fechamento de estoque realizado pela rotina de Virada de Saldos (MATA280), analisando a tabela Saldos Iniciais (SB9).

  • 2º Configuração

Com a estrutura devidamente implementada, o sistema terá a tabela Logs de Fechamento (D3X). Realizando a jornada de fechamento, o sistema gerará logs detalhados de todo o processo de fechamento, que abrangem:

  • Recálculo do Custo Médio
  • Virada de Saldo
  • Saldo Atual para Final


Expandir
titleInformações Técnicas

Seguem informações técnicas de Front-End e Back-End:

Expandir
titleFront-End

Componentes principais utilizados para a construção da feature:

  • <po-list-view>
Expandir
titleBack-End
Expandir
titleGET api/aclist/v1/listclosing

Permite listar o histórico de fechamentos realizados:




Painel
borderStylesolid
titleArquitetura


Image Added











Section
Painel
borderStylesolid
Section
Painel
borderStylesolid
titleAutomação de testes

A automação de testes será conduzida de duas formas:

Expandir
titleFront-End

Para realizar a automação do front-end utilizamos os recursos de Jasmine + Karma para garantir a qualidade por meio de testes unitários, já a execução dos testes é realizada com auxilio do Drone CI que é acionado a cada alteração (commit) e subida (push) para o repositório (Gitea)

Expandir
titleRelatório de cobertura
Image Added
Expandir
titleBack-End

Para realizar a automação do Back-end utilizamos os recursos do TLPP para garantir a qualidade por meio de testes unitários acionado pela esteira de testes da equipe de engenharia TOTVS. 

Image Added

Expandir
titleRelatório de cobertura
Expandir
titleOnboarding

Image Added

Expandir
titleConfiguração de parâmetros.

                  Image Added

Painel
titleInternacionalização i18n

Para garantir a padronização e internacionalização do produto, seguimos as normativas e serviços disponibilizados abaixo:

Painel
borderStylesolid
titleEstudos realizados
Expandir
titleEvent Viewer
(Meu Protheus)

Event Viewer (Meu Protheus)

Event Viewer - Termino do Recalculo de Custo

  •  Drone CI
  •  Melhoras práticas Git (Git Flow)

    Painel
    borderStylesolid
    titleHow To