member-enrollment-app.js 1.0 KB

123456
  1. async function enrollmentOrderTransition(input,current,order,orderId,status){
  2. const row=await Psql.oneOrNone('SELECT "objectId" FROM "CommonModel" WHERE "company"=$1 AND "modelId"=54 AND "generalId"::text=$2',[DEFAULT_COMPANY_ID,String(orderId)]);if(!row)fail(404,'预约不存在');
  3. if(status===11){const reviews=await memoryReviewsForOrder(orderId,order,current);try{const done=await Psql.one('SELECT xs_complete_appointment($1,$2,$3) AS result',[DEFAULT_COMPANY_ID,row.objectId,current.id]);return{GeneralID:orderId,status,previousStatus:number(order.dszt),...done.result,reviewCount:reviews.count};}catch(error){for(const pair of reviews.created.reverse()){if(pair.common)await pair.common.destroy({useMasterKey:true});if(pair.record)await pair.record.destroy({useMasterKey:true});}fail(409,String(error.message));}}
  4. try{await Psql.one('SELECT xs_start_appointment($1,$2) AS result',[DEFAULT_COMPANY_ID,row.objectId]);}catch(error){fail(409,String(error.message));}
  5. return{GeneralID:orderId,status,previousStatus:number(order.dszt)};
  6. }