Árvore de páginas

Ponto-de-Entrada: M415GRV - Gravação de orçamento


Versões:Microsiga Protheus 8.11 , Microsiga Protheus 10
Idiomas:Espanhol , Inglês


Descrição:

Este ponto de entrada é executado após o controle de transações da rotina para as operações de inclusão, alteração ou exclusão, sendo possível apenas inicia-la após a gravação correta dos dados.

O ParamIxb indicará através de um valor operação que esta sendo realizada (1, 2 ou 3).

Programa Fonte
.PRW

Sintaxe

M415GRV - Gravação de orçamento ( < UPAR> ) → URET


Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

UPAR

Qualquer

Número da Operação, sendo : 1 - Inclusão / 2 - Alteração / 3 - Exclusão




X




Retorno → Nil (nulo)

Exemplo:
#INCLUDE 'PROTHEUS.CH'
#INCLUDE "FWMVCDEF.CH"
   
User Function M415GRV()
 
    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 cQrySCK   := ""               //Query
    Local cAliasSCK := GetNextAlias()   //Criação de tabelas temporárias 
    Local nTotal    := 0                //Valor Total do orçamento

	If nOpcao == 1 .Or.  nOpcao  == 2 //Inclusao ou Alteração
    	//------------------------------------------
    	// Query da tabela SCK - Itens de Orçamento            
    	//------------------------------------------
    	cQrySCK := " SELECT CK_FILIAL, CK_NUM, CK_VALOR "
    	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.)

    	While (cAliasSCK)->(!Eof()) .And. SCK->CK_FILIAL + SCK->CK_NUM == (cAliasSCK)->CK_FILIAL + (cAliasSCK)->CK_NUM

        	nTotal += (cAliasSCK)->CK_VALOR
        	(cAliasSCK)->(DbSkip())

    	EndDo

    
        Alert("Orçamento gerado com sucesso! / Valor Total: "+Alltrim(Str(nTotal)))
		
		(cAliasSCK)->(dbCloseArea()) //Fecha a tabela temporaria
    EndIf
    
    RestArea(aArea) //Restaura o ambiente ativo no início da chamada

Return