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 |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas