Ponto entrada > Módulo Tronco comum > Tratamento standard TRTWIP 

MAJITMMVT : atualização complementar de ficheiros seguintes à atualização

Apresentação

Este ponto de entrada afecta a gestão dos em curso de stock.

Permite fazer as atualizações complementares de ficheiros após cada operação sobre um em curso de stock.

Contexto e modo de funcionamento.

Transação

Existe uma transacção em curso. A variável GOK está posicionado a 1.

Diferentes casos de chamada

Este ponto de entrada está chamado no tratamento TRTWIP que lhe está chamado depois cada tratamento (Stock, Compra, Venda, Produção) permitindo a criação, modificação ou supressão de um em curso de stock.

 

Variáveis significartivas

WMAJCOD contém :         " C " se escreve um registo ORDERS

"M" se reescreve um registo ORDERS

"A" se se suprime um registo ORDERS

Se WMAJCOD =  "M"

               WRMNEXTQTY contém a quantidade restante antes registo do Em-curso com a sua nova quantidade.

               WOLDWIPSTA contém o antigo estatuto do em curso (1 = "Firme", 2 = "Planificado", 3= "Sugerido", 4 = "Encerrado").

 

 
Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto (a entrega corrente está carregada... mais as linhas)

Tabela

Conteúdo significativo

Título Tabela

ORDERS

SIM

Em curso de stock [F:ORDW]

 

 

 

 

Ecrãs abertos

Ecrã

Conteúdo significativo

Título Ecrã

ORDK

SIM

Parâmetros em curso de stock

 

 

 

 
Casos particulares :

Para alimentar um acumulado necessidade (BESSTO por exemplo) na tabela Acumulados artigos-estabelecimentos (ITMMVT), falta proceder da maneira seguinte :

Para as ordens

- SOF          (Encomenda de venda)          ( [M:ORDK]WIPTYP=1 e [M:ORDK]WIPSTA=1 )

- MWF         (Matérias fabrico)              ( [M:ORDK]WIPTYP=6 e [M:ORDK]WIPSTA=1 )

- TPF           (Pedido inter-estabelecimento)              ( [M:ORDK]WIPTYP=8 e [M:ORDK]WIPSTA=1 )

Se WMAJCOD = " C "

[F :ITV]BESSTO += [F:ORDW]RMNEXTQTY

Si WMAJCOD = " M "

Se WOLSWIPSTA = 2 ou WOLDWIPSTA = 3 e [F :ORD]WIPSTA = 1 (passa-se de "Planificado/Sugerido" a "Firme")

                                [F :ITV]BESSTO += [F :ORDW]RMNEXTQTY

Senão

                               [F :ITV]BESSTO += [F:ORDW]RMNEXTQTY - WRMNEXTQTY

Se WMAJCOD =  "A"

[F :ITV]BESSTO -= [F:ORDW]EXTQTY – [F :ORDW]CPLQTY

ORDMAJ : Atualização de zonas específicas do ficheiro em-curso ORDERS

Este ponto de entrada afecta a gestão dos em curso de stock.

Permite intervir justo antes a criação ou a modificação do registo de em-curso (isto permitindo, por exemplo, de inicializar as zonas específicas ou de recalcular as quantidades em unidade em unidade activa).

Contexto e modo de funcionamento.

Transação

Existe uma transação em curso. A variável GOK está posicionado a 1.

Diferentes casos de chamada

Este ponto de entrada está chamado em criação e modificação no tratamento TRTWIP que lhe está chamado depois cada tratamento (Stock, Compra, Venda, Produção) permitindo a criação de um em-curso de stock.

Convirá então testar eventualmente as variáveis GFONCTION e WMAJCOD afim de conhecer o contexto de chamada.

 

Variáveis significartivas

WMAJCOD contém :

"C" se reescreve um registo ORDERS

"M" se reescreve um registo ORDERS

De referir que para o recálculo das quantidades em unidade activa, apenas as ordens emitidas das compras são afetadas.

Em cima, um exemplo de tratamento específico para gerir esta necessidade :

t$ACTION

Case ACTION

  When "ORDMAJ" :  Gosub ORDMAJ

 When Default

Endcase

Return

 

#-----------------------------------#

# Conversão qtds em unidade activa   #

# para as ordens emitidas das compras #

#   - [F:ORDW]RMNEXTQTY              #

#   - [F:ORDW]CPLQTY                 #

#   - [F:ORDW]EXTQTY                 #

#-----------------------------------#

$ORDMAJ

If find([F:ORDW]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"

    If [F:ITM]ITMREF<>[F:ORDW]ITMREF

       Read [ITM] ITM0=[F:ORDW]ITMREF : If fstat  Raz [F:ITM] : Endif

    Endif

    If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

       [F:ORDW]RMNEXTQTY=[F:ORDW]RMNEXTQTY*[F:ITM]DEFPOT/100

       Call QTEARR ([F:ORDW]RMNEXTQTY,[F:ITM]STU) From TRTDIV

       If [F:ORDW]CPLQTY <> 0

           [F:ORDW]CPLQTY=[F:ORDW]CPLQTY*[F:ITM]DEFPOT/100

           Call QTEARR ([F:ORDW]CPLQTY,[F:ITM]STU) From TRTDIV

       Endif

       If [F:ORDW]EXTQTY <> 0

           [F:ORDW]EXTQTY=[F:ORDW]EXTQTY*[F:ITM]DEFPOT/100

           Call QTEARR ([F:ORDW]EXTQTY,[F:ITM]STU) From TRTDIV

       Endif

    Endif

Endif

Return

 

 

 

Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto

Tabela

Conteúdo significativo

Título Tabela

ORDERS

SIM

Em curso de stock

 

 

 

 

Ecrãs abertos

Ecrã

Conteúdo significativo

Título Ecrã

ORDK

SIM

Parâmetros em curso de stock