Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de Entrada executado para manipulação das querys das tabelas (VS1,VO4,VO3 e VQB), no momento da Chamada da Função FG_AVALCRED, que verifica as OS e os Orçamentos em aberto do cliente. A Chamada da função FG_AVALCRED se dá de acordo com o parâmetro MV_CHKCRE: A-Abertura, I-Importacao, P-Req.Pecas, S-Req.Serv., L-Liberacao, F-Fechamento, B- Pecas/Srv orçamento.

Localização:

Atualizações \ Mov Oficina \ Orçamento por Fases

Eventos:

Evento 1:

cQuery := "SELECT DISTINCT VO4.VO4_NUMOSV , VO4.VO4_TIPTEM FROM "+RetSqlName("VO4")+" VO4 "

cQuery += "INNER JOIN "+RetSQLName("VOI")+" VOI ON VOI.VOI_FILIAL='"+xFilial("VOI")+"' AND VOI.VOI_TIPTEM=VO4.VO4_TIPTEM AND VOI.D_E_L_E_T_=' ' "

cQuery += "WHERE VO4.VO4_FILIAL='"+cFilVO4+"' AND "

cQuery += "VO4.VO4_FATPAR='"+cCodCli+"' AND "

If cCreCli == "L"

cQuery += "VO4.VO4_LOJA='"+cLoja+"' AND "

EndIf

cQuery += "VO4.VO4_DATFEC = ' ' AND VO4.VO4_DATCAN = ' ' AND "

cQuery += "VOI.VOI_SITTPO='1' AND "

cQuery += "VO4.D_E_L_E_T_=' ' "

cQuery += "ORDER BY VO4.VO4_NUMOSV, VO4.VO4_TIPTEM "


If ExistBlock("PEQRYACR")

cRetorno := ExecBlock("PEQRYACR",.f.,.f.,{"VO4",cQuery,cCodCli,cLoja,.f.}) // Ponto de entrada para manipulacao da query.

if !Empty(cRetorno)

cQuery := cRetorno

Endif

EndIf

dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlVO4 , .F., .T. )

Evento 2:

cQuery := "SELECT DISTINCT VO3.VO3_NUMOSV, VO3.VO3_TIPTEM FROM "+RetSqlName("VO3")+" VO3 "

cQuery += "INNER JOIN "+RetSQLName("VOI")+" VOI ON VOI.VOI_FILIAL='"+xFilial("VOI")+"' AND VOI.VOI_TIPTEM=VO3.VO3_TIPTEM AND VOI.D_E_L_E_T_=' ' "

cQuery += "WHERE VO3.VO3_FILIAL='"+xFilial("VO3")+"' AND "

cQuery += "VO3.VO3_FATPAR='"+cCodCli+"' AND "

If cCreCli == "L"

cQuery += "VO3.VO3_LOJA='"+cLoja+"' AND "

EndIf

cQuery += "VO3.VO3_DATFEC = ' ' AND VO3.VO3_DATCAN = ' ' AND "

cQuery += "VOI.VOI_SITTPO='1' AND "

cQuery += "VO3.D_E_L_E_T_=' ' "

If ExistBlock("PEQRYACR")

cRetorno := ExecBlock("PEQRYACR",.f.,.f.,{"VO3",cQuery,cCodCli,cLoja,.f.}) // Ponto de entrada para manipulacao da query.

if !Empty(cRetorno)

cQuery := cRetorno

Endif

EndIf

dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlVO3 , .F., .T. )

Evento 3:

If lRetVet // Retorna Vetor com os Orcamento e OSs + Tipo de Tempo com valor de Peças e Serviços

cQuery := "SELECT VS3.VS3_NUMORC , SUM(VS3.VS3_VALTOT) AS VLR "

Else

cQuery := "SELECT SUM(VS3.VS3_VALTOT) AS VLR "

EndIf

cQuery += " FROM "+RetSqlName("VS1")+" VS1 "

cQuery += "INNER JOIN "+RetSqlName("VS3")+" VS3 ON VS3.VS3_FILIAL=VS1.VS1_FILIAL AND VS3.VS3_NUMORC=VS1.VS1_NUMORC AND VS3.VS3_VALTOT > 0 AND VS3.D_E_L_E_T_=' '"

cQuery += "LEFT JOIN "+RetSQLName("VOI")+" VOI ON VOI.VOI_FILIAL='"+xFilial("VOI")+"' AND VOI.VOI_TIPTEM=VS1.VS1_TIPTEM AND VOI.D_E_L_E_T_=' ' "

cQuery += "WHERE VS1.VS1_FILIAL='"+cFilVS1+"' AND "

cQuery += "VS1.VS1_STATUS NOT IN (' ','X','C','0','I') AND "

cQuery += "VS1.VS1_CLIFAT='"+cCodCli+"' AND "

If cCreCli == "L"

cQuery += "VS1.VS1_LOJA='"+cLoja+"' AND "

EndIf

cQuery += "(VS1.VS1_TIPORC='1' OR (VS1.VS1_TIPORC='2' AND VOI.VOI_SITTPO='1')) AND "

cQuery += " VS1.VS1_DATVAL >= '"+dtos(dDataBase)+"' AND VS1.D_E_L_E_T_=' ' "

If !Empty(cCondNAO) // Desconsiderar no Levantamento do Limite de Credito as Condicoes de Pagamento contidas no parametro MV_MIL0158

cQuery += " AND VS1.VS1_FORPAG NOT IN " + FormatIN(cCondNAO,"/") + " "

EndIf

If lRetVet // Retorna Vetor com os Orcamento e OSs + Tipo de Tempo com valor de Peças e Serviços

cQuery += " GROUP BY VS3.VS3_NUMORC "

EndIf

If ExistBlock("PEQRYACR")

cRetorno := ExecBlock("PEQRYACR",.f.,.f.,{"VS1",cQuery,cCodCli,cLoja,lRetVet}) // Ponto de entrada para manipulacao da query.

if !Empty(cRetorno)

cQuery := cRetorno

Endif

EndIf

dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlVS1 , .F., .T. )

Evento 4:

If lRetVet // Retorna Vetor com os Orcamento e OSs + Tipo de Tempo com valor de Peças e Serviços

cQuery := "SELECT VS4.VS4_NUMORC , SUM(VS4.VS4_VALSER) AS VLR "

Else

cQuery := "SELECT SUM(VS4.VS4_VALSER) AS VLR "

EndIf

cQuery += " FROM "+RetSqlName("VS1")+" VS1 "

cQuery += "INNER JOIN "+RetSqlName("VS4")+" VS4 ON VS4.VS4_FILIAL=VS1.VS1_FILIAL AND VS4.VS4_NUMORC=VS1.VS1_NUMORC AND VS4.VS4_VALSER > 0 AND VS4.D_E_L_E_T_=' '"

cQuery += "LEFT JOIN "+RetSQLName("VOI")+" VOI ON VOI.VOI_FILIAL='"+xFilial("VOI")+"' AND "

if VS1->(FieldPos("VS1_TIPTSV"))>0

cQuery += "VOI.VOI_TIPTEM=VS1.VS1_TIPTSV AND VOI.D_E_L_E_T_=' ' "

Else

cQuery += "VOI.VOI_TIPTEM=VS1.VS1_TIPTEM AND VOI.D_E_L_E_T_=' ' "

Endif

cQuery += "WHERE VS1.VS1_FILIAL='"+cFilVS1+"' AND "

cQuery += "VS1.VS1_STATUS NOT IN (' ','X','C','0','I') AND "

cQuery += "VS1.VS1_CLIFAT='"+cCodCli+"' AND "

If cCreCli == "L"

cQuery += "VS1.VS1_LOJA='"+cLoja+"' AND "

EndIf

cQuery += "VS1.VS1_TIPORC='2' AND VOI.VOI_SITTPO='1' AND "

cQuery += " VS1.VS1_DATVAL >= '"+dtos(dDataBase)+"' AND VS1.D_E_L_E_T_=' ' "

If !Empty(cCondNAO) // Desconsiderar no Levantamento do Limite de Credito as Condicoes de Pagamento contidas no parametro MV_MIL0158

cQuery += " AND VS1.VS1_FORPAG NOT IN " + FormatIN(cCondNAO,"/") + " "

EndIf

If lRetVet // Retorna Vetor com os Orcamento e OSs + Tipo de Tempo com valor de Peças e Serviços

cQuery += " GROUP BY VS4.VS4_NUMORC "

EndIf

If ExistBlock("PEQRYACR")

cRetorno := ExecBlock("PEQRYACR",.f.,.f.,{"VS1",cQuery,cCodCli,cLoja,lRetVet}) // Ponto de entrada para manipulacao da query.

if !Empty(cRetorno)

cQuery := cRetorno

Endif

EndIf

dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlVS1 , .F., .T. )

Programa Fonte:

VEIFUNA.PRW

Função:

FG_AVALCRED()

Parâmetros:

Nome

Tipo

Descrição

cAliasFiltro

Caractere

Alias da consulta

cQuery

Caractere

Consulta padrão do sistema sem alteração

cCliente

Caractere

Cliente Objeto da consulta

cLoja

Caractere

Loja do cliente objeto da consulta

lVet

Lógico

Indica se a consulta deverá retornar o número do orçamento

Retorno:

Nome

Tipo

Descrição

cQuery

Caractere

Retorna o conteúdo da consulta a ser executada

Exemplo:

Include totvs.ch

User Function PEQRYACR()


cAliasFiltro := ParamIXB[1]

cQuery := ParamIXB[2]

cCliente := ParamIXB[3]

cLoja := ParamIXB[4]

lVet := ParamIXB[5]


if cAliasFiltro == "VS1"

If lVet

cQuery := "SELECT VS4.VS4_NUMORC, SUM(VS4.VS4_VALSER) AS VLR "

Else

cQuery := "SELECT SUM(VS4.VS4_VALSER) AS VLR "

EndIf


cQuery += "FROM "+RetSqlName("VS1")+" VS1 "

cQuery += "INNER JOIN "+RetSqlName("VS4")+" VS4 ON VS4.VS4_FILIAL=VS1.VS1_FILIAL AND VS4.VS4_NUMORC=VS1.VS1_NUMORC AND VS4.VS4_VALSER > 0 AND VS4.D_E_L_E_T_=' '"

cQuery += "WHERE VS1.VS1_FILIAL='"+FormatIN(FM_ALLFIL("VS1"),",")+"' AND "

cQuery += "VS1.D_E_L_E_T_=' ' "


If lVet

cQuery += " GROUP BY VS4.VS4_NUMORC "

EndIf

Endif


Return(cQuery)