diff --git a/wrenchboard/src/shared_tool/contract.cc b/wrenchboard/src/shared_tool/contract.cc index ad6c1cd0..bfb8a514 100644 --- a/wrenchboard/src/shared_tool/contract.cc +++ b/wrenchboard/src/shared_tool/contract.cc @@ -245,10 +245,16 @@ long WrenchContractStatus( CVars in, CVars &out ) case CONTRACT_CANCEL_CONTRACT: out["result"] = "CONTRACT_CANCEL_CONTRACT"; - ret = load_db_record( out, "SELECT * FROM members_jobs_contract WHERE status IN (1,2) AND delivery_date < now() AND contract='%s' AND id=%lu AND member_id =%lu",in["job_contract"].c_str(),in["contract_id"].Long(),in["member_id"].Long() ); + ret = load_db_record( out, "SELECT id AS job_id, * FROM members_jobs_contract " + " WHERE status IN (1,2) AND delivery_date < now() " + " AND contract='%s' AND id=%lu AND member_id =%lu AND refund_date IS NULL",in["job_contract"].c_str(),in["contract_id"].Long(),in["member_id"].Long() ); if (ret) { - pgsql_exec("UPDATE members_jobs_contract SET status = %lu,updated=now() WHERE id = %lu",CONTRACT_CANCEL_CONTRACT, in["job_id"].Long() ); + if ( out["job_id"].Long() <0 ){ + out["result"] = "General failure"; + return ret; + } + pgsql_exec("UPDATE members_jobs_contract SET status = %lu,updated=now() WHERE id = %lu",CONTRACT_CANCEL_CONTRACT, out["job_id"].Long() ); // make sure the update was done if ( load_db_record( out, "SELECT * FROM members_jobs_contract WHERE status = %lu AND id=%lu AND member_id =%lu",CONTRACT_CANCEL_CONTRACT,in["contract_id"].Long(),in["member_id"].Long() ) ) { @@ -263,7 +269,7 @@ long WrenchContractStatus( CVars in, CVars &out ) { // if you reserve pauments //char offer_code[15] = ""; //GetOfferCode(offer_id, offer_code, sizeof (offer_code)); // this stamp the offer code directly in that call - pgsql_exec("UPDATE members_jobs_contract SET updated = now(),payment_date=now() WHERE id = %lu",out["contract_id"].Long()); + pgsql_exec("UPDATE members_jobs_contract SET updated = now(),payment_date=now(),refund_date=now() WHERE id = %lu",out["job_id"].Long()); } else { @@ -272,7 +278,7 @@ long WrenchContractStatus( CVars in, CVars &out ) //---------------------------------------- project_email(CONTRACT_CANCEL_CONTRACT, in, out); //USES in["contract_id"] - out["result"] = "This task is now complete. We have notified all parties accordingly"; + out["result"] = "This task is now cancelled. We have notified all parties accordingly"; } }