LocationController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Http\Controllers\ISRQRCODE;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use QrCode;
  6. use PDF;
  7. Use DB;
  8. use Illuminate\Support\Str;
  9. use App\Model\ISR\ISRMaster;
  10. class LocationController extends Controller
  11. {
  12. public function __construct()
  13. {
  14. $this->middleware('auth');
  15. }
  16. public function app(){
  17. $data['client_ids'] = ISRMaster::select('clnt_id')->groupBy('clnt_id')->pluck('clnt_id');
  18. $data['client_names'] = ISRMaster::select('clnt_name')->groupBy('clnt_name')->pluck('clnt_name');
  19. return view('layouts.dev.isrQRcode.qrCodeLocation.app')->with($data);
  20. }
  21. public function getRadius(Request $request, $long, $lat){
  22. $circle_radius = 6371;
  23. $max_distance = 50 / 1000;
  24. $lng = $long;
  25. $lat = $lat;
  26. $additional_query = null;
  27. if ($request->filled('app_no')) {
  28. $additional_query .= " AND clnt_id = '".$request->app_no."'";
  29. }
  30. if ($request->filled('sims_no')) {
  31. $sims_no = ISRMaster::find($request->sims_no)->clnt_name;
  32. $additional_query .= " AND clnt_name = '".$sims_no."'";
  33. }
  34. if ($request->filled('qrcode_id')) {
  35. $additional_query .= " AND site_id = '".$request->qrcode_id."'";
  36. }
  37. $new_response = new ISRMaster;
  38. $response = DB::select('SELECT * FROM
  39. (SELECT id, clnt_id, clnt_name, sid_long, sid_lat, city, site_id,
  40. (' . $circle_radius . ' * acos(cos(radians(' . $lat . ')) * cos(radians(sid_lat)) * cos(radians(sid_long) - radians(' . $lng . ')) + sin(radians(' . $lat . ')) * sin(radians(sid_lat)))
  41. ) AS distance
  42. FROM i_s_r_masters) AS distances
  43. WHERE distance < ' . $max_distance . '
  44. '. $additional_query .'
  45. ORDER BY distance
  46. OFFSET 0
  47. LIMIT 20;');
  48. return $response;
  49. }
  50. public function generateSite()
  51. {
  52. $generated = strtoupper(Str::random(2).'-'.Str::random(3).'-'.Str::random(3));
  53. if (ISRMaster::where('site_id', $generated)->exists()) {
  54. $generated = $this->generateSite();
  55. }
  56. return $generated;
  57. }
  58. public function site(Request $request)
  59. {
  60. if ($request->filled('site')) {
  61. $data['id'] = $this->generateSite();
  62. $payload = json_decode($request->payload);
  63. foreach ($payload as $key => $value) {
  64. $isr_master = ISRMaster::find($value->id);
  65. $isr_master->site_id = $data['id'];
  66. $isr_master->update();
  67. }
  68. $data['image'] = asset('sdppi-t.png');
  69. $data['url'] = url('site/'. $data['id']);
  70. $view = 'layouts.dev.isrQRcode.qrCodeLocation.pdf';
  71. // return view($view)->with($data);
  72. $pdf = PDF::loadView($view, $data);
  73. return $pdf->stream();
  74. }
  75. return back()->withInput();
  76. }
  77. }