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 Controle de Transferência 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.
Um documento de solicitação de transferência pode apresentar os seguintes status:
1 Liberado |
|
2 Transferido |
|
3 Em Aprovação |
|
4 Rejeitado |
|
Antes de realizar a solicitação de transferência é importante considerar alguns critérios:
Ao acionar a rotina Controle de Transferência clique em Incluir.
É exibida a tela de Filiais para seleção. Escolha a opção desejada e confirme.
Preencha os campos apresentados:
O sistema realiza as validações e gera os empenhos dos saldos dos materiais na origem e a previsão de entrada deles no destino. Se o controle de alçadas de aprovação de documentos estiver habilitado, imediatamente é gerada uma alçada para o documento de solicitação de transferência atual e sua condição é alterada pra Em Aprovação. Caso contrário, a condição da solicitação é alterada para Liberado permitindo a transferência.
Observação A opção Alterar não pode ser utilizada para solicitação de transferência finalizada. Ao confirmar a alteração, o Sistema estorna os empenhos e previsões de entrada feitos antes da alteração e realiza novos empenhos e previsões de entrada com as quantidade atuais. Caso o registro possua controle de alçadas de aprovação de documentos, a alçada é gerada novamente com os novos valores e a condição da solicitação é alterada pra Em Aprovação. Se o controle de alçadas de aprovação de documentos estiver desabilitado, a condição da solicitação é alterada para Liberado. |
Para realização do processo de controle de transferência, é importante considerar a configuração de alguns parâmetros:
Obrigatórios
Opcionais
Exemplo de inclusão:
#include 'protheus.ch'
#include 'parmtype.ch'
#INCLUDE "TBICONN.CH"
#INCLUDE "FWMVCDEF.CH"
user function M311RAUT()
Local oModel
Local aLog
Local cLog := ''
Local nX
Local lRet := .T.
PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 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 do contrato
oModel:SetValue( 'NNSMASTER' , 'NNS_FILIAL' , 'D MG 01' )
oModel:SetValue( 'NNSMASTER' , 'NNS_COD' , '0000000141' )
oModel:SetValue( 'NNSMASTER' , 'NNS_DATA' , CTOD('13/01/2020') )
oModel:SetValue( 'NNSMASTER' , 'NNS_SOLICT' , '000000' )
oModel:SetValue( 'NNSMASTER' , 'NNS_CLASS' , '1' )
oModel:SetValue( 'NNSMASTER' , 'NNS_ESPECI' , ' ' )
//Cliente/Fornecedor do Contrato
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILIAL' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILORI' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_PROD' , '24455PA' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCAL' , '01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCALI' , 'AA1' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILDES' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_PRODD' , '24455PA' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_QUANT' , 1 )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCLD' , '02' )
//Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
mostraerro()
lRet := .F. //retorna false
EndIf
oModel:DeActivate() //desativa modelo
Return( lRet )
M311FILIAL: https://tdn.totvs.com/x/J_kDIQ
MT311LEG: https://tdn.totvs.com/x/UYIjDw
MT311ROT: https://tdn.totvs.com/x/qIB4Dw
M310CABEC: https://tdn.totvs.com/x/nONc
<!-- 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> |