diff --git a/wrenchboard/src/include/jobs_manager.h b/wrenchboard/src/include/jobs_manager.h index aa49413a..946be987 100644 --- a/wrenchboard/src/include/jobs_manager.h +++ b/wrenchboard/src/include/jobs_manager.h @@ -6,4 +6,5 @@ long WrenchJobManagerOffers( CVars in, CVars &out); long WrenchJobManagerList( CVars in, CVars &out ); long WrenchJobManagerActiveTasksList( CVars in, CVars &out); +long WrenchUsersActiveTasksList(CVars in, CVars &out); #endif \ No newline at end of file diff --git a/wrenchboard/src/include/wrenchboard_api.h b/wrenchboard/src/include/wrenchboard_api.h index 4bac821b..00a3cf1a 100644 --- a/wrenchboard/src/include/wrenchboard_api.h +++ b/wrenchboard/src/include/wrenchboard_api.h @@ -228,6 +228,7 @@ enum { PARTNER_STRIPE }; #define WRENCHBOARD_JOB_LISTJOBS 13005 #define WRENCHBOARD_JOB_OFFERS 13006 #define WRENCHBOARD_JOB_ACTIVE 13008 +#define WRENCHBOARD_JOB_USERACTIVE 13009 #define WRENCHBOARD_JOB_CREATEJOB 13010 #define WRENCHBOARD_JOB_DELETEJOB 13011 diff --git a/wrenchboard/src/shared_tool/jobs.cc b/wrenchboard/src/shared_tool/jobs.cc index ae77e57a..8e98b488 100644 --- a/wrenchboard/src/shared_tool/jobs.cc +++ b/wrenchboard/src/shared_tool/jobs.cc @@ -43,6 +43,10 @@ long jobs_calls(CVars in, CVars &out) { case WRENCHBOARD_JOB_ACTIVE: // return WrenchJobManagerActiveTasksList(in, out); break; + + case WRENCHBOARD_JOB_USERACTIVE: + return WrenchUsersActiveTasksList( in, &out); + break; case WRENCHBOARD_JOB_CREATEJOB: job_mode = REQ_LONG(in, "job_mode", 1, -1); switch(job_mode){ diff --git a/wrenchboard/src/shared_tool/jobs_manager.cc b/wrenchboard/src/shared_tool/jobs_manager.cc index b8fd30ce..bc91cb32 100644 --- a/wrenchboard/src/shared_tool/jobs_manager.cc +++ b/wrenchboard/src/shared_tool/jobs_manager.cc @@ -358,3 +358,96 @@ long WrenchJobManagerActiveTasksList(CVars in, CVars &out) { } + +long WrenchUsersActiveTasksList(CVars in, CVars &out) { + logfmt(logINFO, "WrenchJobManagerActiveTasksList()"); + char vname[30]; + long ret = PHP_API_BAD_PARAM; + + try { + long member_id = REQ_LONG(in, "member_id", 1, -1); + long offset = REQ_LONG(in, "offset", 1, -1); + long limit = REQ_LONG(in, "limit", 1, -1); + + 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, " + " mj.title, mj.description AS description,mc.job_detail AS job_description, " + " (CASE WHEN mc.status=4 THEN 'Review' " + " WHEN mc.status = 1 AND mc.delivery_date > now() THEN 'Active' " + " WHEN mc.status = 1 AND mc.delivery_date now() " + " ORDER BY mc.id DESC LIMIT %lu OFFSET %lu", in["member_id"].Long(), 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); + + 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); + + snprintf(vname, sizeof (vname), "id_%05d", i); + out[vname] = rec["contract_id"]; + + snprintf(vname, sizeof (vname), "job_detail_%05d", i); + out[vname] = ""; + + snprintf(vname, sizeof (vname), "expire_%05d", i); + out[vname] = rec["expire"]; + + snprintf(vname, sizeof (vname), "title_%05d", i); + out[vname] = rec["title"]; + + snprintf(vname, sizeof (vname), "project_%05d", i); + out[vname] = rec["project"]; + + snprintf(vname, sizeof (vname), "description_%05d", i); + out[vname] = rec["description"]; + + snprintf(vname, sizeof (vname), "status_description_%05d", i); + out[vname] = rec["status_description"]; + + snprintf(vname, sizeof (vname), "delivery_date_%05d", i); + out[vname] = rec["delivery_date"]; + + snprintf(vname, sizeof (vname), "status_description_%05d", i); + out[vname] = rec["status_description"]; + + snprintf(vname, sizeof (vname), "timeline_days_%05d", i); + out[vname] = rec["timeline_days"]; + + snprintf(vname, sizeof (vname), "contract_%05d", i); + out[vname] = rec["contract"]; + + snprintf(vname, sizeof (vname), "job_description_%05d", i); + out[vname] = rec["job_description"]; + + snprintf(vname, sizeof (vname), "price_%05d", i); + out[vname] = rec["price"]; + + snprintf(vname, sizeof (vname), "job_id_%05d", i); + out[vname] = rec["job_id"]; + + snprintf(vname, sizeof (vname), "contract_id_%05d", i); + out[vname] = rec["contract_id"]; + } + } + ret = PHP_API_OK; + out["status"] = "OK"; + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long WrenchJobManagerActiveTasksList(CVars in, CVars &out)"); + } + logfmt(logINFO, "/WrenchJobManagerActiveTasksList()"); + return ret; + + + +} + diff --git a/www-api/app/Config/Constants.php b/www-api/app/Config/Constants.php index fa57529f..b87f27bf 100644 --- a/www-api/app/Config/Constants.php +++ b/www-api/app/Config/Constants.php @@ -221,6 +221,7 @@ define('WRENCHBOARD_JOB_POSTAGREE', 13002); define('WRENCHBOARD_JOB_LISTJOBS', 13005); define('WRENCHBOARD_JOB_OFFERS', 13006); define('WRENCHBOARD_JOB_ACTIVE', 13008); +define('WRENCHBOARD_JOB_USERACTIVE',13009); define('WRENCHBOARD_JOB_CREATEJOB',13010 ); define('WRENCHBOARD_JOB_DELETEJOB',13011 ); diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index 514ab93f..57c999f9 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -103,6 +103,10 @@ class WrenchApi extends BaseController $in["action"] = WRENCHBOARD_FAMILY_LIST; break; + case 'activetaskslist': + $in["action"] = WRENCHBOARD_JOB_USERACTIVE; + break; + case 'familyadd': $in["action"] = WRENCHBOARD_FAMILY_ADD; break; diff --git a/www-api/public/svs/user/constants.php b/www-api/public/svs/user/constants.php index 54a2e5f1..8382e34d 100755 --- a/www-api/public/svs/user/constants.php +++ b/www-api/public/svs/user/constants.php @@ -127,8 +127,9 @@ define('WRENCHBOARD_JOB_POSTAGREE', 13002); define('WRENCHBOARD_JOB_LISTJOBS', 13005); define('WRENCHBOARD_JOB_OFFERS', 13006); define('WRENCHBOARD_JOB_ACTIVE', 13008); +define('WRENCHBOARD_JOB_USERACTIVE',13009); -define('WRENCHBOARD_JOB_CREATEJOB',13010 ); +define('WRENCHBOARD_JOB_CREATEJOB',13010 ); define('WRENCHBOARD_JOB_DELETEJOB',13011 ); define('WRENCHBOARD_JOB_GROUP_MEMBER', 13015) ; diff --git a/www-api/public/svs/user/userve.php b/www-api/public/svs/user/userve.php index 75efe650..307fc7e2 100755 --- a/www-api/public/svs/user/userve.php +++ b/www-api/public/svs/user/userve.php @@ -138,6 +138,10 @@ switch ($endpoint) { $in["action"] = WRENCHBOARD_FAMILY_LIST; break; + case 'activetaskslist': + $in["action"] = WRENCHBOARD_JOB_USERACTIVE; + break; + case 'familyadd': $in["action"] = WRENCHBOARD_FAMILY_ADD; break;