Árvore de páginas

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)