Histórico da Página
...
Portuguese | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ponto-de-Entrada: AVALREGR - Define para bloqueio de armazéns e produtos
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:
Retorno lBloqueio
Exemplos //Abaixo segue um exemplo utilizando a regra padrão de bloqueio: |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "RWMAKE.CH" USER FUNCTION AVALREGR() Local lBloqueio := .F. Local cFilBkp :=cFilAntLocal cFilAnt Local 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 deOrigemLocal Origem Local cTesOrig := PARAMIXB[3] // Codigo da TES deOrigemLocal Origem Local lHelp := PARAMIXB[4] // Indica se deseja mostrarHelpLocal Help Local cCodDest := PARAMIXB[5] // Codigo do ProdutoDestinoLocal Destino Local cLocDest := PARAMIXB[6] // Codigo do LocalDestinoLocal Destino Local cTesDest := PARAMIXB[7] // Codigo da TES deDestinoLocal Destino Local cFilOrig := PARAMIXB[8] // Codigo da Filial deOrigemLocal Origem Local cFilDest := PARAMIXB[9] // Codigo da Filial Destino //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Validacao padrao de bloqueio de produtos/armazens ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙIf ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If SB2->(FieldPos("B2_TIPO")) > 0 .And. SB2->(FieldPos("B2_BLOQUEI")) > 0 Do Case // Analise de bloqueio para MOVIMENTOS INTERNOS Case !Empty(cCodOrig) 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 If lHelp Help(" ",1,"BLOQLOC2 BLOQLOC1")EndIf lBloqueio := .T. EndIf EndIf // Analise de bloqueio para MOVIMENTOS INTERNOS (TRANSFERENCIAS) Case !Empty(cCodOrig) .And. !Empty(cCodDest EndIf lBloqueio := .T. ElseIf !Empty(cOp) .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(" SB2->B2_BLOQUEI $ '3|4' //Bloqueia Producao If lHelp Help(" ",1,"BLOQLOC2")EndIf EndIf lBloqueio := .T.EndIf cTipoOrig := SB2->B2_TIPO EndIf EndIf EndIf // AnaliseAnalisa de bloqueioMovimento parade MOVIMENTOSDESTINO INTERNOSdbSelectArea("SB2") dbSetOrder(1) If !lBloqueio (TRANSFERENCIAS) Case !Empty(cCodOrig) .And.dbSeek(xFilial("SB2")+cCodDest+cLocDest) If !Empty(cCodDest) .And. Empty(cOp cTesOrig) .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 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,"BLOQLOC4") EndIf lBloqueio := .T. // Bloqueia Producao ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4' If lHelp Help(" ",1,"BLOQLOC2") EndIf 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 EndIf cTipoOrig := SB2->B2_TIPO EndIf // Analisa Movimento de DESTINO dbSelectArea("SB2") dbSetOrder(1) If !lBloqueio .And. dbSeek(xFilial("SB2")+cCodOrig cCodDest+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 cLocDest) If Empty(cOp) .And.(SF4 SB2->F4 >B2_PODER3 BLOQUEI $"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( '2|4' //Bloqueia Consumo 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 BLOQLOC1") EndIf lBloqueio := .T. ElseIf !Empty(cOp) .And. SB2->B2_BLOQUEI $ '3|4' //Bloqueia Producao If lHelp Help(" ",1,"BLOQLOC4") EndIf lBloqueio := .T. EndIf cTipoDest := SB2->B2_TIPO EndIf EndIf //-- Comparativo entre ORIGEM Versus DESTINO 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 EndIf // Restaura Filial Origem cFilAnt:=cFilBkpEndCaseEndIfRestArea EndCase EndIf RestArea(aAreaSF4) RestArea(aAreaSB2) RestArea(aAreaAnt) Return lBloqueio |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas