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) |
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.
/*
===============================================================================
###############################################################################
##+----------+------------+-------+-----------------------+------+----------+##
##|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
OFIXA017, OFIXX005, OX005DGR
OX005DGR - Gravação/ Atualização do registro de Criterio de Descontos ( [ ] )
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
Array of Record |
-
()
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±±±³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.
Nome | Tipo | Escopo | Pode Alterar | descrição | ||||||||||
Array of Record | Global | Não |