01. DATOS GENERALES

Producto:

TOTVS Backoffice

Línea de producto:

Línea Protheus

Segmento:

Servicios

Módulo:

Activo fijo - SIGAATF

Función:

_DeprecAtivo() - FisxAtf

País:

Brasil

Ticket:

13789163

Requisito/Story/Issue:

DSERCTR1-36362


02. SITUACIÓN/REQUISITO

Al realizar la llamada del punto de entrada  F120CUST no se ejecuta durante la grabación del registro F120, solamente llama durante la grabación del registro F130, al incluir el registro del archivo de trabajo utilizado por la rutina del Fiscal para la generación del archivo de salida.


03. SOLUCIÓN

Se ajustó el fuente y la documentación del punto de entrada F120CUST, para que también se active en la na inclusión/manejo del registro del archivo de trabajo utilizado por la rutina Fiscal, para la generación del archivo de salida.

Importante: Este punto de entrada sustituye la grabación estándar de los registros en la tabla de trabajo referente a los registros F120 y F130 y por ser una personalización es de total responsabilidad del cliente con relación a las informaciones grabadas en el archivo de salida.

04. OTRAS INFORMACIONES



PE F120CUST

El objetivo de este punto de entrada es sustituir la grabación estándar cuando se incluya el registro en el archivo de trabajo utilizado por el Fiscal para la generación del archivo EFD Aportes para registros F120 y F130 en el archivo de salida.

¡Importante!

Los ejemplos utilizados en este documento son meramente ilustrativos y para fines de entendimiento, el funcionamiento y objetivo del Punto de entrada es de total responsabilidad del cliente.



Parámetros del punto de entrada:

Orden (PARAMIXB)

Parámetro

Tipo

Descripción

Obligatorio

Se aplica a los registros

1

cReg

Carácter

Bloque que se generará (F120/F130)

F120/F130

2

 cAliasTmp

Carácter

Alias de la tabla temporal que contiene los registros que se grabarán en el archivo, que por medio del PE podrá modificarse

F120/F130

3

 cCodBem

Carácter

Código del activo fijo

F120/F130

4

cItem

Carácter

Ítem del activo fijo

F120/F130

5

cDescr

Carácter

Descripción del activo fijo

No

F120/F130

6

dData

Fecha

Fecha de generación del archivo

F120/F130

7

cDescExt

Carácter

Descripción extendida del activo fijo

No

F120/F130

8

cTabOri

Carácter

Tabla de origen de la generación del archivo

No

F120/F130

9

cNumPro

Carácter

Número del proceso mencionado relacionado con el bien

F120/F130

10

cIndPro

Carácter

Tipo del proceso de referencia relacionado con el bien

F120/F130

11

nValor

Numérico

Valor que se generará en el bloque

F120/F130

12

cAliasSN1

Carácter

Tabla temporal de la SN1 (Activo fijo)

No

F120/F130

13

nBase

Numérico

Valor base

F120

14

cContaC

Carácter

Cuenta contable 

F120

15

cCCusto

Carácter

Centro de costo

F120

16

cOrigCred

Carácter

Ind. Origen crédito      (0=Alíc.Mercado Interno;1=Alíc.Mercado externo)

F120

17

cCSTPis

Carácter

Cód.Sit.Trib. PIS

F120

18

nAliqPis

Numérico

Alícuota PIS

F120

19

cCSTCofins

Carácter

Cód.Sit.Trib. Cofins     

F120

20

nAliqCofins

Numérico

Alícuota Cofins

F120

21

cIndBem

Carácter

Identificación del bien     (Tabla 11 SN0)

F120

22

cUtilBem

Carácter

Utilización del bien        (Tabla 12 SN0)

F120

23

cNatBCCrd

Carácter

Código BCC del crédito     

F120

24

cNotaFis

Carácter

Factura

F120

25

cSerNF

Carácter

Serie de la factura

F120

26

cFornec

Carácter

Código del proveedor

F120

27

cLoja

Carácter

Tienda del proveedor

F120

28

nVlrExcl

Numérico

Valor por eliminar 

F120


Parámetros 01-12 - Se aplica a los registros F120 y F130

Parámetros 13-27 - Solamente se aplica al registro F120


Qué debe devolver el punto de entrada

Devolución

Tipo

Descripción

Obligatorio

NIL

NIL

Solamente completa el archivo de salida



Ejemplo de utilización:



Ejemplo de regla 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 del paramixb[13] solamente se aplica al 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

//Personalizaciones usuario

  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)))
		
		//Procesamiento de la descripción complementaria del activo 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 que serán utilizados por el personal del 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

//función de usuario para descripción extendida
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. ASUNTOS RELACIONADOS

  •  No se aplica.