#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]
//from paramixb[13] only applies to record 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
//User customizations
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)))
//Processing of complementary description of asset 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))
//fields to be used by N3-FISCAL personnel
(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
//User function for extended description
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) |