|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|

 |
 |
Assunto: |
MT105FIM |
|
Versão: |
12.1.33 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
FR_LACERDA
em 24/05/2023, 11:54 h
Local: AM Registro: 05/04/2023 Postagens: 8 |
Pessoal bom dia, estou com a seguinte duvida, quero que toda solicitação criada no armazém e que esteja com o Armazém ti, caiu como bloqueada, mas ai que começa meu problema, quando eu crio a solicitação so bloqueia o ultimo item da solicitação.
Segue código, se puderem me ajudar agradeço..
#INCLUDE ‘PROTHEUS.CH‘
User Function MT105FIM()
Local _AreaCP :=SCP->(getarea())
Local nFilial
Local cProduto
Local nNumSa := SCP->CP_NUM
Local cArmazem
Local cItem
Local nOpcap := PARAMIXB
DbSelectArea(‘SCP‘)
SCP->(DbSetOrder(2))
While !SCP->(eof())
nFilial := SCP->CP_FILIAL
cProduto := SCP->CP_PRODUTO
cArmazem := SCP->CP_LOCAL
cItem := SCP->CP_ITEM
IF SCP->(dbSeek(CP_FILIAL+CP_PRODUTO+nNumSa+CP_ITEM))
IF cArmazem == ‘TI‘
IF nOpcap == 1
DbSelectArea("SCP")
(Reclock("SCP",.F.))
CP_STATSA := ‘B‘
Msunlock()
SCP->(DbCloseArea())
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ELSEIF nOpcap == 2
DbSelectArea("SCP")
dbSetOrder(2)
SCP->(dbSeek(CP_FILIAL+CP_PRODUTO+CP_NUM+CP_ITEM))
DbSelectArea("SCP")
(Reclock("SCP",.F.))
CP_STATSA := ‘B‘
Msunlock()
SCP->(DbCloseArea())
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ENDIF
ENDIF
ENDIF
SCP->(DbSkip())
ENDDO
Restarea(_AreaCP)
Return
|
|
|
Mensagem do
EMERSON.EN
em 24/05/2023, 13:17 h
Local: SP Registro: 20/08/2010 Postagens: 643 |
#INCLUDE 'PROTHEUS.CH'
User Function MT105FIM()
Local _AreaCP := SCP->(getarea())
Local nNumSa := SCP->CP_NUM
Local cFilSCP := xFilial("SCP")
SCP->(dbSetOrder(1)) // CP_FILIAL+CP_NUM+CP_ITEM+CP_EMISSAO
SCP->(dbSeek(cFilSCP+nNumSa))
WHILE !SCP->(EOF()) .AND. (SCP->CP_FILIAL = cFilSCP) .AND. (SCP->CP_NUM = nNumSa)
IF SCP->CP_LOCAL == 'TI'
Reclock("SCP",.F.)
SCP->CP_STATSA := 'B'
SCP->(Msunlock())
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ENDIF
SCP->(dbSkip())
ENDDO
Restarea(_AreaCP)
Return
|
|
|
Mensagem do
FR_LACERDA
em 24/05/2023, 14:06 h
Local: AM Registro: 05/04/2023 Postagens: 8 |
Boa tarde amigo Emerson.
Deu tudo certinho, vou so aplicar a regra que estou fazendo aqui, muito obrigado por essa força, eu estava tendo dificuldade no while.
Vou validar os outros pontos aqui, e logo vou posta o codigo que fiz com base no seu. |
|
|
Mensagem do
TPEREIRA
em 24/05/2023, 16:35 h
Local: PE Registro: 18/07/2022 Postagens: 2 |
Tente assim
#include "PROTHEUS.CH"
User Function MT105FIM()
Local _AreaCP := SCP->(getarea())
Local nFilial
Local cProduto
Local nNumSa := SCP->CP_NUM
Local cArmazem
Local cItem
Local nOpcap := PARAMIXB
DbSelectArea("SCP")
SCP->(DbSetOrder(2))
While !SCP->(eof())
nFilial := SCP->CP_FILIAL
cProduto := SCP->CP_PRODUTO
cArmazem := SCP->CP_LOCAL
cItem := SCP->CP_ITEM
IF SCP->(dbSeek(CP_FILIAL+CP_PRODUTO+nNumSa+CP_ITEM))
IF cArmazem == "TI"
IF nOpcap == 1
DbSelectArea("SCP")
(Reclock("SCP", .F.))
CP_STATSA := "B"
Msunlock()
SCP->(DbCloseArea())
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ELSEIF nOpcap == 2
DbSelectArea("SCP")
dbSetOrder(2)
SCP->(dbSeek(CP_FILIAL+CP_PRODUTO+CP_NUM+CP_ITEM))
DbSelectArea("SCP")
(Reclock("SCP", .F.))
CP_STATSA := "B"
Msunlock()
SCP->(DbCloseArea())
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ENDIF
ENDIF
ENDIF
SCP->(DbSkip())
ENDDO
Restarea(_AreaCP)
Return |
|
|
Mensagem do
FR_LACERDA
em 01/06/2023, 09:38 h
Local: AM Registro: 05/04/2023 Postagens: 8 |
Bom dia, turma!
Com a solução do Emerson conseguir resolver meu problema, e a solução Pereira abriu mais minha logica, agradeço imensamente a ajuda dos amigos, segue codigo que eu usei para resolver meu problema:
User Function MT105FIM()
Local AreaCP := SCP->(getarea())
Local nNumSa := SCP->CP_NUM
Local cFilSCP := xFilial("SCP")
Local cArmazem := SuperGetMv("MV_AMZTI",.F., .F.)
Local nOpcap := PARAMIXB
SCP->(dbSetOrder(1)) // CP_FILIAL+CP_NUM+CP_ITEM+CP_EMISSAO
SCP->(dbSeek(cFilSCP+nNumSa))
WHILE !SCP->(EOF()) .AND. (SCP->CP_FILIAL = cFilSCP) .AND. (SCP->CP_NUM = nNumSa)
IF SCP->CP_LOCAL == cArmazem
IF nOpcap == 1
Reclock("SCP",.F.)
SCP->CP_STATSA := ‘B‘
SCP->(Msunlock())
//SAINC(nNumSa)
// msginfo("Solicitação ao Armazem Nº " + nNumSa +" Bloqueada, solicite liberação do Gestor","Aviso")
ELSEIF nOpcap == 2
Reclock("SCP",.F.)
SCP->CP_STATSA := ‘B‘
SCP->(Msunlock())
//SAALT(nNumSa)
ENDIF
// TstEW(nNumSa)
ELSEIF SCP->CP_LOCAL != cArmazem
Reclock("SCP",.F.)
SCP->CP_STATSA := ‘L‘
SCP->(Msunlock())
ENDIF
SCP->(dbSkip())
ENDDO
Restarea(AreaCP)
Return |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|