以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提前支付时应兑金额的计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145744)

--  作者:rgbjwjb
--  发布时间:2020/2/6 14:17:00
--  提前支付时应兑金额的计算

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:融资管理系统.foxdb

这个融资管理系统主要实现:1融资时开具收款收据,2、按实际兑付情况计算利息,并打印报表交银行支付3、相关查询功能

我已将“收款明细表”和“兑付明细表”通过“收据号码”关联了;

本息支付的规则:按年支付利息,最后一年本金和利息合并计算;如果未到期(提前支取),就按实际应计本息扣除已支付的利息计算本次应付金额。

我想请教的是:1、提前支取时,本次应付金额的代码如何修改?

                  2、选择利息计算类型后,相应的窗口不能立即弹出(要先关掉前面的窗口后才能打开)

请指教!谢谢!


--  作者:有点蓝
--  发布时间:2020/2/6 14:29:00
--  
1、业务的东西我不懂,请说明按什么规则(公式)进行计算?
2、判断一下勾选时再打开
如:
If e.Sender.Checked Then
    Forms("提前支取利息单").Open
End If

--  作者:rgbjwjb
--  发布时间:2020/2/6 15:56:00
--  
For Each r1 As Row In Tables("收款明细表").GetCheckedRows
    Dim r2 As Row = Tables("兑付明细表").AddNew
    r2("收据号码") = r1("收据号码")
    r2("兑付日期") = Date.Today
    r2("借款日期") = r1("借款日期")
    r2("借款金额") = r1("收取金额")
    r2("借款年限") = r1("借款年限")
    r2("利率") = r1("利率")
    r2("债权人") = r1("债权人")
    Dim t As TimeSpan
    Dim d As Date =  r1("借款日期")
    t = Date.Today - d
    r2("借款天数")=t.TotalDays
  r2("应结金额")=   r2("借款金额")* r2("利率") /360*t.TotalDays 
  r1("本息是否兑付") = True
Next

上面代码中的倒数第三行代码( r2("应结金额")=   r2("借款金额")* r2("利率") /360*t.TotalDays )要做这样的修改:要减去这张收据已付利息,请问您怎么修改?


例如:张先生2015年1月1日,缴集资款15万,利率2%,年限5年,票号:555555,按年支付利息
         2015年12月31日,我们支付给张先生利息3000
         2016年12月31日,我们支付给张先生利息3000
2017年6月30日,未到5年,需提前支取,此时应结本息为:150000*2%*2.5-(3000+3000)+150000=151500

谢谢老师!


--  作者:有点蓝
--  发布时间:2020/2/6 16:23:00
--  
方法1,建一个已支付表,支付过的利息都记录到这个表里,最后计算的时候,减去这个表已经登记的利息
2、如果确定往年已经全部结息,就只计算今年的好了

  r2("应结金额")=   r2("借款金额")* r2("利率") /360 * Date.Today.DayOfYear 

--  作者:rgbjwjb
--  发布时间:2020/2/6 17:39:00
--  
老师你好!你的上述方法只适用于缴款日期为年初(每年的1月1日)的情况,如果缴款日期不是在年初的话就不适用了。
1、跨年度:缴款日期:2019年3月4日,兑付日期:2020年1月9日
2、不跨年度:缴款日期:2019年9月5日,兑付日期:2019年10月22日
我是根据你的建议,建了一个数据表(兑付明细表),用于记录已支付的利息
我思路是:
               1、根据“收据号码”计算出到今天为止应兑付的总利息(代码已写,)
               2、根据“收据号码”计算已兑付的总利息(这个代码我不会写)
               3、两者相减就是本次应兑付的利息
烦请你打开我发给你的项目文件中的“提前支取利息单窗体中的“确认生成提前支取利息单”这个按钮,对应的代码怎么修改?
谢谢!!



--  作者:有点蓝
--  发布时间:2020/2/6 18:17:00
--  
那就这样计算不足一年的剩余天数,

Dim d As Date =  r1("借款日期")
dim d1 asdate = new date(date.today.year,d.month,d.day)
dim _days as integer
dim d2 as date
if date.today >= d1 then
_days = (date.today - d1).TotalDays 
else
_days = 360 - (date.today - d1).TotalDays 
end if
msgbox(_days)