You're confused? Try being me.
Anyway, I wound up doing the below code. It just seemed to me there must be another way to do this where you didn't have to type in the @Prompt every time you need the date, like in VB where you get the user input and then just use that in your code. But, this works...
sum(decimal(prv_amt_unit * decimal( decimal( double(days(@prompt('Enter the EOP Date','D','TimeParameters\EOP_Date',Mono,constrained)) -
days( case when month(gnrc_dt) <= month ( @prompt('Enter the EOP Date','D','TimeParameters\EOP_Date',Mono,constrained) )
and year(gnrc_dt) = year(@prompt('Enter the EOP Date','D','TimeParameters\EOP_Date',Mono,constrained))
then '2002-03-31'
else
case when year(gnrc_dt) = 2002
then @prompt('Enter the EOP Date','D','TimeParameters\EOP_Date',Mono,constrained)
else rtrim(char(year(@prompt('Enter the EOP Date','D','TimeParameters\EOP_Date',Mono,constrained)))) || '-01-01'
end
end
) ) /365.0 * 0.035
,7,5) ,7,5) ,11,2) )