PHP-类似银行的月度交易

PHP-类似银行的月度交易,php,mysql,calendar,cron,banking,Php,Mysql,Calendar,Cron,Banking,我不确定输入什么搜索词 我正在建立一个基本的系统,让代理记录租金,我做到了这一点没有问题 下一步是在租金到期时进行可重复的交易,他们有没有关于我应该如何完成这一壮举的教程或建议 例如: 承租人1需要在每个月的第一天支付2英镑的租金 租户2需要每四周支付1英镑的租金。您应该使用crontab来完成这项任务 # m h dom mon dow user command 17 * * * * root php /path/to/hourly.php 25 6 * * * r

我不确定输入什么搜索词

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

下一步是在租金到期时进行可重复的交易,他们有没有关于我应该如何完成这一壮举的教程或建议

例如:

承租人1需要在每个月的第一天支付2英镑的租金


租户2需要每四周支付1英镑的租金。

您应该使用crontab来完成这项任务

# 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

smth像这样…

在一张表格中

T1:
Tenant_id | repeatable | next_due
T2:
Tenant_id | Rent_date
在另一张桌子上

T1:
Tenant_id | repeatable | next_due
T2:
Tenant_id | Rent_date
使用如下查询:

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
当您在此选择中找到某些内容时,将当前汇率的交易插入T2,并在T1中使用租金日期+可重复日期更新下一个到期日

将此脚本放在一个文件中并使用cron-使其每天运行(最好是在早上)


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

您可以为每个付款记录保留四个字段—
付款日期
定期天数间隔
欠款
价格
。 然后,在每天运行的cronjob上,检查我们是否达到了天数间隔,如果是,则将
价格添加到当前
欠下的
。一旦此人支付了部分或全部账单,您就可以将其从
欠下的金额减少到

您应该每天运行的查询应该类似于:

updatepayments SET-owe=COALESCE(owe,0)+COALESCE(price,0),其中周期性天数间隔不为空,日期添加(payment,interval-recurtive天数间隔天数)>NOW()


如果您想停止重复,只需将
重复天数间隔
设置为

看看谢谢您的回复,这就是我要找的。可重复性可能是一个问题,有些人每四周支付一次,有些人每月支付X。我想我可以找到一个解决方案,现在您已经提供了对查询的深入了解。我需要更多的银行交易系统,而不是余额系统。谢谢你,你的回答帮助我理解了这个问题。