Árvore de páginas

Ponto-de-Entrada: OX005DGR - Gravação/ Atualização do registro de Criterio de Descontos
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil)
Descrição:
Este ponto de entrada está localizado na rotina Criterio Desctos (OFIXA017). Após a gravacao/ atualizacao de um registro de criterio de desconto, o ponto de entrada é executado.
Eventos

/*
===============================================================================
###############################################################################
##+----------+------------+-------+-----------------------+------+----------+##
##|Fun‡„o    | OX005GRV   | Autor |  Luis Delorme         | Data | 20/05/09 |##
##+----------+------------+-------+-----------------------+------+----------+##
##|Descri‡„o | Gravacao da Politica de Desconto e Promocao de Pecas         |##
##+----------+--------------------------------------------------------------+##
##|Uso       | Oficina / AutoPecas                                          |##
##+----------+--------------------------------------------------------------+##
###############################################################################
===============================================================================
*/
Function OX005GRV(nOpc, lEncerra)
Local nCntFor,nCntFor2,nCntFor3
Default lEncerra := .t.
// quando esta visualizando, apenas retorna
if nOpc == 2
    return .t.
endif
//
nPosGruite := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_GRUITE"})
nPosCodite := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_CODITE"})
nPosDatIni := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_DATINI"})
nPosDatFin := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_DATFIN"})
nPosCodCai := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_CODCAI"})
nPosGruPec := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_GRUPEC"})
nPosGruDes := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_GRUDES"})
nPosClaFin := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_CLAFIN"})
nPosModVei := Ascan(&("aHeader"+strzero(oFolder:nOption,1)),{|x| Alltrim(Upper(x[2]))=="VEN_MODVEI"})
// ------------------------------------------------------------------------------------------------------------
BEGIN TRANSACTION // --------I-N-I-C-I-O---D-A---T-R-A-N-S-A-C-A-O---------------------------------------------
// ------------------------------------------------------------------------------------------------------------
// ############################################################
// # Apaga qualquer gravacao anterior                         #
// ############################################################
If TCCanOpen(RetSqlName("VEM"))
    if INCLUI
        cString := "DELETE FROM "+RetSqlName("VEM")+ " WHERE VEM_FILIAL = '"+ xFilial("VEM")+"' AND VEM_CODMAR= '"+M->VEM_CODMAR+"' AND VEM_CENCUS= '"+M->VEM_CENCUS+"' AND VEM_TIPVEN= '"+M->VEM_TIPVEN+"' "
        cString += "AND VEM_CODCLI= '"+M->VEM_CODCLI+"' AND VEM_LOJA= '"+M->VEM_LOJA+"' AND VEM_TIPNEG = '"+M->VEM_TIPNEG+"'" + IIF(FieldPos("VEM_FORPAG")>0," AND VEM_FORPAG = '"+M->VEM_FORPAG+"'","")
    else
        cString := "DELETE FROM "+RetSqlName("VEM")+ " WHERE VEM_FILIAL = '"+ xFilial("VEM")+"' AND VEM_CODMAR= '"+cAntCODMAR+"' AND VEM_CENCUS= '"+cAntCENCUS+"' AND VEM_TIPVEN= '"+cAntTIPVEN+"' "
        cString += "AND VEM_CODCLI= '"+cAntCODCLI+"' AND VEM_LOJA= '"+cAntLOJA+"' AND VEM_TIPNEG = '"+cAntTIPNEG+"'" + IIF(FieldPos("VEM_FORPAG")>0," AND VEM_FORPAG = '"+cAntFORPAG+"'","")
    endif
    TCSqlExec(cString)
else
    DisarmTransaction()
    MsgStop(STR0032+CHR(10)+;
    STR0033,STR0027)
    return .f.
endif

If TCCanOpen(RetSqlName("VEN"))
    if INCLUI
        cString := "DELETE FROM "+RetSqlName("VEN")+ " WHERE VEN_FILIAL = '"+ xFilial("VEN")+"' AND VEN_CODMAR= '"+M->VEM_CODMAR+"' AND VEN_CENCUS= '"+M->VEM_CENCUS+"' AND VEN_TIPVEN= '"+M->VEM_TIPVEN+"' "
        cString += "AND VEN_CODCLI= '"+M->VEN_CODCLI+"' AND VEN_LOJA= '"+M->VEN_LOJA+"' AND VEN_TIPNEG = '"+M->VEM_TIPNEG+"'" + IIF(FieldPos("VEN_FORPAG")>0," AND VEN_FORPAG = '"+M->VEM_FORPAG+"'","")
    else
        cString := "DELETE FROM "+RetSqlName("VEN")+ " WHERE VEN_FILIAL = '"+ xFilial("VEN")+"' AND VEN_CODMAR= '"+cAntCODMAR+"' AND VEN_CENCUS= '"+cAntCENCUS+"' AND VEN_TIPVEN= '"+cAntTIPVEN+"' "
        cString += "AND VEN_CODCLI= '"+cAntCODCLI+"' AND VEN_LOJA= '"+cAntLOJA+"' AND VEN_TIPNEG = '"+cAntTIPNEG+"'" + IIF(FieldPos("VEM_FORPAG")>0," AND VEN_FORPAG = '"+cAntFORPAG+"'","")
    endif
    TCSqlExec(cString)
else
    DisarmTransaction()
    MsgStop(STR0034+CHR(10)+;
    STR0035,"Atencao")
    return .f.
endif
//
if nOpc != 5
    reclock("VEM",.t.)
    VEM->VEM_FILIAL := xFilial("VEM")
    FG_GRAVAR("VEM")
    msunlock()
    //
    DBSelectArea("VEN")
    for nCntFor3 := 1 to 5
        oGet := &("oGet"+strzero(nCntFor3,1))
        aHeader := &("aHeader"+strzero(nCntFor3,1))
        for nCntFor := 1 to Len(oGet:aCols)
            lProcessa := .t.
            if !oGet:aCols[nCntFor,len(oGet:aCols[nCntFor])]
                If oFolder:nOption == 1 .and. Empty(oGet:aCols[nCntFor,nPosGruIte]) .and. Empty(oGet:aCols[nCntFor,nPosCodIte])
                    lProcessa := .f.
                Elseif oFolder:nOption == 2 .and. Empty(oGet:aCols[nCntFor,nPosCodCai])
                    lProcessa := .f.
                Elseif oFolder:nOption == 3 .and. Empty(oGet:aCols[nCntFor,nPosGruPec])
                    lProcessa := .f.
                Elseif oFolder:nOption == 4 .and. Empty(oGet:aCols[nCntFor,nPosGruDes])
                    lProcessa := .f.
                Elseif oFolder:nOption == 5 .and. Empty(oGet:aCols[nCntFor,nPosClaFin])
                    lProcessa := .f.
                endif
                if lProcessa
                    reclock("VEN",.t.)
                    VEN->VEN_FILIAL := xFilial("VEN")
                    VEN->VEN_CODMAR := M->VEM_CODMAR
                    VEN->VEN_CENCUS := M->VEM_CENCUS
                    VEN->VEN_CODCLI := M->VEM_CODCLI
                    if FieldPos("VEM_FORPAG") > 0
                        VEN->VEN_FORPAG := M->VEM_FORPAG
                    endif
                    VEN->VEN_LOJA := M->VEM_LOJA
                    VEN->VEN_TIPVEN := M->VEM_TIPVEN
                    VEN->VEN_TIPNEG := M->VEM_TIPNEG
                    for nCntFor2 := 1 to Len(aHeader)
                        if aHeader[nCntFor2,10] <> "V"
                            &(aHeader[nCntFor2,2]) := oGet:aCols[nCntFor,nCntFor2]
                        endif
                    next
                endif
            endif
        next
    next
endif
// ------------------------------------------------------------------------------------------------------------
END TRANSACTION // --------F-I-N-A-L---D-A---T-R-A-N-S-A-C-A-O-------------------------------------------------
// ------------------------------------------------------------------------------------------------------------
If ExistBlock("OX005DGR")
    ExecBlock("OX005DGR",.f.,.f.)
EndIf

Programa Fonte
OFIXA017, OFIXX005, OX005DGR
Sintaxe

OX005DGR - Gravação/ Atualização do registro de Criterio de Descontos ( [ ] )

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    ()
Exemplos
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±±±³Fun‡„o    ³ OX005DGR ³ Autor ³ Otavio Favarelli      ³ Data ³ 10/06/10 ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±±±³Descri‡„o ³ Este ponto de entrada esta localizado na rotina de criterio³±±±±³			 ³ de descontos apos a gravacao do registro.                  ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Sintaxe   ³                                                            ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Uso       ³                                                            ³±±±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function OX005DGR()	MsgAlert("O ponto de entrada OX005DGR foi executado!","Sucesso!")Return .t.
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não