Ponto de Entrada
Descrição: | Este ponto de entrada deverá possibilitar o cliente de realizar alterações na query do levantamento das vendas. |
Parametros: | cQuery - Query atual |
Eventos: | cQuery := "SELECT SD2.D2_LOJA, SD2.D2_CLIENTE, SD2.D2_DOC, SD2.D2_SERIE, SD2.D2_FILIAL, SD2.D2_VALBRUT, SF4.F4_SITTRIB , SD2.D2_TOTAL , SD2.D2_COD , SD2.D2_QUANT , " cQuery += "SD2.D2_VALICM , SD2.D2_ICMSRET , SD2.D2_VALFRE , SD2.D2_DESPESA , SD2.D2_VALIMP6 , SD2.D2_VALIMP5 , " cQuery += "SD2.D2_DESCON , SD2.D2_CUSTO1 , SF2.F2_PREFORI , SF2.F2_EMISSAO , SA1.A1_EST " If aFiltro[13] == STR0022 // Devolucoes referente as Vendas no Periodo ( referente as Vendas ) cQuery += ", SD2.D2_FILIAL , SD2.D2_DOC , SD2.D2_SERIE " EndIf Do Case Case cTipo == "FIL" If aFiltro[13] <> STR0022 // diferente de ( referente as Vendas ) cQuery += ", SD2.D2_FILIAL " EndIf Case cTipo == "GRP" // Grupos cQuery += ", SD2.D2_GRUPO , SBM.BM_DESC " Case cTipo == "ITE" // Itens cQuery += ", SD2.D2_GRUPO , SB1.B1_CODITE , SB1.B1_DESC " Case cTipo == "ANA" // Analitico If aFiltro[13] <> STR0022 // diferente de ( referente as Vendas ) cQuery += ", SD2.D2_FILIAL , SD2.D2_DOC , SD2.D2_SERIE , VS1.VS1_NUMORC , VOO.VOO_NUMOSV , VOO.VOO_TIPTEM " Else cQuery += ", VS1.VS1_NUMORC , VOO.VOO_NUMOSV , VOO.VOO_TIPTEM " EndIf Case cTipo == "TPTT" // Oficina - Tipo de Publico / Tipo de Tempo If aFiltro[13] <> STR0022 // diferente de ( referente as Vendas ) cQuery += ", SD2.D2_FILIAL , SD2.D2_DOC , SD2.D2_SERIE , VOI.VOI_SITTPO , VOI.VOI_DESTTE , VOO.VOO_TIPTEM " Else cQuery += ", VOI.VOI_SITTPO , VOI.VOI_DESTTE , VOO.VOO_TIPTEM " EndIf Case cTipo == "VEND" // Ranking Vendedores cQuery += ", SF2.F2_VEND1 " Case cTipo == "VNDE" // Vendedores cQuery += ", SF2.F2_VEND1 " Case cTipo == "MARCA" // MARCAS cQuery += ", COALESCE(VE1.VE1_CODMAR,'-') AS VE1_CODMAR, VE1.VE1_DESMAR " EndCase /////////////////// // FROM SD2 // /////////////////// cQuery += "FROM "+cNamSD2+" SD2 " /////////////////// // JOIN SF2 // /////////////////// cQuery += "JOIN "+cNamSF2+" SF2 ON " cQuery += "( SF2.F2_FILIAL=SD2.D2_FILIAL AND SF2.F2_DOC=SD2.D2_DOC AND SF2.F2_SERIE=SD2.D2_SERIE AND " If cTipo == "TPTT" // Oficina - Tipo de Publico / Tipo de Tempo cQuery += "SF2.F2_PREFORI='"+cPrefOFI+"' AND " Else If aFiltro[15] == "T" // Todos (Balcao/Oficina) cQuery += "SF2.F2_PREFORI IN ('"+cPrefBAL+"','"+cPrefOFI+"') AND " ElseIf aFiltro[15] == "B" // Balcao cQuery += "SF2.F2_PREFORI='"+cPrefBAL+"' AND " ElseIf aFiltro[15] == "O" // Oficina cQuery += "SF2.F2_PREFORI='"+cPrefOFI+"' AND " EndIf EndIf If !Empty(aFiltro[12]) // Filtra Vendedor cQuery += "SF2.F2_VEND1='"+aFiltro[12]+"' AND " EndIf cQuery += "SF2.D_E_L_E_T_=' ' ) " /////////////////// // JOIN SF4 // /////////////////// cQuery += "JOIN "+cNamSF4+" SF4 ON ( " cQuery += "SF4.F4_FILIAL='"+cFilSF4+"' AND " cQuery += "SF4.F4_CODIGO=SD2.D2_TES AND SF4.F4_OPEMOV='05' AND SF4.D_E_L_E_T_=' ' ) " // F4_OPEMOV='05' -> Venda /////////////////// // JOIN SBM // /////////////////// cQuery += "JOIN "+cNamSBM+" SBM ON ( " cQuery += "SBM.BM_FILIAL='"+cFilSBM+"' AND " cQuery += "SBM.BM_GRUPO=SD2.D2_GRUPO AND SBM.BM_TIPGRU NOT IN ('7','4') AND SBM.D_E_L_E_T_=' ' ) " /////////////////// // JOIN SB1 // /////////////////// cQuery += "JOIN "+cNamSB1+" SB1 ON ( " cQuery += "SB1.B1_FILIAL='"+cFilSB1+"' AND " cQuery += "SB1.B1_COD=SD2.D2_COD AND SB1.D_E_L_E_T_=' ' ) " /////////////////// // JOIN SA1 // /////////////////// cQuery += "JOIN "+cNamSA1+" SA1 ON ( " cQuery += "SA1.A1_FILIAL='"+cFilSA1+"' AND " cQuery += "SA1.A1_COD=SF2.F2_CLIENTE AND SA1.A1_LOJA=SF2.F2_LOJA AND " If !Empty(aFiltro[04]) // 04 - Pessoa cQuery += "SA1.A1_PESSOA='"+aFiltro[04]+"' AND " EndIf If !Empty(aFiltro[05]) // 05 - Tipo cQuery += "SA1.A1_TIPO='"+aFiltro[05]+"' AND " EndIf If !Empty(aFiltro[06]) // 06 - Tipo Cliente cQuery += "SA1.A1_TIPOCLI='"+aFiltro[06]+"' AND " EndIf cQuery += "SA1.D_E_L_E_T_=' ' ) " If !Empty(aFiltro[03]) // 03 - Regiao de Atuacao /////////////////// // LEFT JOIN VAM // /////////////////// cQuery += "LEFT JOIN "+cNamVAM+" VAM ON ( " cQuery += "VAM.VAM_FILIAL='"+cFilVAM+"' AND " cQuery += "VAM.VAM_IBGE=SA1.A1_IBGE AND VAM.VAM_REGIAO='"+aFiltro[03]+"' AND VAM.D_E_L_E_T_=' ' ) " EndIf ///////////////////////////////////// // Filtro // // 07 - Tipo de Negocio do Cliente // ///////////////////////////////////// If !Empty(aFiltro[07]) /////////////////// // JOIN VZO // /////////////////// cQuery += "JOIN "+cNamVZO+" VZO ON ( " cQuery += "VZO.VZO_FILIAL='"+cFilVZO+"' AND " cQuery += "VZO.VZO_CLIENT=SF2.F2_CLIENTE AND VZO.VZO_LOJA=SF2.F2_LOJA AND " cQuery += "VZO.VZO_TIPO='"+aFiltro[07]+"' AND VZO.D_E_L_E_T_=' ' )" EndIf If cTipo == "ANA" // Analitico /////////////////// // LEFT JOIN VS1 // /////////////////// cQuery += "LEFT JOIN "+cNamVS1+" VS1 ON ( " cQuery += "VS1.VS1_FILIAL='"+cFilVS1+"' AND " cQuery += "VS1.VS1_NUMNFI=SD2.D2_DOC AND VS1.VS1_SERNFI=SD2.D2_SERIE AND VS1.D_E_L_E_T_=' ' ) " /////////////////// // LEFT JOIN VOO // /////////////////// cQuery += "LEFT JOIN "+cNamVOO+" VOO ON ( " cQuery += "VOO.VOO_FILIAL='"+cFilVOO+"' AND " cQuery += "VOO.VOO_NUMNFI=SD2.D2_DOC AND VOO.VOO_SERNFI=SD2.D2_SERIE AND VOO.D_E_L_E_T_=' ' ) " EndIf If cTipo == "TPTT" // Oficina - Tipo de Publico / Tipo de Tempo /////////////////// // LEFT JOIN VOO // /////////////////// cQuery += "LEFT JOIN "+cNamVOO+" VOO ON ( " cQuery += "VOO.VOO_FILIAL='"+cFilVOO+"' AND " cQuery += "VOO.VOO_NUMNFI=SD2.D2_DOC AND VOO.VOO_SERNFI=SD2.D2_SERIE AND VOO.D_E_L_E_T_=' ' ) " /////////////////// // LEFT JOIN VOI // /////////////////// cQuery += "LEFT JOIN "+cNamVOI+" VOI ON ( " cQuery += "VOI.VOI_FILIAL='"+cFilVOI+"' AND " cQuery += "VOI.VOI_TIPTEM=VOO.VOO_TIPTEM AND VOI.D_E_L_E_T_=' ' ) " EndIf
/////////////////// // LEFT JOIN VE1 // /////////////////// cQuery += "LEFT JOIN "+cNamVE1+" VE1 ON ( " cQuery += "VE1.VE1_FILIAL='"+cFilVE1+"' AND " cQuery += "VE1.VE1_CODMAR=SBM.BM_CODMAR AND VE1.D_E_L_E_T_=' ' ) "
/////////////////// // WHERE // /////////////////// cQuery += "WHERE " cQuery += "SD2.D2_FILIAL='"+cFilSD2+"' AND " If Empty(aFiltro[18]) // Todas os Dias do Periodo cQuery += "SD2.D2_EMISSAO>='"+dtos(aFiltro[01])+"' AND SD2.D2_EMISSAO<='"+dtos(aFiltro[02])+"' AND " Else // Dia selecionado cQuery += "SD2.D2_EMISSAO='"+dtos(ctod(aFiltro[18]))+"' AND " EndIf If !Empty(aFiltro[10]) // Grupo do Item do Filtro cQuery += "SD2.D2_GRUPO IN "+cFiltGrupo+" AND " Else If !Empty(aFiltro[19]) // Grupo do Item selecionado cQuery += "SD2.D2_GRUPO='"+aFiltro[19]+"' AND " EndIf EndIf If !Empty(aFiltro[11]) // Codigo do Item do Filtro cQuery += "SB1.B1_CODITE='"+aFiltro[11]+"' AND " Else If !Empty(aFiltro[20]) // Grupo + Codigo do Item selecionado cQuery += "SD2.D2_GRUPO='"+left(aFiltro[20],TamSx3("D2_GRUPO")[1])+"' AND " cQuery += "SB1.B1_CODITE='"+substr(aFiltro[20],(TamSx3("D2_GRUPO")[1]+1))+"' AND " EndIf EndIf If !Empty(aFiltro[08]) // Codigo do Cliente cQuery += "SD2.D2_CLIENTE='"+aFiltro[08]+"' AND " EndIf If !Empty(aFiltro[09]) // Loja do Cliente cQuery += "SD2.D2_LOJA='"+aFiltro[09]+"' AND " EndIf If !Empty(aFiltro[16]) // Vendedor cQuery += "SF2.F2_VEND1 = '"+aFiltro[16]+"' AND " EndIf If !Empty(aFiltro[17]) // Marca If Alltrim(aFiltro[17]) == "-" cQuery += "VE1.VE1_CODMAR IS NULL AND " Else cQuery += "VE1.VE1_CODMAR = '"+aFiltro[17]+"' AND " EndIf EndIf
//Este ponto de entrada deverá possibilitar a alteração da clausula 'WHERE' no levantamento das vendas. if ExistBlock("OFC470FIL") cQuery := ExecBlock("OFC470FIL",.f.,.f., {cQuery}) EndIf
|
Programa Fonte: | OFIOC470 |
Função: | FS_MONTAVET |
Retorno: | cQuery - Query alterada |
Exemplo:
User Function OFC470FIL()
cQuery := ParamIxb[01]
MsgInfo("Ponto de entrada OFC470FIL executado com sucesso!")
Return(cQuery)