Á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:Emissão de Faturas - JURA203


02. PONTO DE ENTRADA

Descrição:

Este ponto de entrada permite informar adiantamentos pré-cadastrados para uso na emissão de fatura

Localização:

Atualizações - Movimentações - Emissão de Fatura

Programa Fonte:

JURA203

Função:

J203UTIADI

Ponto de Entrada:J203ADIJ203ADT
Parâmetros:



Nome

Tipo

Descrição

Obrigatório

PARAMIXBarray

Array com 4 posições

NomeTipoDescrição
PARAMIXB[1]caractereCódigo do escritório da fatura
PARAMIXB[2]caractereCódigo da fatura
PARAMIXB[3]caractereCódigo da fila de emissão da fatura
PARAMIXB[4]numéricoValor líquido da fatura
Sim



Retorno:



Nome

Tipo

Descrição

Obrigatório

aRetorno

Array

Array com 2 posições

NomeTipoDescrição
aRetorno[1]Lógico

Se verdadeiro irá utilizar somente os adiantamentos informados via ponto de entrada. 

Se falso, além de usar os adiantamentos informados via ponto de entrada também utilizará os demais adiantamentos disponíveis cadastrados no sistema caso a fatura possuir saldo.

aRetorno[2]arrayArray multidimensional com dados dos adiantamentos que serão utilizados, respeitando a estrutura abaixo:
aRetorno[2][n][1]numéricoRecno da registro de adiantamento (NWF)
aRetorno[2][n][2]numéricoRecno da registro título de adiantamento (SE1)
aRetorno[2][n][3]numéricoValor a ser utilizado do adiantamento
aRetorno[2][n][4]lógicoSe verdadeiro permite que o usuário utilize o saldo residual do adiantamento caso existir
Sim




03. EXEMPLO

#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "PARMTYPE.CH"

//-------------------------------------------------------------------
/*/{Protheus.doc} J203Adt
Ponto de entrada para utilização de adiantamentos na emissão de fatura

@param PARAMIXB, array   , Parâmetros do ponto de entrada
    PARAMIXB[1], caracter, Código do Escritório da Fatura
    PARAMIXB[2], caracter, Código da Fatura
    PARAMIXB[3], caracter, Código da Fila de Emissão da Fatura
    PARAMIXB[4], numérico, Valor Total da Fatura

@author TOTVS
@since  19/03/2020
/*/
//-------------------------------------------------------------------
User Function J203Adt()
    Local aArea          := GetArea()
    Local aAreaNXA  := NXA->(GetArea())
    Local cEscrit        := ""
    Local cNumFat    := ""
    Local cFila           := ""
    Local nVlFatura   := 0
    Local cCliente     := 0
    Local cLojaCli     := 0
    Local aAdtUser   := {}
    Local aRetorno   := {}

    If ValType( PARAMIXB ) == "A"
        cEscrit   := PARAMIXB[1]
        cNumFat   := PARAMIXB[2]
        cFila     := PARAMIXB[3]
        nVlFatura := PARAMIXB[4]

        //----------------------
        // Posiciona na fautura
        //----------------------
        NXA->( DBSetOrder(1) ) // NXA_FILIAL + NXA_ESCRIT + NXA_COD
        If NXA->( DbSeekxFilial("NXA") + cEscrit + cNumFat ) )
            cCliente := NXA->NXA_CCLIEN
            cLojaCli := NXA->NXA_CLOJA
            //--------------------------------
            // Encontra adiantamentos válidos
            //--------------------------------
            aAdtUser := BuscaAdt( cCliente, cLojaCli )
        EndIf
    EndIf

    aRetorno := { .F., aAdtUser }

    RestArea(aAreaNXA)
    RestArea(aArea)

Return (aRetorno)

//===========================================================
Static Function BuscaAdt(cClientecLojaCli)
    Local cAlsTmp   := GetNextAlias()
    Local cPrefAdt   := PadRSuperGetMV("MV_JADTPRF".F.""  ), TamSX3("E1_PREFIXO")[1] )
    Local cTipoAdt  := PadRSuperGetMV("MV_JADTTP" , .F."RA"), TamSX3("E1_TIPO")[1]    )
    Local cParcAdt   := PadRSuperGetMV("MV_JADTPAR".F.""  ), TamSX3("E1_PARCELA")[1] )
    Local lResiduo   := .F.
    Local aAdtUser  := {}

    BeginSql Alias cAlsTmp
        SELECT NWF.R_E_C_N_O_ RECNOADTSE1.R_E_C_N_O_ RECNOTITSE1.E1_SALDO VALOR
          FROM %Table:NWF% NWF
         INNER JOIN %Table:SE1% SE1
            ON SE1.E1_FILIAL  = %xFilial:SE1%
           AND SE1.E1_CLIENTE = NWF.NWF_CCLIEN
           AND SE1.E1_LOJA    = NWF.NWF_CLOJA
           AND SE1.E1_PREFIXO = %Exp:cPrefAdt%
           AND SE1.E1_NUM     = NWF.NWF_TITULO
           AND SE1.E1_PARCELA = %Exp:cParcAdt%
           AND SE1.E1_TIPO    = %Exp:cTipoAdt%
           AND SE1.E1_ORIGEM  = 'JURA069'
           AND SE1.E1_SALDO   > 0 // Aditamentos com saldo
           AND SE1.%NotDel%
         WHERE NWF.NWF_FILIAL = %xFilial:NWF%
           AND NWF.NWF_CCLIEN = %Exp:cCliente%
           AND NWF.NWF_CLOJA  = %Exp:cLojaCli%
           AND NWF.NWF_TITGER = '1' // Somente adiantamentos com títulos gerados
           AND NWF.%NotDel%
    EndSql

    While (cAlsTmp)->( !EOF() )
        Aadd( aAdtUser, { (cAlsTmp)->RECNOADT, (cAlsTmp)->RECNOTIT, 100, lResiduo } )
        (cAlsTmp)->( DbSkip() )
    End

    (cAlsTmp)->(DbCloseArea())

Return (aAdtUser)

Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>