Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
AVALREGR - Define para bloqueio de armazéns e produtos
AVALREGR - Define para bloqueio de armazéns e produtos

Ponto-de-Entrada: AVALREGR - Define para bloqueio de armazéns e produtos
Versões: Microsiga Protheus 10
Compatível Países: Brasil
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Espanhol , Inglês
Descrição:

O ponto de entrada AVALREGR e utilizado para definir regra especifica definida pelo cliente para a realização de bloqueios de armazens e produtos. Com este ponto de entrada e possivel realizar bloqueio por consumo, produção e poder de terceiros.

Programa Fonte
.PRW
Sintaxe

AVALREGR - Define para bloqueio de armazéns e produtos ( [ cCodOrig ], [ cLocOrig ], [ cTesOrig ], [ lHelp ], [ cCodDest ], [ cLocDest ], [ cTesDest ], [ cFilOrig ], [ cFilDest ] ) --> lBloqueio

Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferência
cCodOrigCaracterCodigo do Produto Origem
cLocOrigCaracterArmazem Origem
cTesOrigCaracterTES Origem
lHelpLógicoIndica se exibe Help na Tela
cCodDestCaracterCodigo do Produto Destino
cLocDestCaracterArmazem Destino
cTesDestCaracterTES Destino
cFilOrigCaracterFilial Origem
cFilDestCaracterFilial Destino
Retorno
    lBloqueio(logico)
  • True = Bloqueio Movimento / False = Permite Movimento
Exemplos
//Abaixo segue um exemplo utilizando a regra padrão de bloqueio:#INCLUDE "RWMAKE.CH"USER FUNCTION AVALREGR()Local lBloqueio := .F.Local cFilBkp   := cFilAntLocal aAreaAnt  := GetArea()Local aAreaSB2  := SB2->(GetArea())Local aAreaSF4  := SF4->(GetArea())Local cTpBlqPro := '2'Local cTpBlqTer := '3|4|5'Local cTipoOrig := ''Local cTipoDest := ''Local cCodOrig  := PARAMIXB[1]	// Codigo do Produto Origem Local cLocOrig  := PARAMIXB[2]	// Codigo do Armazem de OrigemLocal cTesOrig  := PARAMIXB[3]	// Codigo da TES de OrigemLocal lHelp     := PARAMIXB[4]	// Indica se deseja mostrar HelpLocal cCodDest  := PARAMIXB[5]	// Codigo do Produto DestinoLocal cLocDest  := PARAMIXB[6]	// Codigo do Local DestinoLocal cTesDest  := PARAMIXB[7]	// Codigo da TES de DestinoLocal cFilOrig  := PARAMIXB[8]	// Codigo da Filial de OrigemLocal cFilDest  := PARAMIXB[9]	// Codigo da Filial Destino//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//³Validacao padrao de bloqueio de produtos/armazens                      ³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙIf SB2->(FieldPos("B2_TIPO")) > 0 .And. SB2->(FieldPos("B2_BLOQUEI")) > 0	Do Case		// Analise de bloqueio para MOVIMENTOS INTERNOS		Case !Empty(cCodOrig) .And. Empty(cCodDest) .And. Empty(cTesOrig) .And. Empty(cTesDest)			dbSelectArea("SB2")			dbSetOrder(1)			If dbSeek(xFilial("SB2")+cCodOrig+cLocOrig)				If Empty(cOp) .And. SB2->B2_BLOQUEI $ '2|4'  		//Bloqueia Consumo					If lHelp						Help(" ",1,"BLOQLOC1")					EndIf					lBloqueio := .T.				ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4'	//Bloqueia Producao					If lHelp						Help(" ",1,"BLOQLOC2")					EndIf					lBloqueio := .T.				EndIf			EndIf		// Analise de bloqueio para MOVIMENTOS INTERNOS	(TRANSFERENCIAS)		Case !Empty(cCodOrig) .And. !Empty(cCodDest) .And. Empty(cTesOrig) .And. Empty(cTesDest)			// Analisa Movimento de ORIGEM			dbSelectArea("SB2")			dbSetOrder(1)			If dbSeek(xFilial("SB2")+cCodOrig+cLocOrig)				If Empty(cOp) .And. SB2->B2_BLOQUEI $ '2|4'  		//Bloqueia Consumo					If lHelp						Help(" ",1,"BLOQLOC1")					EndIf					lBloqueio := .T.				ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4'	//Bloqueia Producao					If lHelp						Help(" ",1,"BLOQLOC2")					EndIf					lBloqueio := .T.				EndIf				cTipoOrig := SB2->B2_TIPO			EndIf			// Analisa Movimento de DESTINO			dbSelectArea("SB2")			dbSetOrder(1)			If !lBloqueio .And. dbSeek(xFilial("SB2")+cCodDest+cLocDest)				If Empty(cOp) .And. SB2->B2_BLOQUEI $ '2|4'  		//Bloqueia Consumo					If lHelp						Help(" ",1,"BLOQLOC1")					EndIf					lBloqueio := .T.				ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4'	//Bloqueia Producao					If lHelp						Help(" ",1,"BLOQLOC2")					EndIf					lBloqueio := .T.				EndIf				cTipoDest := SB2->B2_TIPO			EndIf			//-- Comparativo entre ORIGEM Versus DESTINO			If !lBloqueio .And. (cTipoDest # cTipoOrig)				Help(" ",1,"BLOQLOC5")				lBloqueio := .T.			EndIf		// Analise de bloqueio para DOCUMENTO ENTRADA/SAIDA		Case !Empty(cCodOrig) .And. Empty(cCodDest) .And. !Empty(cTesOrig) .And. Empty(cTesDest)			dbSelectArea("SB2")			dbSetOrder(1)			If dbSeek(xFilial("SB2")+cCodOrig+cLocOrig)				dbSelectArea('SF4')				dbSetOrder(1)				If dbSeek(xFilial("SF4")+cTesOrig) .And. SF4->F4_ESTOQUE == "S"					// Caso seja movimentacao no armazem proprio NAO permitir PODER3					If (SB2->B2_TIPO $ cTpBlqPro) .And. (SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC3")						EndIf							lBloqueio := .T.					// Caso seja movimentacao no armazem terceiros NAO permitir TES sem controle de PODER3					ElseIf (SB2->B2_TIPO $ cTpBlqTer) .And. !(SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC4")						EndIf							lBloqueio := .T.					// Bloqueia Producao					ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4'						If lHelp							Help(" ",1,"BLOQLOC2")						EndIf						lBloqueio := .T.					EndIf								EndIf	    	EndIf		// Analise de bloqueio para DOCUMENTO ENTRADA/SAIDA (TRANSFERENCIAS)		Case !Empty(cCodOrig) .And. !Empty(cCodDest) .And. !Empty(cTesOrig) .And. !Empty(cTesDest)			//-- Analise da filial ORIGEM			cFilAnt := cFilOrig			dbSelectArea("SB2")			dbSetOrder(1)			If dbSeek(xFilial("SB2")+cCodOrig+cLocOrig)				dbSelectArea('SF4')				dbSetOrder(1)				If dbSeek(xFilial("SF4")+cTesOrig) .And. SF4->F4_ESTOQUE == "S"					// Caso seja movimentacao no armazem proprio NAO permitir PODER3					If (SB2->B2_TIPO $ cTpBlqPro) .And. (SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC3")						EndIf							lBloqueio := .T.					// Caso seja movimentacao no armazem terceiros NAO permitir TES sem controle de PODER3					ElseIf (SB2->B2_TIPO $ cTpBlqTer) .And. !(SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC4")						EndIf							lBloqueio := .T.					EndIf									cTipoOrig := SB2->B2_TIPO				EndIf			EndIf			//-- Analise da filial DESTINO			cFilAnt := cFilDest			dbSelectArea("SB2")			dbSetOrder(1)			If !lBloqueio .And. dbSeek(xFilial("SB2")+cCodDest+cLocDest)				dbSelectArea('SF4')				dbSetOrder(1)				If dbSeek(xFilial("SF4")+cTesDest)					// Caso seja movimentacao no armazem proprio NAO permitir PODER3					If (SB2->B2_TIPO $ cTpBlqPro) .And. (SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC3")						EndIf							lBloqueio := .T.					// Caso seja movimentacao no armazem terceiros NAO permitir TES sem controle de PODER3					ElseIf (SB2->B2_TIPO $ cTpBlqTer) .And. !(SF4->F4_PODER3 $ "R|D")						If lHelp							Help(" ",1,"BLOQLOC4")						EndIf							lBloqueio := .T.					EndIf									cTipoDest := SB2->B2_TIPO				EndIf			EndIf			//-- Comparativo entre ORIGEM Versus DESTINO			If !lBloqueio .And. (cTipoDest # cTipoOrig)				Help(" ",1,"BLOQLOC5")				lBloqueio := .T.			EndIf			// Restaura Filial Origem			cFilAnt:=cFilBkp	EndCaseEndIfRestArea(aAreaSF4)RestArea(aAreaSB2)RestArea(aAreaAnt)Return lBloqueio