Árvore de páginas

PCPA120 - Lista de Componentes

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Idiomas:Todos

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos


Descrição:

A rotina tem como objetivo possibilitar a criação, alteração ou exclusão de listas de componentes que posteriormente podem ser relacionadas a estruturas ou pré-estruturas. O funcionamento básico da rotina se dá pela atribuição de um código e uma descrição para cada lista e então relacionando por meio de uma grid os componentes dessa lista. 


Exemplo Inclusão/Alteração/Exclusão:
#INCLUDE 'Protheus.ch'
//-------------------------------------------------------------------
// Incluir, alterar ou excluir Lista de Componentes
//-------------------------------------------------------------------
User Function MyPCPA120()
	Local nOpc
	
    RPCSetEnv("T1" , "D MG 01 ",,,"PCP",,,,,,)

	nOpc := 3 //Operação de inclusão

	EfetuaTransac(nOpc) 

Return Nil

Static Function EfetuaTransac(nOpc)  
	Local lRet     := .T.
	Local cMsgErro := ''
	Local aErro    := {}

	Default nOpc := 3

	If nOpc == 3
		//--------------- Exemplo de Inclusão ------------------------------------
		If lRet				
			// Instancia o modelo
			oModel := FWLoadModel( "PCPA120" )

			//Limpa variável de erro
			aErro := oModel:GetErrorMessage(.T.)
			aErro := {}

			
			SMW->(dbSetOrder(1))
			If SMW->(dbSeek(xFilial("SMW")+"0000000001"))
				lRet := .F.
				cMsgErro := "Lista já cadastrada"				
			EndIf
			
			//Seta operação de inclusão
			oModel:SetOperation( 3 )

			//Ativa o modelo
			oModel:Activate()
			
			//Valida a ativação do modelo
			If !oModel:Activate()   				
				lRet := .F.
				aErro := oModel:GetErrorMessage()
				If !Empty(aErro[6])
					cMsgErro := oModel:GetErrorMessage()[6]
				Else
					cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
				EndIf     								
			EndIf
		EndIf

		If lRet
			//Carrega o Modelo da Grid
			oModelSVG := oModel:GetModel( "SVGDETAIL" )               					//Componentes
				
			//Inclui os dados
			oModel:SetValue("SMWMASTER","MW_CODIGO","0000000001")             			//Código
			oModel:SetValue("SMWMASTER","MW_DESCRI" ,"LISTA COMPONENTES PARA PCPA120") 	//Descrição
			
			oModelSVG:SetValue( "VG_COMP"   	,"PCP_PCPA120_CT001_MP0000000001"  )	//Componente
			oModelSVG:SetValue( "VG_QUANT"   	,1  ) 	   								//Quantidade

			//Valida a inclusão
			If oModel:VldData()   				
				If !oModel:CommitData()
					lRet := .F.					
					aErro := oModel:GetErrorMessage()
					If !Empty(aErro[6])
						cMsgErro := oModel:GetErrorMessage()[6]
					Else
						cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
					EndIf     								
				EndIf
			Else
				lRet := .F.					
				aErro := oModel:GetErrorMessage()
				If !Empty(aErro[6])
					cMsgErro := oModel:GetErrorMessage()[6]
				Else
					cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
				EndIf     											
			EndIf
		EndIf

		If !lRet
			ConOut( cMsgErro )
		Else
			ConOut( "Inclusão efetuada com sucesso." )
		EndIf
	ElseIf nOpc == 4
		//--------------- Exemplo de Alteração ------------------------------------	
		If lRet	
			// Instancia o modelo
			oModel := FWLoadModel( "PCPA120" )

			//Limpa variável de erro
			aErro := oModel:GetErrorMessage(.T.)
			aErro := {}

			//Verifica se existe o registro na tabela
			SMW->(dbSetOrder(1))
			If !SMW->(dbSeek(xFilial("SMW")+"0000000002"))
				lRet := .F.
				cMsgErro := "Lista não cadastrada"				
			EndIf

			If lRet
				//Seta operação de alteração
				oModel:SetOperation( 4 ) 

				//Ativa o modelo
				oModel:Activate()
				
				//Valida a ativação do modelo
				If !oModel:Activate()   				
					lRet := .F.
					aErro := oModel:GetErrorMessage()
					If !Empty(aErro[6])
						cMsgErro := oModel:GetErrorMessage()[6]
					Else
						cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
					EndIf     								
				EndIf
			EndIf
		EndIf

		If lRet
			// Carrega o Modelo da Grid
			oModelSVG := oModel:GetModel( "SVGDETAIL" )
			
			//Posiciona na linha 1
			oModelSVG:GoLine(1)
			//Altera o registro
			oModelSVG:SetValue("VG_QUANT",10) //Quantidade

			//Posiciona na linha 2
			oModelSVG:GoLine(2)
			//Altera o registro
			oModelSVG:SetValue("VG_QUANT",20) //Quantidade					
			
			//Valida a alteração
			If oModel:VldData()   				
				If !oModel:CommitData()
					lRet := .F.					
					aErro := oModel:GetErrorMessage()
					If !Empty(aErro[6])
						cMsgErro := oModel:GetErrorMessage()[6]
					Else
						cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
					EndIf     								
				EndIf
			Else
				lRet := .F.					
				aErro := oModel:GetErrorMessage()
				If !Empty(aErro[6])
					cMsgErro := oModel:GetErrorMessage()[6]
				Else
					cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
				EndIf     											
			EndIf							
		EndIf

		If !lRet
			ConOut( cMsgErro )
		Else
			ConOut( "Alteração efetuada com sucesso." )
		EndIf
	ElseIf nOpc == 5
		//--------------- Exemplo de Exclusão ------------------------------------
		If lRet	
			// Instancia o modelo
			oModel := FWLoadModel( "PCPA120" )

			//Limpa variável de erro
			aErro := oModel:GetErrorMessage(.T.)
			aErro := {}

			//Verifica se existe o registro na tabela
			SMW->(dbSetOrder(1))
			If !SMW->(dbSeek(xFilial("SMW")+"0000000004"))
				lRet := .F.
				cMsgErro := "Lista não cadastrada"				
			EndIf

			If lRet
				//Seta operação de alteração
				oModel:SetOperation( 5 ) 

				//Ativa o modelo
				oModel:Activate()
				
				//Valida a ativação do modelo
				If !oModel:Activate()   				
					lRet := .F.
					aErro := oModel:GetErrorMessage()
					If !Empty(aErro[6])
						cMsgErro := oModel:GetErrorMessage()[6]
					Else
						cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
					EndIf     								
				EndIf
			EndIf
		EndIf

		If lRet
			//Valida a exclusão
			If oModel:VldData()   				
				If !oModel:CommitData()
					lRet := .F.					
					aErro := oModel:GetErrorMessage()
					If !Empty(aErro[6])
						cMsgErro := oModel:GetErrorMessage()[6]
					Else
						cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
					EndIf     								
				EndIf
			Else
				lRet := .F.					
				aErro := oModel:GetErrorMessage()
				If !Empty(aErro[6])
					cMsgErro := oModel:GetErrorMessage()[6]
				Else
					cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
				EndIf     											
			EndIf							
		EndIf

		If !lRet
			ConOut( cMsgErro )
		Else
			ConOut( "Exclusão efetuada com sucesso." )
		EndIf		
	EndIf

oModel:DeActivate()
oModel:Destroy()
oModel := NIL

Return Nil

   
Observações:

Cada opção (Incluir Lista, Alterar Lista e Excluir Lista) deve instanciar o mesmo modelo, porém setando a operação da ação desejada.

Incluir Lista

oModel := FWLoadModel( "PCPA120" ) //Instanciar o modelo

oModel:SetOperation( 3 ) //Setar a operação da ação Incluir Listar

Alterar Lista

oModel := FWLoadModel( "PCPA120" ) //Instanciar o modelo

oModel:SetOperation( 4 ) //Setar a operação da ação Alterar Lista

Excluir Lista

oModel := FWLoadModel( "PCPA120" ) //Instanciar o modelo

oModel:SetOperation( 5 ) //Setar a operação da ação Excluir Lista