Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de Entrada utilizado para alteração da Query de Posicionamento na tabela VVD, no momento da gravação da Receita / Despesa e para carregar o Valor da Despesa / Receita, fazendo com que este valor não seja recalculado dentro da função de gravação, caso seu retorno seja maior que 0 (Zero).

Localização:

Atualizações \ Mov Atendimento \ Despesas/Receitas

Eventos:

For i:=1 to len(aColsDR)

If aColsDR[i,FG_POSVAR("VVD_VALOR","aHeadDesp")] == 0 .or. Empty(aColsDR[i,FG_POSVAR("VVD_CODIGO","aHeadDR")])

loop

Endif

cVarFilEnt := M->VV1_FILENT

if Empty(cVarFilEnt)

cVarFilEnt := xFilial("VVD")

Endif

cSQL := "SELECT R_E_C_N_O_ RECVVD"

cSQL += " FROM " + RetSQLName("VVD") + " VVD "

cSQL += " WHERE VVD.VVD_FILIAL = '" + cVarFilEnt + "'"

cSQL += " AND VVD.VVD_TRACPA = '"+M->VV1_TRACPA+"'"

cSQL += " AND VVD.VVD_CHAINT = '"+M->VV1_CHAINT+"'"

cSQL += " AND VVD.VVD_TIPOPE = '0'"

cSQL += " AND VVD.VVD_CODIGO = '"+aColsDR[i,FG_POSVAR("VVD_CODIGO",'aHeadDR')]+"'"

cSQL += " AND VVD.VVD_DATADR = '"+dtos(aColsDR[i,FG_POSVAR("VVD_DATADR",'aHeadDR')])+"'"

cSQL += " AND VVD.VVD_NUMOSV = '"+aColsDR[i,FG_POSVAR("VVD_NUMOSV",'aHeadDR')]+"'"

cSQL += " AND VVD.D_E_L_E_T_ = ' '"

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

//| PE para alteração da Query para Posicionamento da tabela VVD |

//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

If ExistBlock("VM040PGR")

cSQL := ExecBlock("VM040PGR",.f.,.f., { cSQL , If(nDR==1,"D","R"),i} )

EndIf


nRecNo := FM_SQL(cSQL)

if nRecNo == 0

wProcura := .f.

Else

wProcura := .t.

VVD->(DbGoto(nRecNo))

Endif

If nOpcG == 3 .or. nOpcg == 4

If aColsDR[i,len(aColsDR[i])] .And. wProcura

RecLock("VVD",.F.,.T.)

DbDelete()

MsUnlock()

WriteSx2("VVD")

Else


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

//| PE antes da gravação da VVD para despesa |

//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

If ExistBlock("VM040AGD")

aAuxRetorno := ExecBlock("VM040AGD",.f.,.f., { aHeadDR,aColsDR } )

If ValType(aAuxRetorno) == "A"

aHeadDR := aClone(aAuxRetorno[1])

aColsDR := aClone(aAuxRetorno[2])

aAuxRetorno := {}

Endif

EndIf


nValorDR := 0

For y:=1 to len(aColsDR)

if aColsDR[y,FG_POSVAR("VVD_CODIGO",'aHeadDR')] == aColsDR[i,FG_POSVAR("VVD_CODIGO",'aHeadDR')] .and. dtos(aColsDR[y,FG_POSVAR("VVD_DATADR",'aHeadDR')]) == dtos(aColsDR[i,FG_POSVAR("VVD_DATADR",'aHeadDR')]) .and. aColsDR[y,FG_POSVAR("VVD_NUMOSV",'aHeadDR')] == aColsDR[i,FG_POSVAR("VVD_NUMOSV",'aHeadDR')]

nValorDR += aColsDR[y,FG_POSVAR("VVD_VALOR",'aHeadDR')]

Endif

Next


RecLock("VVD",If(wProcura,.F.,.T.))

FG_GRAVAR("VVD",aColsDR,aHeadDR,i)

VVD->VVD_TIPOPE := "0"

cVarFilEnt := VV1->VV1_FILENT

if Empty(cVarFilEnt)

cVarFilEnt := xFilial("VVD")

Endif

VVD->VVD_FILIAL := cVarFilEnt

VVD->VVD_CHAINT := VV1->VV1_CHAINT

VVD->VVD_TRACPA := VV1->VV1_TRACPA

VVD->VVD_VALOR := nValorDR

If FG_POSVAR("VVD_EXPCPG","aHeadDR") > 0

VVD->VVD_EXPCPG := aColsDR[i,FG_POSVAR("VVD_EXPCPG","aHeadDR")] //'1'

EndIf

MsUnlock()

Endif

Endif

Next

Programa Fonte:

VEIVM040.PRW

Função:

FS_GrvVM040()

Parâmetros:

1o Parâmetro - Expressão SQL

2o Parâmetro - "D" se o array de Lançamentos (aColsDR) for de Despesas

"R" se o array de Lançamentos (aColsDR) for de Receitas

3o Parâmetro - Posição do Array

4o Parâmetro - Valor da Despesa / Receita

Retorno:array com 2 elementos:

1o Elemento: Expressão SQL

2o Elemento: Valor da Despesa ou Receita

Exemplo:

// Ponto de Entrada utilizado para alteração da Query de Posicionamento

// na tabela VVD, no momento da gravação da Receita / Despesa.

// Autor: Totvs MIL

User Function VM040PGR()

Local cExprSQL := ParamIXB[1]

Local cTipoLan := ParamIXB[2]

Local cPosicao := ParamIXB[3]

Local nValor := ParamIXB[4]

If cTipoLan == "D" // Despesas

MsgInfo("Alteração da Query de Posicionamento na tabela VVD (Tipo: Despesas de Veículos)", "Atenção")

Else // Receitas

MsgInfo("Alteração da Query de Posicionamento na tabela VVD (Tipo: Receitas de Veículos)", "Atenção")

Endif

Return { cExprSQL , nValor }