Excepções Temporárias
Objectivos e Âmbito
Neste manual vamos abordar o tema das Excepções Temporárias.
As Excepções temporárias são, grupos de artigos que tem uma certa quantidade reservada para um determinado período de tempo, isto poderá ser útil certas alturas do ano em que existam promoções de artigos visto que se pode definir data de inicio e fim da excepção, assim como fazer pré-reservas para um cliente.
Como utilizar as Excepções Temporárias
Se desejar abrir o ecrã onde poderá visualizar as excepções temporárias dos artigos deverá seguir o seguinte caminho.
Aplicação -> Gestão de Armazéns -> Definições Operacionais -> Gestão das Excepções
Temporárias [AL203]
Ao entrar no ecrã das excepções temporárias irá ser mostrado seguinte ecrã de selecção;

Aqui o utilizador poderá escolher só visualizar uma ou um conjunto excepções temporárias, mas se desejar visualizar todas as excepções temporárias basta clicar no botão (lista), e o seguinte ecrã irá aparecer:

apresentada uma lista de todas as excepções temporárias existentes no sistema, os agrupamentos de artigos que existem na excepção temporária, data inicio e fim da excepção temporária, se a excepção temporária é válida ou não, e a empresa onde a que o stock pertence, quando preenchida a empresa a reserva de stock teórico irá ser feita em relação a essa mesma empresa, uma excepção temporária só pode pertencer a uma só empresa.
Como Anular as Excepções Temporárias
Se o utilizador desejar anular uma ou mais excepções temporárias, deverá seguir o exemplo em baixo descrito.
Primeiro no ecrã com a listagem de excepções temporárias deverá seleccionar as excepções que deseja que sejam anuladas, de seguida, no menu lista escolher a opção anular.

Ao clicar em anular irá aparecer o seguinte ecrã de confirmação:

Depois se quiser anular confirme clicando na tecla OK, depois irá aparecer outro ecrã de confirmação como mostra a figura seguinte:

Neste ecrã como pode observar, é lhe dito que todas as quantidades para os artigos presentes na excepção ou excepções temporárias irão ser anuladas ou seja deixa de haver reserva de artigos para essa excepção temporária.
Se mesmo assim desejar continuar clique em OK e a sua excepção temporária irá ser anulada.
Visualizar artigos presentes nas excepções temporárias
Para o utilizador conseguir visualizar os artigos que têm excepções temporárias, deve seguir o seguinte caminho no menu:
Aplicação -> Gestão de Armazéns -> Definições Operacionais -> Artigos c/ Excepções
Temporárias [AL286]
Ao seguir este caminho ao utilizador irá ser apresentado o seguinte ecrã de selecção:

Neste ecrã poderá seleccionar um ou mais artigos que quer visualizar, pode também ver todos os artigos sem ter em conta a as quantidades reservadas para isso basta deixar a selecção do campo “Qt. Diferente de 0” como indica a figura, ou se por outro lado quiser ver todos os artigos com quantidades a zero deve mudar a selecção para o meio ou por fim se quiser ver todos os artigos com quantidade superior a zero é so seleccionar o indicador da direita.
Por fim clique no botão (lista) para listar todos os artigos com excepções temporárias:

Uma lista como a anterior será apresentada, nesta lista irá poder observar, o artigo, o número total de excepções onde esse mesmo artigo estará presente, a quantidade total reservada desse mesmo artigo para as excepções onde este está presente, a unidade de medida desse artigo, a data de inicio mais baixa do conjunto de excepções onde o artigo está presente e ainda a data de fim máxima também do conjunto de excepções onde o artigo está presente.
ara ver mais em detalhe um ou mais artigos com a sua correspondente unidade de medida deverá
seleccionar o artigo pretendido ou os artigos pretendidos e clicar no botão (detalhes).
E um ecrã como é apresentado a seguir irá aparecer:

Neste ecrã encontrara a informação mais detalhada acerca das excepções temporárias do artigo, e poderá observar quais são essas excepções onde o artigo se encontra, o estabelecimento dessas excepções, a quantidade reservada desse artigo nesse estabelecimento e a data inicio e fim da excepção.
Se foi seleccionado mais que um artigo, para conseguir navegar entre artigos deverá usar as teclas de navegação que se encontram ao cimo da pagina:

Clicando na seta direita vai ser apresentado o artigo seguinte, na seta a esquerda para o anterior.
Aspectos Técnicos das Excepções Temporárias
De seguida vou explicar os aspectos técnicos da opção anular excepção temporária do menu lista.
Para anular uma excepção temporária foi criada uma mensagem de confirmação avisando que todas as reservas vão ser anuladas.
Para isso foi adicionado a sequência de métodos um novo método chamado confirmArtclExcp, neste método e se após a mensagem o utilizador confirmar a acção, é feita uma leitura a tabela D0313 onde iremos produzir um array para que possa ser chamado o método updExceptionCodeStock; este array irá ser constituído por:
- index “par”:
- pelo código da excepção temporária;
- pelo código do estabelecimento;
- index “lpar” – preenchido a partir da leitura à tabela D0313:
- pelo código da excepção temporária;
- pelo código do estabelecimento;
- index “fld” – também preenchido a partir da tabela D0313:
- pelo código da excepção temporária;
- pelo código do estabelecimento;
- pelo código do artigo;
- pela código da unidade de medida;
- pela “Quantita_mov_UMS1” – que neste caso deve ir a zero;
- pelo estado aplicativo presente na D0313;
- pelo campo de “unita_misura_valore”.
Agora que temos os parâmetros todos preparados no array antes criado para enviar para o método
updExceptionCodeStock, este poderá gerar os documentos que irão zerar as quantidades
reservadas para as excepções seleccionadas.
Report dos Artigos presentes em Excepções Temporárias
Para realizar o report que mostra todos os artigos com excepções temporárias, foi criada a vista D0313V02 que faz um join da tabela D0313 com a tabela D0311 a partir do campo “Código de excepção temporária”, esta devolve o código de artigo, o numero total de excepções desse artigo, a soma das quantidades reservadas, o mínimo da data inicio, o máximo da data fim e ainda a unidade de medida. Esta vista tem ainda um group by constituído pelos campos do artigo e da unidade de medida.
Como as quantidades estavam na unidade de medida errada foi criado um método de leitura exceptions2Article, para que as quantidades aparecessem convertidas para o valor certo.
Neste método é feita a leitura a vista anteriormente explicada, e por cada artigo é feita uma chamada a mais dois métodos. O primeiro readFromD0084, que devolve um array com as unidades de medida do artigo que foi enviado como parâmetro, o segundo calcDivMult, que recebe o array anteriormente criado pelo método anterior, a unidade de medida em que se quer converter, e o ‘1’ como ultimo parâmetro, e assim irá devolver o divisor. Então há quantidade recebida da leitura da vista dividimos-la pelo divisor que obtivemos anteriormente e arredondamos os valores de acordo com que a função umD que devolve o arredondamento certo, depois de receber como parâmetro a unidade de medida. Por fim preenchemos o outData correcto para preencher o report.
Report de Detalhe das Excepções Temporárias do Artigo
Para realizar o report que os detalhes das excepções temporárias do artigo, foi criada a vista D0313V03 que faz um join da tabela D0313 com a tabela D0311 a partir do campo “Código de excepção temporária”, esta devolve o código de artigo, o as excepções desse mesmo artigo, as quantidades reservadas, a data inicio e fim, o estabelecimento e ainda a unidade de medida.
Como as quantidades estavam na unidade de medida errada foi criado um método de leitura detailExceptions2Article, para que as quantidades aparecessem convertidas para o valor certo.
Neste método é feita a leitura a vista anteriormente explicada, e por cada artigo é feita uma chamada a mais dois métodos. O primeiro readFromD0084, que devolve um array com as unidades de medida do artigo que foi enviado como parâmetro, o segundo calcDivMult, que recebe o array anteriormente criado pelo método anterior, a unidade de medida em que se quer converter, e o ‘1’ como ultimo parâmetro, e assim irá devolver o divisor. Então há quantidade recebida da leitura da vista dividimos-la pelo divisor que obtivemos anteriormente e arredondamos os valores de acordo com que a função umD que devolve o arredondamento certo, depois de receber como parâmetro a unidade de medida. Por fim preenchemos o outData correcto para preencher o report.