Histórico da Página
Ponto de Entrada
Descrição: | Este ponto de entrada possibilita o usuário realizar alterações na query do levantamento das devoluções. | ||||||||
Localização: | Relatórios\ Gerencial\ Painel Venda Peças (OFIOC470) | ||||||||
Eventos: | //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ SQL DEVOLUCOES - SELECT ( Filiais / Dias / Grupos / Itens ) ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If aFiltro[13] <> STR0020 // devolucoes diferente de ( nao considerar ) If aFiltro[13] == STR0021 // Devolucoes referente ao Periodo ( do Periodo ) aNFsDev := {} aAdd(aNFsDev,{"","",""}) // Considerar Todas as devolucoes dentro do Periodo EndIf For nDev := 1 to len(aNFsDev) /////////////////// // CAMPOS SQL // /////////////////// cQuery := "SELECT SD1.D1_LOJA, SD1.D1_FORNECE, SD1.D1_DOC, SD1.D1_SERIE, SD1.D1_FILIAL , SF4.F4_SITTRIB , SD1.D1_TOTAL , SD1.D1_VALIPI , SD1.D1_DESPESA , SD1.D1_SEGURO , " cQuery += "SD1.D1_QUANT , SD1.D1_ICMSRET , SD1.D1_VALFRE , SD1.D1_VALICM , SD1.D1_VALIMP5 , " cQuery += "SD1.D1_VALIMP6 , SD1.D1_VALDESC , SD1.D1_CUSTO , SF2.F2_PREFORI , SF2.F2_EMISSAO , SD2.D2_ICMSRET, SD2.D2_COD , SD2.D2_VALICM, SD2.D2_QUANT, SA1.A1_EST " Do Case Case cTipo == "FIL" cQuery += ", SD1.D1_FILIAL " Case cTipo == "DIA" cQuery += ", SD1.D1_DTDIGIT " Case cTipo == "GRP" // Grupos cQuery += ", SD1.D1_GRUPO , SBM.BM_DESC " Case cTipo == "ITE" // Itens cQuery += ", SD1.D1_GRUPO , SB1.B1_CODITE , SB1.B1_DESC " Case cTipo == "ANA" // Analitico cQuery += ", SD1.D1_FILIAL , SD1.D1_NFORI , SD1.D1_SERIORI , SD1.D1_COD , VS1.VS1_NUMORC , VOO.VOO_NUMOSV , VOO.VOO_TIPTEM " Case cTipo == "TPTT" // Oficina - Tipo de Publico / Tipo de Tempo cQuery += ", SD1.D1_FILIAL , SD1.D1_NFORI , SD1.D1_SERIORI , SD1.D1_COD , VOI.VOI_SITTPO , VOI.VOI_DESTTE , VOO.VOO_TIPTEM " 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 SD1 // /////////////////// cQuery += "FROM "+cNamSD1+" SD1 " /////////////////// // JOIN SF2 // /////////////////// cQuery += "JOIN "+cNamSF2+" SF2 ON " cQuery += "( SF2.F2_FILIAL=SD1.D1_FILIAL AND SF2.F2_DOC=SD1.D1_NFORI AND SF2.F2_SERIE=SD1.D1_SERIORI 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 SD2 // /////////////////// cQuery += "JOIN "+cNamSD2+" SD2 ON " cQuery += "( SD2.D2_FILIAL=SF2.F2_FILIAL AND SD2.D2_DOC=SF2.F2_DOC AND SD2.D2_SERIE=SF2.F2_SERIE AND SD2.D2_COD=SD1.D1_COD AND SD2.D_E_L_E_T_=' ' ) " ////////////////////// // JOIN SF4 ENTRADA // ////////////////////// cQuery += "JOIN "+cNamSF4+" SF4 ON ( " cQuery += "SF4.F4_FILIAL='"+cFilSF4+"' AND " cQuery += "SF4.F4_CODIGO=SD1.D1_TES AND SF4.F4_OPEMOV='09' AND SF4.D_E_L_E_T_=' ' ) " // F4_OPEMOV='09' -> Devolucao
//////////////////// // JOIN SF4 SAIDA // //////////////////// cQuery += "JOIN "+cNamSF4+" SF4SAI ON ( " cQuery += "SF4SAI.F4_FILIAL='"+cFilSF4+"' AND " cQuery += "SF4SAI.F4_CODIGO=SD2.D2_TES AND SF4SAI.F4_OPEMOV='05' AND SF4SAI.D_E_L_E_T_=' ' ) " // Devolução de Venda
/////////////////// // JOIN SBM // /////////////////// cQuery += "JOIN "+cNamSBM+" SBM ON ( " cQuery += "SBM.BM_FILIAL='"+cFilSBM+"' AND " cQuery += "SBM.BM_GRUPO=SD1.D1_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=SD1.D1_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=SD1.D1_NFORI AND VS1.VS1_SERNFI=SD1.D1_SERIORI 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=SD1.D1_NFORI AND VOO.VOO_SERNFI=SD1.D1_SERIORI 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=SD1.D1_NFORI AND VOO.VOO_SERNFI=SD1.D1_SERIORI 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 " If Empty(aNFsDev[nDev,2]) // Considerar Todas as devolucoes dentro do Periodo cQuery += "SD1.D1_FILIAL='"+cFilSD1+"' AND " If Empty(aFiltro[18]) // Todas os Dias do Periodo cQuery += "SD1.D1_DTDIGIT>='"+dtos(aFiltro[01])+"' AND SD1.D1_DTDIGIT<='"+dtos(aFiltro[02])+"' AND " Else // Dia selecionado cQuery += "SD1.D1_DTDIGIT='"+dtos(ctod(aFiltro[18]))+"' AND " EndIf Else // Somente a Devolucao referente a venda NF+SERIE cQuery += "SD1.D1_FILIAL='"+aNFsDev[nDev,1]+"' AND SD1.D1_NFORI='"+aNFsDev[nDev,2]+"' AND SD1.D1_SERIORI='"+aNFsDev[nDev,3]+"' AND " EndIf If !Empty(aFiltro[10]) // Grupo do Item do Filtro cQuery += "SD1.D1_GRUPO IN "+cFiltGrupo+" AND " Else If !Empty(aFiltro[19]) // Grupo do Item selecionado cQuery += "SD1.D1_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 += "SD1.D1_GRUPO='"+left(aFiltro[20],TamSx3("D1_GRUPO")[1])+"' AND " cQuery += "SB1.B1_CODITE='"+substr(aFiltro[20],(TamSx3("D1_GRUPO")[1]+1))+"' AND " EndIf EndIf If !Empty(aFiltro[08]) // Codigo do Cliente cQuery += "SD1.D1_FORNECE='"+aFiltro[08]+"' AND " EndIf If !Empty(aFiltro[09]) // Loja do Cliente cQuery += "SD1.D1_LOJA='"+aFiltro[09]+"' AND " EndIf If !Empty(aFiltro[16]) // Vendedor cQuery += "SF2.F2_VEND1 = '"+aFiltro[16]+"' AND " EndIf If !Empty(aFiltro[17]) // Marca If 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 devoluções. if ExistBlock("OFC470FDV") cQuery := ExecBlock("OFC470FDV",.f.,.f., {cQuery}) EndIf // cQuery += "SD1.D_E_L_E_T_=' ' ORDER BY " | ||||||||
Programa Fonte: | OFIOC470.PRW | ||||||||
Função: | FS_MONTAVET() | ||||||||
Parâmetros: |
| ||||||||
Retorno: |
|
Exemplo:
#Include 'Protheus.ch'
// Este ponto de entrada deverá possibilitar o cliente de realizar alterações na query do levantamento das devoluções.
User Function OFC470FDV()
cQuery := ParamIxb[01]
MsgInfo("Ponto de entrada OFC470FDV executado com sucesso!")
Return(cQuery)