diff --git a/app/Console/Commands/ProductUpdateUsedGm.php b/app/Console/Commands/ProductUpdateUsedGm.php
index d64d421c..6b51d54d 100644
--- a/app/Console/Commands/ProductUpdateUsedGm.php
+++ b/app/Console/Commands/ProductUpdateUsedGm.php
@@ -51,238 +51,240 @@ 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);
+ try {
+ Log::channel('updateproductsused')->notice('Inizio... ' . "\n");
+
+ $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);
- $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'
+ ]
+
+ ],
+ '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
+ ],
- '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
- ],
+ $old_attributes = $product->attributes;
+ $attributes = [];
+ foreach ($old_attributes as $old_attribute) {
+ if ($old_attribute->id <> 6) {
- ]
- ];
-
- $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' => $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($product->id, $data);
+ $variation = Variation::create($product->id, $data1);
+
+ $log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $variation['permalink'] . "\n";
+
+ $aggiornato = true;
+
+ break;
}
-
- $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($product->id, $data);
- $variation = Variation::create($product->id, $data1);
-
- $log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $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);
+ //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";
-
- $aggiornato = true;
-
-
- //}
-
-
-
-
+ } catch (\Exception $e) {
+ //$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ;
}
- } catch (\Exception $e) {
- //$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ;
}
- }
- $settingora->value = $ora_update;
- $settingora->save();
- if ($aggiornato) {
+ $settingora->value = $ora_update;
+ $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(Mylog::getEmail());
+ $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti Usati"));
+ });
+ }
+ } catch (\Exception $e) {
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(Mylog::getEmail());
- $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti Usati"));
- });
+ Log::channel('updateproductsused')->error('Errore ' . $e->getMessage());
}
}
}