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);