diff --git a/app/CustomFuncPao.php b/app/CustomFuncPao.php
index 5d93237c..d1b67e55 100644
--- a/app/CustomFuncPao.php
+++ b/app/CustomFuncPao.php
@@ -474,6 +474,24 @@ function loadArticleByIdArticle($id, $checkprevendita = false, $checkqtanegativa
}
}
+function showTest()
+{
+ $codarticolo = "16670";
+
+ $mystr = '*** TEST: codarticolo: ' . $codarticolo;
+ if ($codarticolo) {
+ try {
+ $product = Product::where('sku', $codarticolo)->first();
+ } catch (\Exception $e) {
+ return "Errore: " . $e->getMessage();
+ }
+
+ $mystr += getarraystr($product);
+
+ return $mystr;
+ }
+
+}
function showOrdini()
{
$str = "";
diff --git a/app/CustomFuncPao.php.save b/app/CustomFuncPao.php.save
deleted file mode 100644
index 5d93237c..00000000
--- a/app/CustomFuncPao.php.save
+++ /dev/null
@@ -1,2043 +0,0 @@
-' . json_encode($array, JSON_PRETTY_PRINT) . '';
-};
-
-function getarraystr($array)
-{
- return '
' . json_encode($array, JSON_PRETTY_PRINT) . '
';
-};
-
-function isKeyPresent($array, $key)
-{
- foreach ($array as $item) {
- if (isset($item->key) && $item->key === $key) {
- return true;
- }
- }
- return false;
-}
-
-function getValueByKey($array, $key)
-{
- foreach ($array as $item) {
- if (isset($item->key) && $item->key === $key) {
- return $item->value;
- }
- }
- return null; // If key is not found
-}
-
-// Funzione per aggiornare il valore di un certo key in un array di oggetti
-function updateValueByKey(&$array, $key, $newValue)
-{
- foreach ($array as &$item) {
- if (is_object($item) && property_exists($item, 'key') && $item->key === $key) {
- $item->value = $newValue;
- return; // Se trova il key, termina il loop
- }
- }
-
- // Se il key non esiste nell'array, aggiungi il nuovo key-value pair
- $newItem = new stdClass();
- $newItem->key = $key;
- $newItem->value = $newValue;
-
- $array[] = $newItem; // Aggiungi il nuovo elemento all'array
-}
-
-function updateValueByKeyArr(&$array, $key, $newValue)
-{
- foreach ($array as &$item) {
- if ($item['key'] === $key) {
- $item['value'] = $newValue;
- break; // Se trova il key, termina il loop
- }
- }
-
- $array[$key] = $newValue;
-}
-
-
-function formatDateToItalian($date_string, $input_format = 'Y-m-d H:i:s.u')
-{
- // Crea un oggetto DateTime dal formato della stringa di input
- $date = DateTime::createFromFormat($input_format, $date_string);
-
- // Verifica se la creazione dell'oggetto DateTime è riuscita
- if ($date) {
- // Crea l'oggetto IntlDateFormatter per formattare la data in italiano
- $formatter = new IntlDateFormatter(
- 'it_IT', // Imposta la localizzazione in italiano
- IntlDateFormatter::FULL,
- IntlDateFormatter::NONE,
- 'Europe/Rome', // Imposta il fuso orario (opzionale)
- IntlDateFormatter::GREGORIAN,
- 'd MMMM yyyy' // Specifica il formato desiderato
- );
-
- // Formatta la data
- return ucfirst($formatter->format($date));
- } else {
- return false; // Ritorna false se la data non è valida o il formato non è corretto
- }
-}
-
-
-function setPreOrder($sku, $aggiornapreordine, $debug)
-{
- try {
- // Aggiorna Preorder
- $product = Product::where('sku', $sku)->first();
-
- // get the article by product
- // $article = Article::where('IdArticolo', $idarticolo)->first();
-
- // showarray($article);
-
- if ($debug) {
- echo "Product: " . $sku;
- showarray($product);
- }
-
- $campoPreOrder = '_wpro_variable_is_preorder';
-
- if ($product) {
- $titolo = $product['name'];
-
- if ($debug)
- echo "Prodotto trovato: " . $titolo . " StockQty = " . $product['stock_quantity'] . "
";
-
- $preorder = false;
- if (isKeyPresent($product['meta_data'], $campoPreOrder)) {
- $preorder = getValueByKey($product['meta_data'], $campoPreOrder);
- }
-
- if ($debug) {
- if ($preorder) {
- if ($preorder === 'true') {
- echo "PREORDER SI !: " . $preorder;
- } else {
- echo "PREORDER:: " . $preorder;
- }
- } else {
- echo "preorder non presente !: ";
- }
- echo "
";
- }
-
- $idprodotto = $product['parent_id'];
-
- if ($aggiornapreordine === '1') {
- $data = [];
-
- $article = getArticoloById($sku);
-
- echo $article->titolo . " DataPubblicazione: " . $article->DataPubblicazione . "
";
-
- $datepubblstr = "";
- $datepubbllabel = "";
- $label_prenotalo_con_data = "";
-
- if ($article->DataPubblicazione) {
- $datepubbl = DateTime::createFromFormat('Y-m-d H:i:s.u', $article->DataPubblicazione);
-
- if ($datepubbl !== false) {
- $datepubblstr = $datepubbl->format('Y-m-d');
- $datepubbllabel = formatDateToItalian($article->DataPubblicazione);
- $label_prenotalo_con_data = 'Prenotalo per riceverlo entro il ' . $datepubbllabel;
- } else {
- // Gestire il caso in cui la data di pubblicazione non è valida
- echo "Errore: La data di pubblicazione non è valida.
";
- }
- }
-
- if ($idprodotto > 0) {
-
- if ($debug) {
- echo "Variazioni: " . $product['parent_id'] . "
";
- echo "Data Pubblicazione: " . $datepubblstr . "
";
- }
- $variations = Variation::all($product['parent_id']);
- if ($debug)
- showarray($variations);
- for ($i = 0; $i < count($variations); $i++) {
- $variation = $variations[$i];
- if ($variation->id == $product['id']) {
- // convert object into array
- $data = json_decode(json_encode($variation), true);
- break;
- }
- }
-
- $data['stock_quantity'] = QTA_IN_PREVENDITA;
-
- if ($debug) {
- echo "Data:";
- showarray($data);
- }
-
- $agg = true;
- $data['meta_data'] = $product['meta_data'];
- if ($agg) {
- updateValueByKey($data['meta_data'], $campoPreOrder, 'yes');
- updateValueByKey($data['meta_data'], '_is_pre_order', 'yes');
- updateValueByKey($data['meta_data'], '_pre_order_date', $datepubblstr);
- updateValueByKey($data['meta_data'], '_wpro_date_label_variable', $label_prenotalo_con_data);
- updateValueByKey($data['meta_data'], '_wpro_no_date_label_variable', '');
- updateValueByKey($data['meta_data'], '_wpro_manage_price_variable', '');
- updateValueByKey($data['meta_data'], '_wpro_price_variable', '');
- updateValueByKey($data['meta_data'], '_wpro_label_variable', 'Pre Ordinalo!');
- updateValueByKey($data['meta_data'], '_wpro_price_type_variable', 'manual');
- updateValueByKey($data['meta_data'], '_wpro_amount_price_variable', 'fixed');
- updateValueByKey($data['meta_data'], '_wpro_date_variable', $datepubblstr);
- updateValueByKey($data['meta_data'], '_wpro_time_variable', '');
- updateValueByKey($data['meta_data'], '_rank_math_gtin_code', '');
- }
-
- if ($debug) {
- echo "
Dati da Salvare:";
- showarray($data);
- }
-
- $variation = Variation::update($idprodotto, $product['id'], $data);
-
- if ($variation) {
- if ($debug)
- echo "Aggiornato Preorder: [ParentId=" . $idprodotto . '] ProdId= ' . $product['id'] . ' ' . $variation['name'] . "
";
- }
- }
- } else if ($aggiornapreordine === '-1') {
-
- if ($idprodotto > 0) {
-
- $variations = Variation::all($product['parent_id']);
- if ($debug)
- showarray($variations);
- for ($i = 0; $i < count($variations); $i++) {
- $variation = $variations[$i];
- if ($variation->id == $product['id']) {
- // convert object into array
- $data = json_decode(json_encode($variation), true);
- break;
- }
- }
-
- $data['stock_quantity'] = 0;
-
- if ($debug) {
- echo "Data:";
- showarray($data);
- }
-
- $agg = true;
- $data['meta_data'] = $product['meta_data'];
- if ($agg) {
- updateValueByKey($data['meta_data'], $campoPreOrder, 'no');
- updateValueByKey($data['meta_data'], '_is_pre_order', 'no');
- }
-
- if ($debug) {
- echo "
Dati da Salvare:";
- showarray($data);
- }
-
- $variation = Variation::update($idprodotto, $product['id'], $data);
-
- if ($variation) {
- if ($debug)
- echo "Aggiornato come Non Disponibile : [ParentId=" . $idprodotto . '] ProdId= ' . $product['id'] . ' ' . $variation['name'] . "
";
- }
- }
- } else if ($aggiornapreordine === '0') {
- if ($idprodotto > 0) {
-
- $variations = Variation::all($product['parent_id']);
- if ($debug)
- showarray($variations);
- for ($i = 0; $i < count($variations); $i++) {
- $variation = $variations[$i];
- if ($variation->id == $product['id']) {
- // convert object into array
- $data = json_decode(json_encode($variation), true);
- break;
- }
- }
-
- $agg = true;
- $data['meta_data'] = $product['meta_data'];
- if ($agg) {
- updateValueByKey($data['meta_data'], $campoPreOrder, 'no');
- updateValueByKey($data['meta_data'], '_is_pre_order', 'no');
- }
-
- if ($debug) {
- echo "
Dati da Salvare:";
- showarray($data);
- }
-
- $variation = Variation::update($idprodotto, $product['id'], $data);
-
- if ($variation) {
- if ($debug)
- echo "Aggiornato come in Vendita : [ParentId=" . $idprodotto . '] ProdId= ' . $product['id'] . ' ' . $variation['name'] . "
";
- }
- }
- }
- } else {
- if ($debug)
- echo "Il prodotto non esiste";
- }
- } catch (Exception $e) {
- echo "Errore: " . $e->getMessage();
- }
-}
-
-function setDataPubblicazione($sku, $debug)
-{
- try {
- // Aggiorna Preorder
- $product = Product::where('sku', $sku)->first();
-
-
- if ($debug) {
- echo "Product: " . $sku;
- showarray($product);
- }
-
- if ($product) {
- $titolo = $product['name'];
-
- if ($debug)
- echo "Prodotto trovato: " . $titolo . " StockQty = " . $product['stock_quantity'] . "
";
-
- $idprodotto = $product['parent_id'];
-
- if (true) {
- $data = [];
-
- $article = getArticoloById($sku);
-
- echo $article->titolo . " DataPubblicazione: " . $article->DataPubblicazione . "
";
-
- $datepubblstr = "";
- $datepubbl_ts = 0;
-
- if ($article->DataPubblicazione) {
- $datepubbl = DateTime::createFromFormat('Y-m-d H:i:s.u', $article->DataPubblicazione);
-
- if ($datepubbl !== false) {
- $datepubbl_ts = $datepubbl->getTimestamp();
- $datepubblstr = $datepubbl->format('d/m/Y');
- }
- }
-
- if ($idprodotto > 0) {
-
- if ($debug) {
- echo "Variazioni: " . $product['parent_id'] . "
";
- echo "Data Pubblicazione: " . $datepubblstr . "
";
- }
- $variations = Variation::all($product['parent_id']);
- if ($debug)
- showarray($variations);
- for ($i = 0; $i < count($variations); $i++) {
- $variation = $variations[$i];
- if ($variation->id == $product['id']) {
- // convert object into array
- $data = json_decode(json_encode($variation), true);
- break;
- }
- }
-
- $agg = true;
- // $data['meta_data'] = $product['meta_data'];
- if ($data) {
- $dataPubbSaved = getValueByKey($product['meta_data'], 'DataPubblicazione');
- if ($dataPubbSaved != $datepubbl_ts) {
- updateValueByKey($data['meta_data'], 'DataPubblicazione', $datepubbl_ts);
- updateValueByKey($data['meta_data'], 'DataPubbStr', $datepubblstr);
-
- if ($debug) {
- echo "
Dati da Salvare:";
- showarray($data);
- }
-
- $variation = Variation::update($idprodotto, $product['id'], $data);
- if ($variation) {
- if ($debug)
- echo "Aggiornato: [ParentId=" . $idprodotto . '] ProdId= ' . $product['id'] . ' ' . $variation['name'] . "
";
- }
- return true;
- }
- }
- }
- }
- } else {
- if ($debug)
- echo "Il prodotto non esiste";
- }
- return false;
- } catch (Exception $e) {
- echo "Errore: " . $e->getMessage();
- }
-}
-
-function isArticleInPrevendita($id, $checkqtanegativa)
-{
- return loadArticleByIdArticle($id, true);
-}
-
-
-function loadArticleByIdArticle($id, $checkprevendita = false, $checkqtanegativa = false)
-{
-
- try {
- $articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
- $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
- ->on('T_WEB_Articoli.DataOra', '=', 'b.data');
- })
- ->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
- $join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
- })
- ->leftJoin(DB::raw('(SELECT o.Codice, o.QtaDisponibile FROM T_WEB_Disponibile o JOIN (SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p ON o.Codice = p.Codice AND o.DataOra = p.data1 ) q'), function ($join) {
- $join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice');
- })
- ->where('T_WEB_Articoli.IdArticolo', $id)
- ->get();
-
- if ($checkprevendita) {
- foreach ($articles as $article) {
- $qtaneg = $article->QtaDisponibile < 0;
- $inprevendita = false;
- if ($article) {
- $inprevendita = ($article->DescrizioneStatoProdotto === 'In prevendita');
- if ($checkqtanegativa) {
- $inprevendita = $inprevendita && $qtaneg;
- }
- }
- if ($inprevendita) {
- return true;
- }
- }
- return false;
- }
-
- $ris = 'Articles di ' . $id . ' :' . PHP_EOL;
- $ris .= getarraystr($articles); // Converte solo i dati specificati in JSON
-
- try {
- $product = Product::where('sku', $id)->first();
-
- $ris .= 'Product:' . PHP_EOL;
- $ris .= getarraystr($product);
- } catch (\Exception $e) {
- $ris .= "!!! Errore loadArticleByIdArticle Product: " . $e->getMessage();
- }
-
- return $ris;
- } catch (\Exception $e) {
-
- return "Errore loadArticleByIdArticle: " . $e->getMessage();
- }
-}
-
-function showOrdini()
-{
- $str = "";
-
-
- try {
-
- // $str = Schema::getColumnListing('Orderdetails');
-
- $orders = Orderdetail::orderBy('DataOra', 'desc')
- ->take(5)
- ->get();
-
- $sep = "";
-
- // dd($orders);
-
- $baseUrl = Request::root(); // URL di base (dominio)
-
- // Show the fields of the orders
- foreach ($orders as $order) {
- $product = Product::where('sku', $order->CodArticoloGM)->first();
-
- dd($product);
- // $product = null;
-
- if ($product)
- $titolo = "" . $product['name'] . "";
- else
- $titolo = "";
-
- $str .= getvalstr("", $order->Codice) . " ";
- $str .= getvalstr("", $order->DataOra);
- $str .= getvalstr("", $titolo);
- $str .= getvalstr("Ordine", $order->IdInternet, true) . " ";
- $str .= getvalstr("Cod Cliente", $order->CodClienteInternet, true);
- $str .= getvalstr("Articolo", $order->CodArticoloGM, true);
- $str .= getvalstr("IdSito", $order->IdSito, true);
- $str .= getvalstr("Prezzo", $order->PrezzoLordo);
- $str .= getvalstr("Quantità", $order->Qta);
- if ($order->PercSconto)
- $str .= getvalstr("Sconto", $order->PercSconto);
- if ($order->Descrizione)
- $str .= getvalstr("Descr", $order->Descrizione);
-
- $str .= ' [IMPOSTA IDSITO FDV] ' . $sep;
- $str .= ' ELIMINA! ' . $sep;
-
- // $str .= getarraystr($product) . "
";
- // $str .= $product;
- $str .= '
';
- }
- } catch (\Exception $e) {
- return "Errore: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showOrdiniWeb()
-{
- $str = "";
-
- try {
-
- // $str = Schema::getColumnListing('Orderdetails');
-
- $orders = OrderdetailWeb::orderBy('DataOra', 'desc')
- ->take(5)
- ->get();
-
- $sep = "";
-
- $baseUrl = Request::root(); // URL di base (dominio)
-
- // Show the fields of the orders
- foreach ($orders as $order) {
- $product = Product::where('sku', $order->CodArticoloGM)->first();
-
- if ($product)
- $titolo = "" . $product['name'] . "";
- else
- $titolo = "";
-
- $str .= getvalstr("", $order->Codice) . " ";
- $str .= getvalstr("", $order->DataOra);
- $str .= getvalstr("", $titolo);
- $str .= getvalstr("Ordine", $order->IdInternet, true) . " ";
- $str .= getvalstr("Cod Cliente", $order->CodClienteInternet, true);
- $str .= getvalstr("Articolo", $order->CodArticoloGM, true);
- $str .= getvalstr("Prezzo", $order->PrezzoLordo);
- $str .= getvalstr("IdSito", $order->IdSito, true);
- $str .= getvalstr("Quantità", $order->Qta);
- if ($order->PercSconto)
- $str .= getvalstr("Sconto", $order->PercSconto);
- if ($order->Descrizione)
- $str .= getvalstr("Descr", $order->Descrizione);
-
- // $str .= ' ELIMINA!' . $sep;
- $str .= ' IMPOSTA IDSITO FDV' . $sep;
-
- // $str .= getarraystr($product) . "
";
- // $str .= $product;
- $str .= '
';
- }
- } catch (\Exception $e) {
- return "Errore: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function getStructTable($tableName)
-{
- $str = '';
-
- $columns = Schema::getColumnListing($tableName);
-
- $str .= '
Tabella: ' . $tableName . '
';
-
- $str .= '';
-
- // Recupera i tipi di dati e lunghezza per ogni colonna
- $types = DB::select("SELECT column_name, data_type, character_maximum_length
- FROM information_schema.columns
- WHERE table_name = '$tableName'");
- $columnInfo = [];
- foreach ($types as $type) {
- $columnInfo[$type->column_name] = [
- 'data_type' => $type->data_type,
- 'length' => $type->character_maximum_length
- ];
- }
-
- // Stampa la struttura della tabella con i tipi di dati e lunghezza dei campi
- foreach ($columns as $column) {
- $str .= ' ' . $column . " - " . $columnInfo[$column]['data_type'] . " (" . $columnInfo[$column]['length'] . ")" . "
";
- }
-
- $str .= '';
-
- return $str;
-}
-
-function getAllTables()
-{
- $tables = DB::select("SELECT table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE'");
-
- $tableNames = array_map('current', $tables);
-
- return $tableNames;
-}
-
-
-function getAllTablesStr()
-{
- // Utilizzo della funzione per ottenere la lista delle tabelle
- $tables = getAllTables();
-
- $str = "TABELLE:
";
-
- // Stampa la lista delle tabelle
- foreach ($tables as $table) {
- $str .= getStructTable($table) . '
';
- }
-
- return $str;
-}
-
-function setOrdine($idinternet, $mode)
-{
- try {
-
- $str = "setOrdine: mode =" . $mode . ' idinternet=' . $idinternet;
-
- // $str .= getAllTablesStr();
-
- $str .= getStructTable('T_WOO_TestateOrdini');
-
- $ordine = Orderdetail::where('IdInternet', $idinternet)->first();
-
- $ordergm = AppOrder::where('IdInternet', $idinternet)->first();
-
- if ($ordergm) {
- $str .= getarraystr($ordergm) . "
";
- // $ordergm = $ordergms[0];
- // $str .= getarraystr($ordergm) . "
";
- }
-
- if ($ordine) {
-
- if ($ordine)
- $str .= getarraystr($ordine) . "
";
-
- $prodotto = Product::where('sku', $ordine["CodArticoloGM"])->first();
-
- if ($prodotto)
- $str .= getarraystr($prodotto) . "
";
-
- if ($mode === 'del' && $ordine) {
- $str .= "... Cancellazione in CORSO ...";
- // delete record $ordine
- $deletedCount = Orderdetail::where('IdInternet', $idinternet)->delete();
- $str .= "
Numero di record eliminati: " . $deletedCount . "";
- }
- if ($mode === 'idsito' && $ordine) {
- $str .= "... CAMBIA ID SITO ...";
-
- // Update field IdSito to "7"
- $updatedCount = Orderdetail::where('IdInternet', $idinternet)
- ->update([
- 'IdSito' => "7"
- ]);
-
- $str .= "
record Aggiornati: " . $updatedCount . "";
- }
- }
- } catch (\Exception $e) {
- $str .= "Errore: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showRecordOrder($orders)
-{
-
- try {
- $str = '';
-
- // Show the fields of the orders
- foreach ($orders as $order) {
- $str .= getvalstr("IdInternet", $order->IdInternet, true) . " ";
- $str .= getvalstr("CodCliente", $order->CodClienteInternet, true);
- $str .= getvalstr("IdSito", $order->IdSito, true);
- $str .= getvalstr("Note", $order->Note, true);
- $str .= getvalstr("Totale", $order->Totale, true);
- $str .= getvalstr("DataOra", $order->DataOra, true);
- $str .= getvalstr("DataSpedizione", $order->DataSpedizione, true);
- $str .= '
';
- }
- } catch (\Exception $e) {
- return "Errore showDettOrdini: " . $e->getMessage();
- }
-
- return $str;
-}
-
-
-function showDettOrdini()
-{
- $str = "Ordini Woocommerce:" . PHP_EOL . '
';
-
- try {
- // sort DataOra desc
- $orders = AppOrder::all()->sortByDesc('DataOra');
-
- $str .= showRecordOrder($orders);
- } catch (\Exception $e) {
- return "Errore showDettOrdini: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showDettSingleOrdine($idordine)
-{
- $str = "Ordini Woocommerce:" . PHP_EOL . '
';
-
- try {
- // sort DataOra desc
- $orders = AppOrder::where('IdInternet', $idordine)->get();
-
- $str .= showRecordOrder($orders);
- } catch (\Exception $e) {
- return "Errore showDettOrdini: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showDettOrdiniWeb()
-{
- try {
-
- $str = "Ordini T_WEB_TestateOrdini:" . PHP_EOL . '
';
-
- $orders = AppOrderWeb::all()->sortByDesc('DataOra');
-
- $str .= showRecordOrder($orders);
- } catch (\Exception $e) {
- return "Errore showDettOrdini: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showDettSingleOrdineWeb($idordine)
-{
- try {
-
- $str = "Ordini T_WEB_TestateOrdini:" . PHP_EOL . '
';
-
- $orders = AppOrderWeb::where('IdInternet', $idordine)->get();
-
- $str .= showRecordOrder($orders);
- } catch (\Exception $e) {
- return "Errore showDettOrdini: " . $e->getMessage();
- }
-
- return $str;
-}
-
-function showprice($prezzo)
-{
- return ' € ' . number_format($prezzo, 2);
-}
-
-function libriInPrevendita()
-{
- try {
- $articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
- $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
- ->on('T_WEB_Articoli.DataOra', '=', 'b.data');
- })
-
- ->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
- $join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
- })
- ->leftJoin(DB::raw('(SELECT 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('DescrizioneStatoProdotto', 'In prevendita')
- ->where(DB::raw('CONVERT(INT, QtaDisponibile)'), '<', 0)
- // ->where('DescrizioneFormato', 'brossura')
- // ->where('DescrizioneTipologia', 'Libri')
- ->where(DB::raw('DATEDIFF(day, \'1970-01-01\', DataPubblicazione)'), '>', 1)
- ->orderBy('DataPubblicazione', 'desc')
- ->get();
- $sep = ' | ';
-
- $ind = 1;
- foreach ($articles as $article) {
- // $titolo = rtrim(str_ireplace('USATO', '', $article->Titolo));
-
- $mydatestr = $article->DataPubblicazione;
-
- $sku = $article->IdArticolo;
-
- $prodotto = Product::where('sku', $sku)->first();
-
- $qtyinstock = intval($prodotto['stock_quantity']);
- $prezzo = $prodotto['sale_price'];
- if (!$prezzo) {
- $prezzo = $prodotto['price'];
- }
-
- if ($qtyinstock <= 0) {
- $colore = 'red';
- } else {
- $colore = 'green';
- }
-
-
- // echo '[' . $ind . ']' . $sep . $mydatestr . $sep . $article->IdArticolo . $sep . $article->Titolo . $sep . $article->DescrizioneStatoProdotto . $sep . $article->DescrizioneFormato . ' [Quantita = ' . $article->QtaDisponibile . ']';
- $myview = '[' . $ind . ']' . $sep .
- '' . $article->IdArticolo . '' . $sep .
- ' ' . $article->Titolo . '' . $sep .
- ' Pubb:' . formatDateToItalian($article->DataPubblicazione) . $sep .
- $article->DescrizioneStatoProdotto . ' (' . $article->DescrizioneFormato . ')' . $sep .
- '[Qta = ' . $article->QtaDisponibile . ']' . $sep .
- ' [' . showprice($prezzo) . ' ]' . $sep .
- '[In Stock = ' . $qtyinstock . ']' . $sep;
-
- if ($qtyinstock < QTA_MINIMA_PER_PREVENDITA) {
- $myview .= 'Imposta in PRE-ORDINE!' . $sep;
- } else {
- $myview .= 'Impostalo Non Disponibile' . $sep;
- }
- $myview .= 'Aggiorna Data Pubb' . $sep;
-
- echo $myview;
-
- if ($prodotto) {
-
- if (isset($prodotto['_wpro_variable_is_preorder'])) {
- echo '
PREORDINE: ' . $prodotto['_wpro_variable_is_preorder'] . '';
- }
- if (isset($prodotto['_wpro_label_variable'])) {
- echo 'Etichetta: ' . $prodotto['_wpro_label_variable'];
- }
- if (isset($prodotto['_wpro_date_variable'])) {
- echo 'Data Preordine: ' . $prodotto['_wpro_date_variable'];
- }
- echo '
';
- }
-
- $ind++;
- }
- } catch (Exception $e) {
- echo $e->getMessage();
- }
-
- return true;
-}
-
-function setProductFromGM($article, $initlog, ProductLogger &$passproductLogger)
-{
- if ($initlog) {
- $productLogger = new ProductLogger(null, '');
- } else {
- $productLogger = $passproductLogger;
- }
-
- $preorder = true;
-
- 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;
- echo $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;
- }
- }
- }
- }
- }
- }
- $datepubbl = DateTime::createFromFormat('Y-m-d H:i:s.u', $article->DataPubblicazione);
-
- if ($datepubbl !== false) {
- $datepubbl_ts = $datepubbl->getTimestamp();
- $datepubblstr = $datepubbl->format('d/m/Y');
- }
-
- $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
- ],
- [
- 'key' => 'DataPubblicazione',
- 'value' => $datepubbl_ts
- ],
- [
- 'key' => 'DataPubbStr',
- 'value' => $datepubblstr
- ],
-
- ]
- ];
- 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);
- }
- $productLogger->addLog('inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n");
- $productLogger->setAggiornato(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 {
- $productLogger->addLog('not_inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . "\n");
- $productLogger->setAggiornato(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);
- }
-
- $productLogger->addLog('inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n");
- $productLogger->setAggiornato(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);
- }
-
- $productLogger->addLog('inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n");
- $productLogger->setAggiornato(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 {
- $productLogger->addLog('not_inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . "\n");
- $productLogger->setAggiornato(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);
- }
- $productLogger->addLog('inserted', $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - ' . $versione . ' - ' . $variation['permalink'] . "\n");
- $productLogger->setAggiornato(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);
-
- $productLogger->addLog('updated', $article->Titolo . ' - [Quantità: ' . $data1['stock_quantity'] . '] - ' . $article->DescrizioneTipologia . ' - ' . $article->DescrizioneFormato . ' - Articolo aggiornato - ' . $variation['permalink'] . "\n");
- $productLogger->setAggiornato(true);
- }
- }
-
- if ($preorder) {
- // Controlla se è in preordine
- $inprevendita = isArticleInPrevendita($article->IdArticolo, true);
- if ($inprevendita) {
- setPreOrder($article->IdArticolo, "1", false);
- $productLogger->addLog('pre_order', $article->titolo . ' [' . $article->IdArticolo . '] Impostato IN PREVENDITA !' . "\n");
- } else {
- setPreOrder($article->IdArticolo, "0", false);
- $productLogger->addLog('mettilo in Vendita (no pre-order)', $article->titolo . ' [' . $article->IdArticolo . '] Impostato IN VENDITA !' . "\n");
- }
- }
- } catch (\Exception $e) {
- $productLogger->addLog('server_issues', $article->IdArticolo . ' - ' . $article->Titolo . "\n");
- $productLogger->setAggiornato(true);
- }
-}
-
-function getArticoloById($idarticolo)
-{
- $articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
- $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
- ->on('T_WEB_Articoli.DataOra', '=', 'b.data');
- })
- ->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
- $join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
- })
- ->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
- $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
- })
- ->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
- $join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
- })
- ->where('T_WEB_Articoli.IdArticolo', $idarticolo)
- /*
- ->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(function ($query) {
- $query->where('DescrizioneStatoProdotto', 'In commercio')
- ->orWhere('DescrizioneStatoProdotto', 'In prevendita')
- ->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
- })
- //->where('DescrizioneTipologia','Video Streaming')
- ->orderBy('dataOra', 'desc')
- ->get();
-
- // se $articles è un array
- if (count($articles) > 0) {
- $article = $articles[0];
- } else {
- $article = null;
- }
-
- return $article;
-}
-
-function updateArticoloFromGM($idarticolo)
-{
- $productLogger = new ProductLogger(null, '');
-
- try {
- $articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
- $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
- ->on('T_WEB_Articoli.DataOra', '=', 'b.data');
- })
- ->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
- $join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
- })
- ->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
- $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
- })
- ->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
- $join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
- })
- ->where('T_WEB_Articoli.IdArticolo', $idarticolo)
- /*
- ->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(function ($query) {
- $query->where('DescrizioneStatoProdotto', 'In commercio')
- ->orWhere('DescrizioneStatoProdotto', 'In prevendita')
- ->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
- })
- //->where('DescrizioneTipologia','Video Streaming')
- ->orderBy('dataOra', 'desc')
- ->get();
-
- // se $articles è un array
- if (count($articles) > 0) {
- $article = $articles[0];
- } else {
- $article = null;
- }
-
- if ($article) {
- $str = "Articolo: ";
- $str .= getarraystr($article);
-
- $str .= "setProductFromGM: ";
- setProductFromGM($article, false, $productLogger);
-
-
- $str .= $productLogger->concatenateLogs();
-
- return $str;
- } else {
- return "Articolo non trovato";
- }
- } catch (\Exception $e) {
- return "Errore updateArticoloFromGM: " . $e->getMessage();
- }
-}
-
-function getClienteByIdInternet_Ordine($idInternet)
-{
-
- try {
- $clienteinGM = Clientegm::where('IdInternet', $idInternet)->first();
- } catch (\Exception $e) {
- return null;
- }
-
- return $clienteinGM;
-}
-
-function getClienteByIdCodClienteInternet($codClienteInternet)
-{
-
- try {
- $clienteinGM = Clientegm::where('codClienteInternet', $codClienteInternet)->first();
- } catch (\Exception $e) {
- return null;
- }
-
- return $clienteinGM;
-}
-
-function getOrderByIdInternet($idInternet)
-{
-
- try {
- $ordergm = Orderdetail::where('IdInternet', $idInternet)->first();
-
- return $ordergm;
- } catch (\Exception $e) {
- return null;
- }
-}
-
-function getClienti()
-{
- try {
- $clienti = Clientegm::all();
-
- dd($clienti);
- } catch (\Exception $e) {
- return null;
- }
-}
-
-function getvalstr($mystr, $value, $separato = false)
-{
- $my = '';
- if ($mystr) {
- $my = " " . $mystr . ": " . $value;
- } else {
- $my = $value;
- if (!$separato) {
- $my = " " . $value;
- }
- }
-
- if ($separato) {
- $my = '[' . $my . '] ';
- }
-
- return $my;
-}
-
diff --git a/resources/views/mylinkspao.blade.php b/resources/views/mylinkspao.blade.php
index e8de82ab..2d21600e 100644
--- a/resources/views/mylinkspao.blade.php
+++ b/resources/views/mylinkspao.blade.php
@@ -54,6 +54,7 @@
+
diff --git a/routes/web.php b/routes/web.php
index 98214e35..37f78a8e 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -6351,6 +6351,8 @@ Route::get('/handle-article-action-pao/{id}/{action}', function ($id, $action) {
return libriInPrevendita();
} elseif ($action == 'showOrdini') {
return showOrdini();
+ } elseif ($action == 'showTest') {
+ return showTest();
} elseif ($action == 'showOrdiniWeb') {
return showOrdiniWeb();
} elseif ($action == 'setOrdine') {