/**
  * Returns the country analytics
  */
 public function countryAnalytics(Request $request, $id, $rangeFrom, $rangeTo, $unit)
 {
     $url = Url::find($id);
     if (empty($url)) {
         echo 'Not Found';
         return;
     }
     Utility::getUnit($unit);
     $countryData = $url->hits()->whereBetween('created_at', array($rangeFrom, $rangeTo))->select(\DB::raw('count(*) as count, country_iso_code, country'))->groupBy('country_iso_code')->get();
     echo json_encode($countryData);
     return;
 }
Esempio n. 2
0
 public function syncData()
 {
     if (Auth::check()) {
         $user_id = Auth::user()->id;
         $store_name = Utility::get_store_name($user_id);
         $shopify = new Shopify(Token::$shopify_api_key, Token::$shopify_secret_key, $store_name);
         $rAllProducts_s = $shopify->get_all_products('GET');
         $rVariants = array();
         $sValues = "";
         $rInsert = array();
         foreach ($rAllProducts as $rP) {
             foreach ($rP as $rPP) {
                 $rVariants[] = $rPP['variants'];
             }
         }
         foreach ($rVariants as $rV) {
             foreach ($rV as $rVV) {
                 $rInsert[] = array('sku' => $rVV['sku'], 'product_name' => $rVV['title'], 'quantity' => $rVV['inventory_quantity'], 'price' => $rVV['price']);
             }
         }
         //print_r($rInsert);
         $rProd = Products::where('user_id', '=', $user_id)->get();
         $rProd = json_decode(json_encode($rProd), true);
         //Make SKU the key
         $rData = array();
         foreach ($rProd as $rP) {
             $key = $rP['sku'];
             $rData[$key]['product_name'] = $rP['product_name'];
             $rData[$key]['quantity'] = $rP['quantity'];
             $rData[$key]['price'] = $rP['price'];
         }
         $rDiff = array();
         $rNew = array();
         //print_r($rInsert);
         //die();
         //Compare both arrays now to see any difference and get the difference in new array
         foreach ($rInsert as $rI) {
             if (isset($rData[$rI['sku']])) {
                 //Check for product_name, quantity,price
                 if ($rI['product_name'] != $rData[$rI['sku']]['product_name']) {
                     $rDiff[$rI['sku']]['product_name'] = $rI['product_name'];
                 }
                 if ($rI['quantity'] != $rData[$rI['sku']]['quantity']) {
                     $rDiff[$rI['sku']]['quantity'] = $rI['quantity'];
                 }
                 if ($rI['price'] != $rData[$rI['sku']]['price']) {
                     $rDiff[$rI['sku']]['price'] = $rI['price'];
                 }
             } else {
                 $rNew[$rI['sku']]['product_name'] = $rI['product_name'];
                 $rNew[$rI['sku']]['quantity'] = $rI['quantity'];
                 $rNew[$rI['sku']]['price'] = $rI['price'];
             }
         }
         //Update each changed entry
         foreach ($rDiff as $rK => $rV) {
             $sQ = "update lookup_products set ";
             foreach ($rV as $rKK => $rVV) {
                 $sQ .= "{$rKK} = '{$rVV}',";
             }
             $sQ = substr($sQ, 0, -1);
             $sQ .= " where sku = ?";
             DB::update($sQ, [$rK]);
         }
         //Add new Entry
         foreach ($rNew as $rK => $rV) {
             $sQ = "insert into lookup_products (sku,product_name,quantity,price,user_id) values (?, ?, ?, ?, ?)";
             DB::insert($sQ, [$rK, $rV['product_name'], $rV['quantity'], $rV['price'], $user_id]);
         }
     } else {
         echo 'You must login first';
         return view('auth/login');
     }
     return view('products.index', ['rProd' => Utility::get_slite_products($user_id)]);
 }