Abrangências: | Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10 |
Versões: | Todas |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
O ponto de entrada RQPCOM020 está localizado no momento da importação de peças/serviços de um orçamento para a requisição, dentro da rotina de Requisição de Peças. Isto permite que sejam importados, além dos campos padrão do sistema, campos customizados feitos pelo cliente.
For ni := 1 to Len(aPecaOrc)
If aPecaOrc[ni,1]
if lInconveniente
nReg := Ascan(aCols , {|x| x[FG_POSVAR("VO3_GRUITE")] + ;
x[FG_POSVAR("VO3_CODITE")] + ;
x[FG_POSVAR("VO3_GRUINC")] + ;
x[FG_POSVAR("VO3_CODINC")] == aPecaOrc[ni,6] + aPecaOrc[ni,7] + aPecaOrc[ni,15] + aPecaOrc[ni,16] ;
.and. x[FG_POSVAR("VO3_TIPTEM")] == aPecaOrc[ni,2] ;
.and. x[FG_POSVAR("VO3_FATPAR")] == aPecaOrc[ni,3] ;
.and. x[FG_POSVAR("VO3_LOJA")] == aPecaOrc[ni,4] ;
} )
else
nReg := Ascan(aCols , {|x| x[FG_POSVAR("VO3_GRUITE")] + x[FG_POSVAR("VO3_CODITE")] == aPecaOrc[ni,6] + aPecaOrc[ni,7] } )
endif
If nReg == 0
If lAdd
Aadd(aCols, Array( Len(aHeader)+1 ) )
nReg := Len(aCols)
For nCol := 1 to Len(aHeader)
aCols[nReg,nCol] := CriaVar( aHeader[nCol,2] )
Next
EndIf
nReg := Len(aCols)
EndIf
DbSelectArea("SB1")
DbSetOrder(7)
DbSeek(xFilial()+aPecaOrc[ni,6]+aPecaOrc[ni,7])
If !Empty(aPecaOrc[ni,2]) // situacao normal, foi importado do orcamento
aCols[nReg,FG_POSVAR("VO3_TIPTEM")] := aPecaOrc[ni,2]
aCols[nReg,FG_POSVAR("VO3_FATPAR")] := aPecaOrc[ni,3]
aCols[nReg,FG_POSVAR("VO3_LOJA") ] := aPecaOrc[ni,4]
aCols[nReg,FG_POSVAR("VO3_NOMCLI")] := aPecaOrc[ni,5]
aCols[nReg,FG_POSVAR("VO3_GRUITE")] := aPecaOrc[ni,6]
aCols[nReg,FG_POSVAR("VO3_CODITE")] := aPecaOrc[ni,7]
aCols[nReg,FG_POSVAR("VO3_DESITE")] := aPecaOrc[ni,8]
DbSelectArea("SB2")
DbSetOrder(1)
// DbSeek(xFilial("SB2")+SB1->B1_COD+SB1->B1_LOCPAD)
DbSeek(xFilial("SB2")+SB1->B1_COD+aPecaOrc[ni,12])
nQtdSaldo := SaldoSB2()
If FG_POSVAR("VO3_QTDEST")#0
aCols[nReg,FG_POSVAR("VO3_QTDEST")]:=M->VO3_QTDEST:= nQtdSaldo
EndIf
If nQtdSaldo < aCols[nReg,FG_POSVAR("VO3_QTDREQ")]+aPecaOrc[ni,9]
aCols[nReg,FG_POSVAR("VO3_QTDREQ")] := aCols[nReg,FG_POSVAR("VO3_QTDREQ")]+nQtdSaldo
Else
aCols[nReg,FG_POSVAR("VO3_QTDREQ")] := aCols[nReg,FG_POSVAR("VO3_QTDREQ")]+aPecaOrc[ni,9]
EndIf
aCols[nReg,FG_POSVAR("VO3_FORMUL")] := aPecaOrc[ni,10]
aCols[nReg,FG_POSVAR("VO3_VALPEC")] := aPecaOrc[ni,11]
aCols[nReg,FG_POSVAR("VO3_VALTOT")] := (aCols[nReg,FG_POSVAR("VO3_QTDREQ")] * aCols[nReg,FG_POSVAR("VO3_VALPEC")] )
aCols[nReg,Len(aHeader)+1] := .F.
if lInconveniente
aCols[nReg,FG_POSVAR("VO3_GRUINC")] := aPecaOrc[nI,15]
aCols[nReg,FG_POSVAR("VO3_CODINC")] := aPecaOrc[nI,16]
endif
Else // eh porque veio da abertura da OS pelo inconveniente padrao
VAJ->(DbsetOrder(2))
VAJ->(Dbseek(xFilial("VAJ")+Alltrim(aKeys[ni,1])))
aCols[nReg,FG_POSVAR("VO3_TIPTEM")] := VAJ->VAJ_TIPTEM
VOI->(DbsetOrder(1))
VOI->(Dbseek(xFilial("VOI")+VAJ->VAJ_TIPTEM))
If VOI->VOI_USAPRO=="0"
cCliente := VV1->VV1_PROATU
cLoja := VV1->VV1_LJPATU
Elseif VOI->VOI_USAPRO=="1"
VE4->(DbSeek(xFilial("VE4")+VV1->VV1_CODMAR))
cCliente := VE4->VE4_CODFAB
cLoja := VE4->VE4_LOJA
Else
cCliente := VOI->VOI_CLIFAT
cLoja := VOI->VOI_LOJA
Endif
SA1->(dbsetOrder(1))
SA1->(Dbseek(xFilial("SA1")+cCliente+cLoja))
aCols[nReg,FG_POSVAR("VO3_GRUINC")] := VAJ->VAJ_CODGRU
aCols[nReg,FG_POSVAR("VO3_CODINC")] := VAJ->VAJ_CODINC
aCols[nReg,FG_POSVAR("VO3_FATPAR")] := cCliente
aCols[nReg,FG_POSVAR("VO3_LOJA") ] := cLoja
aCols[nReg,FG_POSVAR("VO3_NOMCLI")] := SA1->A1_NREDUZ
aCols[nReg,FG_POSVAR("VO3_GRUITE")] := aPecaOrc[ni,6]
aCols[nReg,FG_POSVAR("VO3_CODITE")] := aPecaOrc[ni,7]
aCols[nReg,FG_POSVAR("VO3_DESITE")] := aPecaOrc[ni,8]
aCols[nReg,FG_POSVAR("VO3_QTDREQ")] := aCols[nReg,FG_POSVAR("VO3_QTDREQ")]+aPecaOrc[ni,9]
aCols[nReg,FG_POSVAR("VO3_FORMUL")] := VOI->VOI_VALPEC
nVlrPec := FG_VALPEC(VAJ->VAJ_TIPTEM,"nVlrPec",VAJ->VAJ_GRUPEC,VAJ->VAJ_CODPEC,"nVlrPec",.f.,.t.)
aCols[nReg,FG_POSVAR("VO3_VALPEC")] := nVlrPec
aCols[nReg,FG_POSVAR("VO3_VALTOT")] := nVlrPec * aCols[nReg,FG_POSVAR("VO3_QTDREQ")]
aCols[nReg,Len(aHeader)+1] := .F.
Endif
lAdd := .T.
EndIf
If ExistBlock("RQPCOM020")
ExecBlock("RQPCOM020",.f.,.f.,{ni,nReg})
EndIf
Next
OFIOM020, RQPCOM020
RQPCOM020 - Permite importação de campos customizados ( < ni> , < nReg> )
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
ni | Numérico | Linha do aCols referente a tabela VSJ. | X | ||||||||||||||
nReg | Numérico | Linha do aCols referente a tabela VO3. | X |
-
()
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±±±³Fun‡„o ³ RQPCOM020³ Autor ³ Otavio Favarelli ³ Data ³ 06/10/09 ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±±±³Descri‡„o ³ Ponto de entrada para transportar registros de tabelas para³±±±±³ ³ o aCols da tabela VO3 (requisicao de pecas). ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Sintaxe ³ ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Uso ³ ³±±±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function RQPCOM020()Local nLinVSJ, nLinVO3Local cSaveArea := GetArea()Local lRet := .f.nLinVSJ := ParamIXB[1] //Linha do aCols VSJnLinVO3 := ParamIXB[2] //Linha do aCols VO3DbSelectArea("VSJ")DbSetOrder(1)If DbSeek(xFilial("VSJ")+VO1->VO1_NUMOSV+aPecaOrc[nLinVSJ,6]+aPecaOrc[nLinVSJ,7]) aCols[nLinVO3,FG_POSVAR("VO3_TESTPE")] := VSJ->VSJ_TESTPE //Campo customizado MsgAlert("Foi transportado com sucesso o registro "+aCols[nLinVO3,FG_POSVAR("VO3_TESTPE")]+"!","Sucesso!") MsgAlert("O ponto de entrada RQPCPM020 foi executado com sucesso!","Sucesso!") lRet := .t.EndIfRestArea(cSaveArea)Return(lRet)
Nome | Tipo | Escopo | Pode Alterar | descrição | ||||||||||
Array of Record | Global | Não |