Árvore de páginas

01. VISÃO GERAL

Produto:TOTVS Backoffice
Linha de Produto:

Linha Protheus ®

Módulo:Financeiro
Função:FINXNAT - Funções genéricas relacionadas a Naturezas.

02. DESCRIÇÃO

Ponto de Entrada NATSEZLOAD para permitir o carregamento automático de Distribuição de Naturezas em Centro de Custos (tabela SEZ) conforme regra do cliente.

O ponto de entrada deverá retornar um array na mesma estrutura do aCols que receberá como parâmetro, efetuando a inclusão de suas informações específicas.

03. PARÂMETROS

PosiçãoNomeDescrição
1aColsArray para inclusão/alteração dos dados
2aHeader

Array com a estrutura dos dados 

3cNaturezaCódigo da Natureza utilizada no rateio
4nValNatValor do rateio informado para cNatureza

04. RETORNO

NomeDescrição
aRet

Array com a mesma estrutura de Acols recebida como parâmetro.

05. EXEMPLO DE UTILIZAÇÃO

P.E. NatSezLoad
#include "Protheus.ch"

User Function NatSezLoad()

Local _nPosCC   := 0
Local _nPosVal  := 0
Local _nPosPer  := 0
Local _MyaCols  := {}
Local _aColsRot := PARAMIXB[1] 
Local _aHeadRot := PARAMIXB[2] 
Local _cNatur   := PARAMIXB[3] 
Local _nValNat  := PARAMIXB[4] 

_MyaCols:= aClone(_aColsRot)
_nPosCC := Ascan(_aHeadRot, {|e| AllTrim(e[2]) == AllTrim("EZ_CCUSTO") } )
_nPosVal:= Ascan(_aHeadRot, {|e| AllTrim(e[2]) == AllTrim("EZ_VALOR") } )
_nPosPer:= Ascan(_aHeadRot, {|e| AllTrim(e[2]) == AllTrim("EZ_PERC") } )

If FwIsInCallStack("FINA050") //-- Contas a Pagar
    If Empty(_MyaCols[1,_nPosCC]) //-- Vazio = ainda não carregou nenhuma informação para o Centro de Custo
        
        If !Empty(_cNatur)        
            //-- Cria um item com 50% do percentual do valor da Natureza
            _MyaCols[1,_nPosCC] :=PadR('000000003',Len(SEZ->EZ_CCUSTO))
            _MyaCols[1,_nPosPer]:=50
            _MyaCols[1,_nPosVal]:=_nValNat/2 

            //-- Cria um segundo item para distribuir os 50% restante
            Aadd(_MyaCols,Array(Len(_aHeadRot)+1))
            _MyaCols[Len(_MyaCols),_nPosCC] := PadR('000000004',Len(SEZ->EZ_CCUSTO))
            _MyaCols[Len(_MyaCols),_nPosPer]:= 50
            _MyaCols[Len(_MyaCols),_nPosVal]:= _nValNat/2
            _MyaCols[Len(_MyaCols),(Len(_aHeadRot)+1)] := .F.
        EndIf

    EndIf
EndIf

Return(_MyaCols)