Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
M415GRV - Gravação de orçamento
M415GRV - Gravação de orçamento

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


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


Descrição:

GRAVAÇÃO DO ORÇAMENTO (APÓS GRAVAÇÃO)
Após a gravação em todas as opções (inclusão, alteração e exclusão)

Observação: Este ponto de entrada é executado dentro do Controle de Transações da rotina de Orçamentos.


O ParamIxb estará com o número da opção (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 Opção, sendo : 1 - Inclusão / 2 - Alteração / 3 - Exclusão




X




Retorno
URET
    (qualquer)
  • Nenhum
Bloco de código
languagecpp
themeMidnight
titleExemplo:
linenumberstrue
#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