Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
titleExemplo: LOCA021Q
linenumberstrue
/*/{PROTHEUS.DOC} LOCA021Q.PRW
TOTVS RENTAL - módulo 94
Esta função tem por finalidade o complemento de campos na seleção dos orçamentos que serão faturados.
No faturamento automático LOCA021 no parâmetro 14 indicamos utilizaremos a seleção de orçamentos para realizar o faturamento.
Além das colunas previamente apresentadas, quando aplicado este ponto de entrada, completamos com os campos aqui descritos
Este ponto de entrada deve funcionar em conjunto com o ponto de entrada LOCA021Q
O LOCA021P são os dados que serão apresentados e o LOCA021Q é no nome das novas colunas
Card 428 sprint Bug
@TYPE FUNCTION
@AUTHOR Frank Zwarg Fuga
@SINCE 13/07/2022
/*/

user function LOCA021Q
Local _ntipo := ParamIxb[1] // 1 locação, 3 custo extra
Local _aCompleX := {}
If _nTipo == 1 // locação
	// Título das novas colunas.
	aadd(_aCompleX,{"Coluna1","Coluna2","Coluna3","Coluna4","Coluna5"})
Else // custo extra
	// Título das novas colunas.
	aadd(_aCompleX,{"Coluna1","Coluna2"})
EndIF
Return _aComplex



LOCA021S

Ponto-de-entradaLOCA21S
VersõesMicrosiga Protheus 12
Compatível PaísesBrasil
Sistemas OperacionaisTodos
Compatível às bases de dadosMsSQL
Nível de acessoNível 1 (Acesso Clientes)
IdiomasPortuguês
Fonte utilizadoLOCA021 - Faturamento Automatico


Descrição: Permite customizar a geração do arquivo Temporario que contem os itens da FPA (itens do contrato de Locação) que estão aptos a serem faturados.

Parâmetros de entrada:

    nenhum

Retorno:

    Arquvo TMP gerado


Exemplo de Ponto de Entrada desenvolvido: 
Atentar no exemplo para os campos que devem ser retornados para query, manter os nomes mas podem alterar as posições. Verificar as variaveis usadas coomo parametros da query, elas não devem ser alteradas.

#INCLUDE "PROTHEUS.CH"


USER FUNCTION LOCA021S()

Local _cQuery := ""
Local _nX
LOCAL LFATAND     := SUPERGETMV("MV_LOCX209" ,.F.,.T.)
LOCAL LFATLOC     := SUPERGETMV("MV_LOCX210" ,.F.,.F.)

    _cQuery := " SELECT ZAG.R_E_C_N_O_ ZAGRECNO, FP1.R_E_C_N_O_ FP1RECNO, ZA0.R_E_C_N_O_ ZA0RECNO, SB1.R_E_C_N_O_ SB1RECNO, SA1.R_E_C_N_O_ SA1RECNO, ISNULL(ST9.R_E_C_N_O_,0) ST9RECNO, FPA_PROJET , FPA_CONPAG "
    _cQuery += " FROM "+RETSQLNAME("FPA")+" ZAG (NOLOCK) "
    _cQuery += " JOIN "+RETSQLNAME("SB1")+" SB1 (NOLOCK) ON B1_FILIAL ='"+XFILIAL("SB1")+"' AND SB1.D_E_L_E_T_ = '' AND B1_COD = FPA_PRODUT "
    _cQuery += " LEFT  JOIN "+RETSQLNAME("ST9")+" ST9 (NOLOCK) ON T9_FILIAL ='"+XFILIAL("ST9")+"' AND ST9.D_E_L_E_T_ = '' AND T9_CODBEM = FPA_GRUA "
    _cQuery += " JOIN "+RETSQLNAME("FP0")+" ZA0 (NOLOCK) ON FP0_FILIAL='"+XFILIAL("FP0")+"' AND ZA0.D_E_L_E_T_ = '' AND FP0_PROJET = FPA_PROJET "
    _cQuery += " JOIN "+RETSQLNAME("FP1")+" FP1 (NOLOCK) ON FP1_FILIAL='"+XFILIAL("FP1")+"' AND FP1.D_E_L_E_T_  = ' ' AND FP1_PROJET = FPA_PROJET AND FP1_OBRA = FPA_OBRA "
    _cQuery += " JOIN "+RETSQLNAME("SA1")+" SA1 (NOLOCK) ON A1_FILIAL ='"+XFILIAL("SA1")+"' AND SA1.D_E_L_E_T_ = ' ' AND A1_COD = FP0_CLI AND A1_LOJA = FP0_LOJA "
    _cQuery += " INNER JOIN "+RETSQLNAME("FQ5")+" DTQ (NOLOCK) ON FQ5_FILIAL='"+XFILIAL("FQ5")+"' AND DTQ.D_E_L_E_T_ = ' ' AND FQ5_FILORI = FPA_FILIAL AND FQ5_VIAGEM = FPA_VIAGEM AND FQ5_AS = FPA_AS AND FQ5_STATUS = '6' "
    _cQuery += " WHERE FPA_FILIAL = '"+XFILIAL("FPA")+"' "
    _cQuery += " AND FPA_DTFIM <> ' '"
    _cQuery += " AND FPA_DTFIM BETWEEN '"+ DTOS(DPAR01)+"' AND '" + DTOS(DPAR02)+"'"
    IF ! LFATAND
        _cQuery += " AND (FPA_DNFRET = ' ' OR FPA_DNFRET >= '"+ DTOS(DPAR01)+"')"
    ENDIF
    _cQuery     += " AND ((FPA_ULTFAT < '" + DTOS(DPAR02) + "' AND (FPA_ULTFAT <= FPA_DTSCRT OR FPA_DTSCRT = '')) OR FPA_ULTFAT = ' ')"
    _cQuery += " AND FPA_NFREM <> ' '" // Tem que ter nota de Remessa
    IF FPA->(FIELDPOS("FPA_PDESC")) > 0
        _cQuery += " AND  FPA_PDESC < 100"
    ENDIF
    _cQuery += " AND (FPA_TIPOSE <> 'L' OR FPA_GRUA BETWEEN '" + CPAR07 + "' AND '" + CPAR08 +"') "
    _cQuery += " AND FPA_PROJET BETWEEN '" +CPAR09 + "' AND '" + CPAR10 + "' "
            
    If _lTem12 .and. _lTem13
        _cQuery += " AND FPA_PRODUT BETWEEN '"+ CPAR12 + "' AND '" + CPAR13 +"' "
    EndIF
    _cQuery += " AND FPA_GRUA BETWEEN '" + CPAR07' + "' AND '" + CPAR08' + "' "

    IF LFATLOC // Fatura somente Locação 
        _cQuery += " AND FPA_TIPOSE = 'L' "
    ELSE
        _cQuery += " AND FPA_TIPOSE IN ('L','M','Z','O') "
    ENDIF
    
    IF LEN(APRJAS) > 0
        FOR _NX := 1 TO LEN(APRJAS)
            IF EMPTY(_CASS)
                _CASS := "'"   + APRJAS[_NX]
            ELSE
                _CASS += "','" + APRJAS[_NX]
            ENDIF
            IF _NX == LEN(APRJAS)
                _CASS += "'"
            ENDIF
        NEXT _NX
        _cQuery += " AND  FPA_AS IN (" +_CASS + ") "
    ENDIF
    _cQuery += " AND  ZAG.D_E_L_E_T_ = '' "
    If FPA->(ColumnPos("FPA_CLIFAT")) > 0
        _cQuery += " ORDER BY     FPA_PROJET, FPA_OBRA,  "
        _cQuery += " FPA_CLIFAT DESC , FPA_LOJFAT, FPA_AS, FPA_CONPAG"  
    Else
        _cQuery += " ORDER BY FPA_PROJET , FPA_AS, FPA_CONPAG " 
    EndIf
    _cQuery := CHANGEQUERY(_cQuery)

    DBUSEAREA(.T. , "TOPCONN" , TCGENQRY(,,_cQuery) , "TMP" , .F. , .T.)

RETURN


...

Pontos de entradas do LOCA024.PRW (Gerenciamento de bens)

...