diff --git a/wrenchboard/src/include/wrenchboard_api.h b/wrenchboard/src/include/wrenchboard_api.h index 679826ef..e0e2a6a5 100644 --- a/wrenchboard/src/include/wrenchboard_api.h +++ b/wrenchboard/src/include/wrenchboard_api.h @@ -317,6 +317,7 @@ enum { PARTNER_STRIPE }; #define WRENCHBOARD_JOB_GROUP_MEMBER 13015 #define WRENCHBOARD_JOB_DELETE_GROUPMEMBER 13017 +#define WRENCHBOARD_JOB_RECENTPASTDUE 13019 #define WRENCHBOARD_JOB_CREATE_GROUP 13020 #define WRENCHBOARD_JOB_DELETE_GROUP 13023 diff --git a/wrenchboard/src/shared_tool/jobs.cc b/wrenchboard/src/shared_tool/jobs.cc index ba67c65c..5077751b 100644 --- a/wrenchboard/src/shared_tool/jobs.cc +++ b/wrenchboard/src/shared_tool/jobs.cc @@ -43,8 +43,13 @@ long jobs_calls(CVars in, CVars &out) { break; case WRENCHBOARD_JOB_USERACTIVE: + in["recent_past_due"] ="0"; in["recent_past_due"].set_valid( true ); return WrenchUsersActiveTasksList( in, out); break; + case WRENCHBOARD_JOB_RECENTPASTDUE: + in["recent_past_due"] ="100"; in["recent_past_due"].set_valid( true ); + return WrenchUsersActiveTasksList( in, out); + break; case WRENCHBOARD_JOB_REPORT: return WrenchUsersTasksReportList( in, out); break; diff --git a/wrenchboard/src/shared_tool/jobs_manager.cc b/wrenchboard/src/shared_tool/jobs_manager.cc index 153f935b..6a9ce6fc 100644 --- a/wrenchboard/src/shared_tool/jobs_manager.cc +++ b/wrenchboard/src/shared_tool/jobs_manager.cc @@ -567,6 +567,7 @@ long WrenchJobManagerActiveTasksList(CVars in, CVars &out) { long WrenchUsersActiveTasksList(CVars in, CVars &out) { logfmt(logINFO, "WrenchJobManagerActiveTasksList()"); char extraq[60]; + char extraq2[160]; char vname[30]; long ret = PHP_API_BAD_PARAM; @@ -576,6 +577,10 @@ long WrenchUsersActiveTasksList(CVars in, CVars &out) { long limit = REQ_LONG(in, "limit", 1, -1); long allstatus = REQ_LONG(in, "allstatus", 1, -1); + long recent_past_due = REQ_LONG(in, "recent_past_due", 1, -1); + + + if ( allstatus == 100 ){ snprintf(extraq, sizeof (extraq), ""); } @@ -584,6 +589,15 @@ long WrenchUsersActiveTasksList(CVars in, CVars &out) { snprintf(extraq, sizeof (extraq), " AND mc.delivery_date > now() "); } + if ( recent_past_due == 100 ){ + snprintf(extraq, sizeof (extraq), ""); + snprintf(extraq2, sizeof (extraq2), " AND mc.delivery_date< now() AND mc.delivery_date > ( now() - interval '1440 minutes' ) "); + } + else + { + snprintf(extraq2, sizeof (extraq2), ""); + } + out["total_record"] = "0"; const PGresult *res; res = pgsql_query("SELECT mc.id AS contract_id, mc.job_id AS job_id, mc.price, mc.timeline_days,mc.contract, " @@ -598,8 +612,8 @@ long WrenchUsersActiveTasksList(CVars in, CVars &out) { " LEFT JOIN members_jobs mj ON mj.id = mc.job_id " " LEFT JOIN members m ON m.id=mc.client_id " " LEFT JOIN currency c ON c.country=mj.country " - " WHERE mc.client_id =%lu AND mc.status IN (1,2,4) %s " - " ORDER BY mc.id DESC LIMIT %lu OFFSET %lu",member_id, member_id,extraq, limit, offset); + " WHERE mc.client_id =%lu AND mc.status IN (1,2,4) %s %s" + " ORDER BY mc.id DESC LIMIT %lu OFFSET %lu",member_id, member_id,extraq,extraq2, limit, offset); //ORDER BY id DESC LIMIT %lu OFFSET %lu", in["member_id"].Long(), limit, offset); if (res != NULL && pgsql_num_rows(res) > 0) { out["total_record"] = pgsql_num_rows(res); diff --git a/www-api/app/Models/ResultFormatter.php b/www-api/app/Models/ResultFormatter.php index fc3d2952..bacaec40 100644 --- a/www-api/app/Models/ResultFormatter.php +++ b/www-api/app/Models/ResultFormatter.php @@ -715,8 +715,9 @@ class ResultFormatter extends Model case WRENCHBOARD_JOB_ACTIVE: case WRENCHBOARD_JOB_USERACTIVE: CASE WRENCHBOARD_JOB_REPORT: - - $total = $out["total_record"]; + case WRENCHBOARD_JOB_RECENTPASTDUE: + + $total = $out["total_record"]; $res = array( "status" => $out["status"], "total_record" => ($total),