From e31decc10b35b68fbc733334ce0d5da332bedd4c Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Fri, 21 Jun 2024 13:19:35 +0200 Subject: [PATCH] data pubblicazione --- .../Commands/ProductUpdateDataPubb.php | 100 ++++++++++++++++++ app/Console/Commands/ProductUpdateUsedGm.php | 6 +- app/Console/Commands/TestPao.php | 6 +- app/CustomFuncPao.php | 99 ++++++++++++++++- routes/web.php | 42 +++++++- 5 files changed, 244 insertions(+), 9 deletions(-) create mode 100644 app/Console/Commands/ProductUpdateDataPubb.php diff --git a/app/Console/Commands/ProductUpdateDataPubb.php b/app/Console/Commands/ProductUpdateDataPubb.php new file mode 100644 index 00000000..7b23f333 --- /dev/null +++ b/app/Console/Commands/ProductUpdateDataPubb.php @@ -0,0 +1,100 @@ +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(function ($query) { + $query->where('DescrizioneStatoProdotto', 'In commercio') + ->orWhere('DescrizioneStatoProdotto', 'In prevendita') + ->orWhere('DescrizioneStatoProdotto', 'Prossima uscita'); + }) + ->orderBy('Titolo') + ->take(1) + ->get(); + + + foreach ($articles as $article) { + $aggiornato = setDataPubblicazione($article, false); + if ($aggiornato) { + $productLogger->setAggiornato(true); + } + } + + $productLogger->setLogandSendEmail('Aggiornamento Data Pubblicazione'); + + echo "************** Finito **************"; + + } catch (\Exception $e) { + echo $e->getMessage(); + + if ($productLogger) { + $productLogger->addLog('Error', $e->getMessage()); + $productLogger->setLogandSendEmail('Aggiornamento Prodotti'); + } + + } + } +} diff --git a/app/Console/Commands/ProductUpdateUsedGm.php b/app/Console/Commands/ProductUpdateUsedGm.php index 6b51d54d..11ff1910 100644 --- a/app/Console/Commands/ProductUpdateUsedGm.php +++ b/app/Console/Commands/ProductUpdateUsedGm.php @@ -191,7 +191,11 @@ class ProductUpdateUsedGm extends Command 'key' => 'ristampa', 'value' => $article->Ristampa ], - + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], + ] ]; diff --git a/app/Console/Commands/TestPao.php b/app/Console/Commands/TestPao.php index 9e8225e8..a2ffe33a 100644 --- a/app/Console/Commands/TestPao.php +++ b/app/Console/Commands/TestPao.php @@ -203,7 +203,11 @@ class TestPao extends Command 'key' => 'ristampa', 'value' => $article->Ristampa ], - + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], + ] ]; if ($id == 0) { diff --git a/app/CustomFuncPao.php b/app/CustomFuncPao.php index 81cbc68a..33097122 100644 --- a/app/CustomFuncPao.php +++ b/app/CustomFuncPao.php @@ -84,10 +84,6 @@ function updateValueByKeyArr(&$array, $key, $newValue) $array[$key] = $newValue; } -function setPreOrderByIdArticolo($idarticolo, $aggiornapreordine, $debug) -{ - return setPreOrder($idarticolo, $aggiornapreordine, $debug); -} function formatDateToItalian($date_string, $input_format = 'Y-m-d H:i:s.u') { @@ -288,6 +284,96 @@ function setPreOrder($sku, $aggiornapreordine, $debug) } } +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); @@ -483,6 +569,7 @@ function libriInPrevendita() } else { $myview .= 'Impostalo Non Disponibile' . $sep; } + $myview .= 'Aggiorna Data Pubb' . $sep; echo $myview; @@ -597,6 +684,10 @@ function setProductFromGM($article, $initlog, ProductLogger &$passproductLogger) 'key' => 'ristampa', 'value' => $article->Ristampa ], + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], ] ]; diff --git a/routes/web.php b/routes/web.php index 354dfc83..14951215 100644 --- a/routes/web.php +++ b/routes/web.php @@ -628,6 +628,10 @@ Route::get('/artlibronuovo', function () { 'value' => $article->Ristampa ], [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], + [ 'key' => 'misure', 'value' => $article->Misure ], @@ -1242,6 +1246,10 @@ Route::get('/artlibroebook', function () { 'key' => 'ristampa', 'value' => $article->Ristampa ], + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], [ 'key' => 'misure', 'value' => $article->Misure @@ -2191,6 +2199,8 @@ Route::post('/updatecreate', function (Request $request) { $codifica = true; } if ($codifica) { + $productLogger->addLog('', 'ORDINE LIBRO USATO !'); + } else { $orderdetail->CodArticoloGM = intval($prodotto['sku']); $productLogger->addLog('', '$orderdetail->CodArticoloGM= ' . $orderdetail->CodArticoloGM); @@ -2234,6 +2244,7 @@ Route::post('/updatecreate', function (Request $request) { $productLogger->addLog('', 'Cliente:' . json_encode($cliente)); if ($changedest) { + $productLogger->addLog('', 'Change Destinazione:'); $clientedest = new Clientegmdest(); $clientedest->CodDestInternet = $request->customer_id; $clientedest->Nominativo = $request->shipping['last_name'] . " " . $request->shipping['first_name']; @@ -2245,12 +2256,21 @@ Route::post('/updatecreate', function (Request $request) { $cliente->IdNazione = 227; $clientedest->IdInternet = $request->id; $clientedest->save(); - $productLogger->addLog('', 'Cliente Dest:' . json_encode($clientedest)); + + try { + $productLogger->addLog('', 'Cliente Dest:' . json_encode($clientedest)); + } catch (Exception $e) { + // + } + } + $productLogger->addLog('', 'Inserito ordine ! '); + try { + $productLogger->addLog('', json_encode($request->all())); + } catch (Exception $e) { } - $productLogger->addLog('', $request->all()); - $productLogger->addLog('', 'Inserito ordine'); $productLogger->setLogandSendEmail('Nuovo Ordine !'); + } //end if status } catch (Exception $e) { Log::error($e->getMessage()); @@ -2571,6 +2591,10 @@ Route::get('/artlibroondemand', function () { 'key' => 'ristampa', 'value' => $article->Ristampa ], + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], [ 'key' => 'misure', 'value' => $article->Misure @@ -3054,6 +3078,10 @@ Route::get('/artlibrodvd', function () { 'key' => 'ristampa', 'value' => $article->Ristampa ], + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], [ 'key' => 'misure', 'value' => $article->Misure @@ -4796,6 +4824,10 @@ Route::get('/prossimauscita', function () { 'key' => 'ristampa', 'value' => $article->Ristampa ], + [ + 'key' => 'DataPubblicazione', + 'value' => $article->DataPubblicazione + ], ] ]; @@ -5944,6 +5976,10 @@ Route::get('/aggiornapreorder/{idarticolo}/{aggiornapreordine}', function ($idar setPreOrder($idarticolo, $aggiornapreordine, true); }); +Route::get('/aggiornadatapubblicazione/{idarticolo}', function ($idarticolo) { + setDataPubblicazione($idarticolo, true); +}); + Route::get('/paolibri', function () { set_time_limit(0);