Árvore de páginas

Versões comparadas

Chave

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

...

Definição da Regra de Negócio

 

Regras

Rotina

No cadastro de Tipo de Planilha, adicionar a opção 3=Semi-fixo ao campo Ctr.Fixo (CNL_CTRFIX).


Criar When para o novo Campo Tipo de Semi-fixo (CNL_TPSFIX), para somente liberá-lo caso o campo Ctr.Fixo esteja selecionado na opção 3=Semi-fixo

Criar gatilho para o Campo Ctr.Fixo para limpar a opção do campo Tipo de Semi-fixo, caso ele seja preenchido com um valor diferente de 3=Semi-fixo. Com isso o campo volta a ser bloqueado e com o valor vazio.

Criar gatilho para o Campo Tipo de Semi-fixo, caso seja selecionada a opção 2=Por agrupador deverá atualizar o campo Cronog.Fis. (CNL_CROFIS) para 2=Não, bloqueando este segundo campo.

Realizar as alterações acima também no tipo de contrato (CN1)

CNTA230

Alterar a função Cn300PlaSt, responsável por retornar o status ou propriedade da planilha, para contemplar no novo Contrato Semi-fixo.


Adicionar a string SEMIFIXO a lista de strings que são aceitas pela variável cprop

Verificar caso seja SEMIFIXO se o contrato Fixo (CNL_CTRFIX) está como "0=Conforme Contrato". Caso sim, retornar a variável xRet com Verdadeiro ou Falso, verificando se é semi-fixo no Tipo de Contrato (CN1_CTRFIX) vazio ou igual a "3=semi-fixo". Caso não, retornar a variável xRet com Verdadeiro ou falso, verificando se é semi-fixo no tipo de planilha (CNL_CTRFIX) vazio ou igual a "3=Semi-fixo"

CNTA300

Criar pasta com nova entidade (Agrupadores de Estoque por planilha) chamada Agrupadores de Estoque.


Esta pasta deverá ficar ao lado da pasta de itens de planilha.

CNTA300
CNTA301

Desenvolver função que trata o bloqueio dos modelos de Itens da Planilha (CNB) e Agrupadores de Estoque por Planilha (XXX) de acordo com o Tipo de Planilha (CNL) ou Tipo de Contrato (CN1) selecionados. Essa verificação poder realizada através da função Cn300PlaSt.


O modelo de Agrupadores de Estoque deverá ser bloqueado por padrão.

Caso o Tipo de Planilha for Semi-fixo e o Tipo de Semi-fixo Por agrupador, deverá bloquear o modelo de Itens de Planilha e liberar o modelo de Agrupadores de Estoque.

Caso o Tipo de Planilha seja alterado de um que contenha Tipo de Semi-fixo com Agrupador para qualquer outro Tipo de Planilha deverá ser apresentada uma mensagem (MsgYesNo) informando caso o usuário selecione "Sim", os itens da Planilha ou Agrupado de Estoque serão "deletados". Assim como o contrário também deverá ocorrer.

Utilizar função CNTA300DlMd para deletar os modelos "filho" da Planilha, essa função, deleta todos os registros de um modelo. Ao limpar esses modelos também será necessário atualizar o campo Valor Total (CNA_VLTOT) no cabeçalho da Planilha.

CNTA300

Não permitir que seja importada solicitação de compras ou itens de solicitação de compras para Tipo de Semi-fixo por agrupador

CNTA300

Desenvolver função para validação dos campos dos Agrupadores (Tipo de Produto, Grupo de Produto e Categoria de Produto).


Permitir que apenas um desses campos esteja preenchido por linha.

CNTA300

Desenvolver função para validação do campo Valor Total do cabeçalho da Planilha (CNA_VLTOT).


Caso o Contrato/Planilha seja do Tipo semi-fixo com Agrupador de Estoque (CNL/CN1_TPSFIX) o valor a ser preenchido pelo usuário não poderá ser menor que a soma dos itens do Maximo a Medir (XXX_VLMAX)

CNTA300

No caso do tipo de semi-fixo Por agrupador, o campo Valor Total da Planilha (CNA_VLTOT) deverá ser preenchido com a soma dos itens do campo Máximo a Medir (XXX_VLMAX).


Alterar a função CN300PItPre, responsável pelo tratamento no pré-valid dos itens da planilha, bem como, a atualização do Valor Total no cabeçalho da Planilha, de forma a contemplar também a atualização da nova entidade Agrupadores de Estoque, realizando os mesmos tratamentos que ocorrem ao atualizar os itens da planilha (CNB).

Caso todos os itens do agrupador de estoque estejam com o campo Máximo a Medir preenchido o campo Valor Total do cabeçalho da Planilha deverá ser igual a soma de todos esses itens e ficar bloqueado.

Caso algum dos itens não esteja preenchido o campo Valor Total da Planilha deverá estar liberado e conter no mínimo o valor da soma dos itens do Agrupador de estoque do Campo Máximo a Medir. Como esse campo ficará liberado para edição, o valor acrescido pelo usuário deverá ser preservado, caso o valor de algum dos itens seja alterado. Exemplo:

 

passo A

passo B

passo C

passo D

passo E

passo F

item A

100

100

100

100

50

50

item B

100

100

100

200

200

200

item C

100

 

 

 

 

100

 

 

 

 

 

 

 

Valor Total

300

200

500

600

550

350


Nos passos A e F, onde todos os Itens tem o campo Máximo a Medir o Valor Total é a soma deles e está bloqueado.
No passo B, o valor é o mínimo permitido, a soma do Máximo a Medir.
No passo C, foi preenchido com o valor de 500, ou seja, 300 foram incluídos pelo usuário. Ao alterar o Item B, foi somada a diferença desse item, assim como no Item C, foi depreciado.
|CNTA300|

Ajustar a função responsável por retornar os itens da Planilha, Cn300GetPIt, para verificar, caso o Tipo de Semi-fixo seja por Agrupador (CNL_TPSFIX), se os itens da Planilha estão vazios e se a Entidade de Agrupadores de Estoque está preenchida. Preenchendo o Array aItens da seguinte forma:


aItens[n,XXX_ITEMID]; //Item do Agrupador
aItens[n,cAgrup]; //código do agrupador (verificar qual dos campos está preenchido: Tipo, Grupo ou Categoria de Produto)
aItens[n,0]; //Manter zero, pois, não existirá Cronog. Físico, logo não tem qtde
aItens[n,'']; // Manter vazio, não exisitirá SC
aItens[n,'']; // Manter vazio, não exisitirá SC
aItens[n,nLine]; // Número da linha do Item no modelo
aItens[n,XXX_VLMAX]; //Valor Máximo
aItens[n,0]; // Manter zero, não haverá campo desconto na Entidade

CNTA300

Pós-validação dos itens: Alterar a função Cn300VldPlan, responsável pela validação do cabeçalho e itens da planilha.


No momento onde é realizada a verificação se a planilha contem itens é necessário verificar, caso seja uma planiha Semi-fixa com tipo Por Agrupador (CNL_TPSFIX) verificar se a Entidade Agrupador por estoque (XXX) está preenchida. Ou caso seja, qualquer outra opção permanecer a verificação já feita, ou seja, se a Entidade de Itens da Planilha (CNB) está preenchida.

Para validação dos itens declarar o pós-valid do modelo da Entidade de Agrupador por Estoque, chamando a função Cn300VldPlan, porém, com o primeiro parâmetro 3 (nTpVld), que representará "por Item Agrupador"

Hoje a função ele verifica apenas os itens da planilha (nTpVld == 2), devendo portanto, agora verificar também essa nova entidade (nTpVld == 3), adicionando um desvio para tal onde permanecerá observando o retorno da função (lRet), se é inclusão ou alteração (lInclui,lAltera), porém, agora dividindo em a próxima condição a fim de verificar se é a Entidade de Item de Planilha (lVldLine .Or. nTpVld == 2) ou Agrupador de Estoque (lVldLine .Or. nTpVld == 3), mantendo as validações existentes na primeira opção e realizando o que vem abaixo na segunda:
Caso a variável lVldLine estiver com o valor verdadeiro (.T.), verificar apenas a linha posicionada no modelo. Caso contrário verificar todas as linhas da grid do modelo.

Verificar se o modelo está deletado;
Verificar se o Valor Total do cabeçalho da planilha (CNA_VLTOT) é igual a soma de todos os itens, caso todos itens tenham o campo Máximo a Medir (XXX_VLMAX) preenchido. Caso não estejam todos preenchidos, validar se o Valor Total do cabeçalho é igual ou maior que a soma do Máximo a Medir.

CNTA300


Anexo

Tabelas Utilizadas e Rotina envolvida

CNL

Tipo de Planilha

CNTA230

XXX

Agrupadores de estoque por planilha.

CNTA300

Release Notes

 

Módulo

SIGAGCT – Gestão de Contratos

Função

Visando flexibilizar e ampliar a abrangência de modelos de negócios no Módulo Gestão de Contratos, será disponibilizado um tipo de planilha denominado Semi-fixo que poderá ser de dois tipos: Por Produto: Serão informados produtos e seus valores e as medições ficam restritas ao valor da planilha indenpende do produto e quantidade medida; Por Agrupador: Serão informados agrupadores, tais como, Grupo de produto, Categoria de Produto e tipo de produto, podendo ou não restrigir valores para cada um deles desde que a soma dos valores restritos não ultrapasse o valor da planilha.

 

Exemplo de aplicação da Regra de Negócio

...