diff --git a/wrenchboard/src/shared_tool/site_crons.cc b/wrenchboard/src/shared_tool/site_crons.cc index 7f64c5e1..adfb83e1 100644 --- a/wrenchboard/src/shared_tool/site_crons.cc +++ b/wrenchboard/src/shared_tool/site_crons.cc @@ -73,18 +73,22 @@ long InterestPending(CVars in, CVars &out) { long PastDueWarings(CVars in, CVars &out) { logfmt(logINFO, "ENTER PastDueWarings()"); - const PGresult *res = pgsql_query("SELECT mc.member_id " + const PGresult *res = pgsql_query("SELECT mc.id AS contract_id, mc.member_id,mc.auto_remind " " FROM members_jobs_contract mc " " LEFT JOIN members m ON m.id=mc.client_id " - " WHERE mc.status IN (1,2) " - "AND delivery_date < now() GROUP BY mc.member_id"); + " WHERE mc.status IN (1,2) AND mc.auto_remind < 3 " + " AND delivery_date < now() GROUP BY mc.member_id ,mc.auto_remind, contract_id ORDER BY mc.auto_remind DESC"); if (res != NULL && pgsql_num_rows(res) > 0) { for (int i = 0, n = pgsql_num_rows(res); i < n; i++) { mapf = pgsql_fetch_assoc(res, i); if (f.empty()) continue; CVars rec; map_to_cvars(f, rec); - cron_email(WRB_CRONJOB_PASTDUE_ALERT, rec, out); // send the cron email + cron_email(WRB_CRONJOB_PASTDUE_ALERT, rec, out); // send the cron email + + pgsql_exec("UPDATE members_jobs_contract SET auto_remind=auto_remind + 1 "\ + "WHERE member_id=%lu AND id = 4 ", rec["member_id"].Long(),rec["contract_id"].Long()); + } } logfmt(logINFO, "/PastDueWarings()");