Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ponto de Entrada - LjRAQryO

Este Ponto de Entrada é executado na rotina LJRetailApp , para considerar a query do cliente para ser executada e enviar os dados das vendas.

Descrição:

Miscelânea\RetailApp

Eventos:

Integração Protheus x RetailApp

Programa Fonte:

LJRetailApp

Função:

Protheus

Parâmetos:

Nome

Tipo

Descrição

cBeginDate 

 Caractere

Data inicial usada no filtro das vendas
cFiliaisCaractereFiliais usadas no filtro das vendas

Retorno:

Nome

Tipo

Descrição

Obrigatório

 cQuery

 Caractere

String com a query a ser executada pelo programa padrão.

Importante: retornar a query com os nomes do campo igual do programa padrão: D2DESCON, D2_DOC, D2_SERIE, D2_COD, QTDE, TOTAL, D2_EMISSAO, F2_HORA, D2_FILIAL, F2_VEND1, D2_GRUPO, D2_CLIENTE, D2_LOJA, 'SD2' ALIAS, SB1.B1_DESC DESCRICAO

Sim 

 

Exemplo:

#Include 'Protheus.ch'

User Function LjRAQryO()
Local aArea := GetArea()
Local cDtIni:= ParamIxb[1]
Local cFiliais:= ParamIxb[2]
Local cQuery := ""

cQuery := "SELECT SUM(D2_DESCON) D2DESCON, D2_DOC DOC, D2_SERIE SERIE, D2_COD COD, SUM(D2_QUANT) QTDE, SUM(D2_TOTAL) TOTAL, D2_EMISSAO EMISSAO, F2_HORA HORA, D2_FILIAL FILIAL, F2_VEND1, D2_GRUPO GRUPO, D2_CLIENTE CLIENTE, D2_LOJA LOJA, 'SD2' ALIAS, SF2.R_E_C_N_O_ RECNO, SB1.B1_DESC DESCRICAO"
cQuery += " FROM " + RetSqlName('SD2') + " SD2"
cQuery += " INNER JOIN " + RetSqlName('SF2') + " SF2 ON SD2.D2_FILIAL = SF2.F2_FILIAL AND SD2.D2_DOC = SF2.F2_DOC AND SD2.D2_SERIE = SF2.F2_SERIE AND SD2.D2_CLIENTE = SF2.F2_CLIENTE AND SD2.D2_LOJA = SF2.F2_LOJA"

cQuery += " LEFT JOIN " + RetSqlName('SB1') + " SB1 ON SB1.B1_FILIAL = '" + xFilial('SB1') + "' AND SD2.D2_COD = SB1.B1_COD"
cQuery += " WHERE "

cQuery += " (SF2.F2_NFCUPOM = ' ' OR SF2.F2_ESPECIE IN ('CF','ECF','NFCE','SATCE')) AND " //FILTRO SOMENTE AS NOTAS DAS VENDAS (EXCLUINDO AS NOTAS SOBRE CUPONS)

cQuery += " SD2.D2_DOC <> ' ' AND SD2.D2_EMISSAO >= '" + cBeginDate + "' AND SD2.D2_TES IN (" + LjQueryIN(cTes) + ")"
cQuery += " AND SD2.D2_TIPO = 'N' AND SD2.D_E_L_E_T_ = ' ' AND SF2.D_E_L_E_T_ = ' ' "
cQuery += " GROUP BY D2_DOC, D2_SERIE, D2_COD, D2_EMISSAO, F2_HORA, D2_FILIAL, F2_VEND1, D2_GRUPO, D2_CLIENTE, D2_LOJA, SF2.R_E_C_N_O_, SB1.B1_DESC "

cQuery += " UNION ALL "

cQuery += " SELECT SUM(D1_VALDESC) D2DESCON, D1_DOC DOC, D1_SERIE SERIE, D1_COD COD, SUM(D1_QUANT) QTDE, SUM(D1_TOTAL) TOTAL, D1_EMISSAO EMISSAO, F1_HORA HORA, D1_FILIAL FILIAL, F2_VEND1, D1_GRUPO GRUPO, D1_FORNECE CLIENTE, D1_LOJA LOJA, 'SD1' ALIAS, SF1.R_E_C_N_O_ RECNO, SB1.B1_DESC DESCRICAO"
cQuery += " FROM " + RetSqlName('SD1') + " SD1"
cQuery += " INNER JOIN " + RetSqlName('SF1') + " SF1 ON SD1.D1_FILIAL = SF1.F1_FILIAL AND SD1.D1_DOC = SF1.F1_DOC AND SD1.D1_SERIE = SF1.F1_SERIE AND SD1.D1_FORNECE = SF1.F1_FORNECE AND SD1.D1_LOJA = SF1.F1_LOJA AND SF1.D_E_L_E_T_ = ' '"
cQuery += " INNER JOIN " + RetSqlName('SD2') + " SD2 ON SD1.D1_FILORI = SD2.D2_FILIAL AND SD1.D1_NFORI = SD2.D2_DOC AND SD1.D1_SERIORI = SD2.D2_SERIE AND SD1.D1_ITEMORI = SD2.D2_ITEM AND SD1.D1_COD = SD2.D2_COD AND SD2.D_E_L_E_T_ = ' '"
cQuery += " INNER JOIN " + RetSqlName('SF2') + " SF2 ON SD2.D2_FILIAL = SF2.F2_FILIAL AND SD2.D2_DOC = SF2.F2_DOC AND SD2.D2_SERIE = SF2.F2_SERIE AND SD2.D2_CLIENTE = SF2.F2_CLIENTE AND SD2.D2_LOJA = SF2.F2_LOJA AND SF2.D_E_L_E_T_ = ' '"

cQuery += " LEFT JOIN " + RetSqlName('SB1') + " SB1 ON SB1.B1_FILIAL = '" + xFilial('SB1') + "' AND SD1.D1_COD = SB1.B1_COD"
cQuery += " WHERE"
cQuery += " SD1.D1_FILIAL IN (" + cFiliais + ") AND "
cQuery += " SD1.D1_EMISSAO >= '" + cBeginDate + "' AND "
cQuery += " SD1.D1_DOC <> ' ' AND "

cQuery += " SD1.D1_TIPO = 'D' AND "
cQuery += " SD1.D_E_L_E_T_ = ' ' "
cQuery += " GROUP BY D1_DOC, D1_SERIE, D1_COD, D1_EMISSAO, F1_HORA, D1_FILIAL, F2_VEND1, D1_GRUPO, D1_FORNECE, D1_LOJA, SF1.R_E_C_N_O_, SB1.B1_DESC "
cQuery += " ORDER BY FILIAL, EMISSAO"


RestArea(aArea)

Return cQuery