Histórico da Página
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "RWMAKE.CH"
USER FUNCTION AVALREGR()
Local lBloqueio := .F.
Local cFilBkp := 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 de Origem
Local cTesOrig := PARAMIXB[3] // Codigo da TES de Origem
Local lHelp := PARAMIXB[4] // Indica se deseja mostrar Help
Local cCodDest := PARAMIXB[5] // Codigo do Produto Destino
Local cLocDest := PARAMIXB[6] // Codigo do Local Destino
Local cTesDest := PARAMIXB[7] // Codigo da TES de Destino
Local cFilOrig := PARAMIXB[8] // Codigo da Filial de Origem
Local cFilDest := PARAMIXB[9] // Codigo da Filial Destino
Local cOP := PARAMIXB[10] // Codigo da ordem de produção
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³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 := If(Empty(SB2->B2_TIPO),"1",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 := If(Empty(SB2->B2_TIPO),"1",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 := If(Empty(SB2->B2_TIPO),"1",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 := If(Empty(SB2->B2_TIPO),"1",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
EndCase
EndIf
RestArea(aAreaSF4)
RestArea(aAreaSB2)
RestArea(aAreaAnt)
Return lBloqueio |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas