Eventos: | // Criação dos Itens do aCols de Peças DbSelectArea("VS3") For nCntFor := 1 to Len(aItePec)
RecLock("VS3",.T.) VS3->VS3_FILIAL := xFilial("VS3") VS3->VS3_SEQUEN := STRZERO(nCntFor,TamSX3("VS3_SEQUEN")[1]) // Sequencia VS3->VS3_NUMORC := VS1->VS1_NUMORC For nx := 1 to len(aItePec[nCntFor]) &("VS3->"+aItePec[nCntFor,nx,1]) := aItePec[nCntFor,nx,2] Next VS3->VS3_VALTOT := ( VS3->VS3_QTDITE * VS3->VS3_VALPEC ) MsUnlock()
Next
// Criação dos Itens do aCols de Serviços If Len(aIteSrv) > 0 dbSelectArea("VV1") dbSetOrder(1) dbSeek(xFilial("VV1")+VS1->VS1_CHAINT) For nCntFor := 1 to Len(aIteSrv)
// Posiciona com o Tipo de Tempo de Servico dbSelectArea("VOI") dbSetOrder(1) dbSeek(xFilial("VOI")+VS1->VS1_TIPTSV)
DbSelectArea("VS4") RecLock("VS4",.T.) VS4->VS4_FILIAL := xFilial("VS4") // Filial VS4->VS4_NUMORC := VS1->VS1_NUMORC // Numero do Orcamento VS4->VS4_SEQUEN := STRZERO(nCntFor,TamSX3("VS4_SEQUEN")[1]) // Sequencia For nx := 1 to len(aIteSrv[nCntFor]) If aIteSrv[nCntFor,nx,1] == "VS4_CODSER" // Posiciona na tabela de servicos DBSelectArea("VOK") DBSetOrder(1) DBSeek(xFilial("VOK")+VS4->VS4_TIPSER) // If VOK->VOK_INCMOB == "5" // Kilometragem nValHor := VOK->VOK_PREKIL nTemPad := 0 nValSer := 0 else nValHor := If(VOK->VOK_INCMOB $ "0/2/5/6",0,FG_VALHOR(VOI->VOI_TIPTEM,dDataBase,,,VV1->VV1_CODMAR,aIteSrv[nCntFor,nx,2],VS4->VS4_TIPSER,VS1->VS1_CLIFAT,VS1->VS1_LOJA)) nTemPad := FG_TEMPAD(cAuxChaInt,aIteSrv[nCntFor,nx,2],if(VOK->VOK_INCTEM == "3","1",VOK->VOK_INCTEM),,VV1->VV1_CODMAR) nValSer := (nTemPad /100) * nValHor EndIf
VS4->VS4_TEMPAD := nTemPad // Tempo Padrao VS4->VS4_VALHOR := nValHor // Vlr da Hora VS4->VS4_VALSER := nValSer // Valor do Servico VS4->VS4_VALTOT := nValSer // Valor do Servico
EndIf &("VS4->"+aIteSrv[nCntFor,nx,1]) := aIteSrv[nCntFor,nx,2] Next MsUnlock()
Next
Endif // PE utilizado para gravação de novos conteúdos ou campos nas tabelas VS1/VS3/VS4 If ExistBlock("OX010DGR") ExecBlock("OX010DGR",.f.,.f.) EndIf |