Local cond,c
cond='month(m.datapif)=val(m.nl) and year(m.datapif)=val(m.an) and m.uzuraprec=0'
m.normaan=Round(m.normat/12,0)
*!*	If m.normat2<0
*!*		m.normat2=0
*!*	Endif

*WAIT WINDOW STR(m.tipcalcul)

Do Case
	Case Upper(Left(m.tipamort,1))='L'   &&LINIARA
*m.amortlun = IIF(m.UZURA>m.NORMAT or &cond ,0,iif(M.uzura=M.normat,M.valoare-M.AMORTprec,ROUND((m.valoare-m.AMORTprec)/(m.normat-m.UZURA+1),0)))
		Do amortlin
		m.amortan=m.amortlun*12
	Case Upper(Left(m.tipamort,1))='A'  &&ACCELERATA
		If (m.P>0 And m.P<=0.5) And m.UZURA<=12
			m.amortlun = Iif(m.UZURA>m.normat Or &cond ,0,Iif(M.UZURA=M.normat,M.valramasa-M.AMORTprec,Round(m.valramasa*m.P/12,0)))
		Else
			m.amortlun = Iif(m.UZURA>m.normat Or &cond ,0,Iif(M.UZURA=M.normat,M.valramasa-M.AMORTprec,Round((m.valramasa*(1-m.P))/(m.normat-12),0)))
		Endif
		m.amortan=m.amortlun*12
	Case Upper(Left(m.tipamort,1))='D'  &&DEGRESIVA
		If Mod(m.UZURA,12)=1
			c=12*m.k/m.normat
			m.amortan = Iif(m.UZURA>m.normat,0,Round((m.valramasa-m.AMORTprec)*c,0))
			If m.amortan<12*m.valramasa/m.normat
				m.amortan = (m.valramasa-m.AMORTprec)/(m.normat/12-Round(m.UZURA/12,0))
			Endif
		Endif
		m.amortlun = Iif(m.UZURA>m.normat Or &cond ,0,Iif(m.UZURA=m.normat,M.valramasa-M.AMORTprec,Round(m.amortan/12,0)))
Endcase



m.amorttot=m.amortlun+m.AMORTprec
*wait wind m.denumire
Return




*__________________________________________________________
Proc amortlin
	Local cond,c,cond2
	cond='(month(m.datapif)=val(m.nl) and year(m.datapif)=val(m.an) and m.uzuraprec=0)' && in luna punerii in functiune
*cond2='((M.AMORTPREC>=M.VALRAMASA AND m.normat2#0) OR (M.AMORTPREC>=M.VALOARE AND m.normat2=0))'
	cond2='(M.AMORTPREC>=M.valramasa-m.valrez)' && total amortizare din luna precedenta a ajuns la valoare-valoarea reziduala


IF m.normat2=0
m.normat2=m.normaan
ENDIF
IF m.normat2lun=0
m.normat2lun=m.normat2*12
ENDIF

*!*		If m.normat2=0
*!*			m.valramasa=m.valoare
		*m.cota=Round(1/m.normaan*100,1)
*!*		Else
		m.cota=Round(1/m.normat2*100,1)
*!*		Endif


	If &cond Or &cond2
		m.amortlun =0
	Else
		If M.UZURA=M.normat
			m.amortlun =M.valramasa-M.AMORTprec
*!*	 IF m.amortlun<0
*!*		 m.amortlun=0
*!*	 endif
		Else
			*If m.tipcalcul=0
				m.amortlun = Round(m.valramasa*m.cota/12/100,0)
			*Else
			*	m.amortlun = Round((m.valramasa-m.AMORTprec)/(m.normat-m.UZURA+1),0)
			*Endif
		Endif
	Endif

	If M.AMORTprec+M.amortlun>M.valramasa
		m.amortlun=M.valramasa-M.AMORTprec
		If M.amortlun<0
			m.amortlun=0
		Endif
	Endif
return