Histórico da Página
Ponto de Entrada
Descrição: | Novo Ponto de Entrada OM20AVO3, que será executado na alteração da requisição de peças. Disparado a cada registro alterado e possibilita o usuário customizar ações a cada registro do VO3. |
Localização: | Atualizações/Movimentos Oficina/Requisição Peças |
Eventos: nPosPeca := aScan(aPecas,{ |x| x[17] == aPecasAlt[iP,18] }) | dbSelectArea("SF4") dbSetOrder(1) MsSeek(xFilial("SF4")+M->VO3_CODTES) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Movimentacao interna do Item ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ if SF4->F4_ESTOQUE == "S" aItensNew:={} DbSelectArea("SB1") DbSetOrder(7) DbSeek( xFilial("SB1") + VO3->VO3_GRUITE + VO3->VO3_CODITE ) DbSetOrder(1) _cAlmOrig := Posicione("VOI",1,xFilial("VOI")+aPecasAlt[iP,4],"VOI_CODALM") _cAlmDest := Posicione("VOI",1,xFilial("VOI")+VO3->VO3_TIPTEM,"VOI_CODALM") If _cAlmOrig # _cAlmDest If lSEMAF261 // Utiliza semáforo na Movimentação de Pecas da rotina Requisição de Pecas If !LockByName("OFIOM020"+VO1->VO1_NUMOSV+"MOVPEC",.t.,.t.) Help(" ",1,"ROTINA_EM_USO",,STR0285,4,1 ) // "Impossivel continuar! Semáforo está sendo utilizado para trazer o Número do Documento da Movimentação de Peças (MATA261)" Return .f. Endif Endif dbSelectArea("VO3") RecLock("VO3",.F.) VO3->VO3_NUMDOC := FS_D3NUMDOC() MsUnLock() // // Adiciona cabecalho com numero do documento e data da transferencia modelo II // aadd (aItensNew,{ VO3->VO3_NUMDOC , ddatabase}) nQtdTrans := aPecas[nPosPeca,10] cLocOri := Posicione("VOI",1,xFilial("VOI")+aPecasAlt[iP,4],"VOI_LOCALI") cLocDes := Posicione("VOI",1,xFilial("VOI")+VO3->VO3_TIPTEM,"VOI_LOCALI") aItemMov := oEst:SetItemSD3(SB1->B1_COD ,; //Código do Produto _cAlmOrig ,; // Armazém de Origem _cAlmDest ,; // Armazém de Destino cLocOri ,; // Localização Origem cLocDes ,; // Localização Destino nQtdTrans ,; // Qtd a transferir VO3->VO3_LOTECT ,; // Nro de lote VO3->VO3_NUMLOT ,; // Nro de Sub-Lote VO3->VO3_NUMSER ) // Nro de Série aAdd(aItensNew, aClone(aItemMov)) If Localiza(SB1->B1_COD) If Empty( Posicione("VOI",1,xFilial("VOI")+aPecasAlt[iP,4],"VOI_LOCALI") ) ; . Or. Empty( Posicione("VOI",1,xFilial("VOI")+VO3->VO3_TIPTEM,"VOI_LOCALI") )// Cancela Gravacao Help(" ",1,"SALDOLOCLZ") lRet := . f. DisarmTransaction() Break EndIf //Executa RdMake da Ordem de Busca if ExistBlock("RDLOCALIZ") ExecBlock("RDLOCALIZ", . f. ,. f. ,{@aItensNew})Endif Else // Ponto de Entrada para alterar informações das peças que serão transferidas // de estoque e que não tem a localização da peça informada If (ExistBlock("OM020APEC")) aItensNew := ExecBlock("OM020APEC", . f. , .f., {aItensNew})EndIf EndIf |
Programa Fonte: | OFIOM020.PRW |
Função: | FS_ALTREQ() |
Retorno: | N/A |
Parâmetros | N/A |
#INCLUDE "PROTHEUS.CH"
/*/{Protheus.doc} OM20AVO3
Ponto de entrada que será executado na alteração da requisição de peças.
Ele é disparado a cada registro alterado e possibilita o usuário customizar ações à cada registro do VO3
@author Mil Totvs DMS (Vinicius Assi)
@since 08/11/2023
@version undefined
@type function
/*/
User Function OM20AVO3()
Local aArea := sGetArea()
aArea := sGetArea(aArea,"VO3")
MsgInfo("O ponto de entrada OM20AVO3 foi executado com sucesso!","")
sRestArea( aArea )
Return