Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Serviços

Módulo:Ativo Fixo - SIGAATF
Função:

_DeprecAtivo() - FisxAtf

País:Brasil
Ticket:13789163
Requisito/Story/Issue:DSERCTR1-36362


02. SITUAÇÃO/REQUISITO

Ao realizar a chamada do ponto de entrada  F120CUST não é executado quando da gravação do registro F120, somente é chamado na gravação do registro F130, na inserção do registro do arquivo de trabalho utilizado pela rotina do Fiscal para geração do arquivo de saida.


03. SOLUÇÃO

Ajustado o fonte e documentação do ponto de entrada F120CUST para ser chamado também na inserção/manipulação do registro do arquivo de trabalho utilizado pela rotina do Fiscal para geração do arquivo de saida.

Importante : Este ponto de entrada substitui a gravação padrão dos registros na tabela de trabalho referente aos registros F120 e F130  e por ser customização é de total  responsabilidade do cliente com relação as informações gravadas no arquivo de saida.

04. DEMAIS INFORMAÇÕES



PE F120CUST

O Objetivo desse ponto de entrada é substtuir a gravação padrão na inserção do registro no arquivo de trabalho utilizado pelo Fiscal para geração do arquivo EFD Contribuições para registros F120 e F130 no  arquivo de saida .

Importante !!

Os exemplos utilizados nesse documento são meramente ilustrativos e para fins de entendimento, o funcionamento e objetivo do Ponto de Entrada é de total responsabilidade do cliente.



Parâmetros do Ponto de Entrada:

Ordem (PARAMIXB)ParâmetroTipoDescriçãoObrigatórioAplica-se aos Registros
1cRegCaractereBloco a ser gerado (F120/F130)

Sim

F120/F130
2

 cAliasTmp

Caractere

Alias da tabela temporária contendo os registros a serem gravados no arquivos, que através do PE poderá ser modificado

Sim

F120/F130
3

 cCodBem

Caractere

Código do ativo imobilizado

SimF120/F130
4cItemCaractereItem do ativo imobilizadoSimF120/F130
5cDescrCaractereDescrição do ativo imobilizadoNãoF120/F130
6dDataDataData de geração do arquivoSimF120/F130
7cDescExtCaractereDescrição estendida do ativo imobilizadoNãoF120/F130
8cTabOriCaractereTabela de origem da geração do arquivoNãoF120/F130
9cNumProCaractereNúmero do processo referenciado relacionado ao bemSImF120/F130
10cIndProCaractereTipo do processo referenciado relacionado ao bemSimF120/F130
11nValorNuméricoValor a ser gerado no blocoSimF120/F130
12cAliasSN1CaractereTabela temporária da SN1 (Ativo Imobilizado)NãoF120/F130
13nBaseNuméricoValor BaseSimF120
14cContaCCaractereConta Contabil SimF120
15cCCustoCaractereCentro de CustoSimF120
16cOrigCredCaractereInd. Origem Credito      (0=Aq.Mercado Interno;1=Aq.Mercado externo)SimF120
17cCSTPisCaractereCod.Sit.Trib. PISSimF120
18nAliqPisNuméricoAliquota PISSimF120
19cCSTCofinsCaractereCod.Sit.Trib. Cofins     SimF120
20nAliqCofinsNuméricoAliquota CofinsSimF120
21cIndBemCaractereIdentificacao do Bem     (Tabela 11 SN0)SimF120
22cUtilBemCaractereUtilização do Bem        (Tabela 12 SN0)SimF120
23cNatBCCrdCaractereCodigo BCC do Credito     SimF120
24cNotaFisCaractereNota FiscalSimF120
25cSerNFCaractereSerie da Nota FiscalSimF120
26cFornecCaractereCodigo do FornecedorSimF120
27cLojaCaractereLoja do FornecedorSimF120
28nVlrExclNuméricoValor a ser excluido SimF120


Parametros 01-12 - Aplica-se aos registros F120 e F130

Parametros 13-27 - Aplica-se somente ao registro F120


O que o ponto de entrada deve retornar

RetornoTipoDescriçãoObrigatório
NILNILSomente popula o arquivo de saida


Exemplo de utilização:



Exemplo de regra utilizada
#Include 'Protheus.ch'

User Function F120CUST()

Local cReg := paramixb[1]
Local cAliasTmp := paramixb[2]
Local cCodBem := paramixb[3]
Local cItem := paramixb[4]
Local cDescr := paramixb[5]
Local dData := paramixb[6]
Local cDescExt := paramixb[7]
Local cTabOri := paramixb[8]
Local cNumPro := paramixb[9]
Local cIndPro := paramixb[10]
Local nValor := paramixb[11]
Local cAliasSN1 := paramixb[12]

//a partir do paramixb[13] somente aplicavel ao registro F120
Local nBase      := paramixb[13]
Local cContaC	 :=	paramixb[14]
Local cCCusto	 :=	paramixb[15]
Local cOrigCred	 :=	paramixb[16]
Local cCSTPis	 :=	paramixb[17]
Local nAliqPis	 :=	paramixb[18]
Local cCSTCofins :=	paramixb[19]
Local nAliqCofins :=paramixb[20]
Local cIndBem	 :=	paramixb[21]
Local cUtilBem	 :=	paramixb[22]
Local cNatBCCrd	 :=	paramixb[23]
Local cNotaFis	 :=	paramixb[24]
Local cSerNF	 :=	paramixb[25]
Local cFornec	 :=	paramixb[26]
Local cLoja	     :=	paramixb[27]
Local nVlrExcl   := paramixb[28]

Local lNils	     := .F.

Local cIND_ORIG_C := ""
Local nALIQ_PIS := 0.65
Local nCST_PIS := 0.65
Local nCST_COFINS := 3
Local nALIQ_COFIN := 3

//Customizações usuário

If cReg == "F120"


    lNils	:=	cContaC==Nil .And. cCCusto==Nil .And. cOrigCred==Nil .And. cCSTPis==Nil .And. nAliqPis==Nil .And.;
					cCSTCofins==Nil .And. 	nAliqCofins==Nil .And. cIndBem==Nil .And. cUtilBem==Nil

    //registro F120
	(cAliasTmp)->(dbSetOrder(1))
	If !(cAliasTmp)->(dbSeek(cCodBem+cItem+dtos(dData)))
		
		//Processamento da descricao complementar do ativo SN2.
		If !lNils
			cDescExt	:= U_Atf130DExt(cCodBem,cItem)
			cDescExt	:= If(Empty(cDescExt),cDescr,cDescExt)
		EndIf
		
		RecLock(cAliasTmp,.T.)
		(cAliasTmp)->BEM	:= cCodBem
		(cAliasTmp)->ITEM	:= cItem
		(cAliasTmp)->DESCRI	:= cDescr

		(cAliasTmp)->DTAPR	:= dData
		
		If !lNils	
			(cAliasTmp)->NATBCCRED	:=	cNatBCCrd
			(cAliasTmp)->INDBEMIMOB	:=	cIndBem		
			(cAliasTmp)->INDORIGCRD	:=	cOrigCred	
			(cAliasTmp)->INDUTILBEM	:=	cUtilBem	
			(cAliasTmp)->CSTPIS		:=	cCSTPis
			(cAliasTmp)->ALIQPIS		:=	nAliqPis
			(cAliasTmp)->CSTCOFINS	:=	cCSTCofins
			(cAliasTmp)->ALIQCOFINS	:=	nAliqCofins
			(cAliasTmp)->CODCONTA	:=	cContaC
			(cAliasTmp)->CODCCUSTO	:=	cCCusto
			(cAliasTmp)->DESCBEMIMO	:=	cDescExt
		EndIf
		
	Else
		RecLock(cAliasTmp,.F.)
	Endif
	(cAliasTmp)->BASE	+= nBase
	(cAliasTmp)->VRET	+= nValor    //nRet

	(cAliasTmp)->VLRBCEXC    := nVlrExcl
	(cAliasTmp)->VLRBCPIS	:=	(cAliasTmp)->VRET - (cAliasTmp)->VLRBCEXC
	(cAliasTmp)->VLRPIS		:=	(cAliasTmp)->(VLRBCPIS*(ALIQPIS/100))	
	(cAliasTmp)->VLRBCCOFIN	:=	(cAliasTmp)->VRET - (cAliasTmp)->VLRBCEXC	
	(cAliasTmp)->VLRCOFINS	:=	(cAliasTmp)->(VLRBCCOFIN*(ALIQCOFINS/100))		

	//campos a ser utilizado pelo pessoal do N3-FISCAL
	(cAliasTmp)->NOTAFISCAL 	:=	cNotaFis
	(cAliasTmp)->SERIE 		:=	cSerNF
	(cAliasTmp)->FORNECEDOR 	:=	cFornec
	(cAliasTmp)->LOJA 		:=	cLoja
	(cAliasTmp)->NUMPRO 		:=	cNumPro
	(cAliasTmp)->INDPRO 		:=	cIndPro

	MsUnLock()


ElseIf cReg == "F130"

    //registro F130
	(cAliasTmp)->(dbSetOrder(1))
	If !(cAliasTmp)->(dbSeek(cCodBem+cItem+dtos(dData)))
		RecLock(cAliasTmp,.T.)
		(cAliasTmp)->REG := "F130"
		(cAliasTmp)->NAT_BC_CRE := "09"
		(cAliasTmp)->IDENT_BEM := 05
		(cAliasTmp)->IND_ORIG_C := cIND_ORIG_C
		(cAliasTmp)->IND_UTIL_B := 2
		(cAliasTmp)->MES_OPER_A := Int(Val(Subs(Dtos(dData),5,2)+Subs(Dtos(dData),1,4)))
		(cAliasTmp)->VL_OPER_AQ += nValor
		(cAliasTmp)->PARC_OPER += 0
		(cAliasTmp)->VL_BC_CRED := (cAliasTmp)->(VL_OPER_AQ-PARC_OPER)
		(cAliasTmp)->IND_NR_PAR := 0
		(cAliasTmp)->CST_PIS := nCST_PIS
		(cAliasTmp)->ALIQ_PIS := nALIQ_PIS
		(cAliasTmp)->VL_PIS := (cAliasTmp)->(VL_BC_PIS*ALIQ_PIS/100)
		(cAliasTmp)->CST_COFINS := nCST_COFINS
		(cAliasTmp)->ALIQ_COFIN := nALIQ_COFIN
		(cAliasTmp)->VL_COFINS := (cAliasTmp)->(VL_BC_COFI*ALIQ_COFIN/100)
		(cAliasTmp)->COD_CTA := '101010100'
		(cAliasTmp)->COD_CCUS := '01'
		(cAliasTmp)->NOTAFISCAL := ''
		(cAliasTmp)->SERIE := ''
		(cAliasTmp)->FORNECEDOR := ''
		(cAliasTmp)->LOJA := ''
		(cAliasTmp)->NUMPRO := cNumPro
		(cAliasTmp)->INDPRO := cIndPro
	EndIf
	
EndIf

Return

//função de usuario para descrição estendida
User Function Atf130DExt(cCodBem,cItem)
Local cString := ""
dbSelectArea("SN2")
dbSetOrder(1)
If dbSeek(xFilial("SN2")+cCodBem+cItem+"01")
	While SN2->(!Eof() .And. N2_FILIAL+N2_CBASE+N2_ITEM+N2_TIPO==xFilial("SN2")+cCodBem+cItem+"01")
		cString += Alltrim(SN2->N2_HISTOR)+Space(1)
		SN2->(dbSkip())
	EndDo
EndIf
cString := Alltrim(StrTran(cString,CRLF,' '))
Return(cString)

 



05. ASSUNTOS RELACIONADOS

  •  Não se aplica.