Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Vimage;
- use Image;
- use App\Vehicle;
- use App\Inventory;
- use DB;
- use App\Setting;
- use App\ntas\ToolBox;
- use App\Role;
- use App\User;
- use \App\ntas\vin_decode\iDecode;
- use Illuminate\Support\Facades\Storage;
- class AjaxController extends Controller {
- /***********************************************************************************************************************************************************
- *
- ***********************************************************************************************************************************************************/
- private $imgWidth = 1024;
- private $imgHeight = 1024 *.75;
- private $origImgWidth = 2048;
- private $config = null;
- private $vehicleThumbnailPath = null;
- private $vehicleOriginalPath = null;
- /***********************************************************************************************************************************************************
- * __construct
- ***********************************************************************************************************************************************************/
- public function __construct() {
- parent::__construct();
- ToolBox::Trace(sprintf('[AC00038] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- ToolBox::Trace(sprintf('[AC00039]--- ToolBox::Config: %s', json_encode(ToolBox::Config() )));
- $this->vehicleThumbnailPath = null;
- $this->vehicleOriginalPath = null;
- if( null !== ToolBox::Config() ) {
- $this->vehicleThumbnailPath = public_path( ToolBox::Config()->vehicleThumbnailPath );
- $this->vehicleOriginalPath = storage_path( ToolBox::Config()->vehicleOriginalPath );
- ToolBox::Trace(sprintf('[AC00047]--- vehicleThumbnailPath: %s', $this->vehicleThumbnailPath));
- ToolBox::Trace(sprintf('[AC00048]--- vehicleOriginalPath : %s', $this->vehicleOriginalPath));
- } else {
- ToolBox::Trace(sprintf('[AC00051]--- ToolBox::Config is null.'));
- }
- ToolBox::Trace(sprintf('[AC00054] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- }
- /***********************************************************************************************************************************************************
- * vehicleThumbnailPath
- ***********************************************************************************************************************************************************/
- public function vehicleThumbnailPath() {
- ToolBox::Trace(sprintf('[AC00062] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- // if( null === $this->vehicleThumbnailPath && null !== ToolBox::Config() ) {
- if( null === $this->vehicleThumbnailPath ) {
- // $this->vehicleThumbnailPath = public_path( ToolBox::Config()->vehicleThumbnailPath );
- ToolBox::Trace(sprintf('[AC00066]--- vehicleThumbnailPath: %s', $this->vehicleThumbnailPath));
- // return $this->vehicleThumbnailPath;
- $this->vehicleThumbnailPath = public_path('images/vehicles');
- } else {
- // if( null === $this->vehicleThumbnailPath ) {
- // ToolBox::Trace(sprintf('[AC00076]--- vehicleThumbnailPath is null.'));
- // }
- //
- // if( null === ToolBox::Config() ) {
- // ToolBox::Trace(sprintf('[AC00081]--- Config is null.'));
- // }
- }
- ToolBox::Trace(sprintf('[AC00078]--- returning: %s', $this->vehicleThumbnailPath));
- ToolBox::Trace(sprintf('[AC00079] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return( $this->vehicleThumbnailPath );
- }
- /***********************************************************************************************************************************************************
- * vehicleOriginalPath
- ***********************************************************************************************************************************************************/
- public function vehicleOriginalPath() {
- ToolBox::Trace(sprintf('[AC00087] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- if( trim($this->vehicleOriginalPath) === '' ) {
- // if( null !== ToolBox::Config() ) {
- //
- // $this->vehicleOriginalPath = storage_path( ToolBox::Config()->vehicleOriginalPath );
- // ToolBox::Trace(sprintf('[AC00094]--- returning value : %s', $this->vehicleOriginalPath));
- // } else {
- // ToolBox::Trace(sprintf('[AC00096]--- config is empty...'));
- // }
- $this->vehicleOriginalPath = storage_path('images/vehicles/original');
- } else {
- ToolBox::Trace(sprintf('[AC00099]--- vehicleOriginalPath not empty: %s', $this->vehicleOriginalPath));
- }
- ToolBox::Trace(sprintf('[AC00102] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return( $this->vehicleOriginalPath );
- }
- /***********************************************************************************************************************************************************
- * overlayUpload
- ***********************************************************************************************************************************************************/
- public function overlayUpload(Request $request) {
- ToolBox::Trace(sprintf('[AC00114] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- $image = null;
- $which_overlay = '';
- $name = '';
- $data['files'] = array();
- if( $request->hasFile('primary_overlay_up') ) {
- $image = $request->file('primary_overlay_up');
- $which_overlay = 'primary_overlay';
- } else if( $request->hasFile('secondary_overlay_up') ) {
- $image = $request->file('secondary_overlay_up');
- $which_overlay = 'secondary_overlay';
- } else if( $request->hasFile('certified_overlay_up') ) {
- $image = $request->file('certified_overlay_up');
- $which_overlay = 'certified_overlay';
- }
- $name = sprintf("%s_%s.%s",
- ToolBox::User()->dealers()->first()->cpin,
- md5_file( $image->getRealPath() ),
- $image->getClientOriginalExtension()
- );
- ToolBox::Trace(sprintf("[AC00137]--- image overlay name: %s", $name));
- $orgimg = Image::make(
- $image
- )->save(
- storage_path('images/overlays') . '/' . $name
- );
- array_push($data['files'], [
- 'url' => $orgimg->basename,
- 'src' => $which_overlay
- ]);
- ToolBox::Trace(sprintf('[AC00145] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return response()->json($data);
- }
- /***********************************************************************************************************************************************************
- * vehicleUpload
- ***********************************************************************************************************************************************************/
- public function vehicleUpload(Request $request) {
- // dd($request);
- $rtn['files'] = array();
- $rtn['error'] = null;
- $baseFileName = strtolower(str_replace(
- ' ',
- '_',
- (
- trim($request->year) . '-' .
- trim($request->make) . '-' .
- trim( str_replace('-', '_', $request->model) ) . '-' .
- trim($request->cpin) . '-' .
- trim($request->stock_number)
- )
- ));
- $this->checkImagePaths();
- if( $request->hasFile('uploadedImage') ) {
- foreach( $request->file('uploadedImage') as $image ) {
- $hash = hash('joaat', md5_file( $image->getRealPath() ) );
- ToolBox::Trace(sprintf('[AC00177]--- hash: %s', $hash ));
- // $filename = strtolower($baseFileName . '-' . $hash . '.' . $image->getClientOriginalExtension());
- $filename = strtolower($baseFileName . '-' . $hash . '.jpg');
- $location = $this->vehicleThumbnailPath . '/' . $filename;
- $original = $this->vehicleOriginalPath . '/' . $filename;
- // http://image.intervention.io/ (documentation)
- // create & save the original file
- $orgimg = Image::make(
- $image
- )->resize(
- $this->origImgWidth,
- null,
- function($constraint) {
- $constraint->upsize();
- $constraint->aspectRatio();
- }
- )->save(
- $original
- );
- $newimg = Image::canvas(
- $this->imgWidth,
- $this->imgHeight,
- '#ffffff'
- )->insert(
- Image::make(
- $orgimg
- )->resize(
- $this->imgWidth,
- null,
- function($constraint) {
- $constraint->upsize();
- $constraint->aspectRatio();
- }
- )->sharpen(
- 5
- ),
- 'top'
- )->save(
- $location
- );
- array_push($rtn['files'], ['url' => $newimg->basename]);
- }
- return response()->json($rtn);
- } else {
- $rtn['error'] = 'unknown image error';
- return response()->json($rtn);
- }
- }
- /***********************************************************************************************************************************************************
- * VehicleDeleteImage
- ***********************************************************************************************************************************************************/
- public function VehicleDestroyImage(Request $request) {
- $image = Vimage::where('name', '=', $request->name)->first();
- if( $image !== null ) {
- // Storage::delete(public_path($image->name));
- // $image->delete();
- // Hard Delete
- }
- return response()->json(true);
- }
- public function VehicleDeleteImage(Request $request) {
- $image = Vimage::where('name', '=', $request->name)->first();
- if( $image !== null ) {
- $image->isDeleted = true;
- $image->save();
- }
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- *
- ***********************************************************************************************************************************************************/
- public function VehicleUndeleteImage(Request $request) {
- $image = Vimage::where('name', '=', $request->name)->first();
- if( $image !== null ) {
- $image->isDeleted = false;
- $image->save();
- }
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- *
- ***********************************************************************************************************************************************************/
- public function checkImagePaths() {
- ToolBox::Trace(sprintf('[AC00264] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- // make sure the public vehicles image folder exists
- if( !file_exists( $this->vehicleThumbnailPath() ) ) {
- try {
- ToolBox::Trace(sprintf('[AC00272]--- vehicleThumbnailPath: %s', $this->vehicleThumbnailPath() ));
- if( !empty($this->vehicleThumbnailPath()) ) {
- mkdir( $this->vehicleThumbnailPath() );
- } else {
- ToolBox::Trace(sprintf('[AC00274]--- mkdir::vehicleThumbnailPath FAILED'));
- }
- } catch(Exception $e) {
- ToolBox::Trace(sprintf('[AC00275]--- vehicleThumbnailPath Exception: %s', $e->getMessage() ));
- return( false );
- }
- }
- // make sure the original vehicle image folder exists
- if( !file_exists( $this->vehicleOriginalPath() ) && $this->vehicleOriginalPath() !== '' ) {
- try {
- if( !empty($this->vehicleOriginalPath()) ) {
- mkdir( $this->vehicleOriginalPath(), 0777, true );
- } else {
- ToolBox::Trace(sprintf('[AC00289]--- mkdir::vehicleOriginalPath FAILED'));
- }
- } catch(Exception $e) {
- return( false );
- }
- }
- ToolBox::Trace(sprintf('[AC00287] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return( true );
- }
- /***********************************************************************************************************************************************************
- * updateField
- ***********************************************************************************************************************************************************/
- public function updateField(Request $request) {
- $vin = $request->input('vin');
- $inventory = null;
- $vehicle = Vehicle::where('vin', '=', $vin)->first();
- $field = $request->input('field');
- $value = $request->input('value');
- if( strtolower(trim($field)) == 'vehicle_type' ) {
- $inventory = Inventory::where('vehicle_id', '=', $vehicle->id)->first();
- $inventory->{$field} = $value;
- $inventory->save();
- } else {
- // $vehicle = Vehicle::where('vin', '=', $request->input('vin'))->first();
- $vehicle->{$field} = $value;
- $vehicle->save();
- }
- }
- /***********************************************************************************************************************************************************
- * updatePricing
- ***********************************************************************************************************************************************************/
- public function updatePricing(Request $request) {
- $success = false;
- $iid = $request->input('iid');
- $field = null;
- $value = $request->input('value');
- switch( strtolower($request->input('field')) ) {
- case 'cost' :
- $field = 'cost';
- break;
- case 'msrp' :
- $field = 'msrp';
- break;
- case 'list_price' :
- $field = 'list_price';
- break;
- case 'retail_price' :
- $field = 'retail_price';
- break;
- case 'internet_price' :
- $field = 'internet_price';
- break;
- }
- if( null !== $field && is_numeric($iid) && (empty($value) || is_numeric($value)) ) {
- $inv = Inventory::where('id', '=', $iid)->first();
- if( $field === 'msrp' ) {
- $v = Vehicle::where('id', '=', $inv->vehicle_id)->first();
- $v->{$field} = $value;
- $v->save();
- $success = true;
- } else if( !empty($field) ) {
- $inv->{$field} = $value;
- $inv->save();
- $success = true;
- }
- }
- return response()->json($success);
- }
- /***********************************************************************************************************************************************************
- * roleToggle
- ***********************************************************************************************************************************************************/
- public function roleToggle(Request $request) {
- ToolBox::Trace( sprintf('AjaxController.php::roleToggle: [%s]', json_encode($request->input()) ) );
- $user = User::where('id', '=', $request->input('id'))->first();
- if( $request->input('value') === "true" ) {
- ToolBox::Trace( sprintf('--Attaching') );
- $user->roles()->attach( Role::where('name', '=', $request->input('role'))->first() );
- } else {
- // $user = \App\User::where('id', '=', $request->input('id'))->first();
- ToolBox::Trace( sprintf('--detatching') );
- $user->roles()->detach( Role::where('name', '=', $request->input('role'))->first() );
- }
- }
- /***********************************************************************************************************************************************************
- * userDeleteToggle
- ***********************************************************************************************************************************************************/
- public function userDeleteToggle(Request $request) {
- $user = \App\User::where('id', '=', $request->input('id'))->first();
- if( $request->input('value') === "true" ) {
- $user->is_deleted = true;
- $user->is_active = false;
- $user->save();
- } else {
- $user->is_deleted = false;
- $user->is_active = true;
- $user->save();
- }
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- * userActiveToggle
- ***********************************************************************************************************************************************************/
- public function userActiveToggle(Request $request) {
- $user = \App\User::where('id', '=', $request->input('id'))->first();
- if( $request->input('value') === "true" ) {
- $user->is_active = true;
- $user->save();
- } else {
- $user->is_active = false;
- $user->save();
- }
- }
- /***********************************************************************************************************************************************************
- * addNewUser
- ***********************************************************************************************************************************************************/
- public function addNewUser(Request $request) {
- ToolBox::Trace('AjaxController.php::addNewUser: (begin)');
- // dd( $request->input() );
- $roles = [];
- $pwd = null !== $request->input('pwd') ? $request->input('pwd') : str_random(12);
- $user = \App\User::where( 'email', '=', $request->input('email') )->first();
- ToolBox::Trace(
- sprintf(
- 'AjaxController.php::addNewUser: id=[%s], pwd=[%s]',
- $request->input('email'),
- $pwd
- )
- );
- if( $user === null ) {
- $user = new \App\User;
- }
- $user->first_name = $request->input('fname');
- $user->last_name = $request->input('lname');
- $user->name = sprintf("%s %s", $request->input('fname'), $request->input('lname') );
- $user->email = $request->input('email');
- $user->password = bcrypt( $pwd );
- // $user->password = $request->input('pwd');
- $user->force_password_change = true;
- // $user->dealer_id = \Auth::user()->dealer_id;
- $user->api_token = str_random(128);
- $user->save();
- // $user->dealers()->attach( ToolBox::User()->dealer_id );
- $role_admin = Role::where('name', 'admin')->first();
- $role_salesperson = Role::where('name', 'salesperson')->first();
- $role_ntas = Role::where('name', 'ntas')->first();
- $role_inventory_manager = Role::where('name', 'inventory_manager')->first();
- $role_customer = Role::where('name', 'customer')->first();
- if( strtolower($request->input('admin')) === "true" ) {
- array_push($roles, $role_admin->id);
- }
- if( strtolower($request->input('salesperson')) === "true" ) {
- array_push($roles, $role_salesperson->id );
- }
- if( strtolower($request->input('inventorymanager')) === "true" ) {
- array_push($roles, $role_inventory_manager->id );
- }
- $user->roles()->attach($roles);
- ToolBox::Trace('AjaxController.php::addNewUser: (end)');
- return $user->toJson();
- }
- /***********************************************************************************************************************************************************
- * getVehicleValueByVin
- ***********************************************************************************************************************************************************/
- public function getVehicleValueByVin(Request $request) {
- $nada = new \App\ntas\nada;
- $results = null;
- \App\ntas\ToolBox::Trace(sprintf('ToolBox.php::getVehicleValueByVin: Input=[ %s ]', json_encode($request->input()) ) );
- try {
- $results = $nada->getValueByVin(
- array(
- 'vin' => $request->input('vin'),
- 'mileage' => $request->input('mileage')
- )
- );
- \App\ntas\ToolBox::Trace(sprintf('ToolBox.php::getVehicleValueByVin: results=[ %s ]', json_encode($results) ) );
- return json_encode($results);
- } catch(Exception $ex) {
- \App\ntas\ToolBox::Trace(sprintf('ToolBox.php::getVehicleValueByVin: fail=[ %s ]', json_encode($ex) ) );
- return null;
- }
- } // end getVehicleValueByVin
- /***********************************************************************************************************************************************************
- * getNadaAccessories
- ***********************************************************************************************************************************************************/
- public function getNadaAccessories(Request $request) {
- $nada = new \App\ntas\nada;
- $results = null;
- try {
- $results = $nada->getAccessories(
- array(
- 'vin' => $request->input('vin'),
- 'period' => 0,
- 'vehicletype' => 'UsedCar',
- 'uid' => $request->input('uid'),
- 'region' => 5
- )
- );
- return json_encode($results);
- } catch(Exception $ex) {
- return null;
- }
- } // end getAccessories
- /***********************************************************************************************************************************************************
- * putNadaAccessory
- ***********************************************************************************************************************************************************/
- public function putNadaAccessory(Request $request) {
- $option = new \App\Option;
- }
- /***********************************************************************************************************************************************************
- * setDealerId
- ***********************************************************************************************************************************************************/
- public function setDealerId(Request $request) {
- ToolBox::Trace( sprintf('AjaxController::setDealerId: begin (%s)', json_encode($request->input() )) );
- if( null !== $request->input('dealer_id') ) {
- session( ['dealer_id' => $request->input('dealer_id') ] );
- if( \Auth::user() ) {
- \Auth::user()->dealer_id = $request->input('dealer_id');
- \Auth::user()->save();
- }
- return response()->json(true);
- }
- return response()->json(false);
- }
- /***********************************************************************************************************************************************************
- * removeDealerId
- ***********************************************************************************************************************************************************/
- public function removeDealerId(Request $request) {
- \App\ntas\ToolBox::forgetSession('dealer_id');
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- * getTemplate
- ***********************************************************************************************************************************************************/
- public function getTemplate(Request $request) {
- ToolBox::Trace(sprintf('[AC00577] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- ToolBox::Trace(sprintf('[AC00578]--- $request->input(): %s', json_encode($request->input())));
- if( $request->input('template') ) {
- $dgroups = null;
- $dealersArray = null;
- switch( $request->input('template') ) {
- case 'hbjs_linkdealertogroup_tpl':
- case 'hbjs_adddealer_tpl':
- $dgroups[0] = '';
- foreach( \App\dgroup::where('is_active', '=', 1)->where('is_deleted', '=', 0)->orderBy('name')->select('id', 'name')->get() as $row ) {
- $dgroups[$row->id] = $row->name;
- }
- break;
- case 'hbjs_linkusertodealer_tpl':
- case 'hbjs_linkgrouptodealer_tpl':
- $dealersArray[0] = '';
- foreach( \App\Dealer::where('is_active', '=', '1')->where('is_deleted', '=', 0)->orderBy('name')->get() as $row ) {
- $dealersArray[$row->id] = $row->name;
- }
- break;
- }
- // dd('params', $request->input('params') );
- return response(
- view(
- sprintf(
- // 'themes.%s.shared.%s',
- // ToolBox::Config()->theme,
- 'shared.%s',
- $request->input('template')
- )
- )->with(
- 'dgroups',
- $dgroups
- )->with(
- 'dealersarray',
- $dealersArray
- )->with(
- 'params',
- $request->input('params')
- )->render()
- );
- }
- ToolBox::Trace(sprintf('[AC00622] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return response()->json(null);
- }
- /***********************************************************************************************************************************************************
- * checkUserExists
- ***********************************************************************************************************************************************************/
- public function checkUserExists(Request $request) {
- $email = $request->input('email');
- $user = \App\User::where('email', '=', trim($email) )->first();
- if( null !== $user ) {
- return response()->json([
- 'status' => true,
- 'user' => [
- 'id' => $user->id,
- 'first_name' => $user->first_name,
- 'last_name' => $user->last_name,
- 'email' => $user->email,
- 'phone' => $user->phone,
- 'fax' => $user->fax
- ]
- ]);
- } else {
- return response()->json([
- 'status' => false
- ]);
- }
- }
- /***********************************************************************************************************************************************************
- * newDealerGroup
- ***********************************************************************************************************************************************************/
- public function newDealerGroup(Request $request) {
- ToolBox::Trace(sprintf('[AC00646] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- ToolBox::Trace(sprintf('[AC00647]--- $request: %s', json_encode( $request->input() ) ));
- $incomingGroup = $request->input('group');
- $incomingUser = $request->input('user');
- $group = null;
- $user = null;
- $group = new \App\dgroup;
- $group->name = $incomingGroup['name'];
- $group->address_1 = $incomingGroup['address1'];
- $group->address_2 = $incomingGroup['address2'];
- $group->city = $incomingGroup['city'];
- $group->state = $incomingGroup['state'];
- $group->zip = $incomingGroup['zip'];
- $group->phone = $incomingGroup['phone'];
- $group->fax = $incomingGroup['fax'];
- $group->email = $incomingGroup['email'];
- $group->website = $incomingGroup['website'];
- $group->save();
- if( isset($incomingUser['email']) ) {
- $user = \App\User::where('email', '=', $incomingUser['email'])->first();
- if( null === $user ) {
- $user = new \App\User;
- $user->first_name = $incomingUser['first_name'];
- $user->last_name = $incomingUser['last_name'];
- $user->name = sprintf("%s %s", trim($incomingUser['first_name']), trim($incomingUser['last_name']));
- $user->email = $incomingUser['email'];
- $user->phone = $incomingUser['phone'];
- $user->fax = $incomingUser['fax'];
- $user->password = bcrypt("ChangeMeN0w");
- // $user->password = "ChangeMeN0w";
- $user->force_password_change = true;
- $user->api_token = str_random(128);
- $user->save();
- }
- $user->roles()->attach( \App\Role::where('name', 'admin')->first() );
- $user->group_id = $group->id;
- $user->save();
- }
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- * linkg (link dealer to dealer group)
- ***********************************************************************************************************************************************************/
- public function linkg(Request $request) {
- $group_id = null !== $request->input('group_id') ? $request->input('group_id') : null;
- $dealer_id = null !== $request->input('dealer_id')? $request->input('dealer_id') : null;
- $rtnFlag = false;
- \App\ntas\ToolBox::Trace(
- sprintf("AjaxController.php::linkg: [(%s) = (%s)], [(%s) = (%s)]",
- "group_id",
- $group_id,
- "dealer_id",
- $dealer_id
- )
- );
- $dealer = \App\Dealer::where('id', '=', $dealer_id)->first();
- if( null !== $dealer ) {
- $dealer->dgroup_id = (int) $group_id;
- $dealer->save();
- $dealer->group()->attach($group_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * unlinkg (unlink dealer from dealer group)
- ***********************************************************************************************************************************************************/
- public function unlinkg(Request $request) {
- $group_id = null !== $request->input('group_id') ? $request->input('group_id') : null;
- $dealer_id = null !== $request->input('dealer_id')? $request->input('dealer_id') : null;
- $rtnFlag = false;
- $dealer = \App\Dealer::where('id', '=', $dealer_id)->first();
- if( null !== $dealer ) {
- $dealer->dgroup_id = -1;
- $dealer->save();
- $dealer->group()->detach($group_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * linkd (link dealer to dealer)
- ***********************************************************************************************************************************************************/
- public function linkd(Request $request) {
- $group_id = null !== $request->input('group_id') ? $request->input('group_id') : null;
- $dealer_id = null !== $request->input('dealer_id')? $request->input('dealer_id') : null;
- $group = null;
- $rtnFlag = false;
- \App\ntas\ToolBox::Trace(
- sprintf("AjaxController.php::linkd: [(%s) = (%s)], [(%s) = (%s)]",
- "group_id",
- $group_id,
- "dealer_id",
- $dealer_id
- )
- );
- if( isset($group_id) ) {
- $group = \App\dgroup::where('id', '=', $group_id)->first();
- }
- if( null !== $group ) {
- // $group->dealers()->attach($group_id);
- $group->dealers()->attach($dealer_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * unlinkd (unlink dealer from dealer group)
- ***********************************************************************************************************************************************************/
- public function unlinkd(Request $request) {
- $group_id = null !== $request->input('group_id') ? $request->input('group_id') : null;
- $dealer_id = null !== $request->input('dealer_id')? $request->input('dealer_id') : null;
- $rtnFlag = false;
- $group = \App\dgroup::where('id', '=', $group_id)->first();
- // dd( $request->input() );
- // dd( $group );
- if( null !== $group ) {
- $group->dealers()->detach($dealer_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * linku (link user to dealer)
- ***********************************************************************************************************************************************************/
- public function linku(Request $request) {
- $user_id = null !== $request->input('user_id') ? $request->input('user_id') : null;
- $dealer_id = null !== $request->input('dealer_id')? $request->input('dealer_id') : null;
- $group = null;
- $rtnFlag = false;
- \App\ntas\ToolBox::Trace(
- sprintf("AjaxController.php::linku: [(%s) = (%s)], [(%s) = (%s)]",
- "user_id",
- $user_id,
- "dealer_id",
- $dealer_id
- )
- );
- if( isset($user_id) ) {
- $user = \App\User::where('id', '=', $user_id)->first();
- }
- if( null !== $user ) {
- $user->dealers()->attach($dealer_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * unlinku (unlink user from dealer)
- ***********************************************************************************************************************************************************/
- public function unlinku(Request $request) {
- $dealer_id = $request->input('dealer_id');
- $user_id = $request->input('user_id');
- $rtnFlag = false;
- $user = \App\User::where('id', '=', $user_id)->first();
- if( null !== $user ) {
- $user->dealers()->detach($dealer_id);
- $rtnFlag = true;
- }
- return response()->json($rtnFlag);
- }
- /***********************************************************************************************************************************************************
- * addNewDealer
- ***********************************************************************************************************************************************************/
- public function addNewDealer(Request $request) {
- ToolBox::Trace(sprintf('[AC00867] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- ToolBox::Trace(sprintf('[AC00868]--- $request->input(): %s', json_encode( $request->input() )));
- $new_dealer = null !== $request->input('dealer') ? $request->input('dealer') : null;
- $incomingUser = null !== $request->input('user') ? $request->input('user') : null;
- $dealer = null;
- $user = null;
- ToolBox::Trace(sprintf('[AC00875]--- $new_dealer: %s', json_encode($new_dealer)));
- ToolBox::Trace(sprintf('[AC00876]--- $incomingUser: %s', json_encode($incomingUser)));
- if( null !== $new_dealer ) {
- $new_dealer_settings = array(
- 'cpin' => isset($new_dealer['cpin']) ? $new_dealer['cpin'] : null,
- 'name' => isset($new_dealer['name']) ? $new_dealer['name'] : null,
- 'street_address_1' => isset($new_dealer['address_1']) ? $new_dealer['address_1'] : null,
- 'street_address_2' => isset($new_dealer['address_2']) ? $new_dealer['address_2'] : null,
- 'city' => isset($new_dealer['city']) ? $new_dealer['city'] : null,
- 'state' => isset($new_dealer['state']) ? $new_dealer['state'] : null,
- 'zip' => isset($new_dealer['zip']) ? $new_dealer['zip'] : null,
- 'phone' => isset($new_dealer['phone']) ? $new_dealer['phone'] : null,
- 'fax' => isset($new_dealer['fax']) ? $new_dealer['fax'] : null,
- 'email' => isset($new_dealer['email']) ? $new_dealer['email'] : '',
- 'website' => isset($new_dealer['website']) ? $new_dealer['website'] : null
- );
- ToolBox::Trace(sprintf('[AC00892]--- $new_dealer_settings: %s', json_encode($new_dealer_settings)));
- $dealer = \App\Dealer::where('cpin', '=', $new_dealer['cpin'])->first();
- if( null === $dealer ) {
- $dealer = new \App\Dealer;
- }
- ToolBox::Trace(sprintf('[AC00894]--- back from creating new Dealer.'));
- $dealer->Add( $new_dealer_settings );
- // create dealer settings.
- $new_dealer_config = config('dealer.config');
- // $new_dealer_config['cpin'] = $new_dealer['cpin'];
- $new_dealer_config['primary_overlay'] = isset($new_dealer['primary_overlay']) ? $new_dealer['primary_overlay'] : null;
- $new_dealer_config['secondary_overlay'] = isset($new_dealer['secondary_overlay']) ? $new_dealer['secondary_overlay'] : null;
- $new_dealer_config['certified_overlay'] = isset($new_dealer['certified_overlay']) ? $new_dealer['certified_overlay'] : null;
- // $settings = \App\Setting::where('')
- $settings = new \App\Setting;
- $settings->Add(
- array(
- 'dealer_id' => $dealer->id,
- // 'cpin' => $dealer->cpin,
- 'key' => 'config',
- 'val' => $new_dealer_config
- )
- );
- if( null !== $settings ) {
- ToolBox::Trace(sprintf('[AC00913]--- great success.'));
- return response()->json(
- array(
- 'success' => true,
- 'message' => '[AC00913] great success!'
- )
- );
- } else {
- ToolBox::Trace(sprintf('[AC00920]--- settings variable is null.'));
- return response()->json(
- array(
- 'success' => false,
- 'message' => '[AC00920] settings variable is null'
- )
- );
- }
- } else {
- ToolBox::Trace(sprintf('[AC00930]--- $new_dealer is null or missing.'));
- return response()->json(
- array(
- 'success' => false,
- 'message' => '[AC00929] missing incoming dealer settings'
- )
- );
- }
- }
- /***********************************************************************************************************************************************************
- * vinDecode
- *
- *
- *
- * $data is expected to be in the following format:
- *
- * array(
- * "vin":"XXXXXXXXXXXXXXXXXX", // The vehicle vin to decode
- * "service":"chrome", // Chrome, NADA, etc. (chrome is the only service currently supported)
- * "apikey":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" // 64 characters in length
- * )
- ***********************************************************************************************************************************************************/
- public function vinDecode(Request $request) {
- // ToolBox::Trace(sprintf('[AC00989] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- // $site_config = config(sprintf('vin_decode.%s', ToolBox::whichInstall() ));
- // ToolBox::Trace(sprintf('[AC01004]--- $site_config: %s', json_encode($site_config) ));
- $data = $request->input();
- // return($data['vin']);
- // $data['apikey'] = $site_config['vin_decode_api_key'];
- // ToolBox::Trace(sprintf('[AC00975]--- $data : %s', json_encode($data)));
- // $rtnData = ToolBox::CallAPI( 'POST', $site_config['vin_decode_api_url'], $data );
- $url = 'https://test.dealerstart.com/api/vin/v4';
- // VIN to decode
- // $vin = '1HGCR3F80FA015359';
- $fields_string = '';
- $fields = array(
- 'vin' => $data['vin'],
- 'service' => 'chrome',
- 'apikey' => '4da34d1a811c6337797ec2750838dcb938dc783063c1289e71ea1fb964351985'
- );
- //url-ify the data for the POST
- foreach($fields as $key=>$value) {
- $fields_string .= $key.'='.$value.'&';
- }
- rtrim($fields_string, '&');
- //open connection
- $ch = curl_init();
- //set the url, number of POST vars, POST data
- curl_setopt($ch,CURLOPT_URL, $url);
- curl_setopt($ch,CURLOPT_POST, count($fields));
- curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- //execute post
- $result = curl_exec($ch);
- //close connection
- curl_close($ch);
- // return($result);
- // convert JSON result to an array
- $result_array = json_decode($result);
- $vin_explode_results = json_decode($result, true);
- // echo(json_encode($rtnData));
- // ToolBox::Trace(sprintf('[AC01016]--- $vin_explode_results: %s', json_encode($vin_explode_results)));
- if( !empty($vin_explode_results) && $vin_explode_results['success'] ) {
- $vin_explode_results['ntas']['stock_image_name'] = sprintf("%s",
- ToolBox::saveStockImage(
- array(
- 'image_url' => $vin_explode_results['ntas']['stock_image_url'],
- 'image_name' => $vin_explode_results['source']['styles'][0]['stockimage']['filename'],
- 'vin' => $vin_explode_results['ntas']['vin'],
- 'inventory_id' => rand(),
- 'dealer_id' => rand(),
- 'vehicle_id' => rand(),
- 'year' => $vin_explode_results['ntas']['year'],
- 'make' => $vin_explode_results['ntas']['make'],
- 'model' => $vin_explode_results['ntas']['model'],
- 'trim' => $vin_explode_results['ntas']['trim']
- )
- )
- );
- ToolBox::add_task(
- array(
- 'user_id' => (null !== \Auth::user() ? \Auth::user()->id : 0),
- 'type' => 'cd_vin_explode',
- 'data' => $vin_explode_results,
- 'run_at' => date("Y-m-d H:i:s")
- )
- );
- dispatch(
- (new \App\Jobs\ProcessChromeDataJob(
- $vin_explode_results
- ))->delay(
- \Carbon\Carbon::now()->addMinutes(5)
- )->onQueue('import_chromedata')
- );
- }
- // ToolBox::Trace(sprintf('[AC01008]--- $vin_explode_results: %s', json_encode($vin_explode_results)));
- // ToolBox::Trace(sprintf('[AC01024] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- return $vin_explode_results;
- }
- /***********************************************************************************************************************************************************
- * saveStockImage
- ***********************************************************************************************************************************************************/
- public function saveStockImage($params) {
- // if( !isset($params['image_url']) ) { return array('success' => false, 'message' => 'missing field [image_url]'); }
- // if( !isset($params['image_name']) ) { return array('success' => false, 'message' => 'missing field [image_name]'); }
- // if( !isset($params['vin']) ) { return array('success' => false, 'message' => 'missing field [vin]'); }
- // if( !isset($params['inventory_id']) ) { return array('success' => false, 'message' => 'missing field [inventory_id]'); }
- // if( !isset($params['dealer_id']) ) { return array('success' => false, 'message' => 'missing field [dealer_id]'); }
- // if( !isset($params['vehicle_id']) ) { return array('success' => false, 'message' => 'missing field [vehicle_id]'); }
- // if( !isset($params['year']) ) { return array('success' => false, 'message' => 'missing field [year]'); }
- // if( !isset($params['make']) ) { return array('success' => false, 'message' => 'missing field [make]'); }
- // if( !isset($params['model']) ) { return array('success' => false, 'message' => 'missing field [model]'); }
- // if( !isset($params['trim']) ) { return array('success' => false, 'message' => 'missing field [trim]'); }
- //
- // $baseFileName = strtolower(str_replace(
- // ' ',
- // '_',
- // sprintf('%s-%s-%s-%s-%s.png',
- // 'stock',
- // trim($params['year']),
- // trim($params['make']),
- // trim( str_replace('-', '_', $params['model']) ),
- // substr( $params['image_name'], 0, strrpos( $params['image_name'], '.' ) )
- // )
- // ));
- //
- // ToolBox::Trace(sprintf('[AC01115]--- $baseFileName: %s', $baseFileName));
- //
- // if( !file_exists( sprintf('%s/%s', $this->vehicleOriginalPath(), $baseFileName) )) {
- //
- // if( $this->checkImagePaths() ) {
- // $newimg = Image::canvas(
- // 400,
- // 300
- // )->insert(
- // Image::make( $params['image_url'] ),
- // 'center'
- // )->save(
- // sprintf('%s/%s', $this->vehicleOriginalPath(), $baseFileName)
- // );
- // } else {
- // ToolBox::Trace(sprintf('[AC01078]--- checkImagePaths returned null, not copying image from server.'));
- // }
- //
- // }
- //
- // if( !file_exists( sprintf('%s/%s', $this->vehicleThumbnailPath(), $baseFileName) ) ) {
- // ToolBox::Trace(sprintf('[AC01069]--- (begin) copying to public path'));
- // copy(
- // sprintf('%s/%s', $this->vehicleOriginalPath(), $baseFileName),
- // sprintf('%s/%s', $this->vehicleThumbnailPath(), $baseFileName)
- // );
- // ToolBox::Trace(sprintf('[AC01074]--- (end) copying to public path'));
- // }
- //
- // ToolBox::Trace(sprintf('[AC01108] (END) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- // return $baseFileName;
- }
- public function vehicleStatusUpdate(Request $request) {
- ToolBox::Trace(sprintf('[AC01095]--- $request->input: %s', json_encode($request->input() )));
- if( count($request->input()) > 0 ) {
- if( $inv = \App\Inventory::find( $request->input('invid') ) ) {
- $inv->vehicle_status = $request->input('statid');
- $inv->save();
- } else {
- return response()->json(false);
- }
- return response()->json(true);
- } else {
- return response()->json(false);
- }
- }
- public function vehicleSave(Request $request) {
- ToolBox::Trace(sprintf('[AC01113] (BEGIN) %s::%s:%s', __FILE__, __FUNCTION__, __LINE__ ));
- ToolBox::Trace(sprintf('[AC01114]--- $request->input(): %s', json_encode($request->input()) ));
- // dd($request->input());
- $vehicle = null;
- if( !$vehicle = \App\Vehicle::where('vin', '=', trim($request->input('vin')) )->first() ) {
- $vehicle = new \App\Vehicle();
- }
- $vehicle->vin = $request->input('vin');
- $vehicle->year = $request->input('year');
- $vehicle->make = $request->input('make');
- $vehicle->model = $request->input('model');
- $vehicle->trim = $request->input('trim');
- $vehicle->engine = $request->input('engine');
- $vehicle->engine_displacement = $request->input('engine_displacement');
- $vehicle->engine_cylinders = $request->input('engine_cylinders');
- $vehicle->transmission = $request->input('transmission');
- $vehicle->transmission_speed = $request->input('transmission_speed');
- $vehicle->mpg_city = $request->input('mpg_city');
- $vehicle->mpg_highway = $request->input('mpg_highway');
- $vehicle->drive_type = $request->input('drive_type');
- $vehicle->exterior_color = $request->input('exterior_color');
- $vehicle->interior_color = $request->input('interior_color');
- $vehicle->fuel_type = $request->input('fuel_type');
- $vehicle->weight = $request->input('weight');
- $vehicle->description = $request->input('description') ? $request->input('description') : '';
- $vehicle->msrp = $request->input('msrp');
- $vehicle->record_locked = true;
- $vehicle->ntas_id = ToolBox::get_ntas_id(
- $request->input('vin'),
- $request->input('make'),
- $request->input('model'),
- $request->input('trim'),
- $request->input('exterior_color')
- );
- $vehicle->save();
- $inventory = null;
- $dealerID = \Auth::user()->dealers()->first()->id;
- $inventory = $vehicle->inventory()->first();
- if( null === $inventory ) {
- $inventory = new \App\Inventory();
- $inventory->vehicle_id = $vehicle->id;
- $inventory->dealer_id = $dealerID;
- $inventory->record_locked = true;
- // $inventory->save();
- }
- $inventory->adjustments = $request->input('adjustments');
- $inventory->holdback = $request->input('holdback');
- $inventory->invoice_price = $request->input('invoice');
- $inventory->repair_order = $request->input('repair_order');
- $inventory->reconditioning = $request->input('reconditioning');
- $inventory->cost = $request->input('cost');
- $inventory->vehicle_id = $vehicle->id;
- $inventory->dealer_id = $dealerID;
- $inventory->cpin = \Auth::user()->dealers()->first()->cpin;
- $inventory->purchase_price = $request->input('purchase_price');
- $inventory->list_price = $request->input('list_price');
- $inventory->cost = $request->input('cost');
- $inventory->internet_price = $request->input('internet_price');
- $inventory->stock_number = $request->input('stock_number');
- $inventory->odometer = $request->input('odometer');
- $inventory->is_active = true;
- $inventory->display_on_web = $request->input('display_on_web');
- $inventory->record_locked = $request->input('record_locked');
- $inventory->import_locked = $request->input('record_locked');
- $inventory->third_party_push_lock = null === $request->input('third_party_push_lock') ? false : true;
- $inventory->sticky = $request->input('sticky');
- $inventory->is_deleted = $request->input('is_deleted');
- $inventory->export_autotrader = $request->input('export_autotrader');
- $inventory->export_carsdotcom = $request->input('export_carsdotcom');
- $inventory->export_carsforsale = $request->input('export_carsforsale');
- $inventory->export_cargurus = $request->input('export_cargurus');
- $inventory->export_cdk = $request->input('export_cdk');
- $inventory->export_craigslist = $request->input('export_craigslist');
- $inventory->export_dealerspecialties = $request->input('export_dealerspecialties');
- $inventory->export_dealereprocess = $request->input('export_dealereprocess');
- $inventory->export_homenet = $request->input('export_homenet');
- $inventory->export_inventoryplus = $request->input('export_inventoryplus');
- $inventory->export_recycler = $request->input('export_recycler');
- $inventory->video_url = $request->input('video_url');
- $inventory->vehicle_status = $request->input('vehicle_status');
- $inventory->save();
- // Update image table
- $ctrSequence = 0;
- $flgWatermark = false;
- if( null !== $imgData = collect( json_decode(trim($request->input('vehicleImages'))) )->unique() ) {
- $imgData->each( function($image) use($inventory, $dealerID, $vehicle, &$ctrSequence) {
- $vimage = Vimage::where(
- 'inventory_id', '=', $inventory->id
- )->where(
- 'dealer_id', '=', $dealerID
- )->where(
- 'vehicle_id', '=', $vehicle->id
- )->where(
- 'name', '=', strtolower(trim($image))
- )->first();
- if( $vimage === null ) {
- $vimage = new Vimage;
- }
- $vimage->inventory_id = $inventory->id;
- $vimage->vehicle_id = $vehicle->id;
- $vimage->dealer_id = $dealerID;
- $vimage->sequence = $ctrSequence;
- $vimage->name = $image;
- $vimage->save();
- $ctrSequence++;
- });
- }
- // Session::flash('success', 'vechicle information sucessfully updated...');
- // return(json_encode($request->input()));
- return response()->json(true);
- }
- /***********************************************************************************************************************************************************
- * getDBuilderCustoms
- ***********************************************************************************************************************************************************/
- public function getDBuilderCustoms(Request $request, $dealer_id) {
- $dbuilder = \App\dbuilder::where('dealer_id', '=', $dealer_id)->get();
- //$dbuilder = \App\dbuilder::where('dealer_id', '=', $dealer_id)->get()->toJson();
- // return \Response::json($dbuilder);
- return response()->json(array('dbuilder'=> $dbuilder));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement