Á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:Geração de arquivos E-billing 1998B e 1998BI - TXT - LEDES98


02. PONTO DE ENTRADA

Descrição:

Este ponto de entrada permite a alteração dos campos usados no preenchimento das informações do arquivo e-billing 1998B e 1998B Internacional.

Localização:

Atualizações >> Movimentações >> E-billing LEDES 1998B

Programa Fonte:

LEDES98

Função:

MontaCabec

Ponto de Entrada:LEDES98Es
Parâmetros:

Nome

Tipo

Descrição

Obrigatório

PARAMIXBarray

Array com 4 7 posições

NomeTipoDescrição
PARAMIXB[1]caractereLógicoIndica se o e-billing é o 1998BI (internacional)Código do escritório da fatura
PARAMIXB[2]caractereArray*Estrutura dos Dados de HonoráriosCódigo da fatura
PARAMIXB[3]caractereArray*Estrutura dos Dados de DespesasCódigo da fila de emissão da fatura
PARAMIXB[4]numéricoValor líquido da fatura
Sim
Retorno:
Array*Estrutura dos Dados de Lançamentos Tabelados
PARAMIXB[5]Array*Estrutura dos Dados de Descontos ou Acréscimos de Faturas
PARAMIXB[6]Array*Estrutura dos Dados de Impostos
PARAMIXB[7]Array*Estrutura dos Dados da parcela fixa


*Os Arrays de Parâmetros de Entrada/Saída devem possuir a seguinte estrutura:

Nome

Tipo

Descrição

Obrigatório

aRetorno

Array

Array com 2 posições

NomeTipoDescrição
aRetornoaEstru[101]Lógico

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

Quando 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 possua saldo.

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

03. EXEMPLO

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

CaractereCabeçalho do Campo
aEstru[02]Caractere

Tipo do Dado, onde:

F - Fórmula com retorno numérico

" " - Expressão com retorno alpha

C - Campo

aEstru[03]NuméricoTamanho do Campo
aEstru[04]Numérico Decimais do Campo
aEstru[05]CaractereNome do Campo** ou Código da Expressão
aEstru[06]CaractereCampos específicos** 


*Campos utilizados nas querys enviadas aos banco de dados, caso o tipo do campo seja "C" - Será enviada o valor da coluna 5 (Nome do campo); caso contrário, a coluna 6 (Campos específicos).

Para a consulta podem ser utilizados os campos das seguintes tabelas:

DadoTabelas Consultadas
HonoráriosNXA - Faturas
NW0 - Time Sheets Faturamento
NUE - Time Sheets
NVE - Casos
NUR - Complemento do Participante
RD0 - Participantes
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
SYA - Países
NRV - Categoria E-billing
NS0 - Tipo de Atividade de E-billing
NRY - Fase E-billing
NRZ - Tarefa E-billing
DespesasNXA - Faturas
NVZ - Despesa Faturamento
NVY - Despesas
NVE - Casos
NUR - Complemento do Participante
RD0 - Participantes
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
SYA - Países
NS2 - Tipo de Categoria E-billing (De/Para)
NRV - Categoria E-billing
NS4 - Tipo desp E-billing (de-para)
NS3 - Tipo de despesa de E-billing
Lançamentos tabeladosNXA - Faturas
NW4 - Lancamento Tabelado Fatu
NV4 - Lançamentos Tabelados
NVE - Casos
RD0 - Participantes
NUR - Complemento do Participante
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
SYA - Países
NRV - Categoria E-billing
NXO - Serv Tab E-Billing (de/para)
NXN - SERVIÇOS TABELADOS E-BILLING
Acréscimos/DescontosNXA - Faturas
RD0 - Participantes
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
SYA - Países
ImpostosNXA - Faturas
RD0 - Participantes
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
SYA - Países
Fixo

NXA - Faturas
NXB - Contratos da Fatura 
NT0 - Contrato
NT1 - Parcela do Fixo
RD0 - Participantes
NUR - Complemento do Participante
NUH - Complemento do Cliente
NRX - Empresas de E-billing
CTO - Moedas Contábeis
NTQ - Escritório E-Billing
NS7 - Escritórios
NWE - Faturamento do Fixo
NRV - Categoria E-billing
NR2 - Descrição Categoria do Profissional  
NT5- Título do contrato por idioma

Sim



Retorno:

Nome

Tipo

Descrição

Obrigatório

aRetorno

Array

Array com 6 posições

NomeTipoDescrição
aRetorno[1]Array*

Estrutura dos Dados de Honorários, se  retornado vazio é considerado o padrão.

aRetorno[2]Array*Estrutura dos Dados de Despesas, se  retornado vazio é considerado o padrão.
aRetorno[3]Array*Estrutura dos Dados de Lançamentos Tabelados, se  retornado vazio é considerado o padrão.
aRetorno[4]Array*Estrutura dos Dados de Descontos ou Acréscimos de Faturas, se  retornado vazio é considerado o padrão.
aRetorno[5]Array*Estrutura dos Dados de Impostos, se  retornado vazio é considerado o padrão.
aRetorno[6]Array*Estrutura dos Dados das parcelas fixas, se retornado vazio é considerado o padrão.
Sim




03. EXEMPLO

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

User Function Ledes98Es()
Local aCabecHonC := {}
Local aCabecDesC := {}
Local aCabecTabC := {}
Local aCabecAjuC := nil
Local aCabecImpC := nil

Local aCabecFixC := {}

Local l1998BI := .F.
Local nC := 0
Local aRet := {}


If ValType(PARAMIXB) == "A" .AND. Len(PARAMIXB) >= 5 .AND. ValType(PARAMIXB[02]//-------------------------------------------------------------------
/*/{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       l1998BI := PARAMIXB PARAMIXB[101]
        cNumFat       aCabecHonC := PARAMIXB[2]
        cFila     := PARAMIXB[3]
        nVlFatura := PARAMIXB[4]
        //----------------------
        // Posiciona na fatura
 aClone(PARAMIXB[02])
    aCabecDesC := aClone(PARAMIXB[03])
    aCabecTabC := aClone(PARAMIXB[04])

    For nC := 1 to Len(aCabecHonC)
        Do Case 
        Case aCabecHonC[nC, 05] = "RD0_NOME"
            aCabecHonC[nC, 05] := "NUR_APELI"
        Case aCabecHonC[nC, 05] == "EXP21"
            aCabecHonC[nC, 06] := "NUR_APELI"
        Case aCabecHonC[nC, 05] == "EXP22"
            aCabecHonC[nC, 06] := "NUR_APELI"
        EndCase

    Next nC 

    aAdd(aRet, aClone(aCabecHonC)) // Posição 01


    For nC := 1 to Len(aCabecDesC)
        Do Case 
        Case aCabecDesC[nC, 05] = "RD0_NOME"
            aCabecDesC[nC, 05] := "NUR_APELI"
        Case aCabecDesC[nC, 05] == "EXP21"
            aCabecDesC[nC, 06] := "NUR_APELI"
        Case aCabecDesC[nC, 05] == "EXP22"
            aCabecDesC[nC, 06] := "NUR_APELI"
        EndCase
    Next nC 


    aAdd(aRet, aClone(aCabecDesC)) // Posição 02


    For nC := 1 to Len(aCabecTabC)
        Do Case 
        Case aCabecTabC[nC, 05] = "RD0_NOME"
            aCabecTabC[nC, 05] := "NUR_APELI"
        Case aCabecTabC[nC, 05] == "EXP21"
            aCabecTabC[nC, 06] := "NUR_APELI"
        Case aCabecTabC[nC, 05] == "EXP22"
            aCabecTabC[nC, 06] := "NUR_APELI"
        EndCase
    Next nC 


    aAdd(aRet, aClone(aCabecTabC)) // Posição 03

    aAdd(aRet, aClone(aCabecAjuC)) // Posição 04

    aAdd(aRet, aClone(aCabecImpC)) // Posição 05


    If Len(PARAMIXB) >= 7 // Necessário atualização do pacote DJURFAT1-11658
        aCabecFixC := aClone(PARAMIXB[07])
        For nC := 1 to Len(aCabecFixC)
            Do Case 
                Case aCabecFixC[nC, 05] = "RD0_NOME"
                    aCabecFixC[nC, 05] := "NUR_APELI"
                Case aCabecFixC[nC, 05] == "EXP21"
                    aCabecFixC[nC, 06] := "NUR_APELI"
                Case aCabecFixC[nC, 05] == "EXP22"
                    aCabecFixC[nC, 06] := "NUR_APELI"
            EndCase
        Next nC
        aAdd(aRet, aClone(aCabecFixC)) // Posição 06

    EndIf

Else

    aRet := Array(6)
EndIf


Return aRet        //----------------------
        NXA->( DBSetOrder(1) ) // NXA_FILIAL + NXA_ESCRIT + NXA_COD
        If NXA->( DbSeekxFilial("NXA") + cEscrit + cNumFat ) )
            cCliente := NXA->NXA_CCLIPG
            cLojaCli := NXA->NXA_CLOJPG
            //--------------------------------
            // 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_CCLIAD
           AND SE1.E1_LOJA    = NWF.NWF_CLOJAD
           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_CCLIAD%Exp:cCliente%
           AND NWF.NWF_CLOJAD  = %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>