Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
Portuguese | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ponto-de-Entrada: AVALREGR - Define para bloqueio de armazéns e produtos
Descrição:
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:
Retorno
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 |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas