diff --git a/app/Console/Commands/OrderUpdateGm.php b/app/Console/Commands/OrderUpdateGm.php index 6d094e3a..daa72822 100644 --- a/app/Console/Commands/OrderUpdateGm.php +++ b/app/Console/Commands/OrderUpdateGm.php @@ -100,7 +100,6 @@ class OrderUpdateGm extends Command // Send the email to the admin with the details of the order log Mail::raw($log, function ($message, $orderupdated) { $message->to("log@fioredellavita.it"); - //$message->bcc(''); $message->subject(Mylog::getSubjectEmail("Ordini Aggiornati su GM:" . $orderupdated)); }); diff --git a/app/Console/Commands/ProductUpdateGm.php b/app/Console/Commands/ProductUpdateGm.php index 660a6824..c5fd831d 100644 --- a/app/Console/Commands/ProductUpdateGm.php +++ b/app/Console/Commands/ProductUpdateGm.php @@ -50,1070 +50,1008 @@ class ProductUpdateGm extends Command public function handle() { - set_time_limit(0); - ini_set("memory_limit", "512M"); - $ora_update = Carbon::now(); - $settingora = Setting::where('key','update_products')->first(); - $fromtime = str_replace('-','',$settingora->value); + $aggiornato = false; + set_time_limit(0); + ini_set("memory_limit", "512M"); + $ora_update = Carbon::now(); + $settingora = Setting::where('key', 'update_products')->first(); + $fromtime = str_replace('-', '', $settingora->value); - $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'); - }) - /* + $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'); + }) + /* ->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.DataOra','>',$settingora->value) - ->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(); + //->where('T_WEB_Articoli.DataOra','>',$settingora->value) + ->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(); - Log::channel('updateproducts')->notice('Inizio da '.$settingora->value."\n"); - $loginizio = 'Inizio da '.$settingora->value."\n"; - $logfine = 'Fino a '.$ora_update."\n"; - $title = '*** SITO DI PRODUZIONE *** '; - $log = $title . ' PRODOTTI INSERITI'."\n"; - $log1 = 'EVENTUALI PRODOTTI NON INSERITI'."\n"; - $log2 = 'PRODOTTI AGGIORNATI' . "\n"; - $log3 = 'PRODOTTI NON INSERITI PER PROBLEMI SERVER' . "\n"; + Log::channel('updateproducts')->notice('Inizio da ' . $settingora->value . "\n"); + $loginizio = 'Inizio da ' . $settingora->value . "\n"; + $logfine = 'Fino a ' . $ora_update . "\n"; + $title = '*** SITO DI PRODUZIONE *** '; + $log = $title . ' PRODOTTI INSERITI' . "\n"; + $log1 = 'EVENTUALI PRODOTTI NON INSERITI' . "\n"; + $log2 = 'PRODOTTI AGGIORNATI' . "\n"; + $log3 = 'PRODOTTI NON INSERITI PER PROBLEMI SERVER' . "\n"; - foreach($articles as $article ) - { try { - $productsku = Product::where('sku' , $article->IdArticolo)->first(); - //if(Gm_product::where('id_gm',$article->IdArticolo)->doesntExist()) - if($productsku->count() == 0) - { + foreach ($articles as $article) { + try { + $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; - - - - $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; + 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 = [ + } + $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; + } + $data = [ + + 'name' => $article->Titolo, + 'type' => 'variable', + 'short_description' => $article->Sottotitolo, + 'categories' => [ + ['id' => $categoriaid] + + ], + 'status' => 'draft', + + + + + //'description' => 'Simple product full description.', + //'short_description' => 'Simple product short description.', - '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, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ], + + [ + //'id' => 5, + 'id' => 7, + 'visible' => true, + + 'options' => + $article->authors + + + ], + [ + //'id' => 2, + 'id' => 8, + 'visible' => true, + + 'options' => [ + $article->editore + + ] + ], + [ + //'id' => 7, + 'id' => 9, + 'visible' => true, + + 'options' => [ + $article->DescrizioneTipologia + + ] + ] + ], + + 'default_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 - ], + + + + ]; + + $product = Product::create($data); + + $idprodotto = $product['id']; + + + $variation = Variation::create($idprodotto, $data1); + //dd($variation); + + + + } else { + $versione = "Aggiunta versione"; + $product = Product::find($id); + $old_attributes = $product['attributes']; + $attributes = []; + foreach ($old_attributes as $old_attribute) { + if ($old_attribute->id <> 6) { + + $attributes[] = [ + 'id' => $old_attribute->id, + 'variation' => $old_attribute->variation, + 'visible' => $old_attribute->visible, + 'options' => $old_attribute->options + ]; + } + } + + $attributes[] = [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' ] ]; - 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; - } - $data = [ + //dd($attributes); - 'name' => $article->Titolo, - 'type' => 'variable', - 'short_description' => $article->Sottotitolo, - 'categories' => [ - [ 'id' => $categoriaid ] + $data = [ - ], - 'status' => 'draft', + 'attributes' => $attributes - - - //'description' => 'Simple product full description.', - //'short_description' => 'Simple product short description.', - - - 'attributes' => [ - - [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ], - - [ - //'id' => 5, - 'id' => 7, - 'visible' => true, - - 'options' => - $article->authors - - - ], - [ - //'id' => 2, - 'id' => 8, - 'visible' => true, - - 'options' => [ - $article->editore - - ] - ], - [ - //'id' => 7, - 'id' => 9, - 'visible' => true, - - 'options' => [ - $article->DescrizioneTipologia - - ] - ] - ], - - 'default_attributes' => [ - [ - //'id' => 1, - 'id' => 6, - 'option' => 'Nuovo' - ] - ], - - - - - ]; - - $product = Product::create($data); - - $idprodotto= $product['id']; - - - $variation = Variation::create($idprodotto, $data1); - //dd($variation); - - - - } else { - $versione = "Aggiunta versione"; - $product = Product::find($id); - $old_attributes = $product['attributes']; - $attributes = []; - foreach($old_attributes as $old_attribute) - { - if($old_attribute->id <> 6) - { - - $attributes[] = [ - 'id' => $old_attribute->id, - 'variation' => $old_attribute->variation, - 'visible' => $old_attribute->visible, - 'options' => $old_attribute->options - ]; - } - } - - $attributes[] = [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ]; - //dd($attributes); - - $data = [ - - 'attributes' => $attributes - - - ]; - Product::update($id, $data); - - $variation = Variation::create($id, $data1); - } - $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']. "\n"; - break; - - case 'E-book': - - if($article->DescrizioneFormato === 'Epub'){ - - - $titolo = rtrim(str_ireplace('EPUB','',$article->Titolo)); - - $formato = 'Epub'; - - } - elseif($article->DescrizioneFormato === 'Pdf'){ - $titolo = rtrim(str_ireplace('PDF','',$article->Titolo)); - - $formato = 'PDF'; - - } - elseif($article->DescrizioneFormato === 'Mobi'){ - $titolo = rtrim(str_ireplace('MOBI','',$article->Titolo)); - - - $formato = 'Mobi'; - - } else { - $log1 .= $article->Titolo . ' - '. $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . "\n"; - break; - } - $titolo = rtrim($titolo); - $titolo = rtrim(str_ireplace('EBOOK','',$titolo)); - $titolo = rtrim($titolo); - $titolo = rtrim(str_ireplace('_','',$titolo)); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'-'); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'_'); - $titolo = rtrim($titolo); - - $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 == $formato) - { - $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' => 6, - 'option' => $formato - ] - - ], - '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 - ], - ] ]; - if($id == 0){ + Product::update($id, $data); - $versione = 'Nuova versione'; + $variation = Variation::create($id, $data1); + } + $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n"; + $aggiornato = true; + break; - $category = Category::where('name',$article->argomento); - if($category->count() > 0 ) { - $categoria = $category->first(); - $categoriaid =$categoria['id']; - } else { - $categoriaid = 0; - } + case 'E-book': - $data = [ + if ($article->DescrizioneFormato === 'Epub') { - 'name' => $titolo, - 'type' => 'variable', - 'short_description' => $article->Sottotitolo, - 'categories' => [ - [ 'id' => $categoriaid ] - ], - 'status' => 'draft', + $titolo = rtrim(str_ireplace('EPUB', '', $article->Titolo)); - 'attributes' => [ + $formato = 'Epub'; + } elseif ($article->DescrizioneFormato === 'Pdf') { + $titolo = rtrim(str_ireplace('PDF', '', $article->Titolo)); - [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ], + $formato = 'PDF'; + } elseif ($article->DescrizioneFormato === 'Mobi') { + $titolo = rtrim(str_ireplace('MOBI', '', $article->Titolo)); - [ - //'id' => 5, - 'id' => 7, - 'visible' => true, - 'options' => - $article->authors - - - ], - [ - //'id' => 2, - 'id' => 8, - 'visible' => true, - - 'options' => [ - $article->editore - - ] - ], - [ - //'id' => 7, - 'id' => 9, - 'visible' => true, - - 'options' => [ - $article->DescrizioneTipologia - - ] - ] - ], - - 'default_attributes' => [ - [ - //'id' => 1, - 'id' => 6, - 'option' => 'Nuovo' - ] - ], - - - - - ]; - - $product = Product::create($data); - - $idprodotto= $product['id']; - - - $variation = Variation::create($idprodotto, $data1); - - - } - else { - $versione = "Aggiunta versione"; - $product = Product::find($id); - $old_attributes = $product['attributes']; - $attributes = []; - foreach($old_attributes as $old_attribute) - { - if($old_attribute->id <> 6) - { - - $attributes[] = [ - 'id' => $old_attribute->id, - 'variation' => $old_attribute->variation, - 'visible' => $old_attribute->visible, - 'options' => $old_attribute->options - ]; - } - } - - $attributes[] = [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ]; - //dd($attributes); - - $data = [ - - 'attributes' => $attributes - - - ]; - Product::update($id, $data); - $variation = Variation::create($id, $data1); - } - - $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n"; - break; - - case 'Dvd': - $titolo = rtrim($article->Titolo); - $titolo = rtrim(str_ireplace('DVD','',$titolo)); - $titolo = rtrim($titolo); - $titolo = rtrim(str_ireplace('_','',$titolo)); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'-'); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'_'); - $titolo = rtrim($titolo); - $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 == 'DVD') - { - $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' => 6, - 'option' => 'DVD' - ] - - ], - '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 - ], - ] - ]; - 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; - } - $data = [ - - 'name' => $article->Titolo, - 'type' => 'variable', - 'short_description' => $article->Sottotitolo, - 'categories' => [ - [ 'id' => $categoriaid ] - - ], - 'status' => 'draft', - - - //'description' => 'Simple product full description.', - //'short_description' => 'Simple product short description.', - - - 'attributes' => [ - - [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ], - - [ - //'id' => 5, - 'id' => 7, - 'visible' => true, - - 'options' => - $article->authors - - - ], - [ - //'id' => 2, - 'id' => 8, - 'visible' => true, - - 'options' => [ - $article->editore - - ] - ], - [ - //'id' => 7, - 'id' => 9, - 'visible' => true, - - 'options' => [ - $article->DescrizioneTipologia - - ] - ] - ], - - 'default_attributes' => [ - [ - //'id' => 1, - 'id' => 6, - 'option' => 'Nuovo' - ] - ], - - - - - ]; - - $product = Product::create($data); - - $idprodotto= $product['id']; - - - $variation = Variation::create($idprodotto, $data1); - - - - } else { - $versione = "Aggiunta versione"; - $product = Product::find($id); - $old_attributes = $product['attributes']; - $attributes = []; - foreach($old_attributes as $old_attribute) - { - if($old_attribute->id <> 6) - { - - $attributes[] = [ - 'id' => $old_attribute->id, - 'variation' => $old_attribute->variation, - 'visible' => $old_attribute->visible, - 'options' => $old_attribute->options - ]; - } - } - - $attributes[] = [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ]; - //dd($attributes); - - $data = [ - - 'attributes' => $attributes - - - ]; - Product::update($id, $data); - - $variation = Variation::create($id, $data1); - } - - $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n"; - - break; - - case 'Video Streaming': - case 'Video On Demand': - if($article->DescrizioneFormato === 'Streaming'){ - - - $titolo = rtrim($article->Titolo, 'STR'); - $titolo = rtrim(str_ireplace('streaming','',$titolo)); - $formato = 'Streaming'; - - } - elseif($article->DescrizioneFormato === 'Download'){ - $titolo = rtrim($article->Titolo, 'VOD'); - $titolo = rtrim(str_ireplace('download','',$titolo)); - $formato = 'Download'; - - } - else { - $log1 .= $article->Titolo . ' - '. $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . "\n"; - break; - } - - $titolo = rtrim($titolo); - - $titolo = rtrim(str_ireplace('_','',$titolo)); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'-'); - $titolo = rtrim($titolo); - $titolo = rtrim($titolo,'_'); - $titolo = rtrim($titolo); - - $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 == $formato) - { - $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' => 6, - 'option' => $formato - ] - - ], - '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 - ], - ] - ]; - 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; - } - - $data = [ - - 'name' => $titolo, - 'type' => 'variable', - 'short_description' => $article->Sottotitolo, - 'categories' => [ - [ 'id' => $categoriaid ] - - ], - 'status' => 'draft', - - 'attributes' => [ - - [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ], - - [ - //'id' => 5, - 'id' => 7, - 'visible' => true, - - 'options' => - $article->authors - - - ], - [ - //'id' => 2, - 'id' => 8, - 'visible' => true, - - 'options' => [ - $article->editore - - ] - ], - [ - //'id' => 7, - 'id' => 9, - 'visible' => true, - - 'options' => [ - $article->DescrizioneTipologia - - ] - ] - ], - - 'default_attributes' => [ - [ - //'id' => 1, - 'id' => 6, - 'option' => 'Nuovo' - ] - ], - - - - - ]; - - $product = Product::create($data); - - $idprodotto= $product['id']; - - - $variation = Variation::create($idprodotto, $data1); - - - } - else { - $versione = "Aggiunta versione"; - $product = Product::find($id); - $old_attributes = $product['attributes']; - $attributes = []; - foreach($old_attributes as $old_attribute) - { - if($old_attribute->id <> 6) - { - - $attributes[] = [ - 'id' => $old_attribute->id, - 'variation' => $old_attribute->variation, - 'visible' => $old_attribute->visible, - 'options' => $old_attribute->options - ]; - } - } - - $attributes[] = [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ]; - //dd($attributes); - - $data = [ - - 'attributes' => $attributes - - - ]; - Product::update($id, $data); - $variation = Variation::create($id, $data1); - } - $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n"; + $formato = 'Mobi'; + } else { + $log1 .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . "\n"; + $aggiornato = true; break; + } + $titolo = rtrim($titolo); + $titolo = rtrim(str_ireplace('EBOOK', '', $titolo)); + $titolo = rtrim($titolo); + $titolo = rtrim(str_ireplace('_', '', $titolo)); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '-'); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '_'); + $titolo = rtrim($titolo); + + $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 == $formato) { + $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' => 6, + 'option' => $formato + ] + + ], + '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 + ], + ] + ]; + 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; + } + + $data = [ + + 'name' => $titolo, + 'type' => 'variable', + 'short_description' => $article->Sottotitolo, + 'categories' => [ + ['id' => $categoriaid] + + ], + 'status' => 'draft', + + 'attributes' => [ + + [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ], + + [ + //'id' => 5, + 'id' => 7, + 'visible' => true, + + 'options' => + $article->authors + + + ], + [ + //'id' => 2, + 'id' => 8, + 'visible' => true, + + 'options' => [ + $article->editore + + ] + ], + [ + //'id' => 7, + 'id' => 9, + 'visible' => true, + + 'options' => [ + $article->DescrizioneTipologia + + ] + ] + ], + + 'default_attributes' => [ + [ + //'id' => 1, + 'id' => 6, + 'option' => 'Nuovo' + ] + ], - } + ]; + + $product = Product::create($data); + + $idprodotto = $product['id']; + + + $variation = Variation::create($idprodotto, $data1); + } else { + $versione = "Aggiunta versione"; + $product = Product::find($id); + $old_attributes = $product['attributes']; + $attributes = []; + foreach ($old_attributes as $old_attribute) { + if ($old_attribute->id <> 6) { + + $attributes[] = [ + 'id' => $old_attribute->id, + 'variation' => $old_attribute->variation, + 'visible' => $old_attribute->visible, + 'options' => $old_attribute->options + ]; + } + } + + $attributes[] = [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ]; + //dd($attributes); + + $data = [ + + 'attributes' => $attributes + + + ]; + Product::update($id, $data); + $variation = Variation::create($id, $data1); + } + + $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n"; + $aggiornato = true; + break; + + case 'Dvd': + $titolo = rtrim($article->Titolo); + $titolo = rtrim(str_ireplace('DVD', '', $titolo)); + $titolo = rtrim($titolo); + $titolo = rtrim(str_ireplace('_', '', $titolo)); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '-'); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '_'); + $titolo = rtrim($titolo); + $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 == 'DVD') { + $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' => 6, + 'option' => 'DVD' + ] + + ], + '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 + ], + ] + ]; + 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; + } + $data = [ + + 'name' => $article->Titolo, + 'type' => 'variable', + 'short_description' => $article->Sottotitolo, + 'categories' => [ + ['id' => $categoriaid] + + ], + 'status' => 'draft', + + + //'description' => 'Simple product full description.', + //'short_description' => 'Simple product short description.', + + + 'attributes' => [ + + [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ], + + [ + //'id' => 5, + 'id' => 7, + 'visible' => true, + + 'options' => + $article->authors + + + ], + [ + //'id' => 2, + 'id' => 8, + 'visible' => true, + + 'options' => [ + $article->editore + + ] + ], + [ + //'id' => 7, + 'id' => 9, + 'visible' => true, + + 'options' => [ + $article->DescrizioneTipologia + + ] + ] + ], + + 'default_attributes' => [ + [ + //'id' => 1, + 'id' => 6, + 'option' => 'Nuovo' + ] + ], - } else { - $data1 = [ + ]; - 'regular_price' => $article->PrezzoIvato, - 'sale_price' => $article->PrezzoIvatoScontatoCampagna, - 'date_on_sale_from' => $article->DataInizioCampagna, - 'date_on_sale_to' => $article->DataFineCampagna, - 'stock_quantity' => $article->stock, + $product = Product::create($data); - ]; - $idprodotto = $productsku['parent_id']; - if($idprodotto > 0){ - $variation = Variation::update($idprodotto,$productsku['id'], $data1); + $idprodotto = $product['id']; - $log2 .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - Articolo aggiornato - ' . $variation['permalink']."\n"; - } + $variation = Variation::create($idprodotto, $data1); + } else { + $versione = "Aggiunta versione"; + $product = Product::find($id); + $old_attributes = $product['attributes']; + $attributes = []; + foreach ($old_attributes as $old_attribute) { + if ($old_attribute->id <> 6) { + + $attributes[] = [ + 'id' => $old_attribute->id, + 'variation' => $old_attribute->variation, + 'visible' => $old_attribute->visible, + 'options' => $old_attribute->options + ]; + } + } + + $attributes[] = [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ]; + //dd($attributes); + + $data = [ + + 'attributes' => $attributes + + + ]; + Product::update($id, $data); + + $variation = Variation::create($id, $data1); + } + + $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n"; + $aggiornato = true; + + break; + + case 'Video Streaming': + case 'Video On Demand': + if ($article->DescrizioneFormato === 'Streaming') { + + + $titolo = rtrim($article->Titolo, 'STR'); + $titolo = rtrim(str_ireplace('streaming', '', $titolo)); + $formato = 'Streaming'; + } elseif ($article->DescrizioneFormato === 'Download') { + $titolo = rtrim($article->Titolo, 'VOD'); + $titolo = rtrim(str_ireplace('download', '', $titolo)); + $formato = 'Download'; + } else { + $log1 .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . "\n"; + $aggiornato = true; + break; + } + + $titolo = rtrim($titolo); + + $titolo = rtrim(str_ireplace('_', '', $titolo)); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '-'); + $titolo = rtrim($titolo); + $titolo = rtrim($titolo, '_'); + $titolo = rtrim($titolo); + + $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 == $formato) { + $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' => 6, + 'option' => $formato + ] + + ], + '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 + ], + ] + ]; + 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; + } + + $data = [ + + 'name' => $titolo, + 'type' => 'variable', + 'short_description' => $article->Sottotitolo, + 'categories' => [ + ['id' => $categoriaid] + + ], + 'status' => 'draft', + + 'attributes' => [ + + [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ], + + [ + //'id' => 5, + 'id' => 7, + 'visible' => true, + + 'options' => + $article->authors + + + ], + [ + //'id' => 2, + 'id' => 8, + 'visible' => true, + + 'options' => [ + $article->editore + + ] + ], + [ + //'id' => 7, + 'id' => 9, + 'visible' => true, + + 'options' => [ + $article->DescrizioneTipologia + + ] + ] + ], + + 'default_attributes' => [ + [ + //'id' => 1, + 'id' => 6, + 'option' => 'Nuovo' + ] + ], + + ]; + + $product = Product::create($data); + + $idprodotto = $product['id']; + + + $variation = Variation::create($idprodotto, $data1); + } else { + $versione = "Aggiunta versione"; + $product = Product::find($id); + $old_attributes = $product['attributes']; + $attributes = []; + foreach ($old_attributes as $old_attribute) { + if ($old_attribute->id <> 6) { + + $attributes[] = [ + 'id' => $old_attribute->id, + 'variation' => $old_attribute->variation, + 'visible' => $old_attribute->visible, + 'options' => $old_attribute->options + ]; + } + } + + $attributes[] = [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ]; + //dd($attributes); + + $data = [ + + 'attributes' => $attributes + + + ]; + Product::update($id, $data); + $variation = Variation::create($id, $data1); + } + $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n"; + $aggiornato = true; + break; + } + } else { + + $data1 = [ + + 'regular_price' => $article->PrezzoIvato, + 'sale_price' => $article->PrezzoIvatoScontatoCampagna, + 'date_on_sale_from' => $article->DataInizioCampagna, + 'date_on_sale_to' => $article->DataFineCampagna, + 'stock_quantity' => $article->stock, + + ]; + $idprodotto = $productsku['parent_id']; + if ($idprodotto > 0) { + $variation = Variation::update($idprodotto, $productsku['id'], $data1); + + $log2 .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - Articolo aggiornato - ' . $variation['permalink'] . "\n"; + $aggiornato = true; } - } catch (\Exception $e) { - $log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ; } - } - $settingora->value = $ora_update; - $settingora->save(); - Log::channel('updateproducts')->notice($log . $log2 . $log1 . $log3); - Log::channel('updateproducts')->notice('Fino a '.$ora_update."\n"); - Mail::raw($loginizio. $log . $log2 . $log1 . $log3 . $logfine, function ($message) { - $message->to("log@fioredellavita.it"); - //$message->bcc('luca@pecos.it'); - $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti")); - - }); - - - + } catch (\Exception $e) { + $log3 .= $article->IdArticolo . ' - ' . $article->Titolo . "\n"; + } + } + $settingora->value = $ora_update; + $settingora->save(); + if ($aggiornato) { + Log::channel('updateproducts')->notice($log . $log2 . $log1 . $log3); + Log::channel('updateproducts')->notice('Fino a ' . $ora_update . "\n"); + Mail::raw($loginizio . $log . $log2 . $log1 . $log3 . $logfine, function ($message) { + $message->to("log@fioredellavita.it"); + $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti")); + }); + } } } diff --git a/app/Console/Commands/ProductUpdateQta.php b/app/Console/Commands/ProductUpdateQta.php index a73cd51c..ddd3f7ea 100644 --- a/app/Console/Commands/ProductUpdateQta.php +++ b/app/Console/Commands/ProductUpdateQta.php @@ -51,6 +51,7 @@ class ProductUpdateQta extends Command */ public function handle() { + $aggiornato = false; set_time_limit(0); ini_set("memory_limit", "512M"); $ora_update = Carbon::now(); @@ -95,6 +96,7 @@ class ProductUpdateQta extends Command } else { Product::update($productsku['id'], $data1); } + $aggiornato = true; } } catch (\Exception $e) { //code error @@ -108,13 +110,12 @@ class ProductUpdateQta extends Command $settingora->value = $ora_update; $settingora->save(); - Log::channel('updateproductsqta')->notice($loginizio . $lognrprodotti . $logfine); - Mail::raw($loginizio. $lognrprodotti . $logfine, function ($message) { - $message->to("log@fioredellavita.it"); - //$message->bcc('luca@pecos.it'); - $message->subject(Mylog::getSubjectEmail("Aggiornam. Qtà Prodotti:")); - - }); - -} + if ($aggiornato) { + Log::channel('updateproductsqta')->notice($loginizio . $lognrprodotti . $logfine); + Mail::raw($loginizio . $lognrprodotti . $logfine, function ($message) { + $message->to("log@fioredellavita.it"); + $message->subject(Mylog::getSubjectEmail("Aggiornam. Qtà Prodotti:")); + }); + } + } } diff --git a/app/Console/Commands/ProductUpdateUsedGm.php b/app/Console/Commands/ProductUpdateUsedGm.php index 8d10a963..319b2782 100644 --- a/app/Console/Commands/ProductUpdateUsedGm.php +++ b/app/Console/Commands/ProductUpdateUsedGm.php @@ -51,245 +51,238 @@ class ProductUpdateUsedGm extends Command */ public function handle() { + $aggiornato = false; set_time_limit(0); ini_set("memory_limit", "512M"); $ora_update = Carbon::now(); - $settingora = Setting::where('key','update_products_used')->first(); - $fromtime = str_replace('-','',$settingora->value); + $settingora = Setting::where('key', 'update_products_used')->first(); + $fromtime = str_replace('-', '', $settingora->value); - $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'); - }) + $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'); - }) - /* + ->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'); + }) + /* ->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'); }) */ - //->groupBy('T_WEB_Articoli.IdArticolo') - ->where('data','>=',$fromtime) - ->where('EAN13','LIKE','usato%') - //->where(function($query){ - // $query->where('DescrizioneStatoProdotto','Usato') - //->orWhere('DescrizioneStatoProdotto','In Commercio') - //->orWhere('DescrizioneStatoProdotto','Remainder'); - //}) - //->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0) - //->where('DescrizioneFormato','brossura') - ->where('DescrizioneTipologia','Libri') - ->orderBy('data') + //->groupBy('T_WEB_Articoli.IdArticolo') + ->where('data', '>=', $fromtime) + ->where('EAN13', 'LIKE', 'usato%') + //->where(function($query){ + // $query->where('DescrizioneStatoProdotto','Usato') + //->orWhere('DescrizioneStatoProdotto','In Commercio') + //->orWhere('DescrizioneStatoProdotto','Remainder'); + //}) + //->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0) + //->where('DescrizioneFormato','brossura') + ->where('DescrizioneTipologia', 'Libri') + ->orderBy('data') - //->take(5) - //->orderBy('ListaAutori') - ->get(); - Log::channel('updateproductsused')->notice('Inizio da '.$settingora->value."\n"); - $loginizio = 'Inizio da '.$settingora->value."\n"; - $logfine = 'Fino a '.$ora_update."\n"; - $log = ' PRODOTTI USATI INSERITI'."\n"; - $log1 = 'EVENTUALI PRODOTTI USATI NON INSERITI'."\n"; - $log2 = 'PRODOTTI USATI AGGIORNATI' . "\n"; - $log3 = 'PRODOTTI USATI NON INSERITI PER PROBLEMI SERVER' . "\n"; + //->take(5) + //->orderBy('ListaAutori') + ->get(); + Log::channel('updateproductsused')->notice('Inizio da ' . $settingora->value . "\n"); + $loginizio = 'Inizio da ' . $settingora->value . "\n"; + $logfine = 'Fino a ' . $ora_update . "\n"; + $log = ' PRODOTTI USATI INSERITI' . "\n"; + $log1 = 'EVENTUALI PRODOTTI USATI NON INSERITI' . "\n"; + $log2 = 'PRODOTTI USATI AGGIORNATI' . "\n"; + $log3 = 'PRODOTTI USATI NON INSERITI PER PROBLEMI SERVER' . "\n"; - foreach($articles as $article) - { try { - /* + foreach ($articles as $article) { + try { + /* $settingdata = Setting::where('key','data_product_used')->first(); $settingdata->value = $article->data; $settingdata->save(); */ - $productsku = Product::where('sku' , $article->IdArticolo)->first(); - if($productsku->count() == 0) - { + $productsku = Product::where('sku', $article->IdArticolo)->first(); + if ($productsku->count() == 0) { - $titolo = null; - $formato = null; - $titolo = $article->Titolo; - $titolo = rtrim($titolo); - $titolo = rtrim(str_ireplace('USATO','',$titolo)); - $titolo = rtrim($titolo); + $titolo = null; + $formato = null; + $titolo = $article->Titolo; + $titolo = rtrim($titolo); + $titolo = rtrim(str_ireplace('USATO', '', $titolo)); + $titolo = rtrim($titolo); - $page = 1; + $page = 1; - $all_products = new Collection(); - do{ - $products = Product::all($options = ['per_page' => 100, 'page' => $page,'search' => $titolo]); - $all_products = $all_products->merge($products); - $page++; - } while ($products->count() > 0); + $all_products = new Collection(); + do { + $products = Product::all($options = ['per_page' => 100, 'page' => $page, 'search' => $titolo]); + $all_products = $all_products->merge($products); + $page++; + } while ($products->count() > 0); - foreach ($all_products as $product) { - $variations = Variation::all($product->id); - $target_usato = substr($article->Ean13, strlen('USATO')); + foreach ($all_products as $product) { + $variations = Variation::all($product->id); + $target_usato = substr($article->Ean13, strlen('USATO')); - foreach ($variations as $variation) { - foreach ($variation->meta_data as $meta_data) { + foreach ($variations as $variation) { + foreach ($variation->meta_data as $meta_data) { - if ($meta_data->key === 'ISBN') { - // Estrai gli ultimi caratteri dell'ISBN + if ($meta_data->key === 'ISBN') { + // Estrai gli ultimi caratteri dell'ISBN - $isbn_value = substr($meta_data->value, -strlen($target_usato)); - //dd($isbn_value); - // Confronta gli ultimi caratteri con il valore desiderato - if ($isbn_value === $target_usato) { - $meta_data->value; - $data1 = [ + $isbn_value = substr($meta_data->value, -strlen($target_usato)); + //dd($isbn_value); + // Confronta gli ultimi caratteri con il valore desiderato + if ($isbn_value === $target_usato) { + $meta_data->value; + $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, + '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' => 'Usato' - ] + 'attributes' => [ + [ + //'id' => 1, + 'id' => 6, + 'option' => 'Usato' + ] - ], - '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 - ], + ], + '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 + ], - ] - ]; + ] + ]; $old_attributes = $product->attributes; - $attributes = []; - foreach($old_attributes as $old_attribute) - { - if($old_attribute->id <> 6) - { + $attributes = []; + foreach ($old_attributes as $old_attribute) { + if ($old_attribute->id <> 6) { - $attributes[] = [ - 'id' => $old_attribute->id, - 'variation' => $old_attribute->variation, - 'visible' => $old_attribute->visible, - 'options' => $old_attribute->options - ]; - } - } + $attributes[] = [ + 'id' => $old_attribute->id, + 'variation' => $old_attribute->variation, + 'visible' => $old_attribute->visible, + 'options' => $old_attribute->options + ]; + } + } - $attributes[] = [ - //'id' => 1, - 'id' => 6, - 'position' => 0, - 'visible' => true, - 'variation' => true, - 'options' => [ - 'Nuovo', - 'Usato', - 'PDF', - 'Epub', - 'Mobi', - 'DVD', - 'Streaming', - 'Download' - ] - ]; - //dd($attributes); + $attributes[] = [ + //'id' => 1, + 'id' => 6, + 'position' => 0, + 'visible' => true, + 'variation' => true, + 'options' => [ + 'Nuovo', + 'Usato', + 'PDF', + 'Epub', + 'Mobi', + 'DVD', + 'Streaming', + 'Download' + ] + ]; + //dd($attributes); - $data = [ + $data = [ - 'attributes' => $attributes + 'attributes' => $attributes - ]; - Product::update($product->id, $data); - $variation = Variation::create($product->id, $data1); + ]; + Product::update($product->id, $data); + $variation = Variation::create($product->id, $data1); - $log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $variation['permalink']."\n"; + $log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $variation['permalink'] . "\n"; - break; - } - } - } + $aggiornato = true; + + break; + } + } + } + } + } + } else { + $data1 = [ + + 'regular_price' => $article->PrezzoIvato, + 'sale_price' => $article->PrezzoIvatoScontatoCampagna, + 'date_on_sale_from' => $article->DataInizioCampagna, + 'date_on_sale_to' => $article->DataFineCampagna, + 'stock_quantity' => $article->stock, + + ]; + + $idprodotto = $productsku['parent_id']; + //if($idprodotto > 0){ + $variation = Variation::update($idprodotto, $productsku['id'], $data1); + //echo "Modificato " . $article->Titolo ."
"; + $log2 .= $article->Titolo . ' - ' . $article->Ean13 . " - Articolo aggiornato - " . $variation['permalink'] . "\n"; + + $aggiornato = true; - - } - - - } - - } else { - $data1 = [ - - 'regular_price' => $article->PrezzoIvato, - 'sale_price' => $article->PrezzoIvatoScontatoCampagna, - 'date_on_sale_from' => $article->DataInizioCampagna, - 'date_on_sale_to' => $article->DataFineCampagna, - 'stock_quantity' => $article->stock, - - ]; - - $idprodotto = $productsku['parent_id']; - //if($idprodotto > 0){ - $variation = Variation::update($idprodotto,$productsku['id'], $data1); - //echo "Modificato " . $article->Titolo ."
"; - $log2 .= $article->Titolo . ' - ' . $article->Ean13 . " - Articolo aggiornato - " . $variation['permalink']."\n"; - - - //} + //} - } - } catch (\Exception $e) { - //$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ; - } - + } + } catch (\Exception $e) { + //$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ; + } } $settingora->value = $ora_update; - $settingora->save(); - Log::channel('updateproductsused')->notice($log . $log2 . $log1 . $log3); - Log::channel('updateproductsused')->notice('Fino a '.$ora_update."\n"); - Mail::raw($loginizio. $log . $log2 . $log1 . $log3 . $logfine, function ($message) { - $message->to("log@fioredellavita.it"); - //$message->bcc('luca@pecos.it'); - $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti Usati")); - - }); - + $settingora->save(); + if ($aggiornato) { + Log::channel('updateproductsused')->notice($log . $log2 . $log1 . $log3); + Log::channel('updateproductsused')->notice('Fino a ' . $ora_update . "\n"); + Mail::raw($loginizio . $log . $log2 . $log1 . $log3 . $logfine, function ($message) { + $message->to("log@fioredellavita.it"); + $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti Usati")); + }); + } } }