diff --git a/app/CustomFuncPao.php b/app/CustomFuncPao.php index 06d308da..37a407c7 100644 --- a/app/CustomFuncPao.php +++ b/app/CustomFuncPao.php @@ -477,6 +477,59 @@ function loadArticleByIdArticle($id, $checkprevendita = false, $checkqtanegativa } } +function loadArticleByISBN($isbn, $checkprevendita = false, $checkqtanegativa = false) +{ + + try { + $articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo') + ->on('T_WEB_Articoli.DataOra', '=', 'b.data'); + }) + ->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) { + $join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto'); + }) + ->leftJoin(DB::raw('(SELECT o.Codice, o.QtaDisponibile FROM T_WEB_Disponibile o JOIN (SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p ON o.Codice = p.Codice AND o.DataOra = p.data1 ) q'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice'); + }) + ->where('T_WEB_Articoli.Ean13', $isbn) + ->get(); + + if ($checkprevendita) { + foreach ($articles as $article) { + $qtaneg = $article->QtaDisponibile < 0; + $inprevendita = false; + if ($article) { + $inprevendita = ($article->DescrizioneStatoProdotto === 'In prevendita'); + if ($checkqtanegativa) { + $inprevendita = $inprevendita && $qtaneg; + } + } + if ($inprevendita) { + return true; + } + } + return false; + } + + $ris = 'Articles ISBN ' . $isbn . ' :' . PHP_EOL; + $ris .= getarraystr($articles); // Converte solo i dati specificati in JSON + + try { + $product = Product::where('sku', $isbn)->first(); + + $ris .= 'Product:' . PHP_EOL; + $ris .= getarraystr($product); + } catch (\Exception $e) { + $ris .= "!!! Errore loadArticleByISBN Product: " . $e->getMessage(); + } + + return $ris; + } catch (\Exception $e) { + + return "Errore loadArticleByISBN: " . $e->getMessage(); + } +} + function showTest() @@ -488,7 +541,7 @@ function showTest() try { // $products = WooCommerce::get('products', ['sku' => $sku]); $product = Product::where('sku', $sku)->first(); - + // Verifica se ci sono prodotti trovati $mystr .= response()->json($product); // Restituisce il primo prodotto // print_r($product); @@ -499,10 +552,8 @@ function showTest() if (isset($product)) $mystr .= response()->json($product); - } - return $mystr; - + return $mystr; } function showOrdini() { @@ -2073,4 +2124,3 @@ function getvalstr($mystr, $value, $separato = false) return $my; } - diff --git a/resources/views/mylinkspao.blade.php b/resources/views/mylinkspao.blade.php index 2d21600e..c90a2912 100644 --- a/resources/views/mylinkspao.blade.php +++ b/resources/views/mylinkspao.blade.php @@ -35,7 +35,7 @@