Árvore de páginas

Ponto-de-Entrada: OPM040B7 - Validações antes da gravação do Lançamentos do Inventário
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil)
Descrição:
Ponto de Entrada na rotina Inventário de Peças (OFIPM040) executado antes da gravação da tabela SB7 (Lançamentos do Inventario), com a finalidade de checar se a tabela SB7 poderá ser gravada.
Eventos
 Static Function FS_GERACSB7()
Local lRet := .t.
Local cDOC := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Local ni   := 0
If MsgYesNo(STR0046,STR0023) // "Deseja realmente Gerar os Lancamentos do Inventario?" / "Atencao"
If ExistBlock("OPM040B7")
lRet := ExecBlock("OPM040B7",.f.,.f.,{})
EndIf
If lRet
DbSelectArea("VPE")
RecLock("VPE",.f.)
VPE->VPE_GERAB7 := "1"
MsUnLock()
ni := FM_SQL("SELECT COUNT(DISTINCT SB7.B7_DOC) AS QTDE FROM "+RetSQLName("SB7")+" SB7 WHERE SB7.B7_FILIAL='"+xFilial("SB7")+"' AND SB7.B7_DOC>='"+dtos(VPE->VPE_DATINI)+"A' AND SB7.B7_DOC<='"+dtos(VPE->VPE_DATINI)+"Z' AND SB7.D_E_L_E_T_=' '")
ni++
DbSelectArea("VPG")
DbSetOrder(1)
DbSeek(xFilial("VPG")+VPE->VPE_CODIGO)
ProcRegua(RecCount())
While !Eof() .and. xFilial("VPG") == VPG->VPG_FILIAL .and. ( VPG->VPG_CODIGO == VPE->VPE_CODIGO )
IncProc(STR0047) // "Gerando Lancamentos do Inventario..."
DbSelectArea("SB1")
DbSetOrder(7)
DbSeek(xFilial("SB1")+VPG->VPG_GRUITE+VPG->VPG_CODITE)
DbSelectArea("SB7")
RecLock("SB7",.t.)
SB7->B7_FILIAL  := xFilial("SB7")
SB7->B7_LOCAL   := VPG->VPG_ALMOX
SB7->B7_TIPO    := SB1->B1_TIPO
SB7->B7_DOC     := dtos(VPE->VPE_DATINI)+substr(cDOC,ni,1)
SB7->B7_QUANT   := VPG->VPG_CONTA
SB7->B7_QTSEGUM := ( VPG->VPG_CONTA / SB1->B1_CONV )
SB7->B7_DATA    := VPE->VPE_DATINI
SB7->B7_LOTECTL := ""
SB7->B7_NUMLOTE := ""
SB7->B7_DTVALID := dDataBase
SB7->B7_LOCALIZ := ""
SB7->B7_NUMSERI := ""
SB7->B7_COD     := SB1->B1_COD
SB7->B7_CONTAGE := strzero(1,len(SB7->B7_CONTAGE))
MsUnLock()
DbSelectArea("VPG")
DbSkip()
EndDo
MsgInfo(STR0096+CHR(13)+CHR(10)+CHR(13)+CHR(10)+STR0097+": "+dtos(VPE->VPE_DATINI)+substr(cDOC,ni,1),STR0023) // Lancamentos do Inventario gerados com sucesso! / Documento / Atencao
EndIf
EndIf
Return
 
Programa Fonte
OFIPM040.PRW
Sintaxe

OPM040B7 - Validações antes da gravação do Lançamentos do Inventário ( [ ] ) --> lRet

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    lRet(logico)
  • .T. (ok, pode continuar o Inventario).F. (não pode continuar o Inventario)
Observações
2User Function OPM040B7()
Local lRet := .t.
MsgInfo(“Ponto de Entrada OPM040B7 executado!”,”Atencao”)
return lRet
 
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não