Este ponto de entrada situado no tratamento TRTACHMGT1 tomada em conta das necessidades a partir dos planos de trabalho (planning global, plano de trabalho e reagrupamento), gera uma acção "PECBESOINS".
O objectivo desta acção é de dar a possibilidade de converter em unidade física a quantidade de necessidade a tomar em conta.
Iso se faz em função do título por defeito do artigo mas apenas para as necessidades não emitidas de um documento de compra.
Não existe transacção em curso.
Existe um ficheiro rasto aberto.
A chamada se faz para cada linha de necessidade tomada em conta nos planos de trabalho.
As variáveis seguintes são carregadas no momento da chamada de acção "PECBESOINS".
RASTO
Típo de tratamento das necessidades tomadas em conta:
- 4 = Para criação de encomendas de compra
- 5 = Para criação de encomendas clássicas
- 6 = Para criação de encomendas de entraga (encomendas abertas)
ABREV
Abreviação da máscara ecrã utilizado ("PMG")
A máscara ecrã [M:PMG] está utilizável, a variável I indica a linha do quadro em curso de tratamento
[M:PMG]WIPTYP(I)
Tipos de ordem
- 2 = "PO" Encomenda fornecedor
- 4 = "SC" Serviço sub-contrato
- 7 = "TR" Transferência aprovisionamento
[M:PMG]WIPSTA(I)
Status da ordem
- 1 = "F" Firme
- 2 = "P" Plannificado
- 7 = "S" Sugerido
As variáveis e as classes precedentes não devem ser modificados.
As variáveis seguintes devem ser modificadas para influênciar o tratamento da tomada em conta das necessidades.
RMNQTY :
Quantidade da necessidade tomada em conta exprimida em :
- unidade de stock físico se a necessidade está emitida de um documento de compra "POP", "POF", "TRP", "TRF"
-ou em unidade de stock activo se a necessidade não foi emitida de um documento de compra ("POS", "TRS", "SCF" … etc …)
-
Exemplo de um tratamento específico activado pelo ponto de entrada PECBESOINS :
$ACTION
Check box ACTION
When "PECBESOINS" : Gosub PECBESOINS
When "ORDLEC" : Gosub ORDLEC
When "ORDMAJ" : Gosub ORDMAJ
Endcase
Return
#----- Conversão da quantidade da necessidade tomada em conta em unidade física -----#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Conversão das quantidades em unidade física após leitura [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Conversão das quantidades em unidade activa se necessidades emitidas das compras -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto.
Tabela | Conteúdo significativo | Intitulado Tabela |
ORDERS | Não | Em-curso : |
ITMMASTER | Não | Artigos |
ITMBPS | Não | Artigos - fornecedores |
PREQUIS | Se TRAIT = 4 | Pedidos de compra cabeçalhos |
PREQUISD | Se TRAIT = 4 | Pedidos de compra em linhas |
PORDER | Se TRAIT = 5 ou 6 | Encomendas de compra cabeçalhos |
PORDERC | Se TRAIT = 6 | Linhas artigos contratos |
PORDERP | Se TRAIT = 5 ou 6 | Linhas encomendas de preços de compra |
PORDERQ | Se TRAIT = 5 ou 6 | Linhas encomendas de quantidade de compra |
Este ponto de entrada deve ser utilizado obrigatoriamente com dois outros pontos ORDMAJ e ORDLEC afim de tratar convenientemente o problema dos artigos titulados (quantidades em unidades activas para o em-curso e em unidades físicas para os documentos de compras).
Este ponto de entrada situado no tratamento TRTACHMGT1 tomado em conta das necessidades a partir dos planos de trabalho (planning global, plano de trabalho e reagrupamento), gera uma acção "ORDLEC".
O objectivo desta acção é de dar a possibilidade de converter em unidade física as quantidades do em curso que vem de ser lida.
Isto se faz em função do título por defeito do artigo, as quantidades do em curso sendo sempre exprimidas em unidade activa.
A chamada se faz após a leitura de um registo da tabela ORDERS nos tratamentos do módulo compras.
A classe [F :ORD] está carregada no momento da chamda de acção "ORDLEC".
As quantidades seguintes devem ser convertidas em unidade física se o artigo é "titulado" :
[F :ORD]EXTQTY
Quantidade prevista
[F :ORD]CPLQTY
quantidade realizada
[F :ORD]RMNEXTQTY
Quantidade restante
Exemplo de um tratamento específico activado pelo ponto de entrada ORDLEC :
$ACTION
Check box ACTION
When "PECBESOINS" : Gosub PECBESOINS
When "ORDLEC" : Gosub ORDLEC
When "ORDMAJ" : Gosub ORDMAJ
Endcase
Return
#----- Conversão da quantidade da necessidade tomada em conta em unidade física -----#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Conversão das quantidades em unidade física após leitura [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Conversão das quantidades em unidade activa se necessidades emitidas das compras -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto.
Tabela | Conteúdo significativo | Intitulado Tabela |
ORDERS | Sim | Em-curso : |
ITMMASTER | Não | Artigos |
Este ponto de entrada deve ser utilizado obrigatoriamente com dois outros pontos de entrada PECBESOINS e ORDMAJ afim de tratar convenientemente o problema dos artigos titulados (quantidades em unidades activas para o em-curso e em unidades físicas para os documentos de compras).