#Include 'Protheus.ch'
#INCLUDE "FWMVCDEF.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} GPC101AUTO()
Função que efetua a inclusão de Analise de Mercado por Lote.
@author TOTVS
@since 00/00/0000
@version 1.0
/*/
//-------------------------------------------------------------------
User Function GPC101AUTO()
Local oModel := FWLoadModel("GCPA101") // Carrega o modelo
Local oModelCOY := oModel:GetModel('COY_DETAIL') // Carrega submodelo da composição do lote
Local cLogError := ""
oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão
oModel:Activate() // Ativa o Modelo
// Cabeçalho Análise de Mercado
oModel:SetValue( 'COM_MASTER' , 'COM_REGRA' , '003' )
oModel:SetValue( 'COM_MASTER' , 'COM_TIPO' , 'MP' )
oModel:SetValue( 'COM_MASTER' , 'COM_ESPECI' , '2' )
// Lote
oModel:SetValue( 'COQ_DETAIL' , 'COQ_LOTE' , '0001' )
oModel:SetValue( 'COQ_DETAIL' , 'COQ_METODO' , '1' )
// Fornecedores
oModel:SetValue( 'COP_DETAIL' , 'COP_TIPO' , '2' )
oModel:SetValue( 'COP_DETAIL' , 'COP_CODFOR' , '000005' )
// Produtos
oModel:SetValue( 'CON_DETAIL' , 'CON_CODPRO' , 'P000001' )
oModel:SetValue( 'CON_DETAIL' , 'CON_QUANT' , 100 )
// Solicitações
oModel:LoadValue( 'COO_DETAIL' , 'COO_NUMSC' , 'PMS08M' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_ITEMSC' , '001' )
// Composição do Lote
If oModelCOY:SeekLine({{'COY_CODPRO', 'P000001'}}) // Posiciona no item correspondente
oModel:SetValue( 'COY_DETAIL' , 'COY_PRCUN' , 50 )
EndIf
oModel:GetModel('CON_DETAIL'):AddLine() // Adiciona uma nova linha para Produto
// Produtos
oModel:SetValue( 'CON_DETAIL' , 'CON_CODPRO' , 'P000002' )
oModel:SetValue( 'CON_DETAIL' , 'CON_QUANT' , 50 )
// Solicitações
oModel:LoadValue( 'COO_DETAIL' , 'COO_NUMSC' , 'PMS08M' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_ITEMSC' , '002' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_QUANT' , 50 )
// Composição do lote
If oModelCOY:SeekLine({{'COY_CODPRO', 'P000002'}})
oModel:SetValue( 'COY_DETAIL' , 'COY_PRCUN' , 300 )
EndIf
// Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
Else
aEval( oModel:GetErrorMessage(), { | x | cLogError += cValToChar( x ) + CRLF } )
Help( ,,"GCP101AUTO",,cLogError, 1, 0 )
EndIf
oModel:DeActivate() // Desativa o modelo
oModel:Destroy() // Destrói o modelo
Return
|