首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -银行类月度事务

PHP -银行类月度事务
EN

Stack Overflow用户
提问于 2011-06-08 17:47:22
回答 3查看 867关注 0票数 0

我不确定要键入什么搜索词。

我正在建立一个让代理商记录房租的基本系统,我已经做到了这一点没有问题。

下一步是做可重复的交易,当房租到期时,他们有什么教程或建议我应该如何完成这一壮举?

例如:

租户1需要在每月1日支付of 2的房租。

租户2需要每4周支付1 to的房租。

EN

回答 3

Stack Overflow用户

发布于 2011-06-08 17:58:59

在一个表中,您将拥有

代码语言:javascript
复制
T1:
Tenant_id | repeatable | next_due

在另一张表中,您将拥有

代码语言:javascript
复制
T2:
Tenant_id | Rent_date

使用如下查询:

代码语言:javascript
复制
SELECT 
  *
FROM
T1 JOIN
  (SELECT
    tenant_id, MAX(Rent_date) LastRent
  FROM
    T2
  GROUP BY 
    tenant_id
  ) MaxT2 on T1.tenant_id = MaxT2.tenant_id
WHERE
  MaxT2.LastRent + repeatable > T1.next_due

当您在此SELECT中找到某些内容时,使用Rent_date + repeatable在T2和T1 update next_due中插入current rate的事务

将这个脚本放在一个文件中,并使用cron -让它每天运行(最好是在早上)。

这只是一个快速的回答。您必须注意可重复字段(例如,表示天数或周数,或每月的每10天)。

票数 1
EN

Stack Overflow用户

发布于 2011-06-08 17:54:13

您应该使用crontab来完成此任务,

代码语言:javascript
复制
# m h dom mon dow user  command
17 *    * * *   root    php /path/to/hourly.php
25 6    * * *   root    php daily.php
47 6    * * 7   root    php weekly.php
52 6    1 * *   root    php monthly.php

像这样..。

票数 0
EN

Stack Overflow用户

发布于 2011-06-08 18:05:02

你可以为每个支付记录保留四个字段- payment_daterecurring_days_intervaloweprice。然后,在每天运行的owe上,检查是否达到天数间隔,如果达到,则将price添加到当前cronjob。一旦此人支付了部分或全部账单,您就可以从owe中减少它。

您应该每天运行的查询应该是这样的:

UPDATE payments SET owe=COALESCE(owe, 0)+COALESCE(price, 0) WHERE recurring_days_interval IS NOT NULL AND DATE_ADD(payment_date, INTERVAL recurring_days_interval DAY) > NOW()

如果您想停止循环,只需将recurring_days_interval设置为NULL即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6276906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档