Árvore de páginas

Versões comparadas

Chave

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

 Tempo aproximado para leitura: 05 min

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Jurídico
Módulo:

Pré-faturamento de Serviços - SIGAPFS

Função:Controle de Adiantamentos - JURA069


02. PONTO DE ENTRADA

Descrição:

Este ponto de entrada pertence à rotina de Controle de Adiantamentos (JURA069). Usado para complemento da query de validação e filtro de clientes e escritórios elegíveis no adiantamento.

Localização:

Módulo SIGAPFS 

Atualizações >> Movimentações >> Controle de Adiantamentos

Programa Fonte:

JURA069

Função:

J069QryFil

Ponto de Entrada:

J069QRY

Parâmetros:

  

Nome

Tipo

Descrição

Obrigatório

PARAMIXBarray

Array multidimensional 

NomeTipoDescrição
PARAMIXB[1]caractere

Query padrão de validação e filtro de cliente e escritório

PARAMIXB[2]caractere

Tipo da validação --> 1 - Cliente / 2 - Escritório

Sim



Retorno:

 

Nome

Tipo

Descrição

Obrigatório

cQueryAd

caractere

Query complementar para filtro de cliente ou escritório (conforme PARAMIXB[2]). Esse retorno será concatenado no final da query original enviada por parâmetro (PARAMIXB[1]).

Para complementos utilizando UNION, se atentar para a estrutura do SELECT, conforme exemplos abaixo (O exemplo de query no item 03. Exemplo atende a esses requisitos):

  • Em caso de filtros de clientes, a estrutura é: SELECT SA1.A1_COD, SA1.A1_LOJA, SA1.A1_NOME, SA1.R_E_C_N_O_ SA1RECNO;

  • Em caso de filtros de escritório, a estrutura é: SELECT NS7.NS7_COD, NS7.NS7_NOME, NS7.R_E_C_N_O_ NS7RECNO.
Sim




03. EXEMPLO

#INCLUDE "RWMAKE.ch"
#INCLUDE "PROTHEUS.ch"

//-------------------------------------------------------------------
/*/{Protheus.doc} J069QRY
Ponto de Entrada para complemento da query de validação e filtro de
clientes e escritórios elegíveis no adiantamento.

O trecho de query que este Ponto de Entrada retorna será concatenado
no final da query padrão de validação (cQueryPad).
/*/
//-------------------------------------------------------------------
User Function J069QRY()
Local cQueryPad := PARAMIXB[1] // Query padrão de validação e filtro
Local cTipo     := PARAMIXB[2] // Tipo da validação --> 1 - Cliente / 2 - Escritório
Local cQueryAd  := ""
Local cPreFat   := "" // Pré-fatura para filtro       - Usado quando o cTipo = 1 - Cliente
Local cFatAdc   := "" // Fatura Adicional para filtro - Usado quando o cTipo = 1 - Cliente
Local cFixo     := "" // Parcela de Fixo para filtro  - Usado quando o cTipo = 1 - Cliente
Local cEscrit   := "" // Escritório para filtro       - Usado quando o cTipo = 2 - Escritório

    If cTipo == "1" // Cliente

        If !Empty(cPreFat)
            cQueryAd +=  " UNION " // Pagadores da Pré-Fatura que gerou a fatura
            cQueryAd += " SELECT SA1.A1_COD, SA1.A1_LOJA, SA1.A1_NOME, SA1.R_E_C_N_O_ SA1RECNO "
            cQueryAd +=   " FROM " + RetSqlName("SA1") + " SA1 "
            cQueryAd +=  " INNER JOIN " + RetSqlName("NXG") + " NXG "
            cQueryAd +=     " ON NXG.NXG_FILIAL = '" + xFilial("NXG") + "'"
            cQueryAd +=    " AND NXG.NXG_CLIPG = SA1.A1_COD "
            cQueryAd +=    " AND NXG.NXG_LOJAPG = SA1.A1_LOJA "
            cQueryAd +=    " AND NXG.NXG_CPREFT = '" + cPreFat + "'"
            cQueryAd +=    " AND NXG.D_E_L_E_T_ = ' ' "
            cQueryAd +=  " WHERE SA1.D_E_L_E_T_ = ' ' "
        EndIf

        If !Empty(cFatAdc)
            cQueryAd +=  " UNION " // Pagadores da Fatura Adicional que gerou a fatura
            cQueryAd += " SELECT SA1.A1_COD, SA1.A1_LOJA, SA1.A1_NOME, SA1.R_E_C_N_O_ SA1RECNO "
            cQueryAd +=   " FROM " + RetSqlName("SA1") + " SA1 "
            cQueryAd +=  " INNER JOIN " + RetSqlName("NXG") + " NXG "
            cQueryAd +=     " ON NXG.NXG_FILIAL = '" + xFilial("NXG") + "'"
            cQueryAd +=    " AND NXG.NXG_CLIPG = SA1.A1_COD "
            cQueryAd +=    " AND NXG.NXG_LOJAPG = SA1.A1_LOJA "
            cQueryAd +=    " AND NXG.NXG_CFATAD = '" + cFatAdc + "'"
            cQueryAd +=    " AND NXG.D_E_L_E_T_ = ' ' "
            cQueryAd +=  " WHERE SA1.D_E_L_E_T_ = ' ' "
        EndIf

        If !Empty(cFixo)
            cQueryAd +=  " UNION " // Pagadores da parcela fixa que gerou a fatura
            cQueryAd += " SELECT SA1.A1_COD, SA1.A1_LOJA, SA1.A1_NOME, SA1.R_E_C_N_O_ SA1RECNO "
            cQueryAd +=   " FROM " + RetSqlName("SA1") + " SA1 "
            cQueryAd +=  " INNER JOIN " + RetSqlName("NXG") + " NXG "
            cQueryAd +=     " ON NXG.NXG_FILIAL = '" + xFilial("NXG") + "'"
            cQueryAd +=    " AND NXG.NXG_CLIPG = SA1.A1_COD "
            cQueryAd +=    " AND NXG.NXG_LOJAPG = SA1.A1_LOJA "
            cQueryAd +=    " AND NXG.NXG_CFIXO = '" + cFixo + "'"
            cQueryAd +=    " AND NXG.D_E_L_E_T_ = ' ' "
            cQueryAd +=  " WHERE SA1.D_E_L_E_T_ = ' ' "
        EndIf

    ElseIf cTipo == "2" // Escritório

        cQueryAd +=  " UNION "
        cQueryAd += " SELECT NS7.NS7_COD, NS7.NS7_NOME, NS7.R_E_C_N_O_ NS7RECNO "
        cQueryAd +=   " FROM " + RetSqlName("NS7") + " NS7 "
        cQueryAd +=  " WHERE NS7.NS7_COD = '" + cEscrit + "' "
        cQueryAd +=    " AND NS7.NS7_ATIVO = '1' "
        cQueryAd +=    " AND NS7.D_E_L_E_T_ = ' ' "

    EndIf

Return cQueryAd


Templatedocumentos