Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何进行租金管理 #242

Open
lunvo opened this issue Dec 14, 2018 · 0 comments
Open

如何进行租金管理 #242

lunvo opened this issue Dec 14, 2018 · 0 comments

Comments

@lunvo
Copy link

lunvo commented Dec 14, 2018

创建租金交费请求,需要操作者的账户具有hire权限。

一些图书馆周期性向读者收取租金。如果读者未能按时交纳租金,读者证将自动进入暂时停借状态。
dp2系统提供了租金管理的功能。租金管理功能要经过一定的配置才能使用。

租金功能的配置准备工作

1)配置“租金周期”字段的下拉列表值
内务前端读者窗编辑控件内,“租金周期”字段的下拉列表值是由library.xml文件中< valueTables>内name属性为” hirePeriod”的< table>元素所配置的。
dp2内务系统管理窗,切换到【值列表】属性页,< valueTables>内对应馆代码下面增加一个name属性为” hirePeriod”的< table>元素,例如:

    <table name="hirePeriod" dbname="">一周,两周,一个月,半年,一年</table>

按上述代码设置,内务前端读者窗编辑控件内,“租金周期”字段的下拉列表显示:一周,两周,一个月,半年,一年。

2)配置适当的GetHire()函数脚本
编写本函数时,注意要和配置租金周期下拉列表值结合起来进行,两者之间是紧密关联的。
在应用服务器数据目录内的library.xml文件的<script>元素内,配置适当的GetHire()函数脚本。

public int GetHire(XmlDocument readerdom,
	string strStartDate,
	string strPeriodName,
	out string strExpireDate,
	out string strPrice,
	out string strError)
{
	strExpireDate = "";
	strPrice = "";
	strError = "";
 
	DateTime start_date = new DateTime(0);
	try {
		start_date = DateTimeUtil.FromRfc1123DateTimeString(strStartDate);
	}
	catch {
		strError = "日期字符串 '" + strStartDate + "' 格式错误";
		return -1;
	}

	if (strPeriodName != "一年")
	{
		strError = "租金周期必须为“一年”";
		return -1;
	}
 
	DateTime expire_date = new DateTime(start_date.Year + 1,
		start_date.Month, start_date.Day,
		start_date.Hour, start_date.Minute, start_date.Second);
 
	strExpireDate = DateTimeUtil.Rfc1123DateTimeStringEx(expire_date.ToLocalTime());
	strPrice = "CNY200.00";
 
	return 0;
}

在上面的代码例子中,为简单起见,只允许使用一种周期“一年”,并且租金金额也是固定的“CNY200.00”。失效期是起始日期一年后的同一天。用户可以根据实际情况,自行设置。

创建租金交费请求的操作步骤

  1. 登录dp2内务,装入需要操作的读者记录到读者窗;

  2. 在读者信息编辑控件上,为“租金周期”字段选定适当的周期值,例如:一年,然后点读者窗工具条上的“保存”按钮;
    注:此处选定的周期必须与GetHire()函数中设置的一致,否则创建“交租金”请求的时候会提示:

  3. 点读者窗工具条上的“创建交费请求”下拉菜单,选其中的“交租金”命令。

    创建交费请求成功后,读者窗内显示的读者信息会刷新:

    从上图可以看到读者信息编辑控件中“租金失效期”内容被重新设置;
    从上图看到,读者信息(HTML)的“违约/交费信息”表格内显示了本次所创建的交费请求。

    切换到XML属性页,读者XML记录内的元素下增加了一个新的元素,正是本次所创建的交费请求。

    如果步骤2)中修改了“租金周期”字段内容而没有保存读者记录,然后直接执行“交租金”命令,软件会报错:

    必须先保存读者记录后再执行“交租金”命令。

    成功创建了租金交费请求后,到读者真正完成交费之前,读者就无法进行借书操作了。实际上只要读者记录中包含了任何未交费请求,该读者就无法借书,只有当交费完成后,才能借书。而还书操作不受影响。

    要完成交费,操作人员还需要通过“交费窗”对读者进行收费操作。具体操作步骤请参见如何为读者办理交费

    在实际工作中,往往是在借书的时候发现因为租金超期不能借书了,才想到要交纳下一周期的租金。有很大可能读者并不是在超期以后立即续交。而软件很严密,始终是按照准确的日期来作为下一周期的起始日期,创建交费请求,在软件界面上操作人员不能修改这个起始日期。在创建交费请求后,如果读者拖延了一段时间后再交费,应交的金额并不会因为拖延而发生改变。

    交租金功能目前并不存在对应的“退租金”功能。读者按一定周期交纳租金,随着时间推移,从概念上我们认为,租金就被“用掉了”。

@lunvo lunvo changed the title 如何创建租金交费请求 如何进行租金管理 Dec 14, 2018
@renyh renyh removed the 文稿 label May 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants