From 64e4de6a6a16a9f8972d1336f287e290e39cb514 Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Fri, 17 May 2024 10:39:36 +0200 Subject: [PATCH] test --- app/Console/Commands/TestPao.php | 250 +++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 app/Console/Commands/TestPao.php diff --git a/app/Console/Commands/TestPao.php b/app/Console/Commands/TestPao.php new file mode 100644 index 00000000..b6055f7c --- /dev/null +++ b/app/Console/Commands/TestPao.php @@ -0,0 +1,250 @@ +first(); + $fromtime = str_replace('-', '', $settingora->value); + + $log .= "Articoli: \n"; + + echo "Articoli: \n"; + + $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 g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) { + $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia'); + }) + ->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) { + $join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato'); + }) + ->where('data', '>=', $fromtime) + ->where(function ($query) { + $query->where('DescrizioneStatoProdotto', 'In commercio') + ->orWhere('DescrizioneStatoProdotto', 'In prevendita') + ->orWhere('DescrizioneStatoProdotto', 'Prossima uscita'); + }) + //->where('DescrizioneTipologia','Video Streaming') + ->orderBy('Titolo') + ->get(); + + + if ($articles) { + // log the count of the articles + $log .= "Quanti Articoli: " . $articles->count(); + + + foreach ($articles as $article) { + try { + $strarticolo = json_encode($article, JSON_PRETTY_PRINT); + $log .= $strarticolo; + + $mostra = false; + if ($mostra_solo_qta_negative) { + if ($article->stock < 0) { + $mostra = true; + } + } else { + $mostra = true; + } + if ($mostra) { + echo "Articolo: " . $strarticolo; + + echo "\r\n QTA = " . $article->stock . "\r\n"; + } + + $productsku = Product::where('sku', $article->IdArticolo)->first(); + //if(Gm_product::where('id_gm',$article->IdArticolo)->doesntExist()) + if ($productsku->count() == 0) { + $titolo = null; + $formato = null; + $prodotti = null; + $prodotti = new ModelsProduct(); + $titolo = $article->Titolo; + switch ($article->DescrizioneTipologia) { + + case 'Libri': + + $prodotti = $prodotti->where('name', $titolo)->get(); + + $id = 0; + + if (!is_null($prodotti) && $prodotti->count() > 0) { + foreach ($prodotti as $prodotto) { + if (strtolower($prodotto->name) === strtolower($titolo)) { + $found_key = array_search('Autore libro', array_column($prodotto->attributes, 'name')); + if (array_diff($prodotto->attributes[$found_key]->options, $article->authors) === array_diff($article->authors, $prodotto->attributes[$found_key]->options)) { + $id = $prodotto->id; + $variations = Variation::all($prodotto->id); + foreach ($variations as $variation) { + $found_key_version = array_search('Versione', array_column($variation->attributes, 'name')); + if ($variation->attributes[$found_key_version]->option == 'Nuovo') { + $id = 0; + } + } + } + } + } + } + $data1 = [ + + 'regular_price' => $article->PrezzoIvato, + 'sku' => $article->IdArticolo, + 'sale_price' => $article->PrezzoIvatoScontatoCampagna, + 'date_on_sale_from' => $article->DataInizioCampagna, + 'date_on_sale_to' => $article->DataFineCampagna, + 'manage_stock' => true, + 'stock_quantity' => $article->stock, + 'purchasable' => false, + + 'attributes' => [ + [ + //'id' => 1, + 'id' => 6, + 'option' => 'Nuovo' + ] + + ], + 'meta_data' => [ + [ + 'key' => 'ISBN', + 'value' => $article->Ean13 + ], + [ + 'key' => 'misure', + 'value' => $article->Misure + ], + [ + 'key' => 'formato', + 'value' => $article->DescrizioneFormato + ], + [ + 'key' => 'pagine', + 'value' => $article->Pagine + ], + [ + 'key' => 'edizione', + 'value' => $article->Edizione + ], + [ + 'key' => 'ristampa', + 'value' => $article->Ristampa + ], + + ] + ]; + if ($id == 0) { + $versione = 'Nuova versione'; + $category = Category::where('name', $article->argomento); + if ($category->count() > 0) { + $categoria = $category->first(); + $categoriaid = $categoria['id']; + } else { + $categoriaid = 0; + } + } + break; + } + } + } catch (\Exception $e) { + + // $log .= $e->getMessage(); + } + } + } + + // get the last record of Stock + + $lastrecordStock = Stock::latest('DataOra')->take(10)->get(); + + $log .= '\n'; + + foreach ($lastrecordStock as $stock) { + $log .= "Codice: " . $stock->Codice; + $log .= " QtaDisp: " . $stock->QtaDisponibile; + $log .= " DataOra: " . $stock->DataOra; + + // Get the productsku record by $stock->Codice + $productsku = Product::where('sku', $stock->Codice)->first(); + + if ($productsku->count() > 0) { + // log the productsku record + $log .= "\n" . $productsku->toArray(); + } + + $log .= "\n"; + } + + // Select all the fields of the Stock table + + } catch (\Exception $e) { + $log .= $e->getMessage(); + echo "Error: " . $e->getMessage(); + } + + Log::channel('testpao')->notice($log); + + // echo $log; + } +}