×
Linguagem de Programação ADVPL
Perguntas Função MaAvLibPed
- Tony.totvs
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 47
- Obrigados Recebidos: 0
11 anos 8 meses atrás #11343
por Tony.totvs
Função MaAvLibPed foi criado por Tony.totvs
Boa tarde, pessoal
Será que alguém já utilizou a função MaAvLibPed?
Função responsável por liberação de pedido de venda?
Queria saber os parametros que tem que passar para essa função.
Abraços
Será que alguém já utilizou a função MaAvLibPed?
Função responsável por liberação de pedido de venda?
Queria saber os parametros que tem que passar para essa função.
Abraços
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 8 meses atrás #11345
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Função MaAvLibPed
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³Verifica se um pedido pode ser totalmente liberado ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Retorno ³ExpL1: Pedido pode ser totalmente liberado ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ExpC1: Numero do Pedido ³±±
±±³ ³ExpL2: Liberacao Parcial ³±±
±±³ ³ExpL3: Transfere Locais ³±±
±±³ ³ExpL4: lLiberOk ³±±
±±³ ³ExpA5: Registros a serem processados ( Default Todos ) ³±±
±±³ ³Expb6: Code Block a ser avaliado na gravacao do SC9 ³±±
±±³ ³ExpL7: Indica se ha estorno de liberacao ³±±
±±³ ³ExpL8: Indica se ha avaliacao de credito ³±±
±±³ ³ExpL9: Indica se ha avaliacao de estoque ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Observacao³Deve estar numa transacao ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ DATA ³ Programador ³Manutencao Efetuada ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ ³ ³ ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Function MaAvLibPed(cNumPed,lLiber,lTransf,lLiberOk,aRegistros,bBlock,lEstLib,lAvCred,lAvEst,nVlrCred)
Local aArea := GetArea()
Local aAreaSA1 := SA1->(GetArea())
Local aAreaSF4 := SF4->(GetArea())
Local aAreaSC5 := SC5->(GetArea())
Local aAreaSC6 := SC6->(GetArea())
Local aAreaSC9 := SC9->(GetArea())
Local aEmpenho := {{},{}}
Local lRetorno := .F.
Local lBloqueio:= .F.
Local lLibEst := .F.
Local lLibCred := .F.
Local lCredito := .F.
Local lEstoque := .F.
Local nX := 0
Local nQtdLib := 0
Local nCredito := nVlrCred
lLiberOk := .T.
DEFAULT nVlrCred := 0
DEFAULT aRegistros := {}
DEFAULT lAvCred := .T.
DEFAULT lAvEst := .T.
DEFAULT lEstLib := .F.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³MEMORIA DE CALCULO DO ARRAY aEmpenho ³
//³ ³
//³[1] - SA1 ³
//³[1][1] - Registro ³
//³[1][2] - A1_SALPEDL ³
//³[2] - SB2 ³
//³[2][1] - Registro ³
//³[2][2] - B2_RESERVA ³
//³ ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Posiciona Registros ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC5")
dbSetOrder(1)
MsSeek(xFilial("SC5")+cNumPed)
lRetorno := RecLock("SC5")
If !( SC5->C5_TIPO$"BD" )
dbSelectArea("SA1")
dbSetOrder(1)
MsSeek(xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI)
lRetorno := RecLock("SA1")
Else
dbSelectArea("SA2")
dbSetOrder(1)
MsSeek(xFilial("SA2")+SC5->C5_CLIENTE+SC5->C5_LOJACLI)
lRetorno := RecLock("SA2")
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica o tipo de processamento ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Len(aRegistros) > 0
lLibEst := .T.
lLibCred := .T.
For nX := 1 To Len(aRegistros)
SC6->(MsGoto(aRegistros[nX]))
lRetorno := RecLock("SC6")
If ( lRetorno )
If lEstLib
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica a necessidade de estorno da liberacao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nQtdLib := SC6->C6_QTDEMP
If nQtdLib > 0
MaAvalSC6("SC6",4,"SC5",Nil,Nil,Nil,Nil,Nil,Nil,@nCredito)
RecLock("SC6")
SC6->C6_QTDLIB := nQtdLib
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
lCredito := .F. .Or. !lAvCred
lEstoque := .F.
MaLibDoFat(SC6->(RecNo()),nQtdLib,@lCredito,@lEstoque,lAvCred,lAvEst,lLiber,lTransf,@aEmpenho,bBlock,Nil,Nil,Nil,@nCredito)
Else
lCredito := .F.
lEstoque := .F.
EndIf
lLibCred := lCredito .And. lLibCred
lLibEst := lEstoque .And. lLibEst
If ( !lLibEst .And. !lLibCred )
nX := Len(aRegistros)+1
EndIf
Next nX
Else
lLibEst := .T.
lLibCred := .T.
lBloqueio:= .F.
dbSelectArea("SC6")
dbSetOrder(1)
MsSeek(xFilial("SC6")+SC5->C5_NUM,.F.)
While ( !Eof() .And. xFilial("SC6") == SC6->C6_FILIAL .And.;
SC5->C5_NUM == SC6->C6_NUM )
lRetorno := RecLock("SC6")
If ( lRetorno )
aadd(aRegistros,SC6->(RecNo()))
If !lBloqueio
lCredito := .F. .Or. !lAvCred
lEstoque := .F.
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDLIB,@lCredito,@lEstoque,lAvCred,lAvEst,lLiber,lTransf,@aEmpenho,bBlock,Nil,Nil,Nil,@nCredito)
EndIf
Else
lCredito := .F.
lEstoque := .F.
EndIf
lLibCred := lCredito .And. lLibCred
lLibEst := lEstoque .And. lLibEst
If ( !lLibEst .And. !lLibCred )
lBloqueio := .T.
EndIf
dbSelectArea("SC6")
dbSkip()
EndDo
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Atualiza os dados com base no processamento anterior ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lEstoque := .T.
For nX := 1 To Len(aRegistros)
SC6->(MsGoto(aRegistros[nX]))
RecLock("SC6")
If ( !lLibEst .Or. !lLibCred )
lRetorno := .F.
If lEstLib
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica a necessidade de estorno da liberacao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nQtdLib := SC6->C6_QTDEMP
If nQtdLib > 0
MaAvalSC6("SC6",4,"SC5",Nil,Nil,Nil,Nil,Nil,Nil,@nVlrCred)
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
lCredito := lLibCred
lEstoque := (lLibCred .And. lLibEst) .Or. (lLibEst .And. lEstoque .And. SuperGetMv("MV_RESEST"))
MaLibDoFat(SC6->(RecNo()),nQtdLib,@lCredito,@lEstoque,lCredito .And. lAvCred,lEstoque,lLiber,lTransf,,bBlock,Nil,Nil,Nil,@nVlrCred)
Do Case
Case lLibCred <> lCredito .And. lLibCred
lLibCred := .F.
Case lLibEst <> lEstoque .And. lLibEst
lLibEst := .F.
EndCase
Else
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDLIB,@lCredito,@lEstoque,lAvCred,.T.,lLiber,lTransf,,bBlock,Nil,Nil,Nil,@nVlrCred)
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica se Todos os Itens foram Liberados ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If ( SC6->C6_QTDVEN > SC6->C6_QTDEMP + SC6->C6_QTDENT .And. lLiberOk .And. AllTrim(SC6->C6_BLQ)<>"R" )
lLiberOk := .F.
EndIf
Next nX
RestArea(aAreaSC9)
RestArea(aAreaSA1)
RestArea(aAreaSF4)
RestArea(aAreaSC5)
RestArea(aAreaSC6)
RestArea(aArea)
Return(lRetorno)
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³Verifica se um pedido pode ser totalmente liberado ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Retorno ³ExpL1: Pedido pode ser totalmente liberado ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ExpC1: Numero do Pedido ³±±
±±³ ³ExpL2: Liberacao Parcial ³±±
±±³ ³ExpL3: Transfere Locais ³±±
±±³ ³ExpL4: lLiberOk ³±±
±±³ ³ExpA5: Registros a serem processados ( Default Todos ) ³±±
±±³ ³Expb6: Code Block a ser avaliado na gravacao do SC9 ³±±
±±³ ³ExpL7: Indica se ha estorno de liberacao ³±±
±±³ ³ExpL8: Indica se ha avaliacao de credito ³±±
±±³ ³ExpL9: Indica se ha avaliacao de estoque ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Observacao³Deve estar numa transacao ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ DATA ³ Programador ³Manutencao Efetuada ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ ³ ³ ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Function MaAvLibPed(cNumPed,lLiber,lTransf,lLiberOk,aRegistros,bBlock,lEstLib,lAvCred,lAvEst,nVlrCred)
Local aArea := GetArea()
Local aAreaSA1 := SA1->(GetArea())
Local aAreaSF4 := SF4->(GetArea())
Local aAreaSC5 := SC5->(GetArea())
Local aAreaSC6 := SC6->(GetArea())
Local aAreaSC9 := SC9->(GetArea())
Local aEmpenho := {{},{}}
Local lRetorno := .F.
Local lBloqueio:= .F.
Local lLibEst := .F.
Local lLibCred := .F.
Local lCredito := .F.
Local lEstoque := .F.
Local nX := 0
Local nQtdLib := 0
Local nCredito := nVlrCred
lLiberOk := .T.
DEFAULT nVlrCred := 0
DEFAULT aRegistros := {}
DEFAULT lAvCred := .T.
DEFAULT lAvEst := .T.
DEFAULT lEstLib := .F.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³MEMORIA DE CALCULO DO ARRAY aEmpenho ³
//³ ³
//³[1] - SA1 ³
//³[1][1] - Registro ³
//³[1][2] - A1_SALPEDL ³
//³[2] - SB2 ³
//³[2][1] - Registro ³
//³[2][2] - B2_RESERVA ³
//³ ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Posiciona Registros ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC5")
dbSetOrder(1)
MsSeek(xFilial("SC5")+cNumPed)
lRetorno := RecLock("SC5")
If !( SC5->C5_TIPO$"BD" )
dbSelectArea("SA1")
dbSetOrder(1)
MsSeek(xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI)
lRetorno := RecLock("SA1")
Else
dbSelectArea("SA2")
dbSetOrder(1)
MsSeek(xFilial("SA2")+SC5->C5_CLIENTE+SC5->C5_LOJACLI)
lRetorno := RecLock("SA2")
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica o tipo de processamento ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Len(aRegistros) > 0
lLibEst := .T.
lLibCred := .T.
For nX := 1 To Len(aRegistros)
SC6->(MsGoto(aRegistros[nX]))
lRetorno := RecLock("SC6")
If ( lRetorno )
If lEstLib
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica a necessidade de estorno da liberacao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nQtdLib := SC6->C6_QTDEMP
If nQtdLib > 0
MaAvalSC6("SC6",4,"SC5",Nil,Nil,Nil,Nil,Nil,Nil,@nCredito)
RecLock("SC6")
SC6->C6_QTDLIB := nQtdLib
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
lCredito := .F. .Or. !lAvCred
lEstoque := .F.
MaLibDoFat(SC6->(RecNo()),nQtdLib,@lCredito,@lEstoque,lAvCred,lAvEst,lLiber,lTransf,@aEmpenho,bBlock,Nil,Nil,Nil,@nCredito)
Else
lCredito := .F.
lEstoque := .F.
EndIf
lLibCred := lCredito .And. lLibCred
lLibEst := lEstoque .And. lLibEst
If ( !lLibEst .And. !lLibCred )
nX := Len(aRegistros)+1
EndIf
Next nX
Else
lLibEst := .T.
lLibCred := .T.
lBloqueio:= .F.
dbSelectArea("SC6")
dbSetOrder(1)
MsSeek(xFilial("SC6")+SC5->C5_NUM,.F.)
While ( !Eof() .And. xFilial("SC6") == SC6->C6_FILIAL .And.;
SC5->C5_NUM == SC6->C6_NUM )
lRetorno := RecLock("SC6")
If ( lRetorno )
aadd(aRegistros,SC6->(RecNo()))
If !lBloqueio
lCredito := .F. .Or. !lAvCred
lEstoque := .F.
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDLIB,@lCredito,@lEstoque,lAvCred,lAvEst,lLiber,lTransf,@aEmpenho,bBlock,Nil,Nil,Nil,@nCredito)
EndIf
Else
lCredito := .F.
lEstoque := .F.
EndIf
lLibCred := lCredito .And. lLibCred
lLibEst := lEstoque .And. lLibEst
If ( !lLibEst .And. !lLibCred )
lBloqueio := .T.
EndIf
dbSelectArea("SC6")
dbSkip()
EndDo
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Atualiza os dados com base no processamento anterior ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lEstoque := .T.
For nX := 1 To Len(aRegistros)
SC6->(MsGoto(aRegistros[nX]))
RecLock("SC6")
If ( !lLibEst .Or. !lLibCred )
lRetorno := .F.
If lEstLib
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica a necessidade de estorno da liberacao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nQtdLib := SC6->C6_QTDEMP
If nQtdLib > 0
MaAvalSC6("SC6",4,"SC5",Nil,Nil,Nil,Nil,Nil,Nil,@nVlrCred)
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
Else
nQtdLib := SC6->C6_QTDLIB
EndIf
lCredito := lLibCred
lEstoque := (lLibCred .And. lLibEst) .Or. (lLibEst .And. lEstoque .And. SuperGetMv("MV_RESEST"))
MaLibDoFat(SC6->(RecNo()),nQtdLib,@lCredito,@lEstoque,lCredito .And. lAvCred,lEstoque,lLiber,lTransf,,bBlock,Nil,Nil,Nil,@nVlrCred)
Do Case
Case lLibCred <> lCredito .And. lLibCred
lLibCred := .F.
Case lLibEst <> lEstoque .And. lLibEst
lLibEst := .F.
EndCase
Else
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDLIB,@lCredito,@lEstoque,lAvCred,.T.,lLiber,lTransf,,bBlock,Nil,Nil,Nil,@nVlrCred)
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Verifica se Todos os Itens foram Liberados ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If ( SC6->C6_QTDVEN > SC6->C6_QTDEMP + SC6->C6_QTDENT .And. lLiberOk .And. AllTrim(SC6->C6_BLQ)<>"R" )
lLiberOk := .F.
EndIf
Next nX
RestArea(aAreaSC9)
RestArea(aAreaSA1)
RestArea(aAreaSF4)
RestArea(aAreaSC5)
RestArea(aAreaSC6)
RestArea(aArea)
Return(lRetorno)
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Tony.totvs
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 47
- Obrigados Recebidos: 0
11 anos 8 meses atrás #11346
por Tony.totvs
Respondido por Tony.totvs no tópico Função MaAvLibPed
Maravilha!!!
Obrigado Luiz!
Obrigado Luiz!
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.109 segundos