Commit 36c641a9 by Jansa Jose

Merge branch 'jansa' into 'master'

dc- admin panel booking responses See merge request !39
parents 56c0da32 7c783121
...@@ -40,6 +40,7 @@ class Bookings extends CI_Controller { ...@@ -40,6 +40,7 @@ class Bookings extends CI_Controller {
empty($mechanic_id))?'':$mechanic_id; empty($mechanic_id))?'':$mechanic_id;
$template['mechanic_data'] = $mechanic_data; $template['mechanic_data'] = $mechanic_data;
$template['bookingData'] = $this->Booking_model->getMechBookings($mechanic_id,'','0,1,3,4'); $template['bookingData'] = $this->Booking_model->getMechBookings($mechanic_id,'','0,1,3,4');
//pr($template['bookingData']);
$this->load->view('template',$template); $this->load->view('template',$template);
} }
......
...@@ -285,9 +285,9 @@ ...@@ -285,9 +285,9 @@
header('Content-type: application/json'); header('Content-type: application/json');
$postData = $_POST; $postData = $_POST;
$optionalData = array('optionlaDescription'=>'','optionalImages'=>array(),'optionalVideos'=>array()); $optionalData=array('optionlaDescription'=>'','optionalImages'=>array(),'optionalVideos'=>array());
$respArr = array('status'=>'0','message'=>'Something went wrong.'); $respArr = array('status'=>'0','message'=>'Something went wrong.');
//pr(json_decode($postData['data']));
if(empty($postData) || empty($postData = json_decode($postData['data'],true)) || if(empty($postData) || empty($postData = json_decode($postData['data'],true)) ||
!isset($postData['cost']) || empty($postData['cost']) || !isset($postData['cost']) || empty($postData['cost']) ||
!isset($postData['customer_id']) || empty($postData['customer_id']) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
...@@ -472,7 +472,7 @@ ...@@ -472,7 +472,7 @@
echo json_encode($respArr);exit; echo json_encode($respArr);exit;
} }
$status=$this->Booking_model->changeBookStatus($postData['customer_id'],$postData['booking_id'],'3'); $status=$this->Booking_model->changeBookStatus($postData['customer_id'],$postData['booking_id'],'4');
if($status){ if($status){
$respArr['status'] = 1; $respArr['status'] = 1;
...@@ -1343,6 +1343,17 @@ ...@@ -1343,6 +1343,17 @@
$result = $this->Webservice_model->rate_mechanic($postData); $result = $this->Webservice_model->rate_mechanic($postData);
echo json_encode($result);exit; echo json_encode($result);exit;
} }
public function acceptMechanicQuote(){
header('Content-type:application/json');
$headers = apache_request_headers();
$post = file_get_contents("php://input");
$postData = json_decode($post,true);
$result = $this->Webservice_model->acceptMechanicQuote($postData);
echo json_encode($result);exit;
}
} }
?> ?>
...@@ -6,184 +6,314 @@ class Booking_model extends CI_Model { ...@@ -6,184 +6,314 @@ class Booking_model extends CI_Model {
} }
public function scheduleBooking($postData = array()){ public function scheduleBooking($postData = array()){
if(empty($postData) || if(empty($postData) ||
!isset($postData['customer_id']) || empty($postData['customer_id']) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['pickup_data']) || empty($postData['pickup_data']) || !isset($postData['pickup_data']) || empty($postData['pickup_data']) ||
!isset($postData['vechile_info']) || empty($postData['vechile_info']) || !isset($postData['vechile_info']) || empty($postData['vechile_info']) ||
!isset($postData['mechanic_id']) || empty($postData['mechanic_id']) || !isset($postData['mechanic_id']) || empty($postData['mechanic_id']) ||
!isset($postData['selected_issues']) || empty($postData['selected_issues'])){ !isset($postData['selected_issues']) || empty($postData['selected_issues'])){
return 0; return 0;
} }
$vehData = $postData['vechile_info']; $vehData = $postData['vechile_info'];
$car_name = $vehData['modelYear'].' '.$vehData['maker'].' '.$vehData['modelName']; $car_name = $vehData['modelYear'].' '.$vehData['maker'].' '.$vehData['modelName'];
$vehJson = array('vehicle' => $car_name,'attributes' => $vehJson = array('vehicle' => $car_name,
array('Year' => $vehData['modelYear'], 'attributes' => array(
'Make' => $vehData['maker'], 'Year' => $vehData['modelYear'],
'Trim' => $vehData['trim'], 'Make' => $vehData['maker'],
'Model' => $vehData['modelName'], 'Trim' => $vehData['trim'],
'Engine' => $vehData['emgine'])); 'Model' => $vehData['modelName'],
if(isset($vehData['lastMaintanceDate']) && !empty($vehData['lastMaintanceDate'])){ 'Engine' => $vehData['emgine']
$last_date = $vehData['lastMaintanceDate']; )
}else{ );
$last_date =''; $last_date ='';
} if(isset($vehData['lastMaintanceDate']) && !empty($vehData['lastMaintanceDate'])){
$insert_array = array('customer_id' => $postData['customer_id'], $last_date = $vehData['lastMaintanceDate'];
'car_name' => $car_name,
'car_model' => $vehData['modelName'],
'car_maker' => $vehData['maker'],
'car_loc_lat' => $postData['pickup_data']['pickup_lat'],
'car_loc_lng' => $postData['pickup_data']['pickup_lng'],
'car_location' => $postData['pickup_data']['pickup_loc'],
'vehicle_data' => json_encode($vehJson),
'car_model_year'=> $vehData['modelYear'],
'last_maintenance_date'=>$last_date,
'status' => '3');
$selected_issues = array();
foreach($postData['selected_issues'] AS $selIssue){
$selected_issues[] = array('issue' => $selIssue['issue'],
'issue_id' => $selIssue['issue_id'],
'sub_issue_id' => $selIssue['sub_issue_id'],
'issue_category' => $selIssue['issue_category']);
}
if($this->db->insert('customer_vehicle',$insert_array)){
$last_id = $this->db->insert_id();
$book_data = array('cost' => $postData['cost'],
'mileage' => $vehData['milage'],
'customer_id' => $postData['customer_id'],
'mechanic_id' => $postData['mechanic_id'],
'scheduled_date' => $postData['schedule_date']['date'],
'scheduled_time' => $postData['schedule_date']['time'],
'issues_selected' => json_encode($selected_issues),
'customer_veh_id' => $last_id,
'custom_issue_data'=> json_encode($postData['optionalData']),
'status' => '0');
if($this->db->insert('bookings',$book_data)){
return 1;
}
}
return 0;
} }
function getCustBookDetails($postData = array(), $status = ''){ $last_maintanence_date ='';
$cond = array(); if(isset($vehData['maintanenceInterval']) && !empty($vehData['maintanenceInterval'])){
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){ $last_maintanence_date = $vehData['maintanenceInterval'];
return 0;
}
$cond = "BK.customer_id='".$postData['customer_id']."' ";
$cond .= (!empty($status))?"AND BK.status IN (".$status.") ":'';
$sql = "SELECT BK.booking_id,BK.customer_id,BK.mechanic_id,BK.customer_veh_id,BK.scheduled_date,
BK.scheduled_time,BK.cost,BK.status,MECH.first_name,MECH.last_name,VEH.car_name,
BK.status
FROM bookings AS BK
INNER JOIN mechanic AS MECH ON (MECH.mechanic_id = BK.mechanic_id)
INNER JOIN customer_vehicle AS VEH ON (VEH.customer_veh_id = BK.customer_veh_id)
WHERE $cond
GROUP BY BK.booking_id";
$bookData = $this->db->query($sql);
if(!empty($bookData)){
return $bookData->result();
}
return 0;
} }
function changeBookStatus($customer_id = '', $booking_id = '', $status = ''){ $last_id = '';
if(empty($customer_id) || empty($booking_id) || $status == ''){ if(isset($postData['customer_vehicle_id']) && !empty($postData['customer_vehicle_id'])){
return 0; $last_id = $postData['customer_vehicle_id'];
} $this->db->update('customer_vehicle',array('last_maintenance_date'=>$last_date,'maintanence_interval'=>$last_maintanence_date),array('customer_veh_id'=>$postData['customer_vehicle_id']));
}
$status = $this->db->update('bookings', $insert_array = array('customer_id' => $postData['customer_id'],
array('status'=>$status), 'car_name' => $car_name,
array('customer_id'=>$customer_id,'booking_id'=>$booking_id)); 'car_model' => $vehData['modelName'],
'car_maker' => $vehData['maker'],
'car_loc_lat' => $postData['pickup_data']['pickup_lat'],
'car_loc_lng' => $postData['pickup_data']['pickup_lng'],
'car_location' => $postData['pickup_data']['pickup_loc'],
'vehicle_data' => json_encode($vehJson),
'car_model_year' => $vehData['modelYear'],
'last_maintenance_date'=> $last_date,
'maintanence_interval' => (int)$last_maintanence_date,
'status' => '3');
return $status; $selected_issues = array();
foreach($postData['selected_issues'] AS $selIssue){
$selected_issues[] = array('issue' => $selIssue['issue'],
'issue_id' => $selIssue['issue_id'],
'sub_issue_id' => $selIssue['sub_issue_id'],
'issue_category' => $selIssue['issue_category']);
}
if(empty($last_id)){
$this->db->insert('customer_vehicle',$insert_array);
$last_id = $this->db->insert_id();
} }
function getMechBookings($mechanic_id = '', $booking_id = '', $status = '1'){ $book_data = array('cost' => $postData['cost'],
if($this->session->userdata('user_type') != 1 && empty($mechanic_id)){ 'mileage' => $vehData['milage'],
return 0; 'customer_id' => $postData['customer_id'],
} //'mechanic_id' => $postData['mechanic_id'],
'scheduled_date' => $postData['schedule_date']['date'],
'scheduled_time' => $postData['schedule_date']['time'],
'issues_selected' => json_encode($selected_issues),
'customer_veh_id' => $last_id,
'custom_issue_data'=> json_encode($postData['optionalData']),
'car_loc_lat' => $postData['pickup_data']['pickup_lat'],
'car_loc_lng' => $postData['pickup_data']['pickup_lng'],
'car_location' => $postData['pickup_data']['pickup_loc'],
'is_multiple' => (isset($postData['multiple']))?$postData['multiple']:0,
'status' => '0');
if($this->db->insert('bookings',$book_data)){
$insertBookMech = array();
$book_id = $this->db->insert_id();
$mechanic_id = explode(',',$postData['mechanic_id']);
foreach ($mechanic_id AS $mech_id) {
$insertBookMech[] = array('booking_id'=>$book_id,'mechanic_id'=>$mech_id,'status'=>'0');
}
if(!empty($insertBookMech)){
$this->db->insert_batch('mechanic_booking',$insertBookMech);
}
return 1;
}
return 0;
}
$cond = " BK.status IN (".$status.") "; function getCustBookDetails($postData = array(), $status = ''){
$cond .= (!empty($booking_id))?" AND BK.booking_id='".$booking_id."' ":""; $cond = array();
$cond .= (!empty($mechanic_id))?" AND BK.mechanic_id='".$mechanic_id."' ":""; $where_cond = array();
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
$sql = "SELECT BK.booking_id,BK.customer_id,BK.mechanic_id,BK.customer_veh_id,BK.scheduled_date, return 0;
BK.scheduled_time,BK.cost,BK.status,BK.mileage,BK.issues_selected,VEH.car_name,
BK.custom_issue_data,MECH.first_name AS mechFirstName,VEH.car_model,
MECH.last_name AS mechLastName,VEH.car_maker,VEH.car_model_year,VEH.car_vin,
VEH.vehicle_data,VEH.car_location,VEH.car_loc_lat,VEH.car_loc_lng,
CUST.first_name AS custFirstName,CUST.last_name AS custLastName,CUST.phone,
CUST.email,CUST.address,CUST.profile_image,CUST.date_of_birth,CUSQTE.custom_id
FROM bookings AS BK
INNER JOIN mechanic AS MECH ON (MECH.mechanic_id=BK.mechanic_id)
INNER JOIN customers AS CUST ON (CUST.customer_id=BK.customer_id)
INNER JOIN admin_users AS ADM ON (ADM.id=BK.mechanic_id)
INNER JOIN customer_vehicle AS VEH ON (VEH.customer_veh_id=BK.customer_veh_id)
LEFT JOIN custom_quote AS CUSQTE on (CUSQTE.booking_id = BK.booking_id)
WHERE $cond AND ADM.status='1' AND CUST.status='1'
GROUP BY BK.booking_id";
$bookData = $this->db->query($sql);
if(!empty($bookData)){
$bookData = (!empty($booking_id))?$bookData->row():$bookData->result();
return $bookData;
}
return 0;
} }
$cond = "BK.customer_id='".$postData['customer_id']."' ";
$cond .= (!empty($status))?"AND BK.status IN (".$status.") ":'';
function changeStatus($booking_id = '', $status = '0'){ $sql = "SELECT BK.booking_id,BK.customer_id,BK.customer_veh_id,BK.scheduled_date,
if(empty($booking_id)){ BK.scheduled_time,BK.cost,BK.is_multiple,BK.status,VEH.car_name,VEH.car_maker,
return 0; VEH.car_model,VEH.car_model_year,BK.status
} FROM bookings AS BK
$status=$this->db->update('bookings',array('status'=>$status),array('booking_id'=>$booking_id)); INNER JOIN customer_vehicle AS VEH ON (VEH.customer_veh_id = BK.customer_veh_id)
return $status; WHERE $cond
GROUP BY BK.booking_id";
$bookData = $this->db->query($sql);
if(empty($bookData)){
return 0;
} }
function insertCustomQuote($data){ $bookDetails = array();
$custData = array();$total=0; $bookData = $bookData->result();
$book_id = decode_param($data['booking_id']); foreach($bookData AS $book) {
unset($data['booking_id']); $bookMechData=$this->db->query("SELECT * FROM mechanic_booking
for($i=0 ; $i < count($data['description']);$i++){ WHERE booking_id='$book->booking_id' AND status!='2'");
$custData[$i]['issue_id']=$data['issue_id'][$i]; if(!empty($bookMechData)){
$custData[$i]['sub_issue_id']=$data['sub_issue_id'][$i]; $bookMechData = $bookMechData->result();
$custData[$i]['description']=$data['description'][$i]; foreach ($bookMechData AS $mech_value) {
$custData[$i]['amount']=$data['amount'][$i]; $mechanic_data = $this->db->query("
$total += $data['amount'][$i]; SELECT ROUND(AVG(MR.rate),2) AS rating,MCH.mechanic_id,MCH.first_name,
} MCH.last_name,MCH.phone,CQ.custom_service_quote,MCH.location,
$book_data = $this->db->get_where('custom_quote',array('booking_id'=>$book_id)); MCH.email_id,CQ.custom_amount,BK.status
FROM mechanic_booking AS BK
if(!empty($book_data) && $book_data->num_rows() > 0){ INNER JOIN mechanic MCH ON BK.mechanic_id=MCH.mechanic_id
$this->db->update('custom_quote',array('custom_service_quote'=>json_encode($custData),'custom_amount'=>$total),array('booking_id'=>$book_id)); INNER JOIN admin_users AU ON AU.id=MCH.mechanic_id
$res = array('status'=>'success'); LEFT JOIN custom_quote CQ ON
}else{ CQ.mechanic_id=BK.mechanic_id AND
if($this->db->insert('custom_quote',array('booking_id'=>$book_id,'custom_service_quote'=>json_encode($custData),'custom_amount'=>$total))){ CQ.booking_id=BK.booking_id AND CQ.status='1'
$last_id = $this->db->insert_id(); LEFT JOIN mechanic_rating MR ON
$res = array('status'=>'success','data'=>encode_param($last_id)); MR.mechanic_id=BK.mechanic_id AND MR.status='1'
} WHERE AU.status='1' AND BK.mechanic_id='$mech_value->mechanic_id' AND
} BK.booking_id='$book->booking_id'");
return $res;
if(!empty($mechanic_data)){
$mechData = $mechanic_data->row();
$mechData->custom_service_quote = json_decode($mechData->custom_service_quote);
$book->mechanic_data[] = $mechData;
$sTime = strtotime($book->scheduled_date.' '.$book->scheduled_time);
$cTime = strtotime('+1 hour');
if($cTime >= $sTime){
$book->status = '4';
}
}
}
}
$bookDetails[] = $book;
} }
return $bookDetails;
}
function changeBookStatus($customer_id = '', $booking_id = '', $status = ''){
if(empty($customer_id) || empty($booking_id) || $status == ''){
return 0;
}
$status = $this->db->update('bookings',
array('status'=>$status),
array('customer_id'=>$customer_id,'booking_id'=>$booking_id));
return $status;
}
public function getCustomData($customid){ function getMechBookings($mechanic_id = '', $booking_id = '', $status = '1'){
$this->db->select('custom_quote.custom_service_quote,custom_quote.custom_amount,bookings.issues_selected'); if($this->session->userdata('user_type') != 1 && empty($mechanic_id)){
$this->db->join('bookings','bookings.booking_id = custom_quote.booking_id'); return 0;
$this->db->where('custom_quote.custom_id',$customid); }
$custData = $this->db->get('custom_quote');
if(!empty($custData) && $custData->num_rows() > 0){ $cond = " BK.status IN (".$status.") ";
$custData = $custData->row_array(); $cond .= (!empty($booking_id))?" AND BK.booking_id='".$booking_id."' ":"";
return $custData; $cond .= (!empty($mechanic_id))?" AND MBK.mechanic_id='".$mechanic_id."' ":"";
$sql = "SELECT GROUP_CONCAT(DISTINCT(MBK.mechanic_id)) AS mechanic_ids,BK.booking_id,BK.customer_id,
BK.customer_veh_id,BK.scheduled_date,BK.scheduled_time,BK.cost,BK.status,BK.mileage,
BK.issues_selected,VEH.car_name,BK.custom_issue_data,VEH.car_model,VEH.car_maker,
VEH.car_model_year,VEH.car_vin,VEH.vehicle_data,BK.car_location,BK.car_loc_lat,
BK.car_loc_lng,CUST.first_name AS custFirstName,CUST.last_name AS custLastName,CUST.phone,
CUST.email,CUST.address,CUST.profile_image,CUST.date_of_birth,CUSQTE.custom_id,
MBK.status AS mech_status
FROM bookings AS BK
INNER JOIN mechanic_booking AS MBK ON (MBK.booking_id=BK.booking_id)
INNER JOIN customers AS CUST ON (CUST.customer_id=BK.customer_id)
INNER JOIN admin_users AS ADM ON (ADM.id=MBK.mechanic_id)
INNER JOIN customer_vehicle AS VEH ON (VEH.customer_veh_id=BK.customer_veh_id)
LEFT JOIN custom_quote AS CUSQTE on (CUSQTE.booking_id = BK.booking_id
AND CUSQTE.mechanic_id=MBK.mechanic_id)
WHERE $cond AND ADM.status='1' AND CUST.status='1'
GROUP BY BK.booking_id";
$bookData = $this->db->query($sql);
if(!empty($bookData)){
if(empty($booking_id)){
return $bookData->result();
}
$bookedMechanics = array();
$bookData = $bookData->row();
if(!empty($bookData->mechanic_ids)){
$mechanics = explode(',',$bookData->mechanic_ids);
foreach ($mechanics AS $mech_id) {
$mechanic_data = $this->db->query("
SELECT ROUND(AVG(MR.rate),2) AS rating,MCH.mechanic_id,MCH.first_name,
MCH.last_name,MCH.phone,CQ.custom_service_quote,MCH.location,
MCH.email_id,CQ.custom_amount,
CASE
WHEN BK.status = '0' THEN 'Pending'
WHEN BK.status = '1' THEN 'Accept'
ELSE 'Reject' END as status
FROM mechanic_booking AS BK
INNER JOIN mechanic MCH ON BK.mechanic_id=MCH.mechanic_id
INNER JOIN admin_users AU ON AU.id=MCH.mechanic_id
LEFT JOIN custom_quote CQ ON
CQ.mechanic_id=BK.mechanic_id AND
CQ.booking_id=BK.booking_id AND CQ.status='1'
LEFT JOIN mechanic_rating MR ON
MR.mechanic_id=BK.mechanic_id AND MR.status='1'
WHERE AU.status='1' AND BK.mechanic_id='$mech_id' AND BK.booking_id='$booking_id'");
if(!empty($mechanic_data)){
$mechData = $mechanic_data->row();
$mechData->custom_service_quote = json_decode($mechData->custom_service_quote);
$bookedMechanics[] = $mechData;
}
}
$bookData->mechanic_data = $bookedMechanics;
}
// pr($bookData);
return $bookData;
}
return 0;
}
function changeStatus($booking_id = '', $status = '0'){
if(empty($booking_id)){
return 0;
}
if($this->session->userdata('user_type')==1){
if($status == '1'){
$status=$this->db->update('bookings',array('status'=>'0'),array('booking_id'=>$booking_id));
}
else if($status == '4'){
$status=$this->db->update('bookings',array('status'=>'4'),array('booking_id'=>$booking_id));
} }
return 0; else if($status == '2'){
$this->db->update('bookings',array('status'=>'2'),array('booking_id'=>$booking_id));
}
}else{
$id = $this->session->userdata('id');
if($status == '4'){
$this->db->update('mechanic_booking',
array('status'=>'2'),
array('booking_id'=>$booking_id,'mechanic_id'=> $id));
}
else if($status == '1'){
$this->db->update('mechanic_booking',
array('status'=>'1'),
array('booking_id'=>$booking_id,'mechanic_id'=> $id));
}
else if($status == '2'){
$this->db->update('mechanic_booking',
array('status'=>'2'),
array('booking_id'=>$booking_id,'mechanic_id'=> $id));
}
}
return $status;
}
function insertCustomQuote($data){
$custData = array();$total=0;
$book_id = decode_param($data['booking_id']);
$mechanic_id = ($this->session->userdata('user_type')==2)?$this->session->userdata('id'):'';
unset($data['booking_id']);
for($i=0 ; $i < count($data['description']);$i++){
$custData[$i]['issue_id']=$data['issue_id'][$i];
$custData[$i]['sub_issue_id']=$data['sub_issue_id'][$i];
$custData[$i]['issue_category']=$data['issue_category'][$i];
$custData[$i]['description']=$data['description'][$i];
$custData[$i]['amount']=$data['amount'][$i];
$total += $data['amount'][$i];
}
$book_data = $this->db->get_where('custom_quote',array('booking_id'=>$book_id));
if(!empty($book_data) && $book_data->num_rows() > 0){
$this->db->update('custom_quote',array('custom_service_quote'=>json_encode($custData),'mechanic_id'=>$mechanic_id,'custom_amount'=>$total),array('booking_id'=>$book_id));
$res = array('status'=>'success');
}else{
if($this->db->insert('custom_quote',array('booking_id'=>$book_id,'mechanic_id'=>$mechanic_id,'custom_service_quote'=>json_encode($custData),'custom_amount'=>$total))){
$last_id = $this->db->insert_id();
$res = array('status'=>'success','data'=>encode_param($last_id));
}
}
return $res;
}
public function getCustomData($customid){
$this->db->select('custom_quote.custom_service_quote,custom_quote.custom_amount,bookings.issues_selected');
$this->db->join('bookings','bookings.booking_id = custom_quote.booking_id');
$this->db->where('custom_quote.custom_id',$customid);
$custData = $this->db->get('custom_quote');
if(!empty($custData) && $custData->num_rows() > 0){
$custData = $custData->row_array();
return $custData;
} }
return 0;
}
} }
?> ?>
...@@ -150,9 +150,9 @@ class Mechanic_model extends CI_Model { ...@@ -150,9 +150,9 @@ class Mechanic_model extends CI_Model {
POWER(SIN(($current_lng-ME.location_lng)*pi()/180/2),2) )) AS distance POWER(SIN(($current_lng-ME.location_lng)*pi()/180/2),2) )) AS distance
FROM mechanic AS ME FROM mechanic AS ME
INNER JOIN admin_users AS AU ON (AU.id=ME.mechanic_id) INNER JOIN admin_users AS AU ON (AU.id=ME.mechanic_id)
LEFT JOIN mechanic_rating AS MR ON (MR.mechanic_id=ME.mechanic_id)
LEFT JOIN mechanic_shop AS MS ON (MS.shop_id=ME.shop_id AND MS.status='1') LEFT JOIN mechanic_shop AS MS ON (MS.shop_id=ME.shop_id AND MS.status='1')
WHERE AU.status='1' WHERE AU.status='1'
-- GROUP BY ME.mechanic_id
-- HAVING distance<30"; -- HAVING distance<30";
$mechData = $this->db->query($sql); $mechData = $this->db->query($sql);
......
...@@ -513,12 +513,33 @@ class Webservice_model extends CI_Model { ...@@ -513,12 +513,33 @@ class Webservice_model extends CI_Model {
$respArr['message'] = 'Sorry, You are already Rated for this mechanic'; $respArr['message'] = 'Sorry, You are already Rated for this mechanic';
return $respArr; return $respArr;
} }
$postData['status'] = '1';
if($this->db->insert('mechanic_rating',$postData)){ if($this->db->insert('mechanic_rating',$postData)){
$respArr['status'] = 'success'; $respArr['status'] = 'success';
$respArr['message'] = 'success'; $respArr['message'] = 'success';
} }
return $respArr; return $respArr;
} }
public function acceptMechanicQuote($postData){
$respArr = array('status'=>'error','message'=>'Something went Wrong.. Try Again');
if(empty($postData['bookingId'])){
$respArr['message'] = 'Booking Id is Required';
return $respArr;
}
if(empty($postData['mechanicId'])){
$respArr['message'] = 'Mechanic Id is Required';
return $respArr;
}
if($this->db->update('mechanic_booking',array('status'=>'1'),array('booking_id'=>$postData['bookingId'],'mechanic_id'=>$postData['mechanicId']))){
$this->db->update('mechanic_booking',array('status'=>'2'),array('booking_id'=>$postData['bookingId'],'mechanic_id !='=>$postData['mechanicId']));
$this->db->update('bookings',array('status'=>'1'),array('booking_id'=>$postData['bookingId']));
$respArr['status'] = 'success';
$respArr['message'] = 'Updated Successfully';
}
return $respArr;
}
} }
?> ?>
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<tr> <tr>
<th class="hidden">ID</th> <th class="hidden">ID</th>
<th width="18%;">Car Name</th> <th width="18%;">Car Name</th>
<th width="12%;">Mechanic</th> <!-- <th width="12%;">Mechanic</th> -->
<th width="12%;">Customer</th> <th width="12%;">Customer</th>
<th width="15%;">Scheduled Date</th> <th width="15%;">Scheduled Date</th>
<th width="11%;">Service Fee</th> <th width="11%;">Service Fee</th>
...@@ -84,7 +84,6 @@ ...@@ -84,7 +84,6 @@
<tr> <tr>
<th class="hidden"><?= $bookData->booking_id ?></th> <th class="hidden"><?= $bookData->booking_id ?></th>
<th class="center"><?= $bookData->car_name ?></th> <th class="center"><?= $bookData->car_name ?></th>
<th class="center"><?= $bookData->mechFirstName.' '.$bookData->mechLastName ?></th>
<th class="center"><?= $bookData->custFirstName.' '.$bookData->custLastName ?></th> <th class="center"><?= $bookData->custFirstName.' '.$bookData->custLastName ?></th>
<th class="center"> <th class="center">
<?= $bookData->scheduled_date.' '.$bookData->scheduled_time ?> <?= $bookData->scheduled_date.' '.$bookData->scheduled_time ?>
...@@ -92,44 +91,65 @@ ...@@ -92,44 +91,65 @@
<th class="center"><?= $bookData->cost ?></th> <th class="center"><?= $bookData->cost ?></th>
<th class="center"> <th class="center">
<?php <?php
switch($bookData->status){ if($this->session->userdata['user_type'] == 1 ){
case 0: echo 'Pending'; break; switch($bookData->status){
case 1: echo 'Accepted'; break; case 0: echo 'Pending'; break;
case 3: echo 'Completed'; break; case 1: echo 'Accepted'; break;
case 4: echo 'Cancelled'; break; case 3: echo 'Completed'; break;
case 4: echo 'Cancelled'; break;
}
} else {
switch($bookData->mech_status){
case 0: echo 'Pending'; break;
case 1: echo 'Accepted'; break;
case 2: echo 'Rejected'; break;
}
} }
?> ?>
</th> </th>
<td class="center float-right"> <td class="center">
<button class="btn btn-sm btn-primary" booking_id="<?= encode_param($bookData->booking_id) ?>" id="showBookinDetails"> <button class="btn btn-sm btn-primary" booking_id="<?= encode_param($bookData->booking_id) ?>" id="showBookinDetails">
<i class="fa fa-fw fa-edit"></i>View Quote <i class="fa fa-fw fa-edit"></i>View Quote
</button> </button>
<?php if($bookData->status == 1){ ?>
<a class="btn btn-sm btn-success" style="background-color:#ac2925" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/4/".encode_param($mechanic_id)) ?>">
<i class="fa fa-cog"></i> Cancel <?php if($this->session->userdata['user_type'] == 1){
</a> if($bookData->status == 0 || $bookData->status == 1){ ?>
<?php } ?> <a class="btn btn-sm btn-success" style="background-color:#ac2925" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/4/".encode_param($mechanic_id)) ?>">
<?php if($bookData->status == 0 || $bookData->status == 4){ ?> <i class="fa fa-cog"></i> Cancel
<a class="btn btn-sm btn-success" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/1/".encode_param($mechanic_id)) ?>"> </a>
<i class="fa fa-cog"></i> Accept <?php } if($bookData->status == 4 ){ ?>
</a> <a class="btn btn-sm btn-success" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/1/".encode_param($mechanic_id)) ?>">
<?php } ?> <i class="fa fa-cog"></i> Accept
</a>
<?php }
} else {
if($bookData->mech_status == 0 || $bookData->mech_status == 1){ ?>
<a class="btn btn-sm btn-success" style="background-color:#ac2925" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/4/".encode_param($mechanic_id)) ?>">
<i class="fa fa-cog"></i> Cancel
</a>
<?php } if($bookData->mech_status == 2 || $bookData->mech_status == 0){ ?>
<a class="btn btn-sm btn-success" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/1/".encode_param($mechanic_id)) ?>">
<i class="fa fa-cog"></i> Accept
</a>
<?php }
} ?>
<a class="btn btn-sm btn-danger" <a class="btn btn-sm btn-danger"
href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/2/".encode_param($mechanic_id))?>" href="<?= base_url("Bookings/changeBookingStatus/".encode_param($bookData->booking_id)."/2/".encode_param($mechanic_id))?>"
onClick="return doconfirm()"> onClick="return doconfirm()">
<i class="fa fa-fw fa-trash"></i>Delete <i class="fa fa-fw fa-trash"></i>Delete
</a> </a>
<?php if($bookData->custom_id == ''){ <?php if($bookData->custom_id == ''){
if($this->session->userdata['user_type'] != 1 ){ if($this->session->userdata['user_type'] != 1 ){ ?>
?> <button class="btn btn-sm btn-primary" style="margin-top:3px;" booking_id="<?= encode_param($bookData->booking_id) ?>" id="customQuote" view="0">
<button class="btn btn-sm btn-primary" style="margin-top:3px;" booking_id="<?= encode_param($bookData->booking_id) ?>" id="customQuote" view="0"> <i class="fa fa-fw fa-edit"></i><span>Generate Custom Quote</span>
<i class="fa fa-fw fa-edit"></i><span>Generate Custom Quote</span> </button>
</button> <?php } ?>
<?php } } else{ ?> <?php } else { ?>
<button class="btn btn-sm btn-primary" style="margin-top:3px;" booking_id="<?= encode_param($bookData->custom_id) ?>" id="customQuote" view="1"> <button class="btn btn-sm btn-primary" style="margin-top:3px;" booking_id="<?= encode_param($bookData->custom_id) ?>" id="customQuote" view="1">
<i class="fa fa-fw fa-edit"></i><span>View Custom Quote</span> <i class="fa fa-fw fa-edit"></i><span>View Custom Quote</span>
</button> </button>
<?php } ?> <?php } ?>
</td> </td>
</tr> </tr>
<?php } } ?> <?php } } ?>
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
jQuery(function () { jQuery(function () {
jQuery('.datatable').DataTable({ jQuery('.datatable').DataTable({
"ordering" : jQuery(this).data("ordering"), "ordering" : jQuery(this).data("ordering"),
"order": [[ 0, "asc" ]] "order": [[ 0, "desc" ]]
}); });
}); });
<?php //} ?> <?php //} ?>
......
...@@ -830,7 +830,8 @@ function customQuote(thisObj){ ...@@ -830,7 +830,8 @@ function customQuote(thisObj){
'</div>'+ '</div>'+
'<input type="hidden" name="issue_id[]" value="'+value['issue_id']+'">'+ '<input type="hidden" name="issue_id[]" value="'+value['issue_id']+'">'+
'<input type="hidden" name="sub_issue_id[]" value="'+value['sub_issue_id']+'">'+ '<input type="hidden" name="sub_issue_id[]" value="'+value['sub_issue_id']+'">'+
'</div>'; '</div>'+
'<input type="hidden" name="issue_category[]" value="'+value['issue_category']+'">';
}); });
issueHtml += '<input type="hidden" id="array_count" name="count" value="'+issues_selected.length+'">'+ issueHtml += '<input type="hidden" id="array_count" name="count" value="'+issues_selected.length+'">'+
'</div>'+ '</div>'+
...@@ -1113,11 +1114,6 @@ jQuery('[id="showBookinDetails"]').on('click',function() { ...@@ -1113,11 +1114,6 @@ jQuery('[id="showBookinDetails"]').on('click',function() {
'<div class="col-md-6"><label>'+booking_data['custFirstName']+' '+booking_data['custLastName']+'</label></div>'+ '<div class="col-md-6"><label>'+booking_data['custFirstName']+' '+booking_data['custLastName']+'</label></div>'+
'</div> '+ '</div> '+
'<div class="row">'+ '<div class="row">'+
'<div class="col-md-4">Mechanic</div>'+
'<div class="col-md-1">:</div>'+
'<div class="col-md-6"><label>'+booking_data['mechFirstName']+' '+booking_data['mechLastName']+'</label></div>'+
'</div> '+
'<div class="row">'+
'<div class="col-md-4">Current Milage</div>'+ '<div class="col-md-4">Current Milage</div>'+
'<div class="col-md-1">:</div>'+ '<div class="col-md-1">:</div>'+
'<div class="col-md-6"><label>'+booking_data['mileage']+'</label></div>'+ '<div class="col-md-6"><label>'+booking_data['mileage']+'</label></div>'+
...@@ -1165,7 +1161,26 @@ jQuery('[id="showBookinDetails"]').on('click',function() { ...@@ -1165,7 +1161,26 @@ jQuery('[id="showBookinDetails"]').on('click',function() {
'<div class="col-md-1">:</div>'+ '<div class="col-md-1">:</div>'+
'<div class="col-md-6"><label>'+booking_data['car_location']+'</label></div>'+ '<div class="col-md-6"><label>'+booking_data['car_location']+'</label></div>'+
'</div> '+ '</div> '+
'</div> '+issueHtml+optionalHtml+ '</div> '+issueHtml+
'<div class="col-md-12"> '+
'<div class="row"><label>Mechanic Details</label></div>'+
'<div class="col-md-3"><div class="row"><label>Mechanic Name</label></div></div>'+
'<div class="col-md-3"><div class="row"><label>Amount</label></div></div>'+
'<div class="col-md-2"><div class="row"><label>status</label></div></div>'+
'<div class="row">';
jQuery.each(booking_data['mechanic_data'], function (index1, value1) {
if(value1['custom_amount'] == '' || value1['custom_amount'] == null || value1['custom_amount'] == undefined || value1['custom_amount'] == 'null' || value1['custom_amount'] == 'undefined'){
value1['custom_amount'] = booking_data['cost'];
}
html+= '<div class="col-md-12">'+
'<div class="col-md-3">'+value1['first_name']+' '+value1['last_name']+'</div>'+
'<div class="col-md-3">'+value1['custom_amount']+'</div>'+
'<div class="col-md-2">'+value1['status']+'</div>'+
'</div>';
});
html+= '</div>'+
'</div>'+
optionalHtml+
'</div>'; '</div>';
remModalLoader(); remModalLoader();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment