Home

Linha Microsiga Protheus

Páginas filhas
  • PmsAltSC - Valida exclusão ou alteração de SC

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Wiki Markup
||Descrição|| Ponto de entrada que valida a alteração de uma Solicitação de Compras gerada via rotina de planejamento no módulo SIGAPMS (Gestão de Projetos (SIGAPMS).  
||Observações|| 
||Exemplos||user function PmsAltSC()
Local aHeader	:= PARAMIXB\[1\]
Local aCols		:= PARAMIXB\[2\]
Local cNumSC	:= PARAMIXB\[3\]
Local lExclui	:= PARAMIXB\[4\]
Local aArea		:= GetArea()
Local aAreaSC1	:= SC1->(GetArea())
Local aAreaAFG	:= AFG->(GetArea())
Local lOk		:= .T.
Local lMt110	:= Alltrim(FUNNAME()) == "MATA110"
Local nX		:= 0
Local nTamArray	:= Len(aCols[1])
Local lPmsScBlq	:= SuperGetMv("MV_PMSCBLQ",,.F.)
Local lPmsAltSC := ExistBlock("PmsAltSC")
Local nPItem	:= aScan(aHeader,{\|x\| AllTrim(x\[2\]) == "C1_ITEM"	})
Local nPQuant	:= aScan(aHeader,{\|x\| AllTrim(x\[2\]) == "C1_QUANT"	})
Local nPosPrd	:= aScan(aHeader,{\|x\| AllTrim(x\[2\]) == "C1_PRODUTO"	})
Local nPosDt	:= aScan(aHeader,{\|x\| AllTrim(x\[2\]) == "C1_DATPRF" 	})
If lExclui
	dbSelectArea("AFG")
	dbSetOrder(2)
	For nX:=1 to Len(aCols)
		If dbSeek(xFilial("AFG")+cNumSC+aCols\[nX\]\[nPItem\])
        	If !Empty(AFG->AFG_PLANEJ)
				lOk := .F.
				EXIT
			Endif
		Endif
	Next nX
Else
	DbSelectArea("SC1")
	dbSetOrder(1)//C1_FILIAL+C1_NUM+C1_ITEM
	For nX:=1 to Len(aCols)
		If Dbseek(xFilial("SC1") + cNumSC + aCols\[nX\]\[nPItem\] )
				If aCols\[nX\]\[nTamArray\]
				lOk := .F.
			ElseIf (SC1->C1_QUANT <> aCols[nX][nPQuant]) .or. (SC1->C1_PRODUTO <> aCols[nX][nPosPrd]) .or. (SC1->C1_DATPRF <> aCols[nX][nPosDt])
				lOk := .F.
				Exit
			EndIf
		Endif		
	Next nX
Endif	
If !lOk
	If lExclui
		MsgAlert("Esta Solicitação foi gerada via Planejamento do módulo SIGAPMS. Não sera possível excluí-la. Verificar parâmetrp MV_PMSCBLQ.")
	Else
		MsgAlert("Esta Solicitação foi gerada via Planejamento do módulo SIGAPMS. Não será possível alterar informações principais. Verificar parâmetro MV_PMSCBLQ.")
	Endif
Endif

RestArea(aAreaAFG)
RestArea(aAreaSC1)
RestArea(aArea)

Return lOk
||Preview|| 
||Veja também|| 
||Idioma|| Português(Brasil)
||Versões|| Versões_Anteriores
||Sistemas Operacionais Suportados||Todos
||Compatível com as Bases de Dados||Todas
||Updates|| 
||Parâmetros|| aHeader	:= PARAMIXB[1] // Header da solicitação de compras
aCols		:= PARAMIXB[2] // informações da solicitação de compras
cNumSC	:= PARAMIXB[3] // numero da solicitação de compras
lExclui	:= PARAMIXB[4] // Indica se é exclusão da Solicitação de compras
||Retorno|| lOk - Se .T. indica se poderá prosseguir com a exclusão ou alteração.
||Eventos de chamada do Ponto de Entrada|| 
||Variáveis|| 
||Programa Fonte|| pmsxfunb.prw