Permite que a empresa gerencie de forma mais organizada e estruturada as solicitações e efetivações de transferência de materiais, seja entre locais de estoque da mesma filial ou entre filiais distintas.
As principais vantagens desta funcionalidade são:
O processo que envolve o Solicitação de Transferência de Materiais contempla as seguintes etapas:
O registro da transferência de diversos materiais no mesmo documento viabiliza o saldo empenhado no armazém de origem e a previsão de entrada no armazém de destino.
Esta rotina pode ser utilizada com a alçada de aprovação de documentos, assim, o documento de solicitação de transferência passa por um controle de aprovação antes de ser efetivado, proporcionando mais controle e o registro do seu histórico.
Após o registro e aprovação (caso o controle de alçadas de aprovação esteja habilitado), é possível efetivar a transferência que fará o estorno dos empenhos e previsões de entrada. Ao término do processo, o documento de transferência fica disponível para consulta e o número gerado pode ser visualizado, mantendo assim, o histórico da transação realizada, sendo: Movimento Interno para transferência de armazéns e Documento de Saída para transferência entre filiais.
A rotina Produtos permite onde as operações podem ser utilizadas em suas customizações conforme exemplos abaixo:
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "TBICONN.CH" /* Exemplo de inclusão de ums solicitacao de transferencia via rotina automatica */ User Function M311Inc() Local oModel Local aLog Local cMensLog Local nX PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST" oModel := FWLoadModel("MATA311") //Carrega o modelo oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão oModel:Activate() // Ativa o Modelo //Cabeçalho da solicitacao oModel:SetValue( 'NNSMASTER', 'NNS_CLASS', '1' ) oModel:SetValue( 'NNSMASTER', 'NNS_ESPECI', ' ' ) //Itens da solicitacao // produto e local de origem oModel:SetValue( 'NNTDETAIL', 'NNT_FILORI', '01' ) oModel:SetValue( 'NNTDETAIL', 'NNT_PROD', 'PRO001' ) oModel:SetValue( 'NNTDETAIL', 'NNT_LOCAL', '0A' ) oModel:SetValue( 'NNTDETAIL', 'NNT_QUANT', 1 ) // produto e local de destino oModel:SetValue( 'NNTDETAIL', 'NNT_FILDES', '01' ) oModel:SetValue( 'NNTDETAIL', 'NNT_PRODD', 'PRO001' ) oModel:SetValue( 'NNTDETAIL', 'NNT_LOCLD', '0B' ) If oModel:VldData() //Validação do modelo oModel:CommitData() // Gravação do Modelo Else aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData cMensLog := '' //laco para gravar em string cLog conteudo do array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10) EndIf Next nX lMsErroAuto := .T. //seta variavel private como erro AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro MostraErro() EndIf oModel:DeActivate() //desativa modelo Return NIL |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "TBICONN.CH" /* Exemplo de Copia de ums solicitacao de transferencia via rotina automatica */ User Function m311Copy() Local oModel Local nX Local cCodDoc Private cOpId311 := "004" // DECLARACAO PARA O REALIZAR A COPIA DA SOLICITACAO PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST" cCodDoc := "0000000001" // codigo do documento de solicitação de transferencia a ser copiado //Posiciona registro dbSelectArea("NNS") NNS->(DbSetOrder(1)) If NNS->(DbSeek(xFilial("NNS") + cCodDoc)) //carrega o model oModel := FWLoadModel( "MATA311" ) //Define operação do modelo oModel:SetOperation( MODEL_OPERATION_INSERT ) //Ativação do modelo oModel:Activate( .T. ) //-- Preenchimento dos campos da NNT da 1a linha oModel:SetValue( "NNTDETAIL","NNT_QUANT",3) If oModel:VldData() //Validação do modelo oModel:CommitData() // Gravação do Modelo Else aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData cMensLog := '' //laco para gravar em string cLog conteudo do array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10) EndIf Next nX lMsErroAuto := .T. //seta variavel private como erro AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro MostraErro() EndIf ELSE conout("Documento de Solicitação de transferencia não encontrado") ENDIF Return NIL |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "TBICONN.CH" /* Exemplo de alteracao de ums solicitacao de transferencia via rotina automatica */ User Function m311Alt() Local oModel Local nX Local cCodDoc Private cOpId311 := "004" // DECLARACAO PARA O REALIZAR A ALTERACAO DA SOLICITACAO PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST" cCodDoc := "0000000001" // codigo do documento de solicitaзгo de transferencia a ser alterado //Posiciona registro dbSelectArea("NNS") NNS->(DbSetOrder(1)) If NNS->(DbSeek(xFilial("NNS") + cCodDoc)) //carrega o model oModel := FWLoadModel( "MATA311" ) //Define operaзгo do modelo oModel:SetOperation( MODEL_OPERATION_UPDATE ) //Ativaзгo do modelo oModel:Activate() //-- Preenchimento dos campos da NNT da 1a linha oModel:SetValue( "NNTDETAIL","NNT_QUANT",4) If oModel:VldData() //Validaзгo do modelo oModel:CommitData() // Gravaзгo do Modelo Else aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData cMensLog := '' //laco para gravar em string cLog conteudo do array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10) EndIf Next nX lMsErroAuto := .T. //seta variavel private como erro AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro MostraErro() EndIf ELSE conout("Documento de Solicitaзгo de transferencia nгo encontrado") ENDIF Return NIL |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "TBICONN.CH" /* Exemplo de Efetivar uma solicitacao de transferencia via rotina automatica */ User Function m311efet() Local oModel Local nX Local cCodDoc Private cOpId311 := "011" // DECLARACAO PARA O REALIZAR A EFETIVACAO DA SOLICITACAO PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST" cCodDoc := "0000000001" // codigo do documento de solicitaçãoo de transferencia a ser efetivado //Posiciona registro dbSelectArea("NNS") NNS->(DbSetOrder(1)) If NNS->(DbSeek(xFilial("NNS") + cCodDoc)) //carrega o model oModel := FWLoadModel( "MATA311" ) //Define operação do modelo oModel:SetOperation( MODEL_OPERATION_UPDATE ) //Ativação do modelo oModel:Activate() //-- Preenchimento dos campos da NNS oModel:SetValue( 'NNSMASTER' , 'NNS_STATUS' , '2' ) oModel:SetValue( 'NNSMASTER' , 'NNS_ESPECI' , "NF" ) If oModel:VldData() //Valida??o do modelo oModel:CommitData() // Grava??o do Modelo Else aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData cMensLog := '' //laco para gravar em string cLog conteudo do array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10) EndIf Next nX lMsErroAuto := .T. //seta variavel private como erro AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro MostraErro() EndIf oModel:DeActivate() //desativa modelo ELSE conout("Documento de Solicitação de transferencia não encontrado") ENDIF Return NIL |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "TBICONN.CH" /* Exemplo de Excluir uma solicitacao de transferencia via rotina automatica */ User Function m311Exc() Local oModel Local nX Local cCodDoc PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST" cCodDoc := "0000000002" // codigo do documento de solicitação de transferencia a ser excluida //Posiciona registro dbSelectArea("NNS") NNS->(DbSetOrder(1)) If NNS->(DbSeek(xFilial("NNS") + cCodDoc)) //carrega o model oModel := FWLoadModel( "MATA311" ) //Define operação do modelo oModel:SetOperation( MODEL_OPERATION_DELETE ) //Ativação do modelo oModel:Activate() If oModel:VldData() //Validação do modelo oModel:CommitData() // Gravação do Modelo Else aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData cMensLog := '' //laco para gravar em string cLog conteudo do array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10) EndIf Next nX lMsErroAuto := .T. //seta variavel private como erro AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro MostraErro() EndIf oModel:DeActivate() //desativa modelo ELSE conout("Documento de Solicitaão de transferencia n?o encontrado") ENDIF Return NIL |
Na página principal da rotina, estão disponíveis as opções:
|
|
Nome | Propósito | Link da documentação |
MV_TPCUSST | define o custo do produto que deve ser considerado no registro de transferência. Apresenta as opções 1=Lista de Preço; 2=Custo Standard; 3=Último preço de Compra e 4=Custo Unitário. | |
MV_APROVTR | indica se o controle de transferência de produto deve ser submetido para alçada de aprovação. A opção padrão é F. | |
MV_CUSFIL | indica se o recalculo do custo médio deverá calcular o custo aglutinando por Filial (F), por Empresa (E) ou por Armazém (A). A opção padrão é A. | |
MV_AGCUSTO | indica se deve aglutinar o custo on-line (por Filial ou Empresa). Respeita a definição do parâmetro MV_CUSFIL. A opção padrão é F. | |
MV_MTNLOTE | mantém o número do sub-lote para as transferências entre o mesmo produto e o mesmo lote. A opção padrão é N. | |
MV_ESTNEG | indica se o Sistema permite que os saldos em estoque dos produtos fiquem negativos por meio de movimentações. A opção padrão é S. |
Nome | Propósito | Equivalente em MVC | Link da documentação |
---|---|---|---|
MT311ROT | possa manipular os botões existentes e adicionar novos botões na rotina Solicitação de Transferência. | Não alterado | PEST07671_PONTO_DE_ENTRADA_MT311ROT |
M311FILIAL | Validação para inclusão ou alteração do Produto | Não alterado | DT PE M311FILIAL - Permite definição de filiais destino na solicitação de transferência |
MT311Leg | Permite limpar o conteúdo dos campos de complemento de produto | Não alterado | PEST07666_MT311LEG_ADICIONA_LEGENDA |
Não se aplica a esta rotina
Saiba mais em: A camada do EAI
Não se aplica a esta rotina.
Saiba mais: MILE - Model Integrator Layout Engine
Não se aplica a esta rotina.
Saiba mais: M-Messenger - MATA045
No momento não há FAQs referente a esta rotina.
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |