0

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

我正在建立一个基本系统,让代理记录支付的租金,我这样做没问题。

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

例如:

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

租户 2 需要每四个星期支付 1 英镑的租金。

4

3 回答 3

1

在一张桌子上,您将拥有

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

当您在此 SELECT 中找到某些内容时,将当前费率的交易插入 T2 并在 T1 中使用 Rent_date + 可重复更新 next_due

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

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

于 2011-06-08T09:58:58.740 回答
0

您可以为每条付款记录保留四个字段 - payment_daterecurring_days_intervalowe、 。price然后,在每天运行的 cronjob 上,检查我们是否达到了天数间隔,如果是price,则将owe. 一旦该人支付了部分或全部账单,您将其从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_intervalNULL

于 2011-06-08T10:05:02.157 回答
0

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

# 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

像这样……

于 2011-06-08T09:54:12.940 回答