#INCLUDE 'PROTHEUS.CH'
#INCLUDE "FWMVCDEF.CH"
User Function M410AGRVM415GRV()
Local aArea := GetArea() //Armazena o ambiente ativo para restaurar ao fim do processo
Local nOpcao := PARAMIXB[1] //Número da Opção (1 - Inclusão / 2 - Alteração / 3 - Exclusão)
Local nContIcQrySCK := 0
Local nTotItens "" //Query
Local cAliasSCK := 1
Local cProd := aScan(aHeader,{|x| Alltrim(x[2])== "C6_PRODUTO"})
//aCols - Variável Private que contém os itens da SC6 antes de iniciar a gravação
//aHeader - Variável Private que contém as estruturas dos campos da SC6 antes de iniciar a gravação
If nOpcao == 1
For nContI := 1 To nTotItens
If aCols[nContI][cProd] == "000001"
GetNextAlias() //Criação de tabelas temporárias
Local nTotal := 0 //Valor Total dos itens
//------------------------------------------
// Query da tabela SCK - Itens de Orçamento
//------------------------------------------
cQrySCK := " SELECT CK_FILIAL, CK_NUM, CK_PRCVEN "
cQrySCK += " FROM "+RetSqlName("SCK")
cQrySCK += " WHERE CK_FILIAL = '"+ SCK->CK_FILIAL +"' "
cQrySCK += " AND CK_NUM = '"+ SCK->CK_NUM +"' "
cQrySCK += " AND D_E_L_E_T_=' ' "
cQrySCK := ChangeQuery(cQrySCK)
dbUseArea(.T.,"TOPCONN",TCGENQRY(,,cQrySCK),cAliasSCK,.T.,.T.)
(cAliasSCK)->(DbGoTop())
While (cAliasSCK)->(!Eof()) .And. SCK->CK_FILIAL + SCK->CK_NUM == (cAliasSCK)->CK_FILIAL + (cAliasSCK)->CK_NUM
nTotal += (cAliasSCK)->CK_PRCVEN
(cAliasSCK)->(DbSkip())
EndDo
If nOpcao == 1 //Inclusao
Alert("Encontrado o Produto 000001"Orçamento gerado com sucesso! / Valor Total:"+Alltrim(Str(nTotal)))
EndIf
EndIf
Next nContI
EndIf
(cAliasSCK)->(dbCloseArea()) //Fecha a tabela temporaria
RestArea(aArea) //Restaura o ambiente ativo no início da chamada
Return |