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: |
| ||||||||||||||||||
Retorno: |
|
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)