Árvore de páginas

Versões comparadas

Chave

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

...

No arquivo README.rd do projeto tem detalhes sobre a instalação do Angular e outras ferramentas que utilizamos no projeto.

INFORMAÇÕES

...

BÁSICAS

           Nesse projeto estamos utilizando a versão 17 do Angular e conjunto com a versão 17 do protheus Lib-core, abaixo o retrato das dependências utilizadas:

           Image Added

           Demais dependências podem ser vistas no arquivo "package.json" do projeto.

ESTRUTURA DE PASTAS

          O projeto foi idealizado para que seja escalável, portanto dentro da pasta "Views, há uma pasta chamada "simulator" na qual tem os componentes referente ao projeto de simulador de cálculo.

          Como estamos utilizando a versão 17 do angular na modo standalone, nesse projeto não há "Modules" como é visto em projetos de versões anteriores.

          Image Added

          Image Added

Models

No componente "simulatorresult" houve a necessidade de utilzar os models para poder separar as informações recebidas no JSON de resposta.

Ao todo são 6 models: 

Image Added


AdjustmentsDeclaratory→  Interface para mapear os campos para a tabela de Ajustes Declaratórios na pagina de resultados.

  item: string;
  sequencia: string;
  codigo: string;
  base_calculo: number;
  aliquota: number;
  valor: number;
  sistema: string;
  outros_valores: number;
  observacao: string;
  cod_regra: string;

AdjustmentsLaunch → Interface que mapeia os campos para a tabela de Ajuste de Código de Lançamento na pagina de resultados.

  item: string;
  sequencia: string;
  codigo: string;
  base_calculo: number;
  aliquota: number;
  valor: number;
  sistema: string;
  outros_valores: number;
  observacao: string;
  cod_regra: string;

SimulatorApiResponse → Interface que agrupa as outras interfaces como SpreadSheet, TaxesPerItem, AdjustmentsLaunch, AdjustmentsDeclaratory

 tributos: { [key: string]: SpreadSheet };
  tributos_por_item: { [key: string]: { [key: string]: TaxesPerItem } };
  lancamentos_por_item: {
    [key: string]: {
      ajustes: AdjustmentsLaunch[];
      declaratorios: AdjustmentsDeclaratory[];
    };
  };

SpreadSheet → Interface que mapeia os campos da tabela com o resumo dos impostos calculados na pagina de resultados.

  codigo: string;
  descricao: string;
  base: number;
  aliquota: number;
  valor: number;
  nome: string;

tax-calculation → Nesse arquivo reune diversas interfaces referentes aos tributos calculados.

TaxCalculationResult → Interface agrupadora das outras interfaces listadas acima.

TaxesPerItem → Interface que mapeia os campos da tabela com os tributos por item na pagina de resultados.

  cod_regra: string;
  desc_regra: string;
  base_trib: number;
  aliq_trib: number;
  val_trib: number;
  cst: string;
  valor_tributado: number;
  valor_isento: number;
  valor_outros: number;
  valor_nao_tribut: number;
  valor_diferido: number;
  valor_majorado: number;


Services

Nesta pasta está concentrada as classes relacionadas a comunicação das API's do backend com os componentes do Front-end.

Obs.: os arquivos .spec são referente as automações do componente.

Image Added


brancheslookup.service.ts→  Serviço responsável para realizar o GET com as informações sobre filial , que está sendo utilizada no lookup do campo filial no componente "simulatorHeader.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


cfoplookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre CFOP, que está sendo utilizada no lookup do campo CFOP no componente "simulatorItens.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


customerlookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre clientes , que está sendo utilizada no lookup do campo Participante no componente "simulatorHeader.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


diagnostic.service.ts→ Serviço responsável por realizar o POST com os parametros para o processamento do diagnostico, na qual será retornado um json com a resposta da requisição com o resultado do diagnostico.

Dentro desse serviços há funções de SET e GET para resgatar informações dos formularios das telas anteriores.

runDiagnosisEngine(bodyParams: string) → Função responsável de enviar o POST para o backend.


generateoperation.service.ts→ Serviço responsável por agrupar em Json os valores dos formularios de cabeçalho e itens.

setHeader() → Resgata as informações do formulário contido no componente "simulatorHeader.component" em formato Json

setItems() →  Resgata as informações do formulário contido no componente "simulatorItens.component" em formato Json

generate() → cria um Json com a junção dos Json's das funções setHeader e setItems, para ser utilizado como insumo na tela de resultado.


operationService.service.ts→ Serviço responsável pelo controle de filial nas chamada das API's utilizadas nos demais serviços. Também controla o parâmetro de tipo de operação.

setTenantID e getTenantID → funções de SET e GET para alimentar o campo de TENANTID

setOperation e getOperation →  funções de SET e GET para alimentar o campo de tipo de Operação

setFilial e getFilial →  funções de SET e GET para alimentar o campo de Filial.


origlookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre Origem do Produto , que está sendo utilizada no lookup do campo Origem no componente "simulatorItens.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


productlookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre Produtos , que está sendo utilizada no lookup do campo produto no componente "simulatorItens.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


ruleslookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre Regra de Cálculo, que está sendo utilizada no lookup do campo Regra de Cálculo no componente "simulatorDiagnostic.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.


tax-calculation.service.ts→ Serviço responsável para realizar o POST da API "calculate" , na qual retornará os dados que serão mostrados na tela de resultados.

getTaxCalculation()→ Função que chama a API calculate e envia o POST com as informações necessárias para processar o calculo da simulação.

dividirRetornoAPI()→ Função para dividir o retorno da API.

getTaxPerItem() → Função que separa os tributos por item.

getItems() → Lista itens calculados no retorno da api - considerando response.tributos_por_item.

getAdjustmentsPerItem() → Separa os ajustes por item adjustmentsPerItem - Considerando a chave ajustes.

getDeclaratoryPerItem() → Separa os ajustes por item declaratoryPerItem - Considerando a chave declaratorios.

getSpreadSheetColumns() → Array com a estrutura do resultado da tabela de resumo dos tributos

getTaxesPerItemColumns() → Array com a estrutura do resultado dos tributos por item.

getBookPerItemColumns() → Array com a estrutura do resultado da escrituração por item.

getAdjustmentsColumns()→ Array com a estutura do resultado do lançamentos de ajuste e declaratorios


tax-processor.service.ts→ Serviço responsável pela validação da tela de resultados caso o retorno seja vazio.

processTaxPerItem() → Valida o retorno dos tributos por item e caso seja vazio apresenta mensagem especifica.

processBookEntries()→Valida o retorno do resultado da escrituração do item e caso seja vazio apresenta mensagem especifica.

processAdjustments() →Valida o retorno dos ajustes de lançamento por item e caso seja vazio apresenta mensagem especifica.

processDeclarative() → Valida o retorno dos valores declaratorios por item e caso seja vazio apresenta mensagem especifica.


vendorlookup.service.ts→ Serviço responsável para realizar o GET com as informações sobre fornecedores, que está sendo utilizada no lookup do campo Participante no componente "simulatorHeader.component"

getFilteredItems() - Função padrão do PO-Lookup que busca todos os dados de determinado serviço rest. 

getObjectByValue() - Função padrão do PO-Lookup que busca o dado filtrando por ID.

environments

Nesta pasta está os arquivos com as configurações de ambiente oficial e homologação.

Views - Home

Componente responsável pela tela abaixo:

Image Added

Este componente somente possui as codificações necessarias para apresentação da tela.


Views/simulator - home

Componente responsável pela tela abaixo:

Image Added


simulateOperation() → Função responsavel por chamar a rota que direciona para a pagina "simulador"

Views/simulator- simulatorstep

Componente responsável pela tela abaixo:

Image Added


A maioria das funções do componente acima são de direcionamento de rota de navegação com as validações necessarias para que os formularios não fiquem incompletos.

changeStep() → função que controla o passo para a tela de resultado.

simulatehome() → volta para a tela inicial.

simulateItemNext() →Valida os dados do formulario de cabeçalho e vai para o proximo step da tela.

simulateOperation() → volta para a tela anterior

diagnostic() → vai para o proximo step

diagnosticar() → Função que chama funções de outros componentes para montagem do JSON de requisição POST e ativa a função que vai para a pagina de Diagnostico.

simulateitempreviews() → volta o step anterior

isTableEmpty()→ Validação da tela de itens. 

isFieldEmpty()→ Validação da tela de cabeçalho.

nextStep() → Usado na pagina html para chamar a proxima pagina do step

calculate() → Função que chama funções de outros componentes para montagem do JSON de requisição POST e ativa a função que calcula o resultado


Views/simulator - simulatorheader

Componente responsável pela tela abaixo:

Image Added

validateFields() → Função que valida os campos obrigatórios do formulário e impede que o usuario passe para a proxima tela caso não atenda os requisitos.

setLabelParticipante() → Função que é ativada no momento em que usuario muda o tipo de movimento, para que no container "Participante" apareça Cliente ou Fornecedor.

onSelectedParticipante() → Função que ativa os gatilhos de preenchimento de outros campos no momento em que preencho a informação no lookup de participante.

onChangeParticipante() → Valida a existência do participante e exibe mensagem na tela.

onSelectedFilial() → Função ativada no momento em que o usuário preenche o campo de filial, na qual ativa gatilhos de campos ocultos para serem utilizados nos demais formularios da aplicação.

onChangeFilial() → Função que limpa os campos do formulario caso o campo filial seja alterado.

validateFilial() → Valida a existência da filial e exibe mensagem na tela.

onChangeFrete() → Validação do campo Frete para que não seja preenchido valor negativo.

onChangeDesconto()→ Validação do campo Desconto para que não seja preenchido valor negativo.

onChangeSeguro() → Validação do campo Seguro para que não seja preenchido valor negativo.

onChangeDespesa() → Validação do campo Despesa para que não seja preenchido valor negativo.

headerJson() → Função responsável pela montagem do Json com as informações da tela de cabeçalho.

setdiagHeaderJson()→ Função responsável pela montagem do Json com as informações da tela de cabeçalho para serem utilizadas na funcionalidade de diagnóstico.

clearFields()→ Limpa os campos do formulário.

setHeaderJson() → Envia o Json da tela do cabeçalho para o serviço de generateOperation, que trata da junção do Json para a tela de resultados.



Views/simulator - simulatoritems

Componente responsável pela tela abaixo:

           Image Added

Image Added


validToNextStep() → Função que valida as informações do formulário para que seja possivel ir para o próximo passo do stepper.

setItemsOperations() → chama o serviço "generateOperations" para que chama a função setItems.

canActivateNextStep() → Função de validação que avalia se a tabela tem ao menos um item cadastrado.

calcularValorTotal() → Função que realiza a multiplicação automatica dos campos quantidade x precounitario.

getNextItemNumber() →Função que controle a numeração dos items cadastrados no formulário.

reorderItems() → Função que faz a ordenação dos itens na tabela.

validarCamposObrigatorios() → Faz validação do preenchimento dos campos obrigatórios e caso tenha alguma pendência é apresentado mensagem.

openAddModal()→ Função que abre o formulário PO-modal.

addItem() → Função que grava os itens no PO-Table.

closeModal() →Função que fecha a tela do PO-Modal

resetForm() → Função que limpa os campos do formulário.

onQuantidadeChange() → Validação do campo Quantidade para que não seja preenchido valor negativo.

onPrecoUnitarioChange() → Validação do campo Preço unitário para que não seja preenchido valor negativo.

onProdutoChange() → Validação do campo Produto e caso não exista apresenta mensagem na tela.

edit() → Função padrão do PO-Modal para edição do formulário.

remove() → Função padrão do PO-Modal para remoção de itens do formulário

itemsJson() → Função responsável pela montagem do Json com as informações da tela de itens.

setdiagItemsJson() → Função responsável pela montagem do Json com as informações da tela de itens para serem utilizadas na funcionalidade de diagnóstico.

onCfopChange() →  Validação do campo CFOP e caso não exista apresenta mensagem na tela.

onOrigemChange() →  Validação do campo Origem do Produto e caso não exista apresenta mensagem na tela.

onDescontoChange() → Validação do campo Desconto para que não seja preenchido valor negativo.

onFreteChange() → Validação do campo Frete para que não seja preenchido valor negativo.

onDespesasChange() → Validação do campo Despesa para que não seja preenchido valor negativo.

onSeguroChange() → Validação do campo Seguro para que não seja preenchido valor negativo.


Views/simulator - simulatorresult

Componente responsável pela tela abaixo:

Image Added


calculateTaxes() → função que chama o serviço de processamento do resultado da simulação.

onChangeItem() → Validação na alteração de item.

isValidItem() → Validação do tipo de item.

processItemData() → Função que recebe o resultado do calculo e separa em objetos para serem exibidos na tela.

setLoading() → Função que faz o timing do componente Load do POUI.

resetState() → Limpa as informações do formulário da tela de resultado.

isValidResponse() → Verifica se a resposta da API é válida.

processSuccessfulResponse() → Função que faz a atribuição do resultado da API que já foi segregado pela rotina "processItemData" nos respectivos componentes PO-Table na tela de resultados.

handleEmptyResponse() → Função que apresenta a mensagem quando não há resultado calculado.

handleError() →Função que apresenta mensagem de erro durante o processamento do resultado.

updateViewWithProcessedData()→ Função que faz atualização das informações da tela quando há troca de items para visualização no formulário.

Views/simulator - simulatordiagnostic

Componente responsável pela tela abaixo:

Image Added

preencherTabela()→ função que faz o preechimento do PO-Table com o resultado do retorno da API de diagnóstico.

simulateoperation() → volta para a tela de simulador de cálculo

clearTable() → limpa os dados da tabela de diagnostico.

onTributoChange() → Função de validação do lookup de regra de calculo, para verificar se o codigo existe ou não.

diagnostic() → função chamada no clique do botão "diagnostico" , na qual cria um json e chama o serviço de diagnostic para enviar a requisição POST.


Demais Arquivos

app.component.ts

Arquivo responsavel pela montagem do menu principal.

Image Added


app.routes.ts

Arquivo responsavél pelo direcionamento das rotas de navegação entre as páginas.

Image Added


05. Automações

Nesta seção sera listado as automações que foram desenvolvidas para os fontes de backend:

...