Commit 72e54c70 by Tobin

Merge branch 'master' of https://gitlab.techware.co.in/tobin/dcarfixers into tobin

parents af34c65e 1a3f5be7
...@@ -36,7 +36,8 @@ class Bookings extends CI_Controller { ...@@ -36,7 +36,8 @@ class Bookings extends CI_Controller {
$template['menu'] = "Bookings Management"; $template['menu'] = "Bookings Management";
$template['smenu'] = "View Bookings"; $template['smenu'] = "View Bookings";
$template['mechanic_id'] = $mechanic_id; $template['mechanic_id'] = ($this->session->userdata('user_type')==1 &&
empty($mechanic_id))?'1':$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');
$this->load->view('template',$template); $this->load->view('template',$template);
...@@ -64,13 +65,44 @@ class Bookings extends CI_Controller { ...@@ -64,13 +65,44 @@ class Bookings extends CI_Controller {
echo json_encode($return_arr);exit; echo json_encode($return_arr);exit;
} }
$booking_id = decode_param($_POST['booking_id']); $booking_id = decode_param($_POST['booking_id']);
$bookingData = $this->Booking_model->getMechBookings('',$booking_id,'0,1,3,4'); $mechanic_id = ($this->session->userdata('user_type')==2)?$this->session->userdata('id'):'';
$bookingData = $this->Booking_model->getMechBookings($mechanic_id,$booking_id,'0,1,3,4');
if(!empty($bookingData)){ if(!empty($bookingData)){
$return_arr['status'] = 1; $return_arr['status'] = 1;
$return_arr['data'] = $bookingData; $return_arr['data'] = $bookingData;
echo json_encode($return_arr);exit; echo json_encode($return_arr);exit;
} }
echo json_encode($return_arr);exit;
}
public function insertCustomQuote(){
$return_arr = array('status'=>'error');
parse_str($_POST['data'], $output);
if(!isset($output) || empty($output)){
echo json_encode($return_arr);exit;
}
$return_arr = $this->Booking_model->insertCustomQuote($output);
echo json_encode($return_arr);exit;
}
public function getCustomData(){
$return_arr = array('status'=>'0');
if(!isset($_POST) || empty($_POST) || !isset($_POST['custom_id']) || empty($_POST['custom_id']) ||
empty(decode_param($_POST['custom_id']))){
echo json_encode($return_arr);exit;
}
$custom_booking_id = decode_param($_POST['custom_id']);
// print_r($custom_booking_id);exit();
$CustData = $this->Booking_model->getCustomData($custom_booking_id);
if(!empty($CustData)){
$return_arr['status'] = 1;
$return_arr['data'] = $CustData;
echo json_encode($return_arr);exit;
}
echo json_encode($return_arr);exit;
} }
} }
?> ?>
\ No newline at end of file
<?php <?php
defined('BASEPATH')OR exit('No direct script access allowed'); defined('BASEPATH')OR exit('No direct script access allowed');
header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/html; charset=utf-8');
// Allow from any origin // Allow from any origin
if(isset($_SERVER['HTTP_ORIGIN'])) { if(isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
class Webservices extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Webservice_model');
$this->load->library('form_validation');
$auth = '';
$class = $this->router->fetch_class();
$method = $this->router->fetch_method();
if($this->input->server('REQUEST_METHOD') == 'GET')
$postdata = json_encode($_GET);
else if ($this->input->server('REQUEST_METHOD') == 'POST')
$postdata = file_get_contents("php://input");
if (isset(apache_request_headers()['Auth'])) {
$auth = apache_request_headers()['Auth'];
}
// $this->last_id = set_log($class, $method, $postdata, $auth);
}
// customer_login
public function customer_login(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(!isset($postData['email']) || empty($postData['email']) ||
!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
echo json_encode($respArr);exit;
}
$custResp = $this->Customer_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = '1';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '3'){
$respArr['status'] = '3';
$respArr['message'] = 'Invalid Password';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
}
// customer_forgot_password
public function customer_forgot_password(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(empty($postData) || !isset($postData['email']) || empty($postData['email'])){
echo json_encode($respArr);exit;
}
$custResp = $this->Customer_model->genCustForgotPassLink($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
/*
MAIL SENT CONFIGARATION -- TODO
*/
$respArr['status'] = '1';
$respArr['message'] = 'Password Reset Email has been sent';
}
echo json_encode($respArr); exit;
}
// customer_registration
public function customer_registration(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData)){
echo json_encode($respArr);exit;
}
$err = 0;
$msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
$err = 1;
$msg = 'Provide a Password';
}
else if(!isset($postData['first_name']) || empty($postData['first_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['last_name']) || empty($postData['last_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
if(isset($postData['phone']) && empty($postData['phone'])){
unset($postData['phone']);
}
unset($postData['promocode']);
$custResp = $this->Customer_model->createCustomer($postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp == '1'){
$custResp = $this->Customer_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = '1';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
} else if($custResp == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp == '3'){
$respArr['status'] = '2';
$respArr['message'] = 'Phone already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
}
// getGeneralIssues
public function getGeneralIssues(){
header('Content-type: application/json');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
$this->load->model('Issue_model');
$issue_data = $this->Issue_model->getGeneralIssues();
if(!empty($issue_data)){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
$respArr['issue_data'] = $issue_data;
}
echo json_encode($respArr); exit;
}
// getNearByMechanics
public function getNearByMechanics(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Mechanic_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['pickup_data']) || !isset($postData['sub_issues']) ||
empty($postData['pickup_data']) || empty($postData['sub_issues']) ){
echo json_encode($respArr); exit;
}
$mechanic_data = $this->Mechanic_model->getNearByMechanics($postData['pickup_data'],$postData['sub_issues']);
if(!empty($mechanic_data)){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
$respArr['mechanic_data'] = $mechanic_data;
}
echo json_encode($respArr); exit;
}
// scheduleNow
public function scheduleNow(){
header('Content-type: application/json');
$postData = $_POST;
$optionalData = array('optionlaDescription'=>'','optionalImages'=>array(),'optionalVideos'=>array());
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || empty($postData = json_decode($postData['data'],true)) ||
!isset($postData['cost']) || empty($postData['cost']) ||
!isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['mechanic_id']) || empty($postData['mechanic_id']) ||
!isset($postData['pickup_data']) || empty($postData['pickup_data']) ||
!isset($postData['vechile_info']) || empty($postData['vechile_info']) ||
!isset($postData['schedule_date']) || empty($postData['schedule_date']) ||
!isset($postData['selected_issues']) || empty($postData['selected_issues'])){
echo json_encode($respArr);exit;
}
$optionalData['optionlaDescription'] = (isset($postData['optionalDescription']) &&
!empty($postData['optionalDescription']))?
$postData['optionalDescription']:'';
if(isset($_FILES) && !empty($_FILES)){
foreach ($_FILES as $fileIndex => $optImgs) {
if(empty($optImgs) || !isset($optImgs['name']) || empty($optImgs['name'])){
continue;
}
$this->load->library('upload');
$config = set_upload_service("assets/uploads/services");
$config['file_name'] = 'optionalImages'.$postData['customer_id'].date('dmYHis');
$this->upload->initialize($config);
if($this->upload->do_upload($fileIndex)){
$upload_data = $this->upload->data();
$optionalData['optionalImages'][] = $config['upload_path']."/".$upload_data['file_name'];
}
}
}
$this->load->model('Booking_model');
$postData['optionalData'] = $optionalData;
$status = $this->Booking_model->scheduleBooking($postData);
if($status){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
}
echo json_encode($respArr); exit;
}
// edit_customer_profile
public function edit_customer_profile(){
header('Content-type: application/json');
$postData = $_POST;
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || empty($postData = json_decode($postData['data'],true)) ||
!isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$err = 0;
$msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['first_name']) || empty($postData['first_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['last_name']) || empty($postData['last_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['phone']) || empty($postData['phone'])){
$err = 1;
$msg = 'Provide valid Phone';
}
else if(!isset($postData['address']) || empty($postData['address'])){
$err = 1;
$msg = 'Provide valid Address';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
if(isset($_FILES) && !empty($_FILES) &&
isset($_FILES['profile_image']) && !empty($_FILES['profile_image'])){
$config = set_upload_service("assets/uploads/services");
$this->load->library('upload');
$config['file_name'] = $postData['customer_id']."_".$_FILES['profile_image']['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('profile_image')){
$upload_data = $this->upload->data();
$postData['profile_image'] = $config['upload_path']."/".$upload_data['file_name'];
}
}
$customer_id = $postData['customer_id'];
if(isset($postData['password']) && !empty($postData['password']) &&
isset($postData['cpassword']) && !empty($postData['cpassword']) &&
$postData['password'] == $postData['cpassword']){
$postData['password'] = md5($postData['password']);
} else {
unset($postData['password']);
}
unset($postData['cpassword']);
unset($postData['customer_id']);
$custResp = $this->Customer_model->updateCustomer($customer_id,$postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp == '1'){
$respArr['status'] = '1';
$respArr['message'] = 'Profile successfully updated';
$respArr['profile_image'] = (isset($postData['profile_image']) && !empty($postData['profile_image']))?$postData['profile_image']:'';
echo json_encode($respArr);exit;
} else if($custResp == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp == '3'){
$respArr['status'] = '3';
$respArr['message'] = 'Phone Number already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
}
// customerVechiles
function customerVechiles(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Vehicle_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$vehData = $this->Vehicle_model->getCustVechiles($postData);
if($vehData != '0'){
$respArr['status'] = 1;
$respArr['message'] = 'success';
$respArr['vehData'] = $vehData;
}
echo json_encode($respArr);exit;
}
// getCustBookDetails
function getCustBookDetails(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Booking_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$status = (isset($postData['status']) && !empty($postData['status']))?$postData['status']:'';
$bookingDetails = $this->Booking_model->getCustBookDetails($postData,$status);
if($bookingDetails != '0'){
$respArr['status'] = 1;
$respArr['message'] = 'success';
$respArr['bookData'] = $bookingDetails;
}
echo json_encode($respArr);exit;
}
// cancelBooking
function cancelBooking(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Booking_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['booking_id']) || empty($postData['booking_id'])){
echo json_encode($respArr);exit;
}
$status=$this->Booking_model->changeBookStatus($postData['customer_id'],$postData['booking_id'],'3');
if($status){
$respArr['status'] = 1;
$respArr['message'] = 'success';
}
echo json_encode($respArr);exit;
}
// deleteCustomerCar
function deleteCustomerCar(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Vehicle_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['customer_veh_id']) || empty($postData['customer_veh_id'])){
echo json_encode($respArr);exit;
}
$status = $this->Vehicle_model->changeCustomerCarStatus($postData['customer_id'],
$postData['customer_veh_id'],'2');
if($status){
$respArr['status'] = 1;
$respArr['message'] = 'success';
}
echo json_encode($respArr);exit;
}
// addCustomerCar
function addCustomerCar(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Vehicle_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$param = "";
$searchType = $postData['type'];
$searchData = $postData['vehicleData'];
$locationData = $postData['location'];
$vehicle_data['status'] = '1';
$vehicle_data['customer_id'] = $postData['customer_id'];
$vehicle_data['car_loc_lat'] = $locationData['location_lat'];
$vehicle_data['car_loc_lng'] = $locationData['location_lng'];
$vehicle_data['car_location'] = $locationData['location'];
$this->load->model('Settings_model');
$settings = $this->Settings_model->settings_viewing();
$searchData = $postData['vehicleData'];
if($searchType == 1 &&
isset($searchData['car_maker']) && !empty($searchData['car_maker']) &&
isset($searchData['modelName']) && !empty($searchData['modelName']) &&
isset($searchData['modelYear']) && !empty($searchData['modelYear'])){
$vehicle_data['car_maker'] = $searchData['car_maker'];
$vehicle_data['car_model'] = $searchData['modelName'];
$vehicle_data['car_model_year'] = $searchData['modelYear'];
$param = "?format=json&key=".urlencode($settings['vin_audit_api'])."&year=".
urlencode($searchData['modelYear'])."&make=".urlencode($searchData['car_maker']).
"&model=".urlencode($searchData['modelName']);
}
else if($searchType == 2 && isset($searchData['vin']) && !empty($searchData['vin'])){
$vehicle_data['car_vin'] = $searchData['vin'];
$param = "?format=json&key=".urlencode($settings['vin_audit_api']).
"&vin=".urlencode($searchData['vin']);
}
if(!empty($param)){
$vehData=file_get_contents("https://specifications.vinaudit.com/getspecifications.php".$param);
if(empty($vehData) || empty($vehData = json_decode($vehData,true))){
echo json_encode($return_arr);exit;
}
if(!isset($vehData['success']) || empty($vehData['success']) || $vehData['success'] == false){
$return_arr['status'] = 2;
$return_arr['message'] = 'No Data Found.';
echo json_encode($return_arr);exit;
}
if($searchType == 2){
$vehicle_data['car_model'] = $vehData['attributes']['Model'];
$vehicle_data['car_maker'] = $vehData['attributes']['Make'];
$vehicle_data['car_model_year'] = $vehData['attributes']['Year'];
$vehData['vehicle']= $vehData['attributes']['Year'].' '.$vehData['attributes']['Make'].' '.
$vehData['attributes']['Model'].' '.$vehData['attributes']['Trim'];
}
$vehicle_data['car_name'] = $vehData['vehicle'];
$vehicle_data['vehicle_data'] = json_encode($vehData);
$car_id = $this->Vehicle_model->addVehicle($vehicle_data);
if(!empty($car_id)){
$return_arr['status'] = '1';
$return_arr['car_id'] = $car_id;
$return_arr['veh_data'] = $vehData;
}
}
echo json_encode($return_arr);exit;
}
/*****************************************************************************************/
/****************************************Mobile API's*************************************/
public function mobile_number_availability(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$respArr = array('status'=>'error','error'=>'901','message'=>'Something went wrong.');
if(!isset($postData['phone']) || empty($postData['phone'])){
$respArr = array('status'=>'0','error'=>'903','message'=>'Required Fields are empty.');
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->checkMobAvailability($postData);
if(!empty($custResp)){
$respArr = $custResp;
}
echo json_encode($respArr);exit;
}
public function user_login(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(!isset($postData['email']) || empty($postData['email']) ||
!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = 'success';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = 'error';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '3'){
$respArr['status'] = 'error';
$respArr['message'] = 'Invalid Password';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
}
// customer_registration
public function user_registration(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData)){
echo json_encode($respArr);exit;
}
$err = 0;
$msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
$err = 1;
$msg = 'Provide a Password';
}
else if(!isset($postData['name']) || empty($postData['name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['country_code']) || empty($postData['country_code'])){
$err = 1;
$msg = 'Provide a Country Code';
}
else if(!isset($postData['phone']) && empty($postData['phone'])){
$err = 1;
$msg = 'Provide a Phone Number';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->createCustomer($postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = 'success';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
} else if($custResp['status'] == '2'){
$respArr['status'] = 'error';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp['status'] == '3'){
$respArr['status'] = 'error';
$respArr['message'] = 'Phone already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
public function get_booked_services(){ // Access-Control headers are received during OPTIONS requests
header('Content-type: application/json'); if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
$headers = apache_request_headers(); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if(!isset($headers['Auth']) || empty($headers['Auth'])){ if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
$respArr['status'] = '0'; header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
$respArr['message'] = 'Authtoken is Required'; exit(0);
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$bookData = $this->Webservice_model->getBookedService($authRes['data']['customer_id']);
echo json_encode($bookData);exit;
} }
public function add_vehicle_details(){ class Webservices extends CI_Controller {
header('Content-type: application/json');
$headers = apache_request_headers(); public function __construct() {
parent::__construct();
$post = file_get_contents("php://input"); $this->load->model('Webservice_model');
$postData = json_decode($post, true); $this->load->library('form_validation');
if(!isset($headers['Auth']) || empty($headers['Auth'])){ $auth = '';
$respArr['status'] = '0'; $class = $this->router->fetch_class();
$respArr['message'] = 'Authtoken is Required'; $method = $this->router->fetch_method();
echo json_encode($respArr);exit;
} if($this->input->server('REQUEST_METHOD') == 'GET')
$postdata = json_encode($_GET);
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
else if ($this->input->server('REQUEST_METHOD') == 'POST')
if($authRes['status'] == 'error'){ $postdata = file_get_contents("php://input");
echo json_encode($authRes);exit;
} if (isset(apache_request_headers()['Auth'])) {
$auth = apache_request_headers()['Auth'];
$err = 0; }
$msg = '';
if(empty($postData)){
$respArr = array('status'=>0,'error'=>'901','message'=>'All Field is Required');
echo json_encode($respArr);exit;
}
if(!isset($postData['vehicle_year']) || empty($postData['vehicle_year'])){
$err = 1;
$msg = 'Provide a Vehicle year';
}
else if(!isset($postData['vehicle_make']) || empty($postData['vehicle_make'])){
$err = 1;
$msg = 'Provide a Vehicle Make';
}
else if(!isset($postData['vehicle_model']) || empty($postData['vehicle_model'])){
$err = 1;
$msg = 'Provide a Vehicle Model';
}
else if(!isset($postData['engine_no']) || empty($postData['engine_no'])){
$err = 1;
$msg = 'Provide an Engine Number';
}
else if(!isset($postData['vehicle_trim']) && empty($postData['vehicle_trim'])){
$err = 1;
$msg = 'Provide a Vehicle Trim';
}
else if(!isset($postData['mileage']) && empty($postData['mileage'])){
$err = 1;
$msg = 'Provide a Mileage';
}
else if(!isset($postData['car_loc_lat']) && empty($postData['car_loc_lat'])){
$err = 1;
$msg = 'Car Location is Required';
}
else if(!isset($postData['car_loc_lng']) && empty($postData['car_loc_lng'])){
$err = 1;
$msg = 'Car Location is Required';
} }
else if(!isset($postData['car_location']) && empty($postData['car_location'])){
$err = 1; // customer_login
$msg = 'Car Location is Required'; public function customer_login(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(!isset($postData['email']) || empty($postData['email']) ||
!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
echo json_encode($respArr);exit;
}
$custResp = $this->Customer_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = '1';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '3'){
$respArr['status'] = '3';
$respArr['message'] = 'Invalid Password';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
if($err == 1){ // customer_forgot_password
$respArr['message'] = $msg; public function customer_forgot_password(){
echo json_encode($respArr);exit; header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(empty($postData) || !isset($postData['email']) || empty($postData['email'])){
echo json_encode($respArr);exit;
}
$custResp = $this->Customer_model->genCustForgotPassLink($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
/*
MAIL SENT CONFIGARATION -- TODO
*/
$respArr['status'] = '1';
$respArr['message'] = 'Password Reset Email has been sent';
}
echo json_encode($respArr); exit;
} }
$respData = $this->Webservice_model->addVehicleDetails($postData,$authRes['data']['customer_id']); // customer_registration
echo json_encode($respData);exit; public function customer_registration(){
} header('Content-type: application/json');
$post = file_get_contents("php://input");
public function get_services(){ $postData = json_decode($post, true);
header('Content-type: application/json'); $this->load->model('Customer_model');
$headers = apache_request_headers();
$respArr = array('status'=>'0','message'=>'Something went wrong.');
$postData = $_GET; if(empty($postData)){
echo json_encode($respArr);exit;
if(!isset($headers['Auth']) || empty($headers['Auth'])){ }
$respArr['status'] = '0';
$respArr['message'] = 'Authtoken is Required'; $err = 0;
echo json_encode($respArr);exit; $msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
$err = 1;
$msg = 'Provide a Password';
}
else if(!isset($postData['first_name']) || empty($postData['first_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['last_name']) || empty($postData['last_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
if(isset($postData['phone']) && empty($postData['phone'])){
unset($postData['phone']);
}
unset($postData['promocode']);
$custResp = $this->Customer_model->createCustomer($postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp == '1'){
$custResp = $this->Customer_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = '1';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
} else if($custResp == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp == '3'){
$respArr['status'] = '2';
$respArr['message'] = 'Phone already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']); // getGeneralIssues
public function getGeneralIssues(){
if($authRes['status'] == 'error'){ header('Content-type: application/json');
echo json_encode($authRes);exit;
$respArr = array('status'=>'0','message'=>'Something went wrong.');
$this->load->model('Issue_model');
$issue_data = $this->Issue_model->getGeneralIssues();
if(!empty($issue_data)){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
$respArr['issue_data'] = $issue_data;
}
echo json_encode($respArr); exit;
} }
$currentpage = 0; // getNearByMechanics
$start = 0; public function getNearByMechanics(){
$per_page = 10; header('Content-type: application/json');
$post = file_get_contents("php://input");
if(isset($postData['page']) && strlen(trim($postData['page']," ")) > 0 ) { $postData = json_decode($post, true);
$currentpage = (int)$postData['page']; $this->load->model('Mechanic_model');
$currentpage = $currentpage==0 ? $currentpage : $currentpage-1;
$start = $currentpage * $per_page; $respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['pickup_data']) || !isset($postData['sub_issues']) ||
empty($postData['pickup_data']) || empty($postData['sub_issues']) ){
echo json_encode($respArr); exit;
}
$mechanic_data = $this->Mechanic_model->getNearByMechanics($postData['pickup_data'],$postData['sub_issues']);
if(!empty($mechanic_data)){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
$respArr['mechanic_data'] = $mechanic_data;
}
echo json_encode($respArr); exit;
} }
$serviceresult = $this->Webservice_model->get_service_list($postData,0,0);
$serviceList = $this->Webservice_model->get_service_list($postData,$start,$per_page);
$service = array(); // scheduleNow
$total = 0; public function scheduleNow(){
header('Content-type: application/json');
if($serviceresult['status'] == 1){ $postData = $_POST;
$total = count($serviceresult['data']); $optionalData = array('optionlaDescription'=>'','optionalImages'=>array(),'optionalVideos'=>array());
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || empty($postData = json_decode($postData['data'],true)) ||
!isset($postData['cost']) || empty($postData['cost']) ||
!isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['mechanic_id']) || empty($postData['mechanic_id']) ||
!isset($postData['pickup_data']) || empty($postData['pickup_data']) ||
!isset($postData['vechile_info']) || empty($postData['vechile_info']) ||
!isset($postData['schedule_date']) || empty($postData['schedule_date']) ||
!isset($postData['selected_issues']) || empty($postData['selected_issues'])){
echo json_encode($respArr);exit;
}
$optionalData['optionlaDescription'] = (isset($postData['optionalDescription']) &&
!empty($postData['optionalDescription']))?
$postData['optionalDescription']:'';
if(isset($_FILES) && !empty($_FILES)){
foreach ($_FILES as $fileIndex => $optImgs) {
if(empty($optImgs) || !isset($optImgs['name']) || empty($optImgs['name'])){
continue;
}
$this->load->library('upload');
$config = set_upload_service("assets/uploads/services");
$config['file_name'] = 'optionalImages'.$postData['customer_id'].date('dmYHis');
$this->upload->initialize($config);
if($this->upload->do_upload($fileIndex)){
$upload_data = $this->upload->data();
$optionalData['optionalImages'][] = $config['upload_path']."/".$upload_data['file_name'];
}
}
}
$this->load->model('Booking_model');
$postData['optionalData'] = $optionalData;
$status = $this->Booking_model->scheduleBooking($postData);
if($status){
$respArr['status'] = '1';
$respArr['message'] = 'Success';
}
echo json_encode($respArr); exit;
} }
if($total >= $per_page){ // edit_customer_profile
public function edit_customer_profile(){
$totalPages = (int)($total % $per_page ==0 ? $total / $per_page :($total / $per_page)+1); header('Content-type: application/json');
$postData = $_POST;
$this->load->model('Customer_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || empty($postData = json_decode($postData['data'],true)) ||
!isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$err = 0;
$msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['first_name']) || empty($postData['first_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['last_name']) || empty($postData['last_name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['phone']) || empty($postData['phone'])){
$err = 1;
$msg = 'Provide valid Phone';
}
else if(!isset($postData['address']) || empty($postData['address'])){
$err = 1;
$msg = 'Provide valid Address';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
if(isset($_FILES) && !empty($_FILES) &&
isset($_FILES['profile_image']) && !empty($_FILES['profile_image'])){
$config = set_upload_service("assets/uploads/services");
$this->load->library('upload');
$config['file_name'] = $postData['customer_id']."_".$_FILES['profile_image']['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('profile_image')){
$upload_data = $this->upload->data();
$postData['profile_image'] = $config['upload_path']."/".$upload_data['file_name'];
}
}
$customer_id = $postData['customer_id'];
if(isset($postData['password']) && !empty($postData['password']) &&
isset($postData['cpassword']) && !empty($postData['cpassword']) &&
$postData['password'] == $postData['cpassword']){
$postData['password'] = md5($postData['password']);
} else {
unset($postData['password']);
}
unset($postData['cpassword']);
unset($postData['customer_id']);
$custResp = $this->Customer_model->updateCustomer($customer_id,$postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp == '1'){
$respArr['status'] = '1';
$respArr['message'] = 'Profile successfully updated';
$respArr['profile_image'] = (isset($postData['profile_image']) && !empty($postData['profile_image']))?$postData['profile_image']:'';
echo json_encode($respArr);exit;
} else if($custResp == '2'){
$respArr['status'] = '2';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp == '3'){
$respArr['status'] = '3';
$respArr['message'] = 'Phone Number already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
else{
$totalPages = 1; // customerVechiles
function customerVechiles(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Vehicle_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
}
$vehData = $this->Vehicle_model->getCustVechiles($postData);
if($vehData != '0'){
$respArr['status'] = 1;
$respArr['message'] = 'success';
$respArr['vehData'] = $vehData;
}
echo json_encode($respArr);exit;
} }
if($serviceList['status'] == '1'){ // getCustBookDetails
$respArr = array('status' => 'success', function getCustBookDetails(){
'message'=>'success', header('Content-type: application/json');
'data' => array( $post = file_get_contents("php://input");
'services' => $serviceList['data'] $postData = json_decode($post, true);
), $this->load->model('Booking_model');
'meta' => array(
'total_pages' => $totalPages, $respArr = array('status'=>'0','message'=>'Something went wrong.');
'total' => $total, if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
'current_page' => $currentpage+1, echo json_encode($respArr);exit;
'per_page' => $per_page) }
);
}else{ $status = (isset($postData['status']) && !empty($postData['status']))?$postData['status']:'';
$respArr = array('status' => 'error', $bookingDetails = $this->Booking_model->getCustBookDetails($postData,$status);
'message'=>'No data', if($bookingDetails != '0'){
'data' => array( $respArr['status'] = 1;
'services' => [] $respArr['message'] = 'success';
), $respArr['bookData'] = $bookingDetails;
'meta' => array( }
'total_pages' => $totalPages, echo json_encode($respArr);exit;
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page)
);
} }
echo json_encode($respArr);exit;
} // cancelBooking
function cancelBooking(){
public function get_vehicle_details(){ header('Content-type: application/json');
header('Content-type: application/json'); $post = file_get_contents("php://input");
$headers = apache_request_headers(); $postData = json_decode($post, true);
$this->load->model('Booking_model');
$post = file_get_contents("php://input");
$postData = json_decode($post, true); $respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
if(!isset($headers['Auth']) || empty($headers['Auth'])){ !isset($postData['booking_id']) || empty($postData['booking_id'])){
$respArr['status'] = '0'; echo json_encode($respArr);exit;
$respArr['message'] = 'Authtoken is Required'; }
echo json_encode($respArr);exit;
$status=$this->Booking_model->changeBookStatus($postData['customer_id'],$postData['booking_id'],'3');
if($status){
$respArr['status'] = 1;
$respArr['message'] = 'success';
}
echo json_encode($respArr);exit;
} }
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']); // deleteCustomerCar
function deleteCustomerCar(){
if($authRes['status'] == 'error'){ header('Content-type: application/json');
echo json_encode($authRes);exit; $post = file_get_contents("php://input");
$postData = json_decode($post, true);
$this->load->model('Vehicle_model');
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id']) ||
!isset($postData['customer_veh_id']) || empty($postData['customer_veh_id'])){
echo json_encode($respArr);exit;
}
$status = $this->Vehicle_model->changeCustomerCarStatus($postData['customer_id'],
$postData['customer_veh_id'],'2');
if($status){
$respArr['status'] = 1;
$respArr['message'] = 'success';
}
echo json_encode($respArr);exit;
} }
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); // addCustomerCar
function addCustomerCar(){
if(empty($postData)){ header('Content-type: application/json');
echo json_encode($respArr);exit; $post = file_get_contents("php://input");
} $postData = json_decode($post, true);
else if(!isset($postData['bar_code']) && !empty($postData['bar_code'])){ $this->load->model('Vehicle_model');
$respArr['message'] = 'Barcode is Required.';
echo json_encode($respArr);exit; $respArr = array('status'=>'0','message'=>'Something went wrong.');
} if(empty($postData) || !isset($postData['customer_id']) || empty($postData['customer_id'])){
echo json_encode($respArr);exit;
$settings = getSettings(); }
$param = "?format=json&key=".urlencode($settings['vin_audit_api']).
"&vin=".urlencode($postData['bar_code']); $param = "";
$searchType = $postData['type'];
$vehData=file_get_contents("https://specifications.vinaudit.com/getspecifications.php".$param); $searchData = $postData['vehicleData'];
$locationData = $postData['location'];
if(empty($vehData) || empty($vehData = json_decode($vehData,true))){
echo json_encode($respArr);exit; $vehicle_data['status'] = '1';
} $vehicle_data['customer_id'] = $postData['customer_id'];
$vehicle_data['car_loc_lat'] = $locationData['location_lat'];
if(!isset($vehData['success']) || empty($vehData['success']) || $vehData['success'] == false || !isset($vehData['attributes']) || empty($vehData['attributes'])){ $vehicle_data['car_loc_lng'] = $locationData['location_lng'];
$respArr['status'] = 'error'; $vehicle_data['car_location'] = $locationData['location'];
$respArr['message'] = 'Invalid Vin Number.';
echo json_encode($respArr);exit; $this->load->model('Settings_model');
} $settings = $this->Settings_model->settings_viewing();
$respArr['status'] = 'success';
$respArr['data'] = $vehData['attributes']; $searchData = $postData['vehicleData'];
$respArr['message'] = 'Success'; if($searchType == 1 &&
echo json_encode($respArr);exit; isset($searchData['car_maker']) && !empty($searchData['car_maker']) &&
} isset($searchData['modelName']) && !empty($searchData['modelName']) &&
isset($searchData['modelYear']) && !empty($searchData['modelYear'])){
public function search_sub_services(){ $vehicle_data['car_maker'] = $searchData['car_maker'];
header('Content-type: application/json'); $vehicle_data['car_model'] = $searchData['modelName'];
$headers = apache_request_headers(); $vehicle_data['car_model_year'] = $searchData['modelYear'];
$postData = $_GET; $param = "?format=json&key=".urlencode($settings['vin_audit_api'])."&year=".
urlencode($searchData['modelYear'])."&make=".urlencode($searchData['car_maker']).
if(!isset($headers['Auth']) || empty($headers['Auth'])){ "&model=".urlencode($searchData['modelName']);
$respArr['status'] = '0'; }
$respArr['message'] = 'Authtoken is Required'; else if($searchType == 2 && isset($searchData['vin']) && !empty($searchData['vin'])){
echo json_encode($respArr);exit; $vehicle_data['car_vin'] = $searchData['vin'];
$param = "?format=json&key=".urlencode($settings['vin_audit_api']).
"&vin=".urlencode($searchData['vin']);
}
if(!empty($param)){
$vehData=file_get_contents("https://specifications.vinaudit.com/getspecifications.php".$param);
if(empty($vehData) || empty($vehData = json_decode($vehData,true))){
echo json_encode($return_arr);exit;
}
if(!isset($vehData['success']) || empty($vehData['success']) || $vehData['success'] == false){
$return_arr['status'] = 2;
$return_arr['message'] = 'No Data Found.';
echo json_encode($return_arr);exit;
}
if($searchType == 2){
$vehicle_data['car_model'] = $vehData['attributes']['Model'];
$vehicle_data['car_maker'] = $vehData['attributes']['Make'];
$vehicle_data['car_model_year'] = $vehData['attributes']['Year'];
$vehData['vehicle']= $vehData['attributes']['Year'].' '.$vehData['attributes']['Make'].' '.
$vehData['attributes']['Model'].' '.$vehData['attributes']['Trim'];
}
$vehicle_data['car_name'] = $vehData['vehicle'];
$vehicle_data['vehicle_data'] = json_encode($vehData);
$car_id = $this->Vehicle_model->addVehicle($vehicle_data);
if(!empty($car_id)){
$return_arr['status'] = '1';
$return_arr['car_id'] = $car_id;
$return_arr['veh_data'] = $vehData;
}
}
echo json_encode($return_arr);exit;
} }
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']); /*********************************************************************************/
/************************************Mobile API's*********************************/
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit; //Mobile Number Availability
public function mobile_number_availability(){
header('Content-type: application/json');
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
$respArr = array('status'=>'error','error'=>'901','message'=>'Something went wrong.');
if(!isset($postData['phone']) || empty($postData['phone']) && !isset($postData['country_code']) || empty($postData['country_code'])){
$respArr = array('status'=>'0','error'=>'903','message'=>'Required Fields are empty.');
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->checkMobAvailability($postData);
if(!empty($custResp)){
$respArr = $custResp;
}
echo json_encode($respArr);exit;
} }
$currentpage = 0; //User Login
$start = 0; public function user_login(){
$per_page = 10; header('Content-type: application/json');
if(isset($postData['page']) && strlen(trim($postData['page']," ")) > 0 ) { $post = file_get_contents("php://input");
$currentpage = (int)$postData['page']; $postData = json_decode($post, true);
$currentpage = $currentpage==0 ? $currentpage : $currentpage-1;
$start = $currentpage * $per_page; $respArr = array('status'=>'0','message'=>'Required Fields are empty.');
if(!isset($postData['email']) || empty($postData['email']) ||
!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->checkCustomerLogin($postData);
if(empty($custResp) || !isset($custResp['status']) || empty($custResp['status'])){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = 'success';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '2'){
$respArr['status'] = 'error';
$respArr['message'] = 'Invalid Email Address';
echo json_encode($respArr);exit;
}
if($custResp['status'] == '3'){
$respArr['status'] = 'error';
$respArr['message'] = 'Invalid Password';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
$subserviceresult = $this->Webservice_model->search_sub_services($postData,0,0);
$subserviceList = $this->Webservice_model->search_sub_services($postData,$start,$per_page);
$service = array(); // customer_registration
$total = 0; public function user_registration(){
header('Content-type: application/json');
if($subserviceresult['status'] == 'success'){ $post = file_get_contents("php://input");
$total = count($subserviceresult['data']); $postData = json_decode($post, true);
}
$respArr = array('status'=>'0','message'=>'Something went wrong.');
if($total >= $per_page){
if(empty($postData)){
$totalPages = (int)($total % $per_page ==0 ? $total / $per_page :($total / $per_page)+1); echo json_encode($respArr);exit;
}
$err = 0;
$msg = '';
if(!isset($postData['email']) || empty($postData['email'])){
$err = 1;
$msg = 'Provide a valid Email ID';
}
else if(!isset($postData['password']) || empty($postData['password'] = md5($postData['password']))){
$err = 1;
$msg = 'Provide a Password';
}
else if(!isset($postData['name']) || empty($postData['name'])){
$err = 1;
$msg = 'Provide valid Name';
}
else if(!isset($postData['country_code']) || empty($postData['country_code'])){
$err = 1;
$msg = 'Provide a Country Code';
}
else if(!isset($postData['phone']) && empty($postData['phone'])){
$err = 1;
$msg = 'Provide a Phone Number';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
$custResp = $this->Webservice_model->createCustomer($postData);
if(empty($custResp)){
echo json_encode($respArr);exit;
}
if($custResp['status'] == '1'){
$respArr['data'] = $custResp['data'];
$respArr['status'] = 'success';
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
} else if($custResp['status'] == '2'){
$respArr['status'] = 'error';
$respArr['message'] = 'Email Address already in use';
echo json_encode($respArr);exit;
} else if($custResp['status'] == '3'){
$respArr['status'] = 'error';
$respArr['message'] = 'Phone already in use';
echo json_encode($respArr);exit;
}
echo json_encode($respArr); exit;
} }
else{
$totalPages = 1; //Get Booked Services
public function get_booked_services(){
header('Content-type: application/json');
$headers = apache_request_headers();
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$bookData = $this->Webservice_model->getBookedService($authRes['data']['customer_id']);
echo json_encode($bookData);exit;
} }
if($subserviceList['status'] == 'success'){ //Add Vehicle Details
$respArr = array('status' => 'success', public function add_vehicle_details(){
'message'=>'success', header('Content-type: application/json');
'data' => array( $headers = apache_request_headers();
'sub_services' => $subserviceList['data']
), $post = file_get_contents("php://input");
'meta' => array( $postData = json_decode($post, true);
'total_pages' => $totalPages,
'total' => $total, if(!isset($headers['Auth']) || empty($headers['Auth'])){
'current_page' => $currentpage+1, $respArr['status'] = 'error';
'per_page' => $per_page) $respArr['message'] = 'Authtoken is Required';
); echo json_encode($respArr);exit;
}else if($subserviceList['status'] == 'error'){ }
$respArr = array('status' => 'error',
'message'=>'No data', $authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
'data' => array( if($authRes['status'] == 'error'){
'sub_services' => [] echo json_encode($authRes);exit;
), }
'meta' => array(
'total_pages' => $totalPages, $err = 0;$msg = '';
'total' => $total, if(empty($postData)){
'current_page' => $currentpage+1, $respArr = array('status'=>0,'error'=>'901','message'=>'All Field is Required');
'per_page' => $per_page) echo json_encode($respArr);exit;
); }
}else{
$respArr = $subserviceList; if(!isset($postData['vehicle_year']) || empty($postData['vehicle_year'])){
$respArr['status'] = 'error'; $err = 1;
$msg = 'Provide a Vehicle year';
}
else if(!isset($postData['vehicle_make']) || empty($postData['vehicle_make'])){
$err = 1;
$msg = 'Provide a Vehicle Make';
}
else if(!isset($postData['vehicle_model']) || empty($postData['vehicle_model'])){
$err = 1;
$msg = 'Provide a Vehicle Model';
}
else if(!isset($postData['engine_no']) || empty($postData['engine_no'])){
$err = 1;
$msg = 'Provide an Engine Number';
}
else if(!isset($postData['vehicle_trim']) && empty($postData['vehicle_trim'])){
$err = 1;
$msg = 'Provide a Vehicle Trim';
}
else if(!isset($postData['mileage']) && empty($postData['mileage'])){
$err = 1;
$msg = 'Provide a Mileage';
}
else if(!isset($postData['car_loc_lat']) && empty($postData['car_loc_lat'])){
$err = 1;
$msg = 'Car Location is Required';
}
else if(!isset($postData['car_loc_lng']) && empty($postData['car_loc_lng'])){
$err = 1;
$msg = 'Car Location is Required';
}
else if(!isset($postData['car_location']) && empty($postData['car_location'])){
$err = 1;
$msg = 'Car Location is Required';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
$respData = $this->Webservice_model->addVehicleDetails($postData,$authRes['data']['customer_id']);
echo json_encode($respData);exit;
} }
echo json_encode($respArr);exit;
} //Get Services
public function get_services(){
public function book_service(){ header('Content-type: application/json');
header('Content-type: application/json'); $headers = apache_request_headers();
$headers = apache_request_headers();
$postData = $_GET;
$post = file_get_contents("php://input");
$postData = json_decode($post, true); if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
if(!isset($headers['Auth']) || empty($headers['Auth'])){ $respArr['message'] = 'Authtoken is Required';
$respArr['status'] = '0'; echo json_encode($respArr);exit;
$respArr['message'] = 'Authtoken is Required'; }
echo json_encode($respArr);exit;
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$currentpage = 0;
$start = 0;
$per_page = 10;
if(isset($postData['page']) && strlen(trim($postData['page']," ")) > 0 ) {
$currentpage = (int)$postData['page'];
$currentpage = $currentpage==0 ? $currentpage : $currentpage-1;
$start = $currentpage * $per_page;
}
$serviceresult = $this->Webservice_model->get_service_list($postData,0,0);
$serviceList = $this->Webservice_model->get_service_list($postData,$start,$per_page);
$service = array();
$total = 0;
if($serviceresult['status'] == 'success'){
$total = count($serviceresult['data']);
}
if($total >= $per_page){
$totalPages = (int)($total % $per_page ==0 ? $total / $per_page :($total / $per_page)+1);
}
else{
$totalPages = 1;
}
if($serviceList['status'] == 'success'){
$respArr = array(
'status' => 'success',
'message'=>'success',
'data' => array(
'services' => $serviceList['data']
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page
)
);
}else{
$respArr = array(
'status' => 'error',
'message'=>'No data',
'data' => array(
'services' => []
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page
)
);
}
echo json_encode($respArr);exit;
} }
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']); //Get Vehicle Details
public function get_vehicle_details(){
if($authRes['status'] == 'error'){ header('Content-type: application/json');
echo json_encode($authRes);exit; $headers = apache_request_headers();
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($postData)){
echo json_encode($respArr);exit;
}
else if(!isset($postData['bar_code']) && !empty($postData['bar_code'])){
$respArr['message'] = 'Barcode is Required.';
echo json_encode($respArr);exit;
}
$settings = getSettings();
$param = "?format=json&key=".urlencode($settings['vin_audit_api']).
"&vin=".urlencode($postData['bar_code']);
$vehData=file_get_contents("https://specifications.vinaudit.com/getspecifications.php".$param);
if(empty($vehData) || empty($vehData = json_decode($vehData,true))){
echo json_encode($respArr);exit;
}
if(!isset($vehData['success']) || empty($vehData['success']) || $vehData['success'] == false || !isset($vehData['attributes']) || empty($vehData['attributes'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Invalid Vin Number.';
echo json_encode($respArr);exit;
}
$respArr['status'] = 'success';
$respArr['data'] = $vehData['attributes'];
$respArr['message'] = 'Success';
echo json_encode($respArr);exit;
} }
//Search Sub Services
if(empty($postData)){ public function search_sub_services(){
$respArr = array('status'=>'error','message'=>'All Field is Required'); header('Content-type: application/json');
$headers = apache_request_headers();
$postData = $_GET;
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$currentpage = 0;
$start = 0;
$per_page = 10;
if(isset($postData['page']) && strlen(trim($postData['page']," ")) > 0 ) {
$currentpage = (int)$postData['page'];
$currentpage = $currentpage==0 ? $currentpage : $currentpage-1;
$start = $currentpage * $per_page;
}
$subserviceresult = $this->Webservice_model->search_sub_services($postData,0,0);
$subserviceList = $this->Webservice_model->search_sub_services($postData,$start,$per_page);
$service = array();
$total = 0;
if($subserviceresult['status'] == 'success'){
$total = count($subserviceresult['data']);
}
if($total >= $per_page){
$totalPages = (int)($total % $per_page ==0 ? $total / $per_page :($total / $per_page)+1);
}
else{
$totalPages = 1;
}
if($subserviceList['status'] == 'success'){
$respArr = array(
'status' => 'success',
'message'=>'success',
'data' => array(
'sub_services' => $subserviceList['data']
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page
)
);
}else if($subserviceList['status'] == 'error'){
$respArr = array(
'status' => 'error',
'message'=>'No data',
'data' => array(
'sub_services' => []
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page
)
);
}else{
$respArr = $subserviceList;
$respArr['status'] = 'error';
}
echo json_encode($respArr);exit; echo json_encode($respArr);exit;
} }
$err = 0;
//Book Service
if(!isset($postData['booking_id']) || empty($postData['booking_id'])){ public function book_service(){
$err = 1; header('Content-type: application/json');
$msg = 'Booking Id is Required'; $headers = apache_request_headers();
}
else if(!isset($postData['total_cost']) || empty($postData['total_cost'])){ $post = file_get_contents("php://input");
$err = 1; $postData = json_decode($post, true);
$msg = 'Total Cost is Required';
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
if(empty($postData)){
$respArr = array('status'=>'error','message'=>'All Field is Required');
echo json_encode($respArr);exit;
}
$err = 0;
if(!isset($postData['booking_id']) || empty($postData['booking_id'])){
$err = 1;
$msg = 'Booking Id is Required';
}
else if(!isset($postData['total_cost']) || empty($postData['total_cost'])){
$err = 1;
$msg = 'Total Cost is Required';
}
else if(!isset($postData['mechanic_id']) || empty($postData['mechanic_id'])){
$err = 1;
$msg = 'Mechanic Id is Required';
}
else if(!isset($postData['date']) || empty($postData['date'])){
$err = 1;
$msg = 'Date is Required';
}
else if(!isset($postData['time']) && empty($postData['time'])){
$err = 1;
$msg = 'Time is Required';
}
if($err == 1){
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
$respData = $this->Webservice_model->book_service($postData);
echo json_encode($respData);exit;
} }
else if(!isset($postData['mechanic_id']) || empty($postData['mechanic_id'])){
$err = 1; //Get Booking Summary
$msg = 'Mechanic Id is Required'; public function get_booking_summary(){
header('Content-type: application/json');
$headers = apache_request_headers();
$postData = $_GET;
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$res = $this->Webservice_model->get_booking_summary($postData);
echo json_encode($res);exit;
} }
else if(!isset($postData['date']) || empty($postData['date'])){
$err = 1; //Get Mechanics
$msg = 'Date is Required'; public function get_mechanics(){
header('Content-type: application/json');
$headers = apache_request_headers();
$postData = $_GET;
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$err = 0;
if(!isset($postData['service_id']) || empty($postData['service_id'])){
$err = 1;
$msg = 'Service Id is Required';
}
else if(!isset($postData['location']) || empty($postData['location'])){
$err = 1;
$msg = 'Location is Required';
}
else if(!isset($postData['location_lat']) || empty($postData['location_lat'])){
$err = 1;
$msg = 'Location is Required';
}
else if(!isset($postData['location_lng']) || empty($postData['location_lng'])){
$err = 1;
$msg = 'Location is Required';
}
if($err == 1){
$respArr['status'] = 'error';
$respArr['message'] = $msg;
echo json_encode($respArr);exit;
}
$currentpage = 0;
$start = 0;
$per_page = 10;
if(isset($postData['page']) && strlen(trim($postData['page']," ")) > 0 ) {
$currentpage = (int)$postData['page'];
$currentpage = $currentpage==0 ? $currentpage : $currentpage-1;
$start = $currentpage * $per_page;
}
$mechanicsListcount = $this->Webservice_model->getNearMechanics($postData,0,0);
$mechanicsList = $this->Webservice_model->getNearMechanics($postData,$start,$per_page);
$total = 0;
if($mechanicsList['status'] == 'success'){
$total = count($mechanicsListcount['data']);
}
if($total >= $per_page){
$totalPages = (int)($total % $per_page ==0 ? $total / $per_page :($total / $per_page)+1);
}
else{
$totalPages = 1;
}
if($mechanicsList['status'] == 'success'){
$respArr = array(
'status' => 'success',
'message'=>'success',
'data' => array(
'mechanics' => $mechanicsList['data']
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page)
);
}else{
$respArr = array(
'status' => 'error',
'message'=>'No data',
'data' => array(
'mechanics' => []
),
'meta' => array(
'total_pages' => $totalPages,
'total' => $total,
'current_page' => $currentpage+1,
'per_page' => $per_page)
);
}
echo json_encode($respArr);exit;
} }
else if(!isset($postData['time']) && empty($postData['time'])){
$err = 1; //Add Service Details
$msg = 'Time is Required'; public function add_service_details(){
header('Content-type: application/json');
$headers = apache_request_headers();
$postData = $_POST;
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
if(isset($_FILES['images']) && !empty($_FILES['images'])){
$files = $_FILES;
$config = set_upload_service('assets/uploads/services');
$this->load->library('upload');
for ($i=0; $i < count($files['images']['name']) ; $i++){
$config['file_name'] = 'optionalImages'.date('dmYHis').$files['images']['name'][$i];
$this->upload->initialize($config);
$_FILES['images']['name'] = $files['images']['name'][$i];
$_FILES['images']['type'] = $files['images']['type'][$i];
$_FILES['images']['tmp_name'] = $files['images']['tmp_name'][$i];
$_FILES['images']['error'] = $files['images']['error'][$i];
$_FILES['images']['size'] = $files['images']['size'][$i];
if($this->upload->do_upload('images'))
{
$imagedata= $this->upload->data();
$new[$i] = 'assets/uploads/services/'.$imagedata['file_name'];
}
else
{
$display_error = array('error' => $this->upload->display_errors('', ''));
$res = array(
"status"=> "error",
"error"=> "Upload Error",
"msg"=> "Sorry! Images not uploaded. ".$display_error['error']
);
print json_encode($res);
exit();
}
}
$postData['image'] = $new;
}
if(isset($_FILES['videos']) && !empty($_FILES['videos'])){
$files = $_FILES;
$config = set_upload_service('assets/uploads/services');
$this->load->library('upload');
for ($i=0; $i < count($files['videos']['name']) ; $i++){
$config['file_name'] = 'optionalImages'.date('dmYHis').$_FILES['videos']['name'][$i];
$this->upload->initialize($config);
$_FILES['videos']['name'] = $files['videos']['name'][$i];
$_FILES['videos']['type'] = $files['videos']['type'][$i];
$_FILES['videos']['tmp_name'] = $files['videos']['tmp_name'][$i];
$_FILES['videos']['error'] = $files['videos']['error'][$i];
$_FILES['videos']['size'] = $files['videos']['size'][$i];
if($this->upload->do_upload('videos'))
{
$imagedata= $this->upload->data();
$video[$i] = 'assets/uploads/services/'.$imagedata['file_name'];
}
else
{
$display_error = array('error' => $this->upload->display_errors('', ''));
$res = array(
"status"=> "error",
"error"=> "Upload Error",
"msg"=> "Sorry! Images not uploaded. ".$display_error['error']
);
echo json_encode($res);
exit();
}
}
$postData['video'] = $video;
}
$addServiceDetails = $this->Webservice_model->add_service_details($postData);
echo json_encode($addServiceDetails);exit();
} }
if($err == 1){ //Remove Booking
$respArr['message'] = $msg; public function remove_booking(){
echo json_encode($respArr);exit; header('Content-type:application/json');
$headers = apache_request_headers();
$post = file_get_contents("php://input");
$postData = json_decode($post, true);
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$removed = $this->Webservice_model->remove_booking($postData);
echo json_encode($removed);
} }
$respData = $this->Webservice_model->book_service($postData); //Get Service
echo json_encode($respData);exit; public function get_service(){
header('Content-type:application/json');
$headers = apache_request_headers();
$post = file_get_contents("php://input");
$postData = json_decode($post,true);
if(!isset($headers['Auth']) || empty($headers['Auth'])){
$respArr['status'] = 'error';
$respArr['message'] = 'Authtoken is Required';
echo json_encode($respArr);exit;
}
$authRes = $this->Webservice_model->get_customer_authtoken($headers['Auth']);
if($authRes['status'] == 'error'){
echo json_encode($authRes);exit;
}
$getServices = $this->Webservice_model->get_service($postData);
echo json_encode($getServices);exit;
}
} }
?>
}
?>
\ No newline at end of file
...@@ -105,7 +105,7 @@ class Booking_model extends CI_Model { ...@@ -105,7 +105,7 @@ class Booking_model extends CI_Model {
} }
function getMechBookings($mechanic_id = '', $booking_id = '', $status = '1'){ function getMechBookings($mechanic_id = '', $booking_id = '', $status = '1'){
if(empty($mechanic_id) && empty($booking_id)){ if($this->session->userdata('user_type') != 1 && empty($mechanic_id)){
return 0; return 0;
} }
...@@ -119,12 +119,13 @@ class Booking_model extends CI_Model { ...@@ -119,12 +119,13 @@ class Booking_model extends CI_Model {
MECH.last_name AS mechLastName,VEH.car_maker,VEH.car_model_year,VEH.car_vin, 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, 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.first_name AS custFirstName,CUST.last_name AS custLastName,CUST.phone,
CUST.email,CUST.address,CUST.profile_image,CUST.date_of_birth CUST.email,CUST.address,CUST.profile_image,CUST.date_of_birth,CUSQTE.custom_id
FROM bookings AS BK FROM bookings AS BK
INNER JOIN mechanic AS MECH ON (MECH.mechanic_id=BK.mechanic_id) 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 customers AS CUST ON (CUST.customer_id=BK.customer_id)
INNER JOIN admin_users AS ADM ON (ADM.id=BK.mechanic_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) 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' WHERE $cond AND ADM.status='1' AND CUST.status='1'
GROUP BY BK.booking_id"; GROUP BY BK.booking_id";
...@@ -143,5 +144,43 @@ class Booking_model extends CI_Model { ...@@ -143,5 +144,43 @@ class Booking_model extends CI_Model {
$status=$this->db->update('bookings',array('status'=>$status),array('booking_id'=>$booking_id)); $status=$this->db->update('bookings',array('status'=>$status),array('booking_id'=>$booking_id));
return $status; return $status;
} }
function insertCustomQuote($data){
$custData = array();$total=0;
$book_id = decode_param($data['booking_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]['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),'custom_amount'=>$total),array('booking_id'=>$book_id));
$res = array('status'=>'success');
}else{
if($this->db->insert('custom_quote',array('booking_id'=>$book_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;
}
} }
?> ?>
...@@ -62,7 +62,7 @@ class Mechanic_model extends CI_Model { ...@@ -62,7 +62,7 @@ class Mechanic_model extends CI_Model {
$cond .= (!empty($cond))?" AND ":$cond; $cond .= (!empty($cond))?" AND ":$cond;
$cond .= (!empty($view_all))?" ADMN.status IN (0,1) ":" ADMN.status IN (1) "; $cond .= (!empty($view_all))?" ADMN.status IN (0,1) ":" ADMN.status IN (1) ";
$sql = "SELECT ADMN.username,ADMN.user_type,ADMN.display_name,ADMN.profile_image,ADMN.status, $sql = "SELECT ADMN.username,ADMN.user_type,TRIM(CONCAT(MECH.first_name,' ' ,IFNULL(MECH.last_name,''))) as display_name,ADMN.profile_image,ADMN.status,
MSH.shop_name, MSH.address AS shop_address, MSH.phone AS shop_phone, MSH.shop_name, MSH.address AS shop_address, MSH.phone AS shop_phone,
MSH.email_id AS shop_email, MECH.* MSH.email_id AS shop_email, MECH.*
FROM mechanic AS MECH FROM mechanic AS MECH
...@@ -107,7 +107,8 @@ class Mechanic_model extends CI_Model { ...@@ -107,7 +107,8 @@ class Mechanic_model extends CI_Model {
if(!$status) { return 0; } if(!$status) { return 0; }
$upMecArr = array('city'=>$mechanic_data['city'],'first_name'=>$mechanic_data['first_name'], $upMecArr = array('city'=>$mechanic_data['city'],'first_name'=>$mechanic_data['first_name'],
'state'=>$mechanic_data['state'],'shop_id'=>$mechanic_data['shop_id'], 'state'=>$mechanic_data['state'],
'shop_id'=>(!empty($mechanic_data['shop_id']) ? $mechanic_data['shop_id'] : '0'),
'address'=>$mechanic_data['address'],'email_id'=>$mechanic_data['email_id'], 'address'=>$mechanic_data['address'],'email_id'=>$mechanic_data['email_id'],
'last_name'=>$mechanic_data['last_name'],'phone'=>$mechanic_data['phone'], 'last_name'=>$mechanic_data['last_name'],'phone'=>$mechanic_data['phone'],
'location'=>$mechanic_data['location'], 'location'=>$mechanic_data['location'],
......
...@@ -5,25 +5,23 @@ class Webservice_model extends CI_Model { ...@@ -5,25 +5,23 @@ class Webservice_model extends CI_Model {
date_default_timezone_set('Asia/Kolkata'); date_default_timezone_set('Asia/Kolkata');
} }
/*****************************************************************************************/ /***************************************************************************************/
/****************************************Mobile API's*************************************/ /****************************************Mobile API's***********************************/
public function checkMobAvailability($data = array()){ public function checkMobAvailability($data = array()){
$res = array('status'=>'success', 'message'=>'Mobile Number Available'); $res = array('status'=>'success', 'message'=>'Mobile Number Available','data'=>array('phone'=>$data['phone'],'is_available'=>true));
if(empty($data)){ if(empty($data)){
$res = array('status'=>'error','error'=>'901','message'=>'Something went wrong.'); $res = array('status'=>'error','error'=>'901','message'=>'Something went wrong.');
return $res; return $res;
} }
$result = $this->db->get_where('customers',array('phone'=>$data['phone'],'country_code'=>$data['country_code']));
$result = $this->db->get_where('customers',array('phone'=>$data['phone']));
if(!empty($result) && $result->num_rows() > 0){ if(!empty($result) && $result->num_rows() > 0){
$res=array('status'=>'error','error'=>'902','message'=>'Mobile number already in use.'); $res=array('status'=>'error','error'=>'902','message'=>'Mobile number already in use.');
} }
return $res; return $res;
} }
function checkCustomerLogin($userLogData){ public function checkCustomerLogin($userLogData){
$respArr = array('status'=>0); $respArr = array('status'=>0);
if(empty($userLogData)){ if(empty($userLogData)){
return $returnStatus; return $returnStatus;
...@@ -39,36 +37,36 @@ class Webservice_model extends CI_Model { ...@@ -39,36 +37,36 @@ class Webservice_model extends CI_Model {
'status'=>'1')); 'status'=>'1'));
$respArr['status'] = 3; $respArr['status'] = 3;
if(!empty($result) && $result->num_rows() == 1 && !empty($custData = $result->row())){ if(!empty($result) && $result->num_rows() == 1 && !empty($custData = $result->row())){
$authdata = $this->insert_auth($custData->id); $authdata = $this->insert_auth($custData->id);
if($authdata){ if($authdata){
$custData->auth_token = $authdata; $custData->auth_token = $authdata;
$respArr['data'] = $custData;
$respArr['status'] = 1;
} }
} }
$respArr['data'] = $custData;
$respArr['status'] = 1;
return $respArr; return $respArr;
} }
function insert_auth($id){ public function insert_auth($id){
$static_string = time(); $static_string = time();
$authToken = 'Dcarfixs'.sha1($static_string); $authToken = 'Dcarfixs'.sha1($static_string);
$custData = $this->db->get_where('authtable',array('customer_id'=>$id)); $custData = $this->db->get_where('authtable',array('customer_id'=>$id));
if(!empty($custData) && $custData->num_rows() > 0){ if(!empty($custData) && $custData->num_rows() > 0){
$this->db->delete('authtable',array('customer_id'=>$id)); $custData = $custData->row();
$authToken = $custData->authtoken;
} else {
$this->db->insert('authtable',array('customer_id'=>$id,'authtoken'=>$authToken));
} }
$this->db->insert('authtable',array('customer_id'=>$id,'authtoken'=>$authToken));
return $authToken; return $authToken;
} }
function createCustomer($customer_data = array()){ public function createCustomer($customer_data = array()){
$respArr = array('status'=>0); $respArr = array('status'=>0);
if(empty($customer_data)){ if(empty($customer_data)){
$respArr['status'] = 0; $respArr['status'] = 0;
return $respArr; return $respArr;
} }
if(isset($customer_data['email']) && !empty($customer_data['email'])){ if(isset($customer_data['email']) && !empty($customer_data['email'])){
$emailChk = $this->db->get_where('customers',array('email'=>$customer_data['email'],'status !='=>'2')); $emailChk = $this->db->get_where('customers',array('email'=>$customer_data['email'],'status !='=>'2'));
if(!empty($emailChk) && $emailChk->num_rows() > 0){ if(!empty($emailChk) && $emailChk->num_rows() > 0){
...@@ -76,7 +74,6 @@ class Webservice_model extends CI_Model { ...@@ -76,7 +74,6 @@ class Webservice_model extends CI_Model {
return $respArr; return $respArr;
} }
} }
if(isset($customer_data['phone']) && !empty($customer_data['phone'])){ if(isset($customer_data['phone']) && !empty($customer_data['phone'])){
$phoneChk = $this->db->get_where('customers',array('phone'=>$customer_data['phone'],'status !='=>'2')); $phoneChk = $this->db->get_where('customers',array('phone'=>$customer_data['phone'],'status !='=>'2'));
if(!empty($phoneChk) && $phoneChk->num_rows() > 0){ if(!empty($phoneChk) && $phoneChk->num_rows() > 0){
...@@ -84,34 +81,25 @@ class Webservice_model extends CI_Model { ...@@ -84,34 +81,25 @@ class Webservice_model extends CI_Model {
return $respArr; return $respArr;
} }
} }
$customer_data['first_name'] = $customer_data['name']; $customer_data['first_name'] = $customer_data['name'];
unset($customer_data['name']); unset($customer_data['name']);
if($this->db->insert('customers',$customer_data)){ if($this->db->insert('customers',$customer_data)){
$last_id = $this->db->insert_id(); $last_id = $this->db->insert_id();
$this->db->select("TRIM(CONCAT(first_name,' ' ,IFNULL(last_name,''))) as name,customer_id as user_id"); $this->db->select("TRIM(CONCAT(first_name,' ' ,IFNULL(last_name,''))) as name,customer_id as user_id");
$custData = $this->db->get_where('customers',array('customer_id'=>$last_id))->row(); $custData = $this->db->get_where('customers',array('customer_id'=>$last_id))->row();
$authdata = $this->insert_auth($last_id); $authdata = $this->insert_auth($last_id);
$custData->auth_token = $authdata; $custData->auth_token = $authdata;
$respArr['data'] = $custData; $respArr['data'] = $custData;
$respArr['status'] = 1; $respArr['status'] = 1;
} }
return $respArr; return $respArr;
} }
public function get_customer_authtoken($auth = ''){ public function get_customer_authtoken($auth = ''){
$respArr = array('status'=>0,'error'=>'901','message'=>'Something Went Wrong.'); $respArr = array('status'=>0,'error'=>'901','message'=>'Something Went Wrong.');
if(empty($auth)){ if(empty($auth)){
return $respArr; return $respArr;
} }
$auth = $this->db->get_where('authtable',array('authtoken'=>$auth)); $auth = $this->db->get_where('authtable',array('authtoken'=>$auth));
if(!empty($auth) && $auth->num_rows() >= 1 && !empty($custAuth = $auth->row_array())){ if(!empty($auth) && $auth->num_rows() >= 1 && !empty($custAuth = $auth->row_array())){
$respArr['status'] = 'success'; $respArr['status'] = 'success';
...@@ -126,43 +114,43 @@ class Webservice_model extends CI_Model { ...@@ -126,43 +114,43 @@ class Webservice_model extends CI_Model {
public function getBookedService($id = ''){ public function getBookedService($id = ''){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($id)){ if(empty($id)){
return $respArr; return $respArr;
} }
$this->db->select('booking_id as id,scheduled_date as date,scheduled_time as time'); $this->db->select('booking_id as id,scheduled_date as date,scheduled_time as time');
$this->db->where('scheduled_date >',date('Y-m-d h:i'));
$bookData = $this->db->get_where('bookings',array('customer_id'=>$id))->result_array(); $bookData = $this->db->get_where('bookings',array('customer_id'=>$id))->result_array();
$respArr['status'] = 'success';
$respArr['message'] = 'success';
if(!empty($bookData) && (count($bookData) > 0)){ if(!empty($bookData) && (count($bookData) > 0)){
$respArr['status'] = 'success'; foreach ($bookData as $key => $value) {
$respArr['data'] = $bookData; $bookData[$key]['date'] = (string) strtotime($value['date'])*1000;
$respArr['message'] = 'success'; }
$respArr['data']['booked_services'] = $bookData;
}else{
$respArr['data']['booked_services'] = [];
} }
return $respArr; return $respArr;
} }
public function addVehicleDetails($postData = array(),$customer_id = ''){ public function addVehicleDetails($postData = array(),$customer_id = ''){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($postData)){ if(empty($postData)){
return $respArr; return $respArr;
} }
$car_name = $postData['vehicle_year'].' '.$postData['vehicle_make'].' '.$postData['vehicle_model']; $car_name = $postData['vehicle_year'].' '.$postData['vehicle_make'].' '.$postData['vehicle_model'];
$vehJson = array(
$vehJson = array('vehicle' => $car_name, 'vehicle' => $car_name,
'attributes' => 'attributes' => array(
array( 'Year' => $postData['vehicle_year'],
'Year' => $postData['vehicle_year'], 'Make' => $postData['vehicle_make'],
'Make' => $postData['vehicle_make'], 'Trim' => $postData['vehicle_trim'],
'Trim' => $postData['vehicle_trim'], 'Model' => $postData['vehicle_model'],
'Model' => $postData['vehicle_model'], 'Engine'=> $postData['engine_no']
'Engine' => $postData['engine_no']) )
); );
$insert_array = array(
$insert_array = array('customer_id' => $customer_id, 'customer_id' => $customer_id,
'car_name' => $car_name, 'car_name' => $car_name,
'car_model' => $postData['vehicle_model'], 'car_model' => $postData['vehicle_model'],
'car_maker' => $postData['vehicle_make'], 'car_maker' => $postData['vehicle_make'],
...@@ -171,20 +159,18 @@ class Webservice_model extends CI_Model { ...@@ -171,20 +159,18 @@ class Webservice_model extends CI_Model {
'car_location' => $postData['car_location'], 'car_location' => $postData['car_location'],
'vehicle_data' => json_encode($vehJson), 'vehicle_data' => json_encode($vehJson),
'car_model_year'=> $postData['vehicle_year'], 'car_model_year'=> $postData['vehicle_year'],
'status' => '3'); 'status' => '3'
);
if($this->db->insert('customer_vehicle',$insert_array)){ if($this->db->insert('customer_vehicle',$insert_array)){
$last_id = $this->db->insert_id(); $last_id = $this->db->insert_id();
$book_data = array( $book_data = array(
'mileage' => $postData['mileage'], 'mileage' => $postData['mileage'],
'customer_id' => $customer_id, 'customer_id' => $customer_id,
'customer_veh_id' => $last_id, 'customer_veh_id'=> $last_id,
'status' => '5'); 'status' => '5'
);
if($this->db->insert('bookings',$book_data)){ if($this->db->insert('bookings',$book_data)){
$book_id = $this->db->insert_id(); $book_id = $this->db->insert_id();
$respArr['status'] = 'success'; $respArr['status'] = 'success';
$respArr['message'] = 'success'; $respArr['message'] = 'success';
$respArr['data']['booking_id'] = $book_id; $respArr['data']['booking_id'] = $book_id;
...@@ -195,9 +181,7 @@ class Webservice_model extends CI_Model { ...@@ -195,9 +181,7 @@ class Webservice_model extends CI_Model {
} }
public function get_service_list($postData = '',$start,$per_page){ public function get_service_list($postData = '',$start,$per_page){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
$this->db->select("issue_id as id,issue as service_name,IF(issue_image != NULL OR issue_image != '' , concat('".base_url()."',issue_image) , '') as icon"); $this->db->select("issue_id as id,issue as service_name,IF(issue_image != NULL OR issue_image != '' , concat('".base_url()."',issue_image) , '') as icon");
if(!empty($postData['query'])){ if(!empty($postData['query'])){
$where = "issue LIKE '".$postData['query']."%'"; $where = "issue LIKE '".$postData['query']."%'";
...@@ -208,7 +192,6 @@ class Webservice_model extends CI_Model { ...@@ -208,7 +192,6 @@ class Webservice_model extends CI_Model {
$this->db->limit($per_page,$start); $this->db->limit($per_page,$start);
} }
$service = $this->db->get('issues'); $service = $this->db->get('issues');
if(!empty($service) && !empty($serviceData = $service->result_array())){ if(!empty($service) && !empty($serviceData = $service->result_array())){
$respArr['status'] = 'success'; $respArr['status'] = 'success';
$respArr['message'] = 'success'; $respArr['message'] = 'success';
...@@ -218,26 +201,21 @@ class Webservice_model extends CI_Model { ...@@ -218,26 +201,21 @@ class Webservice_model extends CI_Model {
} }
public function search_sub_services($postData = '',$start,$per_page){ public function search_sub_services($postData = '',$start,$per_page){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(!isset($postData['service_id']) && empty($postData['service_id'])){ if(!isset($postData['service_id']) && empty($postData['service_id'])){
$respArr['status'] = 1; $respArr['status'] = 1;
$respArr['message'] = 'Service Id is Required'; $respArr['message'] = 'Service Id is Required';
return $respArr; return $respArr;
} }
$this->db->select("issue_cat_id as id,issue_category as sub_service_name,IF(issue_cat_image != NULL OR issue_cat_image != '' , concat('".base_url()."',issue_cat_image) , '') as icon"); $this->db->select("issue_cat_id as id,issue_category as sub_service_name,IF(issue_cat_image != NULL OR issue_cat_image != '' , concat('".base_url()."',issue_cat_image) , '') as icon");
if(!empty($postData['query'])){ if(!empty($postData['query'])){
$where = "issue_category LIKE '".$postData['query']."%'"; $where = "issue_category LIKE '".$postData['query']."%'";
$this->db->where($where); $this->db->where($where);
} }
if($start != 0 || $per_page != 0){ if($start != 0 || $per_page != 0){
$this->db->limit($per_page,$start); $this->db->limit($per_page,$start);
} }
$subservice = $this->db->get_where('issues_category',array('status'=>'1','issue_id'=>$postData['service_id'])); $subservice = $this->db->get_where('issues_category',array('status'=>'1','issue_id'=>$postData['service_id']));
if(!empty($subservice) && !empty($subserviceData = $subservice->result_array())){ if(!empty($subservice) && !empty($subserviceData = $subservice->result_array())){
$respArr['status'] = 'success'; $respArr['status'] = 'success';
$respArr['message'] = 'success'; $respArr['message'] = 'success';
...@@ -248,14 +226,12 @@ class Webservice_model extends CI_Model { ...@@ -248,14 +226,12 @@ class Webservice_model extends CI_Model {
public function book_service($postData){ public function book_service($postData){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.'); $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($postData)){ if(empty($postData)){
$respArr['message'] = 'All Field is required'; $respArr['message'] = 'All Field is required';
return $respArr; return $respArr;
} }
//pr($postData['date']);exit();
$insert_array = array('cost'=>$postData['total_cost'],'mechanic_id'=>$postData['mechanic_id'],'scheduled_date'=>$postData['date'],'scheduled_time'=>$postData['time']); $insert_array = array('cost'=>$postData['total_cost'],'mechanic_id'=>$postData['mechanic_id'],'scheduled_date'=>date('Y-m-d',$postData['date']/1000),'scheduled_time'=>$postData['time'],'issues_selected'=>json_encode($postData['service_id']));
if($this->db->update('bookings',$insert_array,array('booking_id'=>$postData['booking_id']))){ if($this->db->update('bookings',$insert_array,array('booking_id'=>$postData['booking_id']))){
$this->db->select("bookings.scheduled_time,bookings.scheduled_date,customer_vehicle.car_model as vehicle_model,customer_vehicle.car_maker as vehicle_make,customer_vehicle.car_model_year as vehicle_year,customer_vehicle.vehicle_data,TRIM(concat(mechanic.first_name,' ',IFNULL(mechanic.last_name,''))) as mechanic_name,mechanic_shop.shop_name as mechanic_shop,mechanic.address,mechanic.phone,admin_users.profile_image as image,bookings.mileage,bookings.issues_selected"); $this->db->select("bookings.scheduled_time,bookings.scheduled_date,customer_vehicle.car_model as vehicle_model,customer_vehicle.car_maker as vehicle_make,customer_vehicle.car_model_year as vehicle_year,customer_vehicle.vehicle_data,TRIM(concat(mechanic.first_name,' ',IFNULL(mechanic.last_name,''))) as mechanic_name,mechanic_shop.shop_name as mechanic_shop,mechanic.address,mechanic.phone,admin_users.profile_image as image,bookings.mileage,bookings.issues_selected");
$this->db->join('customer_vehicle','customer_vehicle.customer_veh_id = bookings.customer_veh_id'); $this->db->join('customer_vehicle','customer_vehicle.customer_veh_id = bookings.customer_veh_id');
...@@ -263,24 +239,204 @@ class Webservice_model extends CI_Model { ...@@ -263,24 +239,204 @@ class Webservice_model extends CI_Model {
$this->db->join('admin_users','admin_users.id = mechanic.mechanic_id'); $this->db->join('admin_users','admin_users.id = mechanic.mechanic_id');
$this->db->join('mechanic_shop','mechanic_shop.shop_id = mechanic.shop_id','left'); $this->db->join('mechanic_shop','mechanic_shop.shop_id = mechanic.shop_id','left');
$mech_data = $this->db->get_where('bookings',array('booking_id'=>$postData['booking_id'])); $mech_data = $this->db->get_where('bookings',array('booking_id'=>$postData['booking_id']));
if(!empty($mech_data) && !empty($mechanic_data = $mech_data->row_array())){ if(!empty($mech_data) && !empty($mechanic_data = $mech_data->row_array())){
$mech_veh_data = json_decode($mechanic_data['vehicle_data']); $mech_veh_data = json_decode($mechanic_data['vehicle_data']);
$mechanic_data['engine_no'] = $mech_veh_data->attributes->Engine; $mechanic_data['engine_no'] = $mech_veh_data->attributes->Engine;
$mechanic_data['vehicle_trim'] = $mech_veh_data->attributes->Trim; $mechanic_data['vehicle_trim'] = $mech_veh_data->attributes->Trim;
unset($mechanic_data['vehicle_data']); unset($mechanic_data['vehicle_data']);
$mechanic_data['services'] = json_decode($mechanic_data['issues_selected']); $mechanic_data['services'] = json_decode($mechanic_data['issues_selected']);
unset($mechanic_data['issues_selected']); unset($mechanic_data['issues_selected']);
$mechanic_data['scheduled_date'] = strtotime($mechanic_data['scheduled_date']);
$respArr['status'] = 'success'; $respArr['status'] = 'success';
$respArr['message'] = 'success'; $respArr['message'] = 'success';
$respArr['data'] = $mechanic_data; $respArr['data'] = $mechanic_data;
} }
$respArr['message'] = 'Booking Id does\'t Exist';
} }
return $respArr; return $respArr;
} }
}
?> public function get_booking_summary($postData = ''){
\ No newline at end of file $respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($postData['booking_id'])){
$respArr['message'] = 'Booking Id is required';
return $respArr;
}
$this->db->select("customer_vehicle.car_model as vehicle_model,customer_vehicle.car_maker as vehicle_make,customer_vehicle.car_model_year as vehicle_year,customer_vehicle.vehicle_data,bookings.mileage,bookings.issues_selected,bookings.custom_issue_data,bookings.mechanic_id");
$this->db->join('customer_vehicle','customer_vehicle.customer_veh_id = bookings.customer_veh_id');
$mech_data = $this->db->get_where('bookings',array('booking_id'=>$postData['booking_id']));
if(!empty($mech_data) && !empty($mechanic_data = $mech_data->row_array())){
$mech_veh_data = json_decode($mechanic_data['vehicle_data']);
$mechanic_data['engine_no'] = $mech_veh_data->attributes->Engine;
$mechanic_data['vehicle_trim'] = $mech_veh_data->attributes->Trim;
unset($mechanic_data['vehicle_data']);
$mechanic_data['services'] = json_decode($mechanic_data['issues_selected']);
if(!empty($mechanic_data['services'])){
foreach($mechanic_data['services'] as $key => $value){
$sql = "SELECT IC.*, MI.custom_description, MI.custom_service_fee
FROM issues_category AS IC
LEFT JOIN mechanic_issues AS MI ON (MI.issue_cat_id=IC.issue_cat_id AND
MI.mechanic_id='".$mechanic_data['mechanic_id']."' AND MI.status='1')
WHERE IC.status='1' AND IC.issue_cat_id='".$value->sub_issue_id."'";
$issue_data = $this->db->query($sql)->row();
if(!empty($issue_data)){
if($issue_data->custom_description != '' && $issue_data->custom_service_fee != ''){
$mechanic_data['services'][$key]->description = $issue_data->custom_description;
$mechanic_data['services'][$key]->service_fee = $issue_data->custom_service_fee;
}else{
$mechanic_data['services'][$key]->description = $issue_data->default_description;
$mechanic_data['services'][$key]->service_fee = $issue_data->default_service_fee;
}
}
}
}else{
$mechanic_data['services'] = [];
}
unset($mechanic_data['issues_selected']);
$issue_data = json_decode($mechanic_data['custom_issue_data']);
$mechanic_data['optional_images'][] = ($issue_data->optionalImages)?$issue_data->optionalImages:'';
$mechanic_data['optional_video'][] = ($issue_data->optionalVideos)?$issue_data->optionalVideos:'';
$mechanic_data['booking_description'] = ($issue_data->optionlaDescription)?$issue_data->optionlaDescription:'';
unset($mechanic_data['custom_issue_data']);
$respArr['status'] = 'success';
$respArr['message'] = 'success';
$respArr['data'] = $mechanic_data;
}
return $respArr;
}
public function getNearMechanics($postData = '',$start,$per_page){
$respArr = array('status'=>'error','message'=>'Something Went Wrong.');
if(empty($postData)){
return $respArr;
}
$current_lat = $postData['location_lat'];
$current_lng = $postData['location_lng'];
$issue_cat_id = $postData['service_id'];
if($start != 0 || $per_page != 0){
$limt = "limit ".$start.",".$per_page;
}else{
$limt = "";
}
$sql = "SELECT AU.display_name,AU.profile_image,ME.*,MS.shop_name,MS.address AS shop_address,
MS.phone AS shop_phone,MS.email_id AS shop_email_id,
3956*2*ASIN(SQRT(POWER(SIN(($current_lat-ME.location_lat)*pi()/180/2),2)+
COS($current_lat*pi()/180 )*COS(ME.location_lat*pi()/180)*
POWER(SIN(($current_lng-ME.location_lng)*pi()/180/2),2) )) AS distance
FROM mechanic AS ME
INNER JOIN admin_users AS AU ON (AU.id=ME.mechanic_id)
LEFT JOIN mechanic_shop AS MS ON (MS.shop_id=ME.shop_id AND MS.status='1')
WHERE AU.status='1'
-- HAVING distance<30
".$limt;
$mechData = $this->db->query($sql);
if(empty($mechData) || empty($mechData = $mechData->result_array())){
return 0;
}
$estimate = 0;
$mechDataArr = array();
foreach($mechData AS $index => $data){
if(empty($data['start_time']) || empty($data['end_time'])){
$scheduleTiming = array('09:00 AM','10:00 AM','11:00 AM','12:00 PM','01:00 PM',
'02:00 PM','03:00 PM','04:00 PM','05:00 PM','06:00 PM');
} else {
$endTime = strtotime($data['end_time']);
$schTime = strtotime($data['start_time']);
$scheduleTiming = array();
for( ; $schTime <= ($endTime-3600) ; $schTime += 3600){
$scheduleTiming[] = date('h:i A',$schTime);
}
}
$mechanic_id = $data['mechanic_id'];
$sql = "SELECT ISS.*, IC.*, MI.mechanic_id, MI.custom_description, MI.custom_service_fee
FROM issues_category AS IC
INNER JOIN issues AS ISS ON (IC.issue_id=ISS.issue_id)
LEFT JOIN mechanic_issues AS MI ON (MI.issue_cat_id=IC.issue_cat_id AND
MI.mechanic_id='$mechanic_id' AND MI.status='1')
WHERE ISS.status='1' AND IC.status='1' AND IC.issue_cat_id IN ($issue_cat_id)";
$subIssData = $this->db->query($sql);
$sIssueData = array();
if(!empty($subIssData) && !empty($subIssData = $subIssData->result_array())){
$sIssueData = $subIssData;
}
$estimate = 0;
foreach($sIssueData AS $sIndex => $sIssue){
if(!empty($sIssue['custom_service_fee'])){
$estimate += $sIssue['custom_service_fee'];
$sIssueData[$sIndex]['service_fee'] = $sIssue['custom_service_fee'];
} else {
$estimate += $sIssue['default_service_fee'];
$sIssueData[$sIndex]['service_fee'] = $sIssue['default_service_fee'];
}
}
$mechData[$index]['estimate'] = $estimate;
$mechData[$index]['sub_issues'] = $sIssueData;
$mechData[$index]['scheduleTiming'] = $scheduleTiming;
$respArr['status'] = 'success';
$respArr['message'] = 'success';
$respArr['data'] = $mechData;
}
return $respArr;
}
public function add_service_details($postData){
$respArr = array('status'=>'error','message'=>'Something Went Wrong');
if(empty($postData['booking_id'])){
$respArr['message'] = 'Booking Id is Required';
return $respArr;
}
$custom_issue_data = array(
'optionlaDescription'=>(isset($postData['description']) && !empty($postData['description']))?$postData['description']:"",
'optionalImages'=>(isset($postData['image']) && !empty($postData['image']))?$postData['image']:[],
'optionalVideos'=>(isset($postData['video']) && !empty($postData['video']))?$postData['video']:[],
);
if($this->db->update('bookings',array('custom_issue_data'=>json_encode($custom_issue_data)),array('booking_id'=>$postData['booking_id']))){
$respArr['status'] = 'success';
$respArr['message'] = 'success';
return $respArr;
}
}
public function remove_booking($postData = array()){
$respArr = array('status'=>'error','message'=>'Something Went Wrong..!');
if(empty($postData['booking_id'])){
$respArr['message'] = 'Booking Id is Required';
return $respArr;
}else if(empty($postData['service_id'])){
$respArr['message'] = 'Service Id is Required';
return $respArr;
}
$booked_data = $this->db->get_where('bookings',array('booking_id'=>$postData['booking_id']));
if(!empty($booked_data) && !empty($booked_data = $booked_data->row_array())){
$issues_selected = json_decode($booked_data['issues_selected']);
foreach($issues_selected as $key => $value){
if($value->sub_issue_id == $postData['service_id']){
unset($issues_selected[$key]);
}
}
$issues_selected = array_values($issues_selected);
if($this->db->update('bookings',array('issues_selected'=>json_encode($issues_selected)),array('booking_id'=>$postData['booking_id']))){
$respArr['status'] = 'success';
$respArr['message'] ='success';
}
return $respArr;
}
}
public function get_service($postData = array()){
$respArr = array('status'=>'error','message'=>'Something went Wrong.. Try Again');
if(empty($postData['booking_id'])){
$respArr['message'] = 'Booking Id is Required';
return $respArr;
}
$booked_data = $this->db->get_where('bookings',array('booking_id'=>$postData['booking_id']));
if(!empty($booked_data) && !empty($booked_data = $booked_data->row_array())){
$respArr['status'] = 'success';
$respArr['message'] = 'success';
$respArr['data']['services'] = json_decode($booked_data['issues_selected']);
}
return $respArr;
}
}
?>
...@@ -38,8 +38,11 @@ ...@@ -38,8 +38,11 @@
<label>Choose a Mechanic</label> <label>Choose a Mechanic</label>
<select name="mechanic_id" class="form-control required" data-parsley-trigger="change" <select name="mechanic_id" class="form-control required" data-parsley-trigger="change"
onchange="changeMechanic()" dmClick="0" required> onchange="changeMechanic()" dmClick="0" required>
<option selected disabled>Select Mechanic</option> <?php if($this->session->userdata['user_type'] == 1){?>
<?php <option>View All</option>
<?php }else{ ?>
<option selected disabled>Select Mechanic</option>
<?php }
if(!empty($mechanic_data)){ if(!empty($mechanic_data)){
foreach ($mechanic_data as $mechanic) { foreach ($mechanic_data as $mechanic) {
$chkFlg = ($mechanic_id == $mechanic->mechanic_id)?'selected':''; $chkFlg = ($mechanic_id == $mechanic->mechanic_id)?'selected':'';
...@@ -116,6 +119,17 @@ ...@@ -116,6 +119,17 @@
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 == ''){
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">
<i class="fa fa-fw fa-edit"></i><span>Generate Custom Quote</span>
</button>
<?php } } else{ ?>
<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>
</button>
<?php } ?>
</td> </td>
</tr> </tr>
<?php } } ?> <?php } } ?>
......
...@@ -37,8 +37,7 @@ ...@@ -37,8 +37,7 @@
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Display Name</label> <label>Display Name</label>
<input type="text" class="form-control required" data-parsley-trigger="change" <input type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" name="display_name" required=""
data-parsley-minlength="2" name="display_name" required=""
placeholder="Enter Display Name" value="<?= (isset($user_data->display_name))?$user_data->display_name:'' ?>"> placeholder="Enter Display Name" value="<?= (isset($user_data->display_name))?$user_data->display_name:'' ?>">
<span class="glyphicon form-control-feedback"></span> <span class="glyphicon form-control-feedback"></span>
</div> </div>
......
...@@ -495,3 +495,15 @@ ...@@ -495,3 +495,15 @@
border-right: 1px solid #e5e5e5; border-right: 1px solid #e5e5e5;
border-top: 1px solid #e5e5e5; border-top: 1px solid #e5e5e5;
} }
.errInput{
border: 1px solid red !important;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
margin: 0;
}
...@@ -756,6 +756,275 @@ function viewMapIssueDetails(issue_id) { ...@@ -756,6 +756,275 @@ function viewMapIssueDetails(issue_id) {
return false; return false;
} }
jQuery('[id="customQuote"]').on('click',function() {
var thisObj = jQuery(this);
if(thisObj.attr('view') == '0'){
customQuote(thisObj);
} else {
viewCustomQuote(thisObj);
}
});
quoteThisObj = '';
function customQuote(thisObj){
quoteThisObj = thisObj;
var booking_id = thisObj.attr('booking_id');
if(booking_id == '' || booking_id==undefined || booking_id == 'undefined' || booking_id == null || booking_id=='null'){
return true;
}
modalTrigger('Generate Custom Description','');
addModalLoader();
jQuery.ajax({
url : base_url+"Bookings/getBooking",
type : 'POST',
data : {'booking_id':booking_id,'view_all':'1'},
success : function(resp){
if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var resp_data = jQuery.parseJSON(resp);
if(resp_data['status'] == '0'){
remModalLoader();
jQuery('[id="modal_content"]').htnl('Something went wrong, Please try again later...!');
return false;
}
var booking_data = resp_data['data'];
jQuery.each(booking_data, function(index, value){
if(value == '' || value == null || value == 'null' || value == undefined || value == 'undefined'){
booking_data[index] = ' -- ';
}
});
var html ='',
imgCount = 0,
issueHtml = '',
optionalHtml = '',
issues_selected = jQuery.parseJSON(booking_data['issues_selected']);
if(issues_selected != ''){
var comma = '';
issueHtml += '<form id="customQuote" role="form" method="post">'+
'<div class="col-md-12" style="padding-top:10px">'+
'<div class="col-md-3"><div class="row"><label>Selected Issue</label></div></div>'+
'<div class="col-md-6"><div class="row"><label>Description</label></div></div>'+
'<div class="col-md-3"><div class="row"><label>Amount</label></div></div>'+
'<input type="hidden" name="booking_id" value="'+booking_id+'">'+
'<div class="row">';
jQuery.each(issues_selected, function (index, value) {
issueHtml += '<div class="col-md-12">'
issueHtml += '<div class="col-md-3 marginTop10">';
issueHtml += comma+' '+value['issue_category']+' ';
issueHtml += '</div>'+
'<div class="col-md-6">'+
'<textarea placeholder="Description" id="description_'+index+'" rows="2" cols="60" name="description[]"></textarea>'+
'</div>'+
'<div class="col-md-3">'+
'<input class="marginTop10" placeholder="Amount" id="amount_'+index+'" type="number" name="amount[]">'+
'</div>'+
'<input type="hidden" name="issue_id[]" value="'+value['issue_id']+'">'+
'<input type="hidden" name="sub_issue_id[]" value="'+value['sub_issue_id']+'">'+
'</div>';
});
issueHtml += '<input type="hidden" id="array_count" name="count" value="'+issues_selected.length+'">'+
'</div>'+
'</div>'+
'<div class="col-md-12">'+
'<div class="box-footer textCenterAlign">'+
'<button type="button" onclick="submitCustQuote(event);" class="btn btn-primary">Submit</button>'+
'</div>'+
'</div>'+
'</form>';
}
remModalLoader();
jQuery('[id="modal_content"]').html(issueHtml);
jQuery('[id^="optionalImage_"]').error(function() {
jQuery('[id^="optionalImage_"]').attr('src',base_url+'assets/images/no_image_text.png');
});
},
fail: function(xhr, textStatus, errorThrown){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
},
error: function (ajaxContext) {
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
}
})
}
function submitCustQuote(e){
e.preventDefault();
var count = jQuery('[id="array_count"]').val(), errFlag = '1';
jQuery('[id^="amount_"]').removeClass('errInput');
jQuery('[id^="description_"]').removeClass('errInput');
for (var i=0;i<count;i++){
var descrptn = jQuery('[id="description_'+i+'"]').val();
var amount = jQuery('[id="amount_'+i+'"]').val();
if((descrptn != '' && amount == '') || (descrptn == '' && amount != '')){
if(amount == ''){
jQuery('[id="amount_'+i+'"]').addClass('errInput');
}
if(descrptn == ''){
jQuery('[id="description_'+i+'"]').addClass('errInput');
}
return false;
}
if(descrptn != '' && amount != ''){
errFlag = '0';
}
}
if(errFlag == '1'){
jQuery('[id^="amount_"]').addClass('errInput');
jQuery('[id^="description_"]').addClass('errInput');
return false;
}
var form_data = new FormData();
form_data.append('data',jQuery('[id="customQuote"]').serialize());
if(form_data == '' || form_data==undefined || form_data == 'undefined' || form_data == null || form_data=='null'){
return true;
}
jQuery.ajax({
url : base_url+"Bookings/insertCustomQuote",
type : 'POST',
data : form_data,
async : false,
contentType: false,
processData: false,
success: function(resp){
if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var resp_data = jQuery.parseJSON(resp);
if(resp_data['status'] == 'error'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
else{
quoteThisObj.attr('view','1');
quoteThisObj.find('span').html('View Custom Quote');
quoteThisObj.attr('booking_id',resp_data['data']);
remModalLoader();
jQuery('[id="modal_content"]').html('Custom Quote Inserted Successfully.');
return false;
}
},
fail: function(xhr, textStatus, errorThrown){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
},
error: function (ajaxContext) {
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
}
})
}
function viewCustomQuote(thisObj){
var custom_id = thisObj.attr('booking_id');
if(custom_id == '' || custom_id==undefined || custom_id == 'undefined' || custom_id == null || custom_id=='null'){
return true;
}
modalTrigger('View Custom Description','');
addModalLoader();
jQuery.ajax({
url : base_url+"Bookings/getCustomData",
type : 'POST',
data : {'custom_id':custom_id,'view_all':'1'},
success : function(resp){
if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var resp_data = jQuery.parseJSON(resp);
if(resp_data['status'] == '0'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var booking_data = resp_data['data'];
jQuery.each(booking_data, function(index, value){
if(value == '' || value == null || value == 'null' || value == undefined || value == 'undefined'){
booking_data[index] = ' -- ';
}
});
var html ='',
imgCount = 0,
issueHtml = '',
optionalHtml = '',
issues_selected = jQuery.parseJSON(booking_data['issues_selected']),
custdescription = jQuery.parseJSON(booking_data['custom_service_quote']);
// console.log(custdescription);
if(issues_selected != ''){
var comma = '';
issueHtml += '<div class="col-md-12" style="padding-top:10px">'+
'<div class="col-md-4"><div class="row"><label>Selected Issue</label></div></div>'+
'<div class="col-md-4"><div class="row"><label>Description</label></div></div>'+
'<div class="col-md-4"><div class="row"><label>Amount</label></div></div>'+
'<div class="row">';
jQuery.each(issues_selected, function (index, value) {
issueHtml += '<div class="col-md-12">'+
'<div class="col-md-4 marginTop10">';
issueHtml += comma+' '+value['issue_category']+' ';
issueHtml += '</div>'+
'<div class="col-md-4 marginTop10">'+
custdescription[index]['description']+
'</div>'+
'<div class="col-md-4 marginTop10">'+
custdescription[index]['amount']+
'</div>'+
'</div>';
});
issueHtml += '</div>'+
'</div>'+
'<div class="col-md-12">'+
'<div class="col-md-6"></div>'+
'<div class="col-md-6"><br><br>'+
'<div class="col-md-4"><label>Total Amount</label></div>'+
'<div class="col-md-1">:</div>'+
'<div class="col-md-5"><b>'+booking_data['custom_amount']+'</b></div>'+
'</div>'+
'</div>';
}
remModalLoader();
jQuery('[id="modal_content"]').html(issueHtml);
jQuery('[id^="optionalImage_"]').error(function() {
jQuery('[id^="optionalImage_"]').attr('src',base_url+'assets/images/no_image_text.png');
});
},
fail: function(xhr, textStatus, errorThrown){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
},
error: function (ajaxContext) {
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
}
})
}
jQuery('[id="showBookinDetails"]').on('click',function() { jQuery('[id="showBookinDetails"]').on('click',function() {
var booking_id = jQuery(this).attr('booking_id'); var booking_id = jQuery(this).attr('booking_id');
...@@ -788,7 +1057,7 @@ jQuery('[id="showBookinDetails"]').on('click',function() { ...@@ -788,7 +1057,7 @@ jQuery('[id="showBookinDetails"]').on('click',function() {
} }
}); });
var html = '', var html = '',
imgCount = 0; imgCount = 0,
issueHtml = '', issueHtml = '',
optionalHtml = '', optionalHtml = '',
optional_data = jQuery.parseJSON(booking_data['custom_issue_data']), optional_data = jQuery.parseJSON(booking_data['custom_issue_data']),
......
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