Histórico da Página
P145GDOC - Indicar a geração do documento pelo MRP
Linha de Produto: | Protheus | ||||||||||||||||||
Segmento: | Manufatura | ||||||||||||||||||
Módulo: | SIGAPCP - Planejamento e Controle da Produção | ||||||||||||||||||
Parâmetro(s): |
| ||||||||||||||||||
Idiomas: | Todos | ||||||||||||||||||
País(es): | Todos | ||||||||||||||||||
Banco(s) de Dados: | Todos | ||||||||||||||||||
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
| Descrição: | O ponto de entrada P145GDOC é chamado para cada documento durante a o processo de geração de documento do MRP. O ponto de entrada recebe o array aDados, com as informações do documento que será gerado e seu retorno indica se o documento será gerado criado ou não pelo MRP ou não. |
| Localização: | Function PCPA145JOB - Geração de documentos do MRP. |
| Eventos: | Durante a criação dos documentos do MRP. |
| Programa Fonte: | PCPA145JOB.PRW PCPA145PC.PRW PCPA145TRF.PRW |
Sintaxe: | P145GDOC( [ cTable ], [ aDados ] ) --> lRet |
| Retorno: | lRet - Indica se o documento será gerado ou não.
|
| Observações: | As posições do array aDados seguem os defines com prefixo RASTREIO_ no arquivo PCPA145DEF.ch. O documento gerado pelo MRP pode ser identificado pelo parâmetro nível do cTable e aDados. Caso cTable possua o valor "SMA", indica a geração de uma transferência. Caso cTable possua o valor "HWC", deverá ser verificado o nível no array aDados (posição 19). Se for nível 99, será gerado documento de compra, caso contrario, será gerado ordem de produção. As posições do array aDados seguem os defines com prefixo RASTREIO_ no arquivo PCPA145DEF.ch. A interface do json com as informações da transferências pode ser encontrado no arquivo PCPA145DEF.ch. Documentos não gerados devido ao retorno .F. do ponto de entrada, terão seu status setado com o valor "4" na tabela HWC. O ponto de entrada é valido para geração de documentos iniciadas diretamente pelo MRP (pcpa712), Tela de Resultado (resultadom) e Geração de Documentos (pcpa144). |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "TOTVS.CH"
#DEFINE RASTREIO_POS_PRODUTO 1 // HWC_PRODUT - Produto
#DEFINE RASTREIO_POS_FILIAL 25 // HWC_FILIAL - Filial
User Function P145GDOC()
Local aDados := {}
Local cTable := PARAMIXB[1]
Local cFilAux := ""
Local cProduto := ""
Local oDados := {}
Local lGeraDoc := .T.
If cTable == "HWC"
aDados := PARAMIXB[2]
cFilAux := aDados[RASTREIO_POS_FILIAL ]
Local cProduto := aDados[RASTREIO_POS_PRODUTO]
ElseIf cTable == "SMA"
oDados := PARAMIXB[2]
cFilAux := oDados["branchId"]
Local lGeraDoccProduto := .T.oDados["product" ]
EndIf
// Gera documentos apenas de produtos do tipo PA.
If SB1->(dbSeek(xFilial("SB1", cFilAux) + cProduto))
lGeraDoc := SB1->B1_TIPO == "PA"
EndIf
Return lGeraDoc |
| Bloco de código | ||
|---|---|---|
| ||
#DEFINE RASTREIO_POS_PRODUTO 1 // HWC_PRODUT - Produto
#DEFINE RASTREIO_POS_TRT 2 // HWC_TRT - TRT
#DEFINE RASTREIO_POS_DATA_ENTREGA 3 // HWC_DATA - Data de Entrega
#DEFINE RASTREIO_POS_DATA_INICIO 4 // HWB_DTINIC - Data de Início
#DEFINE RASTREIO_POS_TIPODOC 5 // HWC_TPDCPA - Tipo do Documento Pai
#DEFINE RASTREIO_POS_DOCPAI 6 // HWC_DOCPAI - Documento Pai (MRP)
#DEFINE RASTREIO_POS_DOCFILHO 7 // HWC_DOCFIL - Documento (MRP)
#DEFINE RASTREIO_POS_NECES_ORIG 8 // HWC_QTNEOR - Necessidade Original
#DEFINE RASTREIO_POS_SALDO_EST 9 // HWC_QTSLES - Saldo Estoque
#DEFINE RASTREIO_POS_BAIXA_EST 10 // HWC_QTBXES - Baixa Estoque
#DEFINE RASTREIO_POS_QTD_SUBST 11 // HWC_QTSUBS - Quantidade Substituição
#DEFINE RASTREIO_POS_EMPENHO 12 // HWC_QTEMPE - Empenho
#DEFINE RASTREIO_POS_NECESSIDADE 13 // HWC_QTNECE - Necessidade (Quantidade que será gerado o documento)
#DEFINE RASTREIO_POS_REVISAO 14 // HWC_REV - Revisão
#DEFINE RASTREIO_POS_ROTEIRO 15 // HWC_ROTEIR - Roteiro do Documento Pai
#DEFINE RASTREIO_POS_OPERACAO 16 // HWC_OPERAC - Operação
#DEFINE RASTREIO_POS_ROTEIRO_DOCUMENTO_FILHO 17 // HWC_ROTF - Roteiro do Documento
#DEFINE RASTREIO_POS_SEQUEN 18 // HWC_SEQUEN - Sequência
#DEFINE RASTREIO_POS_NIVEL 19 // HWB_NIVEL - Nível
#DEFINE RASTREIO_POS_LOCAL 20 // HWC_LOCAL - Armazém
#DEFINE RASTREIO_POS_CHAVE 21 // HWC_CHAVE - Chave
#DEFINE RASTREIO_POS_CHAVE_SUBST 22 // HWC_CHVSUB - Chave Substituição
#DEFINE RASTREIO_POS_OPC_ID 23 // HWC_IDOPC - Opcional Id
#DEFINE RASTREIO_POS_CONTRATO 24 // HWA_CONTRA - Contrato
#DEFINE RASTREIO_POS_FILIAL 25 // HWC_FILIAL - Filial
#DEFINE RASTREIO_POS_QTD_TRANSF_ENT 27 // HWC_QTRENT - Transferência de Entrada
#DEFINE RASTREIO_POS_RECNO 26 // R_E_C_N_O_ - Recno HWC
{
branchId: string, // MA_FILIAL - Filial
originBranchId: string, // MA_FILORIG - Filial origem
destinyBranchId: string, // MA_FILDEST - Filial destino
product: string, // MA_PROD - Produto
transferenceDate: Date // MA_DTTRANS - Data da transferência
receiptDate: Date, // MA_DTRECEB - Data de recebimento
transferenceQuantity: number, // MA_QTDTRAN - Quantidade
originWarehouse: string, // MA_ARMORIG - Armazém origem
destinyWarehouse: string, // MA_ARMDEST - Armazém destino
document: string, // MA_DOCUM - Documento
status: number, // MA_STATUS - Status
message: string, // MA_MSG - Mensagem
ticket: string, // MA_TICKET - Ticket
recordNumber: number, // R_E_C_N_O_ - Recno SMA
level: string // HWB_NIVEL - Nível
} |