<?php

namespace App\Console\Commands;

use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;


class ProductUpdateGm extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'product:gmupdate';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Aggiorna prodotti da GM';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {

        $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');
            })
            /*
                ->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();


        Log::channel('updateproducts')->notice('Inizio da ' . $settingora->value . "\n");
        $loginizio = 'Inizio da ' . $settingora->value . "\n";
        $logfine = 'Fino a ' . $ora_update . "\n";
        $log = ' 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) {
                    $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;
                                }
                                $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);
                                //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";
                            $aggiornato = true;
                            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";
                                $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'
                                        ]
                                    ],




                                ];

                                $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 '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();
        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(Mylog::getEmail());
                $message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti"));
            });
        }
    }
}
