2024-05-07 12:17:25 +02:00
< ? php
use App\Article ;
use App\Artnim ;
use App\Author ;
use App\Authornimaia ;
use App\Clientegm ;
use App\Clientegmdest ;
use App\Gm_product ;
2024-05-17 19:01:40 +02:00
use App\Http\Controllers\TestPaoController ;
2024-05-17 19:16:11 +02:00
use App\WpPostMeta ;
2024-05-07 12:17:25 +02:00
use App\Newproduct ;
use App\Order ;
use App\Orderdetail ;
2024-06-20 14:06:23 +02:00
use App\Services\ProductLogger ;
2024-05-07 12:17:25 +02:00
use App\Setting ;
use App\Statusproduct ;
use App\Stock ;
use App\WP_post ;
use Carbon\Carbon ;
use Illuminate\Support\Facades\Route ;
use Codexshaper\WooCommerce\Facades\WooCommerce ;
2024-05-18 17:24:49 +02:00
// use App\Models\Post;
// use App\Models\PostMeta;
2024-05-18 15:27:12 +02:00
2024-05-07 12:17:25 +02:00
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application . These
| routes are loaded by the RouteServiceProvider within a group which
| contains the " web " middleware group . Now create something great !
|
*/
use Illuminate\Support\Facades\DB ;
use Codexshaper\WooCommerce\Facades\Product ;
2024-05-18 19:30:42 +02:00
use Codexshaper\WooCommerce\Facades\ProductVariation ;
2024-05-07 12:17:25 +02:00
use Codexshaper\WooCommerce\Facades\Attribute ;
use Codexshaper\WooCommerce\Facades\Category ;
use Codexshaper\WooCommerce\Facades\Customer ;
use Codexshaper\WooCommerce\Facades\Order as FacadesOrder ;
use Codexshaper\WooCommerce\Facades\Term ;
use Codexshaper\WooCommerce\Facades\Variation ;
use Codexshaper\WooCommerce\Facades\Webhook ;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct ;
use Illuminate\Http\Request ;
use Illuminate\Support\Collection ;
use Illuminate\Support\Facades\Log ;
use Illuminate\Support\Facades\Mail ;
2024-05-19 13:06:17 +02:00
require_once app_path ( 'CustomFuncPao.php' );
2024-05-07 12:17:25 +02:00
Route :: get ( '/' , function () {
return view ( 'welcome' );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/getsku/{sku}' , function ( $sku ) {
$product = Product :: where ( 'sku' , $sku ) -> first ();
/*
2024-05-07 12:17:25 +02:00
$data = [
'regular_price' => '11.00'
];
$product = Variation :: update ( $product [ 'parent_id' ], $product [ 'id' ], $data );
*/
2024-05-17 19:01:40 +02:00
dd ( $product );
/*
2024-05-07 12:17:25 +02:00
if ( $product -> count () > 0 ) {
echo " trovato " ;
} else {
echo " non trovato " ;
} */
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/updatesku' , function () {
$productsku = Product :: where ( 'sku' , '15' ) -> first ();
$autori [] = " Pino Pallo " ;
2024-05-07 12:17:25 +02:00
$autori [] = " Sempronio " ;
$data = [
'name' => 'Libro 3' ,
'type' => 'simple' ,
'regular_price' => '10.00' ,
'description' => 'Simple product full description.' ,
'short_description' => 'Simple product short description.' ,
'attributes' => [
[
'id' => 1 ,
'visible' => true ,
'options' =>
2024-05-17 19:01:40 +02:00
$autori
2024-05-07 12:17:25 +02:00
]
],
'meta_data' => [
[
'key' => 'pagine' ,
'value' => '60'
]
]
];
$product = Product :: update ( $productsku [ 'id' ], $data );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/getid/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$product = Product :: find ( $id );
/*
$attributes = $product [ 'meta_data' ];
foreach ( $attributes as $key => $value ){
if ( $value -> key == 'isbn' ){
dd ( $value -> value );
}
} */
//if($product['description'] == '')
//echo 'vuota';
dd ( $product );
//dd(count($product['images']));
//$found_key = array_search('Versione', array_column($product['attributes'], 'name'));
//dd($product['attributes'][$found_key]->option);
//dd($product['attributes'][6]->option);
//$found_key = array_search('edizione', array_column($product['meta_data'], 'key'));
//dd($product['meta_data'][$found_key]->value);
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/getattr' , function () {
$attribute_id = 1 ;
$attribute = Attribute :: find ( $attribute_id );
dd ( $attribute );
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/getautori' , function () {
2024-05-07 12:17:25 +02:00
$attribute_id = 1 ;
$page = 1 ;
2024-05-17 19:01:40 +02:00
$terms = Term :: all ( $attribute_id );
dd ( $terms );
2024-05-07 12:17:25 +02:00
$all_terms = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$terms = Term :: all ( $attribute_id , $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-07 12:17:25 +02:00
//$filtered = $products->where('type');
2024-05-17 19:01:40 +02:00
$all_terms = $all_terms -> merge ( $terms );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $terms -> count () > 0 );
2024-05-17 19:01:40 +02:00
$autore = $all_terms -> where ( 'name' , 'Alano Shoemaker' );
if ( $autore -> count () > 0 ) {
dd ( $autore );
} else {
echo " nulla " ;
}
});
Route :: get ( '/getterms' , function () {
$attribute_id = 1 ;
$page = 1 ;
$terms = Term :: all ( $attribute_id , $options = [ 'search' => 'Pinco Pallo Pollo' ]);
dd ( $terms );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$all_terms = new Collection ();
do {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$terms = Term :: all ( $attribute_id , $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$filtered = $products->where('type');
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$all_terms = $all_terms -> merge ( $terms );
$page ++ ;
} while ( $terms -> count () > 0 );
$autore = $all_terms -> where ( 'name' , 'Alano Shoemaker' );
if ( $autore -> count () > 0 ) {
2024-05-07 12:17:25 +02:00
dd ( $autore );
2024-05-17 19:01:40 +02:00
} else {
echo " nulla " ;
}
});
Route :: get ( '/getterm' , function () {
2024-05-07 12:17:25 +02:00
$attribute_id = 1 ;
2024-05-17 19:01:40 +02:00
$terms = Term :: all ( $attribute_id , $options = [ 'search' => 'Pinco Pallo' ]);
//$terms = Term::where('name','=','Pinco Pallo Pollo')->first();
//dd($terms);
foreach ( $terms as $term ) {
echo $term -> id . " <br> " ;
}
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/articolo/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
2024-05-17 19:01:40 +02:00
}) -> where ( 'T_WEB_Articoli.IdArticolo' , $id ) -> get ();
//$articolo = Article::find($id);
//$article = Article::where('IdArticolo',)->whereDate('DataOra',$articolo->data)->first();
2024-05-07 12:17:25 +02:00
dd ( $articles );
//dd($articles[0]->authors);
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/articoli/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$articles = Article :: where ( 'IdArticolo' , $id )
-> 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.IdArgomento, g.Descrizione as DescrizioneArgomentoProdotto FROM T_WEB_Argomenti g JOIN (SELECT IdArgomento, MAX(DataOra) as data1 from T_WEB_Argomenti GROUP BY IdArgomento) h ON g.IdArgomento = h.IdArgomento AND g.DataOra = h.data1 ) i' ), function ( $join ) {
$join -> on ( 'T_WEB_Articoli.ListaArgomenti' , '=' , 'i.IdArgomento' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
-> orderBy ( 'dataOra' , 'desc' )
-> get ();
//$articolo = Article::find($id);
//$article = Article::where('IdArticolo',)->whereDate('DataOra',$articolo->data)->first();
2024-05-07 12:17:25 +02:00
//dd($articles);
//dd($articolo->authors);
echo " IdArticolo | Titolo | ISBN | Prezzo | Argomento | Data<br> " ;
2024-05-17 19:01:40 +02:00
foreach ( $articles as $article ) {
echo $article -> IdArticolo . " | " . $article -> Titolo . " | " . $article -> Ean13 . " | " . $article -> PrezzoIvato . " | " . $article -> DescrizioneArgomentoProdotto . " | " . $article -> DescrizioneStatoProdotto . " | " . $article -> DataOra . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-20 08:38:48 +02:00
Route :: get ( '/articolitot/{id}' , function ( $id ) {
$articles = Article :: where ( 'IdArticolo' , $id )
-> 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.IdArgomento, g.Descrizione as DescrizioneArgomentoProdotto FROM T_WEB_Argomenti g JOIN (SELECT IdArgomento, MAX(DataOra) as data1 from T_WEB_Argomenti GROUP BY IdArgomento) h ON g.IdArgomento = h.IdArgomento AND g.DataOra = h.data1 ) i' ), function ( $join ) {
$join -> on ( 'T_WEB_Articoli.ListaArgomenti' , '=' , 'i.IdArgomento' );
})
-> 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' );
})
-> orderBy ( 'dataOra' , 'desc' )
-> get ();
//$articolo = Article::find($id);
//$article = Article::where('IdArticolo',)->whereDate('DataOra',$articolo->data)->first();
//dd($articles);
//dd($articolo->authors);
echo " IdArticolo | Titolo | ISBN | Prezzo | Argomento | QtaDisp | Data<br> " ;
foreach ( $articles as $article ) {
2024-05-20 22:57:08 +02:00
echo $article -> IdArticolo . " | " . $article -> Titolo . " | " . $article -> Ean13 . " | " . $article -> PrezzoIvato . " | " . $article -> DescrizioneArgomentoProdotto . " | " . $article -> DescrizioneStatoProdotto . " | " . $article -> QtaDisponibile . " | " . $article -> DataOra . " <br> " ;
2024-05-20 08:38:48 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/stock' , function () {
2024-05-07 12:17:25 +02:00
$stock = new Stock ();
$qta = $stock -> qtadisponibile ( 9781 );
dd ( $qta );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/nimaia' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
//ob_implicit_flush(true);
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
ob_end_flush ();
ob_implicit_flush ( true );
echo " Totale prodotti padri: " . $all_products -> count () . " <br> " ;
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $key => $product ) {
echo $key . " - Sto processando " . $product -> name . " <br> " ;
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
$artnimaia = Artnim :: where ( 'id_gm' , $variation -> sku ) -> first ();
if ( $artnimaia && count ( $product -> images ) == 0 ) {
//echo $product->id .' '. $variation->sku.'<br>';
$data = [];
$letterainiziale = strtolower ( substr ( $artnimaia -> titolo , 0 , 1 ));
$data [ 'description' ] = $artnimaia -> descrizione ;
$data [ 'meta_data' ] = [[ 'key' => 'prima_edizione' , 'value' => $artnimaia -> prima_edizione ]];
if ( $artnimaia -> img != '' ) {
$file = env ( 'WOOCOMMERCE_STORE_URL' ) . 'wp-content/uploads/web/' . $letterainiziale . '/' . $artnimaia -> img ;
$file_headers = @ get_headers ( $file );
if ( $file_headers [ 0 ] == 'HTTP/1.1 404 Not Found' || $file_headers [ 0 ] == 'HTTP/1.1 301 Moved Permanently' ) {
$img = false ;
} else {
$img = true ;
$data [ 'images' ] = [
2024-05-07 12:17:25 +02:00
[
2024-05-17 19:01:40 +02:00
'src' => env ( 'WOOCOMMERCE_STORE_URL' ) . 'wp-content/uploads/web/' . $letterainiziale . '/' . $artnimaia -> img
2024-05-07 12:17:25 +02:00
]
];
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
}
Product :: update ( $product -> id , $data );
break ;
}
}
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/wooproducts' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
//ob_implicit_flush(true);
$page = 1 ;
$key = 0 ;
$all_products = new Collection ();
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page , 'orderby' => 'title' , 'order' => 'asc' ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
foreach ( $products as $product ) {
echo ++ $key . " | " . $product -> name . " | " . $product -> id ;
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$id = array_search ( 'formato' , array_column ( $variation -> meta_data , 'key' ));
if ( $id >= 0 )
echo ' | ' . $variation -> meta_data [ $id ] -> value . ' | ' . $variation -> id . ' | ' . $variation -> sku ;
2024-05-07 12:17:25 +02:00
}
echo " <br> " ;
}
2024-05-17 19:01:40 +02:00
//$all_products = $all_products->merge($products);
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/collane' , function () {
2024-05-07 12:17:25 +02:00
$subQuery = DB :: table ( 'T_WEB_Collane' ) -> select ( 'IdCollana' , DB :: raw ( 'max(DataOra) as data' ))
2024-05-17 19:01:40 +02:00
-> groupBy ( 'IdCollana' );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$collane = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
-> select ( '*' )
-> join ( 'T_WEB_Collane as c2' , function ( $join ) {
$join -> on ( 'c1.IdCollana' , '=' , 'c2.IdCollana' ) -> On ( 'c1.data' , '=' , 'DataOra' );
})
-> whereNotNull ( 'descrizione' )
-> mergeBindings ( $subQuery )
-> get ();
2024-05-07 12:17:25 +02:00
dd ( $collane );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/statoprodotto' , function () {
2024-05-07 12:17:25 +02:00
$subQuery = DB :: table ( 'T_WEB_StatiProdotto' ) -> select ( 'IdStatoProdotto' , DB :: raw ( 'max(DataOra) as data' ))
2024-05-17 19:01:40 +02:00
-> groupBy ( 'IdStatoProdotto' );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$collane = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
-> select ( '*' )
-> join ( 'T_WEB_StatiProdotto as c2' , function ( $join ) {
$join -> on ( 'c1.IdStatoProdotto' , '=' , 'c2.IdStatoProdotto' ) -> On ( 'c1.data' , '=' , 'DataOra' );
})
//->whereNotNull('descrizione')
-> mergeBindings ( $subQuery )
-> orderBy ( 'Descrizione' )
-> get ();
foreach ( $collane as $collana ) {
echo $collana -> Descrizione . " <br> " ;
2024-05-07 12:17:25 +02:00
}
//dd($collane);
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/statoprodotto1' , function () {
2024-05-07 12:17:25 +02:00
//non va
2024-05-17 19:01:40 +02:00
$collane = DB :: table ( 'T_WEB_StatiProdotto' ) -> select (
DB :: raw ( '(SELECT * 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' )
)
//->orderBy('T_WEB_StatiProdotto.Descrizione')
-> get ();
2024-05-07 12:17:25 +02:00
dd ( $collane );
2024-05-17 19:01:40 +02:00
foreach ( $collane as $collana ) {
echo $collana -> Descrizione . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/disponibile' , function () {
2024-05-07 12:17:25 +02:00
$collane = DB :: table ( 'T_WEB_Disponibile' ) -> select ( '*' )
2024-05-17 19:01:40 +02:00
-> where ( 'Codice' , 9154 ) -> orderBy ( 'DataOra' , 'desc' )
-> take ( 10 )
-> get ();
dd ( $collane );
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/test1' , function () {
$products = Product :: where ( 'name' , 'Vaccini Sì o No' ) -> get ();
//$products = Product::where('name','LIKE','%Vaccini%')->get();
dd ( $products );
$data = [
'meta_data' => [
[
'key' => 'edizione' ,
'value' => 'Edizione plus'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
]
];
Product :: update ( 13 , $data );
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/categorie' , function () {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$subQuery = DB :: table ( 'T_WEB_Argomenti' ) -> select ( 'IdArgomento' , DB :: raw ( 'max(DataOra) as data' ))
2024-05-07 12:17:25 +02:00
-> groupBy ( 'IdArgomento' );
2024-05-17 19:01:40 +02:00
$categorie = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
2024-05-07 12:17:25 +02:00
-> select ( '*' )
-> join ( 'T_WEB_Argomenti as c2' , function ( $join ) {
2024-05-17 19:01:40 +02:00
$join -> on ( 'c1.IdArgomento' , '=' , 'c2.IdArgomento' ) -> On ( 'c1.data' , '=' , 'DataOra' );
2024-05-07 12:17:25 +02:00
})
//->whereNotNull('descrizione')
-> mergeBindings ( $subQuery )
-> get ();
2024-05-17 19:01:40 +02:00
//dd($categorie);
foreach ( $categorie as $categoria ) {
2024-05-07 12:17:25 +02:00
$data = [
'name' => $categoria -> Descrizione ,
];
2024-05-17 19:01:40 +02:00
$category = Category :: where ( 'name' , $categoria -> Descrizione );
2024-05-07 12:17:25 +02:00
//$category = Category::all();
//dd($category->count());
2024-05-17 19:01:40 +02:00
if ( $category -> count () > 0 ) {
2024-05-07 12:17:25 +02:00
$cat = $category -> first ();
2024-05-17 19:01:40 +02:00
$category = Category :: update ( $cat [ 'id' ], $data );
2024-05-07 12:17:25 +02:00
} else {
$category = Category :: create ( $data );
}
}
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibronuovo' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','brossura')
-> where ( 'DescrizioneTipologia' , 'Rivista' )
/*-> where ( function ( $query ) {
2024-05-07 12:17:25 +02:00
$query -> where ( 'b.data' , '>' , '2022-01-01' );
//->orwhere('f.DataOra', '>', '2022-01-01');
// ->orwhere('h.data1', '>', '2022/01/01')
// ->orwhere('m.data1', '>', '2022/01/01')
// ->orwhere('p.data1', '>', '2022/01/01');
}) */
2024-05-17 19:01:40 +02:00
-> orderBy ( 'Titolo' )
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//->take(10)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
foreach ( $articles as $article ) {
echo $article -> IdArticolo . " <br> " ;
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
if ( $productsku -> count () == 0 ) {
$category = Category :: where ( 'name' , $article -> argomento );
if ( $category -> count () > 0 ) {
$categoria = $category -> first ();
$categoriaid = $categoria [ 'id' ];
} else {
$categoriaid = 0 ;
}
2024-05-07 12:17:25 +02:00
$data = [
2024-05-17 19:01:40 +02:00
'name' => $article -> Titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//'description' => 'Simple product full description.',
//'short_description' => 'Simple product short description.',
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$article -> authors
],
2024-05-17 19:01:40 +02:00
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
]
],
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
'meta_data' => [
[
'key' => 'pagine' ,
'value' => $article -> Pagine
],
[
'key' => 'edizione' ,
'value' => $article -> Edizione
],
[
'key' => 'ristampa' ,
'value' => $article -> Ristampa
],
[
2024-06-21 13:19:35 +02:00
'key' => 'DataPubblicazione' ,
'value' => $article -> DataPubblicazione
],
[
2024-05-17 19:01:40 +02:00
'key' => 'misure' ,
'value' => $article -> Misure
],
[
'key' => 'isbn' ,
'value' => $article -> Ean13
],
[
'key' => 'formato' ,
'value' => $article -> DescrizioneFormato
],
]
];
if ( $productsku -> count () == 0 ) {
$product = Product :: create ( $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$idprodotto = $product [ 'id' ];
} else {
$idprodotto = $productsku [ 'parent_id' ];
Product :: update ( $idprodotto , $data );
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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 ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
'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
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
];
if ( $productsku -> count () > 0 ) {
$variation = Variation :: update ( $idprodotto , $productsku [ 'id' ], $data1 );
} else {
$variation = Variation :: create ( $idprodotto , $data1 );
}
2024-05-07 12:17:25 +02:00
}
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-06-19 17:51:30 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibrousato' , function () {
2024-06-19 17:51:30 +02:00
/*
2024-05-17 19:01:40 +02:00
set_time_limit ( 0 );
$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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdStatoProdotto' , '=' , 'f.IdStatoProdotto' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdTipologia' , '=' , 'i.IdTipologia' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdTipoFormato' , '=' , 'n.IdTipoFormato' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'q.Codice' );
})
//->groupBy('T_WEB_Articoli.IdArticolo')
2024-05-17 19:01:40 +02:00
-> where ( 'DescrizioneStatoProdotto' , 'usato' )
2024-05-07 12:17:25 +02:00
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
2024-05-17 19:01:40 +02:00
-> where ( DB :: raw ( 'CONVERT(INT, QtaDisponibile)' ), '>' , 0 )
-> where ( 'DescrizioneFormato' , 'brossura' )
-> where ( 'DescrizioneTipologia' , 'Libri' )
2024-05-07 12:17:25 +02:00
-> orderBy ( 'Titolo' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-17 19:01:40 +02:00
//dd($articles);
//ob_implicit_flush(true);
foreach ( $articles as $article ) {
$titolo = rtrim ( str_ireplace ( 'USATO' , '' , $article -> Titolo ));
$prodotti = Product :: where ( 'name' , $titolo ) -> get ();
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',6563)->first();
$id = 0 ;
2024-05-17 19:01:40 +02:00
if ( $prodotti -> count () > 0 ) {
foreach ( $prodotti as $prodotto ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( $prodotto -> name === $titolo ) {
$id = $prodotto -> id ;
break ;
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
//$product = Product::where('name','1 2 3 Animal Yoga')->first();
if ( $id > 0 ) {
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',$article->IdArticolo)->first();
$product = Product :: find ( $id );
$attributes = $product [ 'meta_data' ];
$isbnproduct = '' ;
2024-05-17 19:01:40 +02:00
foreach ( $attributes as $key => $value ) {
if ( $value -> key == 'isbn' ) {
2024-05-07 12:17:25 +02:00
$isbnproduct = $value -> value ;
break ;
}
}
$variations = Variation :: all ( $id );
$trovatosku = false ;
foreach ( $variations as $variation ) {
2024-05-17 19:01:40 +02:00
if ( $variation -> sku == $article -> IdProdotto ) {
2024-05-07 12:17:25 +02:00
$trovatosku = true ;
break ;
}
}
2024-05-17 19:01:40 +02:00
if ( ! $trovatosku ) {
if ( substr ( $isbnproduct , 5 ) == substr ( $article -> Ean13 , 5 )) {
2024-05-07 12:17:25 +02:00
$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 ,
'attributes' => [
[
'name' => 'Versione Libro' ,
'option' => 'Usato'
]
],
'meta_data' => [
[
'key' => 'ISBN' ,
'value' => $article -> Ean13
]
]
];
2024-05-17 19:01:40 +02:00
Variation :: create ( $id , $data1 );
2024-05-07 12:17:25 +02:00
}
}
}
2024-05-17 19:01:40 +02:00
}
echo " Finito " ;
2024-06-19 17:51:30 +02:00
*/
2024-06-20 14:00:57 +02:00
});
2024-06-19 17:49:44 +02:00
2024-05-17 19:01:40 +02:00
Route :: get (
'/test2' ,
function () {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$product = Product :: where ( 'name' , 'LiKE' , '100 baby ricette -' ) -> get ();
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( $product -> count () > 0 ) {
2024-05-07 12:17:25 +02:00
dd ( $product );
$sku = Product :: where ( 'sku' , 3514 ) -> get ();
2024-05-17 19:01:40 +02:00
dd ( $sku -> count ());
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
);
2024-05-17 19:01:40 +02:00
Route :: get ( '/test3' , function () {
2024-05-07 12:17:25 +02:00
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
2024-05-07 12:17:25 +02:00
dd ( $product -> attributes );
}
dd ( $all_products );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test4' , function () {
2024-05-07 12:17:25 +02:00
dd ( date ( 'd-m-Y H:i:s' ));
$product = Product :: find ( 24006 );
/*
$variations = Variation :: all ( $product [ 'id' ]);
foreach ( $variations as $variation ) {
$old_variantion_attributes [ $variation -> id ] = $variation -> attributes [ 0 ] -> option ;
}
*/
2024-05-17 19:01:40 +02:00
dd ( $product [ 'attributes' ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$old_attributes = $product [ 'attributes' ];
foreach ( $old_attributes as $old_attribute ) {
echo $old_attribute -> id . " " . $old_attribute -> name . " " ;
print_r ( $old_attribute -> options ) . " <br> " ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
$data = [
'attributes' => [
[
'id' => 4 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [ 'Nuovo' , 'Usato' ]
],
[
'id' => 1 ,
'visible' => $old_attributes [ 1 ] -> visible ,
'options' => $old_attributes [ 1 ] -> options
]
],
'default_attributes' => [
[
'id' => 4 ,
'option' => 'Nuovo'
]
]
];
Product :: update ( $product [ 'id' ], $data );
foreach ( $variations as $variation ) {
$data1 = [
'attributes' => [
[
'id' => 4 ,
'option' => $old_variantion_attributes [ $variation -> id ]
]
]
];
Variation :: update ( $product [ 'id' ], $variation -> id , $data1 );
}
//Product::update(81,$data);
//$product = Product::find(3004);
//$variations =Variation::find(3008,3009);
//dd($variations);
*/
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test5' , function () {
set_time_limit ( 0 );
$authors = Authornimaia :: where ( 'id_sito' , 1 ) -> get ();
$attribute_id = 7 ;
ob_implicit_flush ( true );
foreach ( $authors as $author ) {
$search_author = $author -> nome . ' ' . $author -> cognome ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$terms = Term :: all ( $attribute_id , $options = [ 'search' => $search_author ]);
if ( $terms -> count () > 0 ) {
$data = [
'description' => $author -> biografia
];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Term :: update ( $attribute_id , $terms [ 0 ] -> id , $data );
echo $terms [ 0 ] -> id . " <br> " ;
}
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibroebook' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','Epub')
-> where ( 'DescrizioneTipologia' , 'E-book' )
-> orderBy ( 'Titolo' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
echo " Trovati " . $articles -> count () . " <br> " ;
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
echo $key . " - Sto proccessando " . $article -> Titolo . " <br> " ;
$titolo = null ;
$formato = null ;
$prodotti = null ;
2024-05-17 19:01:40 +02:00
if ( $article -> DescrizioneFormato === 'Epub' ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'EPUB' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Epub' ;
2024-05-17 19:01:40 +02:00
} elseif ( $article -> DescrizioneFormato === 'Pdf' ) {
$titolo = rtrim ( str_ireplace ( 'PDF' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'PDF' ;
2024-05-17 19:01:40 +02:00
} elseif ( $article -> DescrizioneFormato === 'Mobi' ) {
$titolo = rtrim ( str_ireplace ( 'MOBI' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Mobi' ;
} else {
continue ;
}
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'EBOOK' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo $titolo . " <br> " ;
$prodotti = new ModelsProduct ();
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
2024-05-07 12:17:25 +02:00
/*
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Ean13 . ' ' . $article -> Titolo . ' ' . implode ( " , " , $article -> authors ) . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . ' ' . $article -> QtaDisponibile . '<br>' ;
*/
$id = 0 ;
2024-05-17 19:01:40 +02:00
if ( ! is_null ( $prodotti ) && $prodotti -> count () > 0 ) {
foreach ( $prodotti as $prodotto ) {
echo $prodotto -> name . " <br> " ;
echo $titolo . " <br> " ;
if ( strtolower ( $prodotto -> name ) === strtolower ( $titolo )) {
$id = $prodotto -> id ;
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
if ( $id > 0 ) {
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Trovato " . $titolo . " <br> " ;
$product = Product :: find ( $id );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
2024-05-17 19:01:40 +02:00
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 6 ) {
2024-05-07 12:17:25 +02:00
$attributes [] = [
2024-05-17 19:01:40 +02:00
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
2024-05-07 12:17:25 +02:00
}
}
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
]
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
//dd($attributes);
$data = [
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
Product :: update ( $id , $data );
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $id );
$trovatosku = false ;
foreach ( $variations as $variation ) {
2024-05-17 19:01:40 +02:00
if ( $variation -> sku == $article -> IdProdotto ) {
2024-05-07 12:17:25 +02:00
$trovatosku = true ;
break ;
}
}
2024-05-17 19:01:40 +02:00
if ( ! $trovatosku ) {
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
'id' => 6 ,
'option' => $formato
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
],
'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
],
]
];
Variation :: create ( $id , $data1 );
2024-05-07 12:17:25 +02:00
}
} else {
2024-05-17 19:01:40 +02:00
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
if ( $productsku -> count () == 0 ) {
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Nuovo " . $titolo . " <br> " ;
$category = Category :: where ( 'name' , $article -> argomento );
if ( $category -> count () > 0 ) {
$categoria = $category -> first ();
$categoriaid = $categoria [ 'id' ];
} else {
$categoriaid = 0 ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'name' => $titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
],
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'meta_data' => [
[
'key' => 'pagine' ,
'value' => $article -> Pagine
],
[
'key' => 'edizione' ,
'value' => $article -> Edizione
],
[
'key' => 'ristampa' ,
'value' => $article -> Ristampa
],
2024-06-21 13:19:35 +02:00
[
'key' => 'DataPubblicazione' ,
'value' => $article -> DataPubblicazione
],
2024-05-17 19:01:40 +02:00
[
'key' => 'misure' ,
'value' => $article -> Misure
],
[
'key' => 'isbn' ,
'value' => $article -> Ean13
],
[
'key' => 'formato' ,
'value' => $formato
],
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
if ( $productsku -> count () == 0 ) {
$product = Product :: create ( $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$idprodotto = $product [ 'id' ];
} else {
$idprodotto = $productsku [ 'parent_id' ];
Product :: update ( $idprodotto , $data );
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => $formato
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'meta_data' => [
[
'key' => 'ISBN' ,
'value' => $article -> Ean13
],
[
'key' => 'misure' ,
'value' => $article -> Misure
],
[
'key' => 'formato' ,
'value' => $formato
],
[
'key' => 'pagine' ,
'value' => $article -> Pagine
],
[
'key' => 'edizione' ,
'value' => $article -> Edizione
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
];
if ( $productsku -> count () > 0 ) {
$variation = Variation :: update ( $idprodotto , $productsku [ 'id' ], $data1 );
} else {
$variation = Variation :: create ( $idprodotto , $data1 );
}
}
2024-05-07 12:17:25 +02:00
}
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/changeversion' , function () {
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
if ( $product -> id > 670 ) {
$old_attributes = $product -> attributes ;
$variations = Variation :: all ( $product -> id );
foreach ( $variations as $variation ) {
$old_variantion_attributes [ $variation -> id ] = $variation -> attributes [ 0 ] -> option ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
'attributes' => [
[
'id' => 1 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [ 'Nuovo' , 'Usato' ]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
'id' => 5 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$old_attributes [ 1 ] -> options
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
'id' => 2 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 2 ] -> options
],
2024-05-17 19:01:40 +02:00
[
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 3 ] -> options
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'default_attributes' => [
[
'id' => 1 ,
'option' => 'Nuovo'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
]
];
$product = Product :: update ( $product -> id , $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variations = Variation::all($product['id']);
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
$data1 = [
'attributes' => [
[
'id' => 1 ,
'option' => $old_variantion_attributes [ $variation -> id ]
]
]
];
2024-05-17 19:01:40 +02:00
$variationup = Variation :: update ( $product [ 'id' ], $variation -> id , $data1 );
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
echo " Finito " ;
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: post ( '/ordercreate' , function ( Request $request ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//dd($webhook);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Log :: debug ( $request -> all ());
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
$changedest = false ;
if (( $request -> shipping [ 'address_1' ] != null && $request -> shipping [ 'address_1' ] != '' && $request -> shipping [ 'address_1' ] != $request -> billing [ 'address_1' ]) || ( $request -> shipping [ 'first_name' ] != null && $request -> shipping [ 'first_name' ] != '' && $request -> shipping [ 'first_name' ] != $request -> billing [ 'first_name' ]) ){
$changedest = true ;
}
$order = new Order ();
$order -> IdInternet = $request -> id ;
$order -> CodClienteInternet = $request -> customer_id ;
$order -> Enabled = 1 ;
$order -> DataOra = $request -> date_created ;
$order -> Note = $request -> customer_note ;
$order -> Totale = $request -> total ;
if ( $changedest )
{
$order -> CodDestInternet = $request -> customer_id ;
}
$order -> save ();
$prodotti = $request -> line_items ;
foreach ( $prodotti as $prodotto ){
$orderdetail = new Orderdetail ();
$orderdetail -> IdInternet = $request -> id ;
$orderdetail -> CodArticoloGM = $prodotto [ 'sku' ];
$orderdetail -> Qta = $prodotto [ 'quantity' ];
$orderdetail -> PrezzoLordo = $prodotto [ 'total' ];
$orderdetail -> Enabled = 1 ;
$orderdetail -> DataOra = $request -> date_created ;
$orderdetail -> save ();
}
$customer = Customer :: find ( $request -> customer_id );
$cliente = new Clientegm ();
$cliente -> CodClienteInternet = $customer [ 'id' ];
$cliente -> Nominativo = $customer [ 'last_name' ] . " " . $customer [ 'first_name' ];
$cliente -> Indirizzo = $customer [ 'billing' ] -> address_1 . " " . $customer [ 'billing' ] -> address_2 ;
$cliente -> Citta = $customer [ 'billing' ] -> city ;
$cliente -> Cap = $customer [ 'billing' ] -> postcode ;
$cliente -> Provincia = $customer [ 'billing' ] -> state ;
$cliente -> Telefono = $customer [ 'billing' ] -> phone ;
$cliente -> Email = $customer [ 'billing' ] -> email ;
$metas = $customer [ 'meta_data' ];
foreach ( $metas as $meta )
{
if ( $meta -> key == 'cod_fiscale' )
{
$cliente -> CodiceFiscale = $meta -> value ;
}
elseif ( $meta -> key == 'vat' )
{
$cliente -> PIVA = $meta -> value ;
}
}
$cliente -> IdInternet = $request -> id ;
$cliente -> save ();
if ( $changedest ){
$clientedest = new Clientegmdest ();
$clientedest -> CodDestInternet = $request -> customer_id ;
$clientedest -> Nominativo = $request -> shipping [ 'last_name' ] . " " . $request -> shipping [ 'first_name' ];
$clientedest -> Indirizzo = $request -> shipping [ 'address_1' ] . " " . $request -> shipping [ 'address_2' ];
$clientedest -> Citta = $request -> shipping [ 'city' ];
$clientedest -> Cap = $request -> shipping [ 'postcode' ];
$clientedest -> Provincia = $request -> shipping [ 'state' ];
$clientedest -> Telefono = $request -> shipping [ 'phone' ];
$clientedest -> IdInternet = $request -> id ;
$clientedest -> save ();
}
Log :: info ( 'Inserito ordine' );
*/
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/ordercreate/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
dd ( Webhook :: find ( $id ));
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/cliente/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
dd ( Customer :: find ( $id ));
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'sistema' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
//ob_implicit_flush(true);
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$filtered = $products -> whereBetween ( 'id' , [ 23856 , 24304 ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $filtered );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$article = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
-> leftJoin ( DB :: raw ( '(SELECT r.IdMarchioEditoriale, r.Descrizione as CasaEditrice FROM T_WEB_MarchiEditoriali r JOIN (SELECT IdMarchioEditoriale, MAX(DataOra) as data1 from T_WEB_MarchiEditoriali GROUP BY IdMarchioEditoriale) s ON r.IdMarchioEditoriale = s.IdMarchioEditoriale AND r.DataOra = s.data1 ) t' ), function ( $join ) {
$join -> on ( 'T_WEB_Articoli.IdMarchioEditoriale' , '=' , 't.IdMarchioEditoriale' );
})
-> where ( 'T_WEB_Articoli.IdArticolo' , $variation -> sku ) -> first ();
2024-05-07 12:17:25 +02:00
$data = [
'meta_data' => [
[
'key' => 'casa_editrice' ,
'value' => $article -> CasaEditrice
]
2024-05-17 19:01:40 +02:00
]
];
Product :: update ( $product -> id , $data );
break ;
}
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/sistema_autori' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
//$filtered = $products->where('type');
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
$article = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> where ( 'T_WEB_Articoli.IdArticolo' , $variation -> sku )
-> where ( 'T_WEB_Articoli.ListaAutori' , 'LIKE' , '%,%' )
-> first ();
if ( $article ) {
2024-05-07 12:17:25 +02:00
$old_attributes = $product -> attributes ;
$attributes = [];
2024-05-17 19:01:40 +02:00
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 7 ) {
2024-05-07 12:17:25 +02:00
$attributes [] = [
2024-05-17 19:01:40 +02:00
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
2024-05-07 12:17:25 +02:00
}
}
$attributes [] = [
'id' => 7 ,
'variation' => false ,
'visible' => true ,
'options' => $article -> authors
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
Product :: update ( $product -> id , $data );
echo " Modificato: " . $product -> id . " </br> " ;
break ;
2024-05-07 12:17:25 +02:00
}
}
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/autori_test' , function () {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$article = 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' );
})
-> where ( 'T_WEB_Articoli.IdArticolo' , 13840 )
-> where ( 'T_WEB_Articoli.ListaAutori' , 'LIKE' , '%,%' )
-> first ();
if ( $article ) {
$product = Product :: find ( 24006 );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 7 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$attributes [] = [
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
}
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
$attributes [] = [
'id' => 7 ,
'variation' => false ,
'visible' => true ,
'options' => $article -> authors
2024-05-07 12:17:25 +02:00
];
2024-05-17 19:01:40 +02:00
//dd($attributes);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
'attributes' => $attributes
];
Product :: update ( 24006 , $data );
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
});
2024-06-20 14:00:57 +02:00
function getvalstr ( $mystr , $value , $separato = false )
{
2024-06-13 09:25:54 +02:00
$my = '' ;
if ( $mystr ) {
$my = " " . $mystr . " : " . $value ;
} else {
2024-06-13 09:28:52 +02:00
$my = $value ;
2024-06-13 09:29:35 +02:00
if ( ! $separato ) {
$my = " " . $value ;
}
2024-06-13 09:25:54 +02:00
}
if ( $separato ) {
2024-06-13 09:26:58 +02:00
$my = '[' . $my . '] ' ;
2024-06-13 09:25:54 +02:00
}
return $my ;
2024-05-22 14:27:32 +02:00
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/test7/{name}' , function ( $name ) {
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli WHERE Titolo LIKE \'%' . $name . '%\' GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
-> get ();
//$articolo = Article::find($id);
//$article = Article::where('IdArticolo',)->whereDate('DataOra',$articolo->data)->first();
2024-05-07 12:17:25 +02:00
//dd($articles);
//dd($articles[0]);
2024-05-17 19:01:40 +02:00
ob_implicit_flush ( true );
//dd($articles);
foreach ( $articles as $article ) {
echo $article -> IdArticolo . " | " . $article -> Titolo . " | " . $article -> Ean13 . " | " . $article -> DescrizioneStatoProdotto . " | " . $article -> DescrizioneTipologia . " | " . $article -> DescrizioneFormato . " | " . $article -> QtaDisponibile . " | " . $article -> data . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test8/{tipologia}' , function ( $name ) {
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
-> where ( 'DescrizioneTipologia' , 'LIKE' , 'Video Streaming' )
-> get ();
//$articolo = Article::find($id);
//$article = Article::where('IdArticolo',)->whereDate('DataOra',$articolo->data)->first();
2024-05-07 12:17:25 +02:00
//dd($articles);
//dd($articles[0]);
2024-05-17 19:01:40 +02:00
ob_implicit_flush ( true );
//dd($articles);
foreach ( $articles as $article ) {
echo $article -> IdArticolo . " | " . $article -> Titolo . " | " . $article -> DescrizioneStatoProdotto . " | " . $article -> DescrizioneTipologia . " | " . $article -> DescrizioneFormato . " | " . $article -> QtaDisponibile . " | " . $article -> data . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'statoProdotto' , function () {
$subQuery = DB :: table ( 'T_WEB_StatiProdotto' ) -> select ( 'IdStatoProdotto' , DB :: raw ( 'max(DataOra) as data' ))
-> groupBy ( 'IdStatoProdotto' );
$stati = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
-> select ( '*' )
-> join ( 'T_WEB_StatiProdotto as c2' , function ( $join ) {
$join -> on ( 'c1.IdStatoProdotto' , '=' , 'c2.IdStatoProdotto' ) -> On ( 'c1.data' , '=' , 'DataOra' );
})
//->whereNotNull('descrizione')
-> mergeBindings ( $subQuery )
-> orderBy ( 'c1.IdStatoProdotto' )
-> get ();
echo " IdStatoProdotto | Descrizione<br> " ;
foreach ( $stati as $stato ) {
echo $stato -> IdStatoProdotto . " " . $stato -> Descrizione . " <br> " ;
}
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'cliente/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$customer = Customer :: find ( $id );
dd ( $customer );
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'cliente1/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$customer = Customer :: find ( $id );
dd ( $customer [ 'billing' ] -> first_name );
$metas = $customer [ 'meta_data' ];
2024-05-17 19:01:40 +02:00
foreach ( $metas as $meta ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( $meta -> key == 'cod_fiscale' ) {
2024-05-07 12:17:25 +02:00
dd ( $meta -> value );
}
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'ordinestato/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$ordini = Order :: where ( 'IdInternet' , $id ) -> get ();
dd ( $ordini );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/commercio' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
//$articles = Article::select(DB::raw('count(*) as Totale, DescrizioneFormato'))->join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function($join)
2024-05-17 19:01:40 +02:00
$articles = Article :: select ( DB :: raw ( 'T_WEB_Articoli.IdArticolo, count(*) as Totale' )) -> join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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 ( 'DescrizioneStatoProdotto' , 'In commercio' )
-> where ( 'DescrizioneTipologia' , 'Libri' )
//->where('DescrizioneFormato','Rilegato')
-> groupBy ( 'T_WEB_Articoli.IdArticolo' )
//->orderBy('T_WEB_Articoli.Titolo')
-> get ();
2024-05-07 12:17:25 +02:00
/*
foreach ( $articles as $article )
{
if ( $article -> DescrizioneFormato != '' )
echo $article -> DescrizioneFormato . ' : ' . $article -> Totale . '<br>' ;
} */
2024-05-17 19:01:40 +02:00
foreach ( $articles as $article ) {
if ( $article -> Totale > 1 )
echo $article -> IdArticolo . ' : ' . $article -> Totale . '<br>' ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( 'variazione/{id1}/{id2}' , function ( $id1 , $id2 ) {
$variation = Variation :: find ( $id1 , $id2 ) -> toArray ();
2024-05-07 12:17:25 +02:00
dd ( $variation );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/tipologia' , function () {
2024-05-07 12:17:25 +02:00
$subQuery = DB :: table ( 'T_WEB_Tipologie' ) -> select ( 'IdTipologia' , DB :: raw ( 'max(DataOra) as data' ))
2024-05-17 19:01:40 +02:00
-> groupBy ( 'IdTipologia' );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$tipologie = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
-> select ( '*' )
-> join ( 'T_WEB_Tipologie as c2' , function ( $join ) {
$join -> on ( 'c1.IdTipologia' , '=' , 'c2.IdTipologia' ) -> On ( 'c1.data' , '=' , 'DataOra' );
})
//->whereNotNull('descrizione')
-> mergeBindings ( $subQuery )
-> orderBy ( 'Descrizione' )
-> get ();
foreach ( $tipologie as $tipologia ) {
2024-05-07 12:17:25 +02:00
echo $tipologia -> Descrizione . " <br> " ;
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/formato' , function () {
2024-05-07 12:17:25 +02:00
$subQuery = DB :: table ( 'T_WEB_TipiFormato' ) -> select ( 'IdTipoFormato' , DB :: raw ( 'max(DataOra) as data' ))
2024-05-17 19:01:40 +02:00
-> groupBy ( 'IdTipoFormato' );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$tipologie = DB :: table ( DB :: raw ( '(' . $subQuery -> toSql () . ') as c1' ))
-> select ( '*' )
-> join ( 'T_WEB_TipiFormato as c2' , function ( $join ) {
$join -> on ( 'c1.IdTipoFormato' , '=' , 'c2.IdTipoFormato' ) -> On ( 'c1.data' , '=' , 'DataOra' );
})
//->whereNotNull('descrizione')
-> mergeBindings ( $subQuery )
-> orderBy ( 'Descrizione' )
-> get ();
foreach ( $tipologie as $tipologia ) {
2024-05-07 12:17:25 +02:00
echo $tipologia -> Descrizione . " <br> " ;
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/sistema_campi' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
//$filtered = $products->where('type');
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
ob_end_flush ();
ob_implicit_flush ( true );
echo " Totale prodotti padri: " . $all_products -> count () . " <br> " ;
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $key => $product ) {
echo $key . " - Sto processando " . $product -> name . " <br> " ;
2024-05-07 12:17:25 +02:00
$metadatas_old = $product -> meta_data ;
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
$metadata = [];
2024-05-17 19:01:40 +02:00
foreach ( $metadatas_old as $key => $value ) {
if ( $value -> key == 'pagine' ) {
$metadata [] = [
'key' => 'pagine' ,
'value' => $value -> value
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
if ( $value -> key == 'misure' ) {
$metadata [] = [
'key' => 'misure' ,
'value' => $value -> value
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
if ( $value -> key == 'formato' ) {
$metadata [] = [
'key' => 'formato' ,
'value' => $value -> value
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
if ( $value -> key == 'edizione' ) {
$metadata [] = [
'key' => 'edizione' ,
'value' => $value -> value
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
}
}
$data1 = [
'meta_data' => $metadata
];
2024-05-17 19:01:40 +02:00
$variation = Variation :: update ( $product -> id , $variation -> id , $data1 );
2024-05-07 12:17:25 +02:00
}
}
echo " finito " ;
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test8' , function () {
2024-05-07 12:17:25 +02:00
$product = Product :: find ( 24006 );
$attributes = $product [ 'attributes' ];
foreach ( $attributes as $key => $attribute ) {
2024-05-17 19:01:40 +02:00
echo $attribute -> name . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibro1' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','brossura')
-> where ( 'DescrizioneTipologia' , 'Dvd' )
-> orderBy ( 'Titolo' )
-> orderBy ( 'DescrizioneTipologia' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
echo " Trovati " . $articles -> count () . " <br> " ;
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
$titolo = null ;
//$formato = null;
$prodotti = null ;
2024-05-17 19:01:40 +02:00
echo $key . ' | ' . $article -> Titolo . ' | ' . implode ( " " , $article -> authors ) . $article -> DescrizioneFormato . ' |' . $article -> DescrizioneTipologia . " <br> " ;
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $article -> Titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'DVD' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo $titolo . '<br>' ;
$prodotti = new ModelsProduct ();
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
if ( ! is_null ( $prodotti ) && $prodotti -> count () > 0 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
foreach ( $prodotti as $prodotto ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( strtolower ( $prodotto -> name ) === strtolower ( $titolo )) {
echo " Trovato titolo " . " <br> " ;
//$found_key = array_search('Autore libro', array_column($prodotto->attributes, 'name'));
//dd($prodotto->attributes[$found_key]->options);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
echo " --------------------------------------------------------------------- " . " <br> " ;
2024-05-07 12:17:25 +02:00
}
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibro2' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','brossura')
-> where ( 'DescrizioneTipologia' , 'E-Book' )
-> orderBy ( 'Titolo' )
-> orderBy ( 'DescrizioneTipologia' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
$titolo = null ;
$formato = null ;
$prodotti = null ;
2024-05-17 19:01:40 +02:00
if ( $article -> DescrizioneFormato === 'Epub' ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'EPUB' , '' , $article -> Titolo ));
} elseif ( $article -> DescrizioneFormato === 'Pdf' ) {
$titolo = rtrim ( str_ireplace ( 'PDF' , '' , $article -> Titolo ));
} elseif ( $article -> DescrizioneFormato === 'Mobi' ) {
$titolo = rtrim ( str_ireplace ( 'MOBI' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
} else {
continue ;
}
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'EBOOK' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo $key . ' | ' . $article -> Titolo . ' | ' . $titolo . ' | ' . $article -> DescrizioneFormato . " <br> " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/infophp' , function () {
2024-05-07 12:17:25 +02:00
phpinfo ();
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/testnimaia' , function () {
$file = env ( 'WOOCOMMERCE_STORE_URL' ) . 'wp-content/uploads/web/y/yogasana.jpg' ;
2024-05-07 12:17:25 +02:00
$file_headers = @ get_headers ( $file );
//dd($file_headers);
2024-05-17 19:01:40 +02:00
if ( $file_headers [ 0 ] == 'HTTP/1.1 404 Not Found' || $file_headers [ 0 ] == 'HTTP/1.1 301 Moved Permanently' ) {
2024-05-07 12:17:25 +02:00
echo " not found " ;
2024-05-17 19:01:40 +02:00
} else {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo " found " ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/move/{id1}/{id2}' , function ( $id1 , $id2 ) {
$variazione = Variation :: find ( 85 , $id1 ) -> toArray ();
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
dd ( $variazione );
Variation :: create ( $id2 , $variazione );
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test9/{name}' , function ( $name ) {
$products = Product :: where ( 'name' , $name ) -> get ();
2024-05-07 12:17:25 +02:00
dd ( $products );
});
2024-05-17 19:01:40 +02:00
Route :: post ( '/updatecreate' , function ( Request $request ) {
2024-05-07 12:17:25 +02:00
2024-05-20 00:26:10 +02:00
// WEBHOOK DA GESTPAY A WOOCOMMERCE
2024-05-07 12:17:25 +02:00
//dd($webhook);
2024-06-20 14:00:57 +02:00
try {
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
if (( $request -> status == 'on-hold' && $request -> payment_method == 'bacs' ) || ( $request -> status == 'processing' && $request -> payment_method == 'wc_gateway_gestpay' ) || ( $request -> status == 'processing' && $request -> payment_method == 'paypal' )) {
2024-06-20 14:06:23 +02:00
$productLogger = new ProductLogger ( null , 'neworders' );
$productLogger -> addLog ( '' , 'updatecreate: ARRIVATO ORDINE' );
2024-06-20 14:00:57 +02:00
$changedest = false ;
if (( $request -> shipping [ 'address_1' ] != null && $request -> shipping [ 'address_1' ] != '' && $request -> shipping [ 'address_1' ] != $request -> billing [ 'address_1' ]) || ( $request -> shipping [ 'first_name' ] != null && $request -> shipping [ 'first_name' ] != '' && $request -> shipping [ 'first_name' ] != $request -> billing [ 'first_name' ])) {
$changedest = true ;
2024-06-13 12:46:33 +02:00
}
2024-06-20 14:00:57 +02:00
//$orderold =
2024-06-20 14:06:23 +02:00
$productLogger -> addLog ( '' , 'Creazione Ordine... codice=' . $request -> id );
2024-06-20 14:00:57 +02:00
$order = new Order ();
$order -> IdInternet = $request -> id ;
$order -> CodClienteInternet = $request -> customer_id ;
$order -> Enabled = 1 ;
$order -> DataOra = $request -> date_created ;
$order -> Note = $request -> customer_note ;
$order -> Totale = $request -> total ;
if ( $request -> payment_method == 'wc_gateway_gestpay' ) {
$order -> CodPagamentoGM = 'CARTASELLA' ;
2024-06-13 12:46:33 +02:00
}
2024-06-20 14:00:57 +02:00
if ( $request -> payment_method == 'paypal' ) {
$order -> CodPagamentoGM = '472' ;
2024-05-17 19:01:40 +02:00
}
2024-06-20 14:00:57 +02:00
if ( $request -> payment_method == 'bacs' ) {
$order -> CodPagamentoGM = 'BONIFPOSTALE' ;
$order -> FlagSospeso = 1 ;
}
$order -> Spedizioniere = 'GLS' ;
$order -> ImportoSpedizione = $request -> shipping_total ;
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
if ( $changedest ) {
$order -> CodDestInternet = $request -> customer_id ;
}
$order -> save ();
2024-06-20 14:06:23 +02:00
$productLogger -> addLog ( '' , 'Order:' . json_encode ( $order ));
2024-06-20 14:00:57 +02:00
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
$prodotti = $request -> line_items ;
foreach ( $prodotti as $prodotto ) {
$orderdetail = new Orderdetail ();
$orderdetail -> IdInternet = $request -> id ;
$sku = $prodotto [ 'sku' ];
$codifica = false ;
if ( strlen ( $sku ) > 7 || strpos ( $sku , 'USATO' ) === 0 ) {
$codifica = true ;
}
if ( $codifica ) {
2024-06-21 13:19:35 +02:00
$productLogger -> addLog ( '' , 'ORDINE LIBRO USATO !' );
2024-06-20 14:00:57 +02:00
} else {
$orderdetail -> CodArticoloGM = intval ( $prodotto [ 'sku' ]);
2024-06-20 15:26:21 +02:00
$productLogger -> addLog ( '' , '$orderdetail->CodArticoloGM= ' . $orderdetail -> CodArticoloGM );
2024-06-20 14:00:57 +02:00
}
2024-05-07 12:17:25 +02:00
2024-06-20 14:49:00 +02:00
$productLogger -> addLog ( '' , 'sku=' . $sku );
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
$orderdetail -> Qta = $prodotto [ 'quantity' ];
$orderdetail -> PrezzoLordo = $prodotto [ 'total' ];
$orderdetail -> Enabled = 1 ;
$orderdetail -> DataOra = $request -> date_created ;
$orderdetail -> save ();
2024-06-20 14:49:00 +02:00
2024-06-20 15:26:21 +02:00
$productLogger -> addLog ( '' , 'Dettaglio Ordine: ' . json_encode ( $orderdetail ));
2024-06-20 14:00:57 +02:00
}
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
$customer = Customer :: find ( $request -> customer_id );
2024-06-20 14:06:23 +02:00
$productLogger -> addLog ( '' , 'crea Cliente: ' . $customer [ 'last_name' ] . " " . $customer [ 'first_name' ]);
2024-06-20 14:00:57 +02:00
$cliente = new Clientegm ();
$cliente -> CodClienteInternet = $customer [ 'id' ];
$cliente -> Nominativo = $customer [ 'last_name' ] . " " . $customer [ 'first_name' ];
$cliente -> Indirizzo = $customer [ 'billing' ] -> address_1 . " " . $customer [ 'billing' ] -> address_2 ;
$cliente -> Citta = $customer [ 'billing' ] -> city ;
$cliente -> Cap = $customer [ 'billing' ] -> postcode ;
$cliente -> Provincia = $customer [ 'billing' ] -> state ;
$cliente -> Telefono = $customer [ 'billing' ] -> phone ;
$cliente -> Email = $customer [ 'billing' ] -> email ;
$cliente -> IdNazione = 227 ;
$metas = $customer [ 'meta_data' ];
foreach ( $metas as $meta ) {
2024-05-07 12:17:25 +02:00
2024-06-20 14:00:57 +02:00
if ( $meta -> key == 'cod_fiscale' ) {
$cliente -> CodiceFiscale = $meta -> value ;
} elseif ( $meta -> key == 'vat' ) {
$cliente -> PIVA = $meta -> value ;
}
}
$cliente -> IdInternet = $request -> id ;
$cliente -> save ();
2024-06-20 14:06:23 +02:00
$productLogger -> addLog ( '' , 'Cliente:' . json_encode ( $cliente ));
2024-06-20 14:00:57 +02:00
if ( $changedest ) {
2024-06-21 13:19:35 +02:00
$productLogger -> addLog ( '' , 'Change Destinazione:' );
2024-06-20 14:00:57 +02:00
$clientedest = new Clientegmdest ();
$clientedest -> CodDestInternet = $request -> customer_id ;
$clientedest -> Nominativo = $request -> shipping [ 'last_name' ] . " " . $request -> shipping [ 'first_name' ];
$clientedest -> Indirizzo = $request -> shipping [ 'address_1' ] . " " . $request -> shipping [ 'address_2' ];
$clientedest -> Citta = $request -> shipping [ 'city' ];
$clientedest -> Cap = $request -> shipping [ 'postcode' ];
$clientedest -> Provincia = $request -> shipping [ 'state' ];
$clientedest -> Telefono = $request -> shipping [ 'phone' ];
$cliente -> IdNazione = 227 ;
$clientedest -> IdInternet = $request -> id ;
$clientedest -> save ();
2024-06-21 13:19:35 +02:00
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 ) {
2024-06-20 14:00:57 +02:00
}
2024-06-20 14:06:23 +02:00
$productLogger -> setLogandSendEmail ( 'Nuovo Ordine !' );
2024-06-21 13:19:35 +02:00
2024-06-20 14:00:57 +02:00
} //end if status
} catch ( Exception $e ) {
Log :: error ( $e -> getMessage ());
2024-06-20 15:26:21 +02:00
$productLogger -> setLogandSendEmail ( 'Nuovo Ordine ERRORE !' );
2024-06-20 14:00:57 +02:00
}
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibroondemand' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','Epub')
-> where ( 'DescrizioneTipologia' , 'Video On Demand' )
-> orderBy ( 'Titolo' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
echo " Trovati " . $articles -> count () . " <br> " ;
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
echo $key . " - Sto proccessando " . $article -> Titolo . " <br> " ;
$titolo = null ;
$formato = null ;
$prodotti = null ;
2024-05-17 19:01:40 +02:00
if ( $article -> DescrizioneFormato === 'Streaming' ) {
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $article -> Titolo , 'STR' );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'streaming' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Streaming' ;
2024-05-17 19:01:40 +02:00
} elseif ( $article -> DescrizioneFormato === 'Download' ) {
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $article -> Titolo , 'VOD' );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'download' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Download' ;
2024-05-17 19:01:40 +02:00
} else {
2024-05-07 12:17:25 +02:00
continue ;
}
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo " Titolo sistemato: " . $titolo . " <br> " ;
$prodotti = new ModelsProduct ();
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
2024-05-07 12:17:25 +02:00
/*
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Ean13 . ' ' . $article -> Titolo . ' ' . implode ( " , " , $article -> authors ) . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . ' ' . $article -> QtaDisponibile . '<br>' ;
*/
$id = 0 ;
2024-05-17 19:01:40 +02:00
if ( ! is_null ( $prodotti ) && $prodotti -> count () > 0 ) {
echo " Cerco titoli " . " <br> " ;
foreach ( $prodotti as $prodotto ) {
echo " WOO: " . $prodotto -> name . " <br> " ;
echo " Cerco : " . $titolo . " <br> " ;
if ( strtolower ( $prodotto -> name ) === strtolower ( $titolo )) {
echo " Trovato titolo uguale " . " <br> " ;
$found_key = array_search ( 'Autore libro' , array_column ( $prodotto -> attributes , 'name' ));
echo implode ( " , " , $prodotto -> attributes [ $found_key ] -> options ) . '|' . implode ( " , " , $article -> authors ) . " <br> " ;
print_r ( array_diff ( $prodotto -> attributes [ $found_key ] -> options , $article -> authors ));
echo " <br> " ;
print_r ( array_diff ( $article -> authors , $prodotto -> attributes [ $found_key ] -> options ));
echo " <br> " ;
if ( array_diff ( $prodotto -> attributes [ $found_key ] -> options , $article -> authors ) === array_diff ( $article -> authors , $prodotto -> attributes [ $found_key ] -> options )) {
$id = $prodotto -> id ;
echo " id = " . $id . " <br> " ;
}
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
if ( $id > 0 ) {
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Trovato " . $titolo . " <br> " ;
$product = Product :: find ( $id );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
2024-05-17 19:01:40 +02:00
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 6 ) {
2024-05-07 12:17:25 +02:00
$attributes [] = [
2024-05-17 19:01:40 +02:00
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
2024-05-07 12:17:25 +02:00
}
}
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
//dd($attributes);
$data = [
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
Product :: update ( $id , $data );
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $id );
$trovatosku = false ;
foreach ( $variations as $variation ) {
2024-05-17 19:01:40 +02:00
if ( $variation -> sku == $article -> IdProdotto ) {
2024-05-07 12:17:25 +02:00
$trovatosku = true ;
break ;
}
2024-05-17 19:01:40 +02:00
}
if ( ! $trovatosku ) {
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$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,
'attributes' => [
[
'id' => 6 ,
'option' => $formato
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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
],
]
];
Variation :: create ( $id , $data1 );
$newproduct = new Newproduct ();
$newproduct -> id_article = $article -> IdArticolo ;
$newproduct -> save ();
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
} else {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
if ( $productsku -> count () == 0 ) {
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Nuovo " . $titolo . " <br> " ;
$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 ]
],
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
],
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
],
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
'meta_data' => [
[
'key' => 'pagine' ,
'value' => $article -> Pagine
],
[
'key' => 'edizione' ,
'value' => $article -> Edizione
],
[
'key' => 'ristampa' ,
'value' => $article -> Ristampa
],
2024-06-21 13:19:35 +02:00
[
'key' => 'DataPubblicazione' ,
'value' => $article -> DataPubblicazione
],
2024-05-17 19:01:40 +02:00
[
'key' => 'misure' ,
'value' => $article -> Misure
],
[
'key' => 'isbn' ,
'value' => $article -> Ean13
],
[
'key' => 'formato' ,
'value' => $article -> DescrizioneFormato
],
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
];
if ( $productsku -> count () == 0 ) {
$product = Product :: create ( $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$idprodotto = $product [ 'id' ];
} else {
$idprodotto = $productsku [ 'parent_id' ];
Product :: update ( $idprodotto , $data );
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => $formato
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
];
if ( $productsku -> count () > 0 ) {
$variation = Variation :: update ( $idprodotto , $productsku [ 'id' ], $data1 );
} else {
$variation = Variation :: create ( $idprodotto , $data1 );
$newproduct = new Newproduct ();
$newproduct -> id_article = $article -> IdArticolo ;
$newproduct -> save ();
}
}
2024-05-07 12:17:25 +02:00
}
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/changeversion' , function () {
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
if ( $product -> id > 670 ) {
$old_attributes = $product -> attributes ;
$variations = Variation :: all ( $product -> id );
foreach ( $variations as $variation ) {
$old_variantion_attributes [ $variation -> id ] = $variation -> attributes [ 0 ] -> option ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
'attributes' => [
[
'id' => 1 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [ 'Nuovo' , 'Usato' ]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
'id' => 5 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$old_attributes [ 1 ] -> options
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
'id' => 2 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 2 ] -> options
],
2024-05-17 19:01:40 +02:00
[
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 3 ] -> options
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'default_attributes' => [
[
'id' => 1 ,
'option' => 'Nuovo'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
]
];
$product = Product :: update ( $product -> id , $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variations = Variation::all($product['id']);
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
$data1 = [
'attributes' => [
[
'id' => 1 ,
'option' => $old_variantion_attributes [ $variation -> id ]
]
]
];
2024-05-17 19:01:40 +02:00
$variationup = Variation :: update ( $product [ 'id' ], $variation -> id , $data1 );
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
echo " Finito " ;
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artlibrodvd' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','Epub')
-> where ( 'DescrizioneTipologia' , 'Dvd' )
-> orderBy ( 'Titolo' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
2024-05-07 12:17:25 +02:00
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
echo " Trovati " . $articles -> count () . " <br> " ;
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
echo $key . " - Sto proccessando " . $article -> Titolo . " <br> " ;
$titolo = null ;
$formato = null ;
$prodotti = null ;
/*
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 {
continue ;
}
*/
$titolo = $article -> Titolo ;
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'DVD' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo $titolo . " <br> " ;
$prodotti = new ModelsProduct ();
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
2024-05-07 12:17:25 +02:00
/*
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Ean13 . ' ' . $article -> Titolo . ' ' . implode ( " , " , $article -> authors ) . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . ' ' . $article -> QtaDisponibile . '<br>' ;
*/
$id = 0 ;
2024-05-17 19:01:40 +02:00
if ( ! is_null ( $prodotti ) && $prodotti -> count () > 0 ) {
foreach ( $prodotti as $prodotto ) {
echo $prodotto -> name . " <br> " ;
echo $titolo . " <br> " ;
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 ;
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
if ( $id > 0 ) {
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Trovato " . $titolo . " <br> " ;
$product = Product :: find ( $id );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
2024-05-17 19:01:40 +02:00
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 6 ) {
2024-05-07 12:17:25 +02:00
$attributes [] = [
2024-05-17 19:01:40 +02:00
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
2024-05-07 12:17:25 +02:00
}
}
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
//dd($attributes);
$data = [
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
Product :: update ( $id , $data );
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $id );
$trovatosku = false ;
foreach ( $variations as $variation ) {
2024-05-17 19:01:40 +02:00
if ( $variation -> sku == $article -> IdProdotto ) {
2024-05-07 12:17:25 +02:00
$trovatosku = true ;
break ;
}
}
2024-05-17 19:01:40 +02:00
if ( ! $trovatosku ) {
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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 ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
'id' => 6 ,
'option' => 'DVD'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
],
'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
],
]
];
Variation :: create ( $id , $data1 );
$newproduct = new Newproduct ();
$newproduct -> id_article = $article -> IdArticolo ;
$newproduct -> save ();
2024-05-07 12:17:25 +02:00
}
} else {
2024-05-17 19:01:40 +02:00
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
if ( $productsku -> count () == 0 ) {
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Nuovo " . $titolo . " <br> " ;
$category = Category :: where ( 'name' , $article -> argomento );
if ( $category -> count () > 0 ) {
$categoria = $category -> first ();
$categoriaid = $categoria [ 'id' ];
} else {
$categoriaid = 0 ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'name' => $titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
],
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'meta_data' => [
[
'key' => 'pagine' ,
'value' => $article -> Pagine
],
[
'key' => 'edizione' ,
'value' => $article -> Edizione
],
[
'key' => 'ristampa' ,
'value' => $article -> Ristampa
],
2024-06-21 13:19:35 +02:00
[
'key' => 'DataPubblicazione' ,
'value' => $article -> DataPubblicazione
],
2024-05-17 19:01:40 +02:00
[
'key' => 'misure' ,
'value' => $article -> Misure
],
[
'key' => 'isbn' ,
'value' => $article -> Ean13
],
[
'key' => 'formato' ,
'value' => $article -> DescrizioneFormato
],
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
if ( $productsku -> count () == 0 ) {
$product = Product :: create ( $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$idprodotto = $product [ 'id' ];
} else {
$idprodotto = $productsku [ 'parent_id' ];
Product :: update ( $idprodotto , $data );
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo " Aggiunto " . $article -> Titolo . " <br> " ;
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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 ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'DVD'
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
];
if ( $productsku -> count () > 0 ) {
$variation = Variation :: update ( $idprodotto , $productsku [ 'id' ], $data1 );
} else {
$variation = Variation :: create ( $idprodotto , $data1 );
$newproduct = new Newproduct ();
$newproduct -> id_article = $article -> IdArticolo ;
$newproduct -> save ();
}
}
2024-05-07 12:17:25 +02:00
}
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/changeversion' , function () {
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
if ( $product -> id > 670 ) {
$old_attributes = $product -> attributes ;
$variations = Variation :: all ( $product -> id );
foreach ( $variations as $variation ) {
$old_variantion_attributes [ $variation -> id ] = $variation -> attributes [ 0 ] -> option ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
'attributes' => [
[
'id' => 1 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [ 'Nuovo' , 'Usato' ]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
'id' => 5 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$old_attributes [ 1 ] -> options
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
'id' => 2 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 2 ] -> options
],
2024-05-17 19:01:40 +02:00
[
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 3 ] -> options
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'default_attributes' => [
[
'id' => 1 ,
'option' => 'Nuovo'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
]
];
$product = Product :: update ( $product -> id , $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variations = Variation::all($product['id']);
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
$data1 = [
'attributes' => [
[
'id' => 1 ,
'option' => $old_variantion_attributes [ $variation -> id ]
]
]
];
2024-05-17 19:01:40 +02:00
$variationup = Variation :: update ( $product [ 'id' ], $variation -> id , $data1 );
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
echo " Finito " ;
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/artondemand' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
$articles = Article :: join ( DB :: raw ( '(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'b.IdArticolo' )
-> on ( 'T_WEB_Articoli.DataOra' , '=' , 'b.data' );
})
2024-05-17 19:01:40 +02:00
-> 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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->groupBy('T_WEB_Articoli.IdArticolo')
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','Epub')
-> where ( 'DescrizioneTipologia' , 'Video On Demand' )
-> orderBy ( 'Titolo' )
//->take(5)
//->orderBy('ListaAutori')
-> get ();
/*
-> chunk ( 100 , function ( $articles ) {
foreach ( $articles as $article ){
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Titolo . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . '<br>' ;
}
});
*/
2024-05-07 12:17:25 +02:00
//dd($articles);
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
echo " Trovati " . $articles -> count () . " <br> " ;
foreach ( $articles as $key => $article ) {
2024-05-07 12:17:25 +02:00
echo $key . " - Sto proccessando " . $article -> Titolo . " <br> " ;
$titolo = null ;
$formato = null ;
$prodotti = null ;
2024-05-17 19:01:40 +02:00
if ( $article -> DescrizioneFormato === 'Streaming' ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'STR' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Streaming' ;
2024-05-17 19:01:40 +02:00
} elseif ( $article -> DescrizioneFormato === 'Download' ) {
$titolo = rtrim ( str_ireplace ( 'VOD' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
$formato = 'Download' ;
2024-05-17 19:01:40 +02:00
} else {
2024-05-07 12:17:25 +02:00
continue ;
}
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( '_' , '' , $titolo ));
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '-' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( $titolo , '_' );
2024-05-07 12:17:25 +02:00
$titolo = rtrim ( $titolo );
2024-05-17 19:01:40 +02:00
echo $titolo . " <br> " ;
$prodotti = new ModelsProduct ();
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
2024-05-07 12:17:25 +02:00
/*
echo $article -> Id . ' ' . $article -> IdArticolo . ' ' . $article -> Ean13 . ' ' . $article -> Titolo . ' ' . implode ( " , " , $article -> authors ) . ' ' . $article -> DescrizioneStatoProdotto . ' ' . $article -> DescrizioneFormato . ' ' . $article -> QtaDisponibile . '<br>' ;
*/
$id = 0 ;
2024-05-17 19:01:40 +02:00
if ( ! is_null ( $prodotti ) && $prodotti -> count () > 0 ) {
foreach ( $prodotti as $prodotto ) {
echo $prodotto -> name . " <br> " ;
echo $titolo . " <br> " ;
if ( strtolower ( $prodotto -> name ) === strtolower ( $titolo )) {
echo " Trovato titolo uguale " . " <br> " ;
$found_key = array_search ( 'Autore libro' , array_column ( $prodotto -> attributes , 'name' ));
echo implode ( " , " , $prodotto -> attributes [ $found_key ] -> options ) . '|' . implode ( " , " , $article -> authors ) . " <br> " ;
if ( array_diff ( $prodotto -> attributes [ $found_key ] -> options , $article -> authors ) === array_diff ( $article -> authors , $prodotto -> attributes [ $found_key ] -> options ))
$id = $prodotto -> id ;
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
if ( $id > 0 ) {
2024-05-07 12:17:25 +02:00
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Trovato " . $titolo . " <br> " ;
} else {
2024-05-17 19:01:40 +02:00
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
if ( $productsku -> count () == 0 ) {
//$sku = Product::where('sku',$article->IdArticolo)->first();
echo " Nuovo " . $titolo . " <br> " ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo " Aggiunto " . $article -> Titolo . " <br> " ;
}
}
2024-05-07 12:17:25 +02:00
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
Route :: get ( '/changeversion' , function () {
set_time_limit ( 0 );
$page = 1 ;
$all_products = new Collection ();
do {
2024-05-07 12:17:25 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page ]);
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $product ) {
if ( $product -> id > 670 ) {
$old_attributes = $product -> attributes ;
$variations = Variation :: all ( $product -> id );
foreach ( $variations as $variation ) {
$old_variantion_attributes [ $variation -> id ] = $variation -> attributes [ 0 ] -> option ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
'attributes' => [
[
'id' => 1 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [ 'Nuovo' , 'Usato' ]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
'id' => 5 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$old_attributes [ 1 ] -> options
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
[
'id' => 2 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 2 ] -> options
],
2024-05-17 19:01:40 +02:00
[
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
2024-05-07 12:17:25 +02:00
$old_attributes [ 3 ] -> options
2024-05-17 19:01:40 +02:00
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'default_attributes' => [
[
'id' => 1 ,
'option' => 'Nuovo'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
]
];
$product = Product :: update ( $product -> id , $data );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variations = Variation::all($product['id']);
foreach ( $variations as $variation ) {
2024-05-07 12:17:25 +02:00
$data1 = [
'attributes' => [
[
'id' => 1 ,
'option' => $old_variantion_attributes [ $variation -> id ]
]
]
];
2024-05-17 19:01:40 +02:00
$variationup = Variation :: update ( $product [ 'id' ], $variation -> id , $data1 );
}
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
echo " Finito " ;
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/appoggio' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
$page = 1 ;
$key = 0 ;
$all_products = new Collection ();
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page , 'orderby' => 'title' , 'order' => 'asc' ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
foreach ( $products as $product ) {
echo ++ $key . " | " . $product -> name . " | " . $product -> id ;
2024-05-07 12:17:25 +02:00
$variations = Variation :: all ( $product -> id );
2024-05-17 19:01:40 +02:00
foreach ( $variations as $variation ) {
if ( ! Gm_product :: where ( 'id_gm' , $variation -> sku ) -> exists ()) {
2024-05-07 12:17:25 +02:00
$gmproduct = new Gm_product ();
$gmproduct -> id_gm = $variation -> sku ;
$gmproduct -> wc_id = $variation -> id ;
$gmproduct -> wc_parentid = $product -> id ;
$gmproduct -> save ();
}
}
echo " <br> " ;
}
2024-05-17 19:01:40 +02:00
//$all_products = $all_products->merge($products);
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
//} while ($page == 1);
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/updateproducts' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
2024-05-17 19:01:40 +02:00
$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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdStatoProdotto' , '=' , 'f.IdStatoProdotto' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdTipologia' , '=' , 'i.IdTipologia' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$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)
2024-05-17 19:01:40 +02:00
-> where ( 'data' , '>=' , $fromtime )
2024-05-07 12:17:25 +02:00
-> where ( function ( $query ) {
2024-05-17 19:01:40 +02:00
$query -> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
-> orWhere ( 'DescrizioneStatoProdotto' , 'Prossima uscita' );
2024-05-07 12:17:25 +02:00
})
//->where('DescrizioneTipologia','Video Streaming')
-> orderBy ( 'Titolo' )
-> get ();
2024-05-17 19:01:40 +02:00
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
foreach ( $articles as $article ) {
echo $article -> IdArticolo . " - " . $article -> Titolo . " - " . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $article -> DescrizioneStatoProdotto . ' - ' . $article -> data . " - " . $article -> Id . " <br> " ;
}
/*
2024-05-07 12:17:25 +02:00
\Log :: channel ( 'updateproducts' ) -> notice ( 'Inizio da ' . $settingora -> value . " \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 );
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . '<br>' ;
$log .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . " \n " ;
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 " ;
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 );
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . '<br>' ;
$log .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . " \n " ;
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 );
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . '<br>' ;
$log .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . " \n " ;
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 " ;
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 );
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . '<br>' ;
$log .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . ' - ' . $variation [ 'permalink' ] . " \n " ;
break ;
}
} else {
$data1 = [
'regular_price' => $article -> PrezzoIvato ,
'sale_price' => $article -> PrezzoIvatoScontatoCampagna ,
'date_on_sale_from' => $article -> DataInizioCampagna ,
'date_on_sale_to' => $article -> DataFineCampagna ,
'stock_quantity' => $article -> stock ,
];
$idprodotto = $productsku [ 'parent_id' ];
if ( $idprodotto > 0 ){
$variation = Variation :: update ( $idprodotto , $productsku [ 'id' ], $data1 );
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - Articolo aggiornato - ' . $variation [ 'permalink' ] . '<br>' ;
$log2 .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - Articolo aggiornato - ' . $variation [ 'permalink' ] . " \n " ;
}
}
} catch ( \Exception $e ) {
$log3 .= $article -> IdArticolo . ' - ' . $article -> Titolo . " \n " ;
}
}
echo $log1 ;
$settingora -> value = $ora_update ;
$settingora -> save ();
\Log :: channel ( 'updateproducts' ) -> notice ( $log . $log2 . $log1 . $log3 );
Mail :: raw ( $log . $log2 . $log1 . $log3 , function ( $message ) {
$message -> to ( " luca.pecos@gmail.com " );
//$message->bcc('luca@pecos.it');
$message -> subject ( " Inserimento nuovi prodotti " );
});
*/
2024-05-17 19:01:40 +02:00
echo " FINITO!!! " ;
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/emailtest' , function () {
Mail :: html ( 'Prova email <b>2</b>' , function ( $message ) {
2024-05-10 22:31:47 +00:00
$message -> to ( " luca.pecos@gmail.com " );
2024-05-07 12:17:25 +02:00
$message -> subject ( " Prova email " );
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
});
Route :: get ( 'createlog' , function () {
2024-06-20 14:18:45 +02:00
Log :: channel ( 'updateproducts' ) -> notice ( 'This is testing for updateproducts!' . " \n " . 'Ciao' );
Log :: channel ( 'updateproducts' ) -> info ( 'This is testing for updateproducts! 2' . " \n " . 'Ciao' );
2024-05-07 12:17:25 +02:00
dd ( 'done' );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/streamingdvd' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
ob_end_flush ();
ob_implicit_flush ( true );
$page = 1 ;
$i = 1 ;
2024-05-17 19:01:40 +02:00
do {
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page , 'after' => '2022-08-09T00:00:00' ]);
//$all_products = $all_products->merge($products);
foreach ( $products as $product ) {
echo $i ++ . ' - ' . $product -> id . " <br> " ;
if ( $product -> description == '' && $product -> type == 'variable' ) {
$variations = Variation :: all ( $product -> id );
foreach ( $variations as $variation ) {
$found_key_version = array_search ( 'Versione' , array_column ( $variation -> attributes , 'name' ));
switch ( $variation -> attributes [ $found_key_version ] -> option ) {
case 'Nuovo' :
case 'Usato' :
case 'PDF' :
case 'Epub' :
case 'Mobi' :
case 'DVD' :
case 'Streaming' :
case 'Download' :
$artnimaia = Artnim :: where ( 'id_gm' , $variation -> sku ) -> first ();
if ( $artnimaia ) {
$data = [];
$letterainiziale = strtolower ( substr ( $artnimaia -> titolo , 0 , 1 ));
$data [ 'description' ] = $artnimaia -> descrizione ;
$data [ 'meta_data' ] = [[ 'key' => 'prima_edizione' , 'value' => $artnimaia -> prima_edizione ]];
if ( $artnimaia -> img != '' && count ( $product -> images ) == 0 ) {
$file = env ( 'WOOCOMMERCE_STORE_URL' ) . 'wp-content/uploads/web/' . $letterainiziale . '/' . $artnimaia -> img ;
$file_headers = @ get_headers ( $file );
if ( $file_headers [ 0 ] == 'HTTP/1.1 404 Not Found' || $file_headers [ 0 ] == 'HTTP/1.1 301 Moved Permanently' ) {
$img = false ;
} else {
$img = true ;
$data [ 'images' ] = [
[
'src' => env ( 'WOOCOMMERCE_STORE_URL' ) . 'wp-content/uploads/web/' . $letterainiziale . '/' . $artnimaia -> img
]
];
}
}
Product :: update ( $product -> id , $data );
echo 'ID: ' . $product -> id . ' - ' . $product -> name . " <br> " ;
}
continue 3 ;
}
2024-05-07 12:17:25 +02:00
}
}
}
2024-05-17 19:01:40 +02:00
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
echo " Finito!! " ;
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/tipologiatest' , function () {
2024-05-07 12:17:25 +02:00
$product = new Product ();
$product = Product :: find ( 85 );
dd ( $product );
/*
$found_key_version = array_search ( 'Tipologia' , array_column ( $product [ 'attributes' ], 'name' ));
$tipologia = ( $product [ 'attributes' ][ $found_key_version ] -> options );
$tipologia [] = 'Straming' ;
$product = $product -> map ( function ( $object ) use ( $tipologia , $found_key_version ){
$object -> attributes [ $found_key_version ] -> options = $tipologia ;
});
*/
$product [ 'description' ] = " Prova inserimento con api " ;
Product :: save ( $product );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/wpposts' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
ob_end_flush ();
ob_implicit_flush ( true );
$log = " " ;
$page = 1 ;
$all_products = new Collection ();
2024-05-17 19:01:40 +02:00
do {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$products = Product :: all ( $options = [ 'per_page' => 100 , 'page' => $page , 'search' => '[youtube=' ]);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$all_products = $all_products -> merge ( $products );
$page ++ ;
2024-05-07 12:17:25 +02:00
} while ( $products -> count () > 0 );
//dd($all_products);
2024-05-17 19:01:40 +02:00
foreach ( $all_products as $key => $product ) {
try {
$data [ 'description' ] = preg_replace ( '/(<a\sname="video.?"><\/a>)?(\[youtube=)((https??:\/\/)?(?:youtu\.be\/|(?:www\.|m\.)?youtube\.com\/(?:watch|v|embed)(?:\.php)?(?:\?.*v=|\/))([a-zA-Z0-9\-_]+))(\])/' , '$3' , $product -> description );
// dd($data['description']);
Product :: update ( $product -> id , $data );
echo $product -> name . " <br> " ;
$log .= '<a href="' . $product -> permalink . '">' . $product -> name . '</a><br>' ;
} catch ( \Exception $e ) {
$log .= 'NON RIUSCiTO <a href="' . $product -> permalink . '">' . $product -> name . '</a><br>' ;
}
2024-05-07 12:17:25 +02:00
}
echo " Finito " ;
2024-05-17 19:01:40 +02:00
Mail :: html ( $log , function ( $message ) {
2024-05-10 22:31:47 +00:00
$message -> to ( " luca.pecos@gmail.com " );
2024-05-07 12:17:25 +02:00
//$message->bcc('luca@pecos.it');
$message -> subject ( " Youtube " );
2024-05-17 19:01:40 +02:00
});
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/prossimauscita' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
2024-05-17 19:01:40 +02:00
$ora_update = Carbon :: now ();
$settingora = Setting :: where ( 'key' , 'update_products' ) -> first ();
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdStatoProdotto' , '=' , 'f.IdStatoProdotto' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdTipologia' , '=' , 'i.IdTipologia' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdTipoFormato' , '=' , 'n.IdTipoFormato' );
})
2024-05-17 19:01:40 +02:00
-> 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 ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Articoli.IdArticolo' , '=' , 'q.Codice' );
})
2024-05-17 19:01:40 +02:00
-> where ( 'T_WEB_Articoli.DataOra' , '>' , '2022-01-01' )
-> where ( 'DescrizioneStatoProdotto' , 'Prossima uscita' )
2024-05-07 12:17:25 +02:00
//->where('DescrizioneTipologia','Video Streaming')
-> orderBy ( 'Titolo' )
-> get ();
2024-05-17 19:01:40 +02:00
ob_end_flush ();
ob_implicit_flush ( true );
2024-06-20 14:18:45 +02:00
Log :: channel ( 'updateproducts' ) -> notice ( 'Inizio da ' . $settingora -> value . " \n " );
2024-05-17 19:01:40 +02:00
$log = 'PRODOTTI INSERITI' . " \n " ;
$log1 = 'EVENTUALI PRODOTTI NON INSERITI' . " \n " ;
foreach ( $articles as $article ) {
$productsku = Product :: where ( 'sku' , $article -> IdArticolo ) -> first ();
//if(Gm_product::where('id_gm',$article->IdArticolo)->doesntExist())
if ( $productsku -> count () == 0 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$titolo = null ;
$formato = null ;
$prodotti = null ;
$prodotti = new ModelsProduct ();
$titolo = $article -> Titolo ;
switch ( $article -> DescrizioneTipologia ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
case 'Libri' :
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$prodotti = $prodotti -> where ( 'name' , $titolo ) -> get ();
$id = 0 ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
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 ;
}
2024-05-07 12:17:25 +02:00
}
}
}
}
2024-05-17 19:01:40 +02:00
}
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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 ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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
2024-05-07 12:17:25 +02:00
],
2024-06-21 13:19:35 +02:00
[
'key' => 'DataPubblicazione' ,
'value' => $article -> DataPubblicazione
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
];
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 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'name' => $article -> Titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'status' => 'draft' ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//'description' => 'Simple product full description.',
//'short_description' => 'Simple product short description.',
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
]
],
2024-05-17 19:01:40 +02:00
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$product = Product::create($data);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$idprodotto= $product['id'];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variation = Variation::create($idprodotto, $data1);
//dd($variation);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
} else {
$versione = " Aggiunta versione " ;
$product = Product :: find ( $id );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 6 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$attributes [] = [
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
2024-05-07 12:17:25 +02:00
];
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
];
//dd($attributes);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
//Product::update($id, $data);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variation = Variation::create($id, $data1);
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . '<br>' ;
//$log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']. "\n";
break ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
case 'E-book' :
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( $article -> DescrizioneFormato === 'Epub' ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$titolo = rtrim ( str_ireplace ( 'EPUB' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$formato = 'Epub' ;
} elseif ( $article -> DescrizioneFormato === 'Pdf' ) {
$titolo = rtrim ( str_ireplace ( 'PDF' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$formato = 'PDF' ;
} elseif ( $article -> DescrizioneFormato === 'Mobi' ) {
$titolo = rtrim ( str_ireplace ( 'MOBI' , '' , $article -> Titolo ));
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$formato = 'Mobi' ;
} else {
$log1 .= $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . " \n " ;
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 ;
}
}
2024-05-07 12:17:25 +02:00
}
}
}
2024-05-17 19:01:40 +02:00
}
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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' ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
'id' => 6 ,
'option' => $formato
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$versione = 'Nuova versione' ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$category = Category :: where ( 'name' , $article -> argomento );
if ( $category -> count () > 0 ) {
$categoria = $category -> first ();
$categoriaid = $categoria [ 'id' ];
} else {
$categoriaid = 0 ;
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'name' => $titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'status' => 'draft' ,
2024-05-07 12:17:25 +02:00
'attributes' => [
[
2024-05-17 19:01:40 +02:00
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
],
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
2024-05-07 12:17:25 +02:00
]
2024-05-17 19:01:40 +02:00
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$product = Product::create($data);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$idprodotto= $product['id'];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variation = Variation::create($idprodotto, $data1);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
} else {
$versione = " Aggiunta versione " ;
$product = Product :: find ( $id );
$old_attributes = $product [ 'attributes' ];
$attributes = [];
foreach ( $old_attributes as $old_attribute ) {
if ( $old_attribute -> id <> 6 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$attributes [] = [
'id' => $old_attribute -> id ,
'variation' => $old_attribute -> variation ,
'visible' => $old_attribute -> visible ,
'options' => $old_attribute -> options
];
}
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
];
//dd($attributes);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
//Product::update($id, $data);
//$variation = Variation::create($id, $data1);
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . '<br>' ;
//$log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n";
break ;
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
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 ;
}
}
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
}
}
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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'
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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 ;
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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.',
2024-05-07 12:17:25 +02:00
'attributes' => [
[
2024-05-17 19:01:40 +02:00
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
2024-05-07 12:17:25 +02:00
],
2024-05-17 19:01:40 +02:00
2024-05-07 12:17:25 +02:00
[
2024-05-17 19:01:40 +02:00
//'id' => 5,
'id' => 7 ,
'visible' => true ,
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
],
[
2024-05-17 19:01:40 +02:00
//'id' => 2,
'id' => 8 ,
'visible' => true ,
'options' => [
$article -> editore
]
2024-05-07 12:17:25 +02:00
],
[
2024-05-17 19:01:40 +02:00
//'id' => 7,
'id' => 9 ,
'visible' => true ,
'options' => [
$article -> DescrizioneTipologia
]
]
],
'default_attributes' => [
2024-05-07 12:17:25 +02:00
[
2024-05-17 19:01:40 +02:00
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
],
2024-05-07 12:17:25 +02:00
];
2024-05-17 19:01:40 +02:00
//$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
];
2024-05-07 12:17:25 +02:00
}
2024-05-17 19:01:40 +02:00
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
];
//dd($attributes);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
'attributes' => $attributes
];
//Product::update($id, $data);
//$variation = Variation::create($id, $data1);
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . '<br>' ;
// $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n";
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 " ;
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 ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
if ( strtolower ( $prodotto -> name ) === strtolower ( $titolo )) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$found_key = array_search ( 'Autore libro' , array_column ( $prodotto -> attributes , 'name' ));
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
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 ;
}
}
}
}
}
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data1 = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'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 ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => [
[
'id' => 6 ,
'option' => $formato
]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'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 ;
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'name' => $titolo ,
'type' => 'variable' ,
'short_description' => $article -> Sottotitolo ,
'categories' => [
[ 'id' => $categoriaid ]
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
'status' => 'draft' ,
'attributes' => [
[
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
2024-05-07 12:17:25 +02:00
]
],
2024-05-17 19:01:40 +02:00
[
//'id' => 5,
'id' => 7 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' =>
$article -> authors
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
],
[
//'id' => 2,
'id' => 8 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> editore
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
],
[
//'id' => 7,
'id' => 9 ,
'visible' => true ,
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'options' => [
$article -> DescrizioneTipologia
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
]
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'default_attributes' => [
[
//'id' => 1,
'id' => 6 ,
'option' => 'Nuovo'
]
],
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$product = Product::create($data);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$idprodotto= $product['id'];
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
//$variation = Variation::create($idprodotto, $data1);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
} 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
];
}
}
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$attributes [] = [
//'id' => 1,
'id' => 6 ,
'position' => 0 ,
'visible' => true ,
'variation' => true ,
'options' => [
'Nuovo' ,
'Usato' ,
'PDF' ,
'Epub' ,
'Mobi' ,
'DVD' ,
'Streaming' ,
'Download'
]
];
//dd($attributes);
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$data = [
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
'attributes' => $attributes
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
];
//Product::update($id, $data);
//$variation = Variation::create($id, $data1);
}
echo $article -> Titolo . ' - ' . $article -> DescrizioneTipologia . ' - ' . $article -> DescrizioneFormato . ' - ' . $versione . '<br>' ;
// $log .= $article->Titolo . ' - ' . $article->DescrizioneTipologia . ' - ' .$article->DescrizioneFormato . ' - '. $versione . ' - ' . $variation['permalink']."\n";
break ;
2024-05-07 12:17:25 +02:00
}
}
2024-05-17 19:01:40 +02:00
}
echo $log1 ;
echo " FINITO!!! " ;
//$settingora->value = $ora_update;
//$settingora->save();
2024-06-20 14:18:45 +02:00
Log :: channel ( 'updateproducts' ) -> notice ( $log . $log1 );
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/articolidadata' , function () {
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 );
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
$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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
-> where ( 'data' , '>=' , $fromtime )
-> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
//->where('Titolo','Incredibilmente crudo')
//->where('DescrizioneTipologia','Video Streaming')
-> orderBy ( 'Titolo' )
-> get ();
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
ob_end_flush ();
ob_implicit_flush ( true );
foreach ( $articles as $article ) {
2024-05-07 12:17:25 +02:00
2024-05-17 19:01:40 +02:00
echo $article -> IdArticolo . " | " . $article -> Titolo . " | " . $article -> DescrizioneStatoProdotto . " | " . $article -> DescrizioneTipologia . " | " . $article -> DescrizioneFormato . " | " . $article -> QtaDisponibile . " | " . $article -> data . " <br> " ;
}
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/quantita' , function () {
$articles = Stock :: join ( DB :: raw ( '(SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p' ), function ( $join ) {
2024-05-07 12:17:25 +02:00
$join -> on ( 'T_WEB_Disponibile.Codice' , '=' , 'p.Codice' )
2024-05-17 19:01:40 +02:00
-> on ( 'T_WEB_Disponibile.DataOra' , '=' , 'p.data1' );
2024-05-07 12:17:25 +02:00
})
2024-05-17 19:01:40 +02:00
-> where ( 'DataOra' , '>' , '20220804' )
-> orderBy ( 'T_WEB_Disponibile.Codice' )
-> get ();
2024-05-07 12:17:25 +02:00
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
foreach ( $articles as $article ) {
echo $article -> Codice . ' - ' . $article -> QtaDisponibile . ' - ' . $article -> DataOra . '<br>' ;
2024-05-07 12:17:25 +02:00
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/autori' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
ob_end_flush ();
ob_implicit_flush ( true );
2024-05-17 19:01:40 +02:00
$authors = Author :: join (
DB :: raw ( '(SELECT IdAutore, MAX(DataOra) AS data FROM T_WEB_Autori GROUP BY IdAutore) b' ),
function ( $join ) {
$join -> on ( 'T_WEB_Autori.IdAutore' , '=' , 'b.IdAutore' )
-> on ( 'T_WEB_Autori.DataOra' , '=' , 'b.data' );
}
) -> orderBy ( 'T_WEB_Autori.IdAutore' ) -> where ( 'T_WEB_Autori.IdAutore' , '>' , 351 ) -> get ();
2024-05-07 12:17:25 +02:00
//dd($authors);
$attribute_id = 7 ;
2024-05-17 19:01:40 +02:00
foreach ( $authors as $author ) {
2024-05-07 12:17:25 +02:00
//echo $author->IdAutore . " - " .$author->Nome . " " .$author->Cognome."<br>";
$ricercaautore = ( $author -> Nome != '' ? trim ( $author -> Nome ) . " " : '' ) . trim ( $author -> Cognome );
2024-05-17 19:01:40 +02:00
echo $author -> Id . " - " . $author -> IdAutore . " - " . $ricercaautore . " <br> " ;
$terms = Term :: all ( $attribute_id , $options = [ 'search' => $ricercaautore ]);
foreach ( $terms as $term ) {
if ( strcmp ( $term -> name , $ricercaautore ) == 0 ) {
2024-05-07 12:17:25 +02:00
$data = [
'name' => trim ( $author -> Nome ) . " , " . trim ( $author -> Cognome )
];
$term_id = $term -> id ;
$termupdate = Term :: update ( $attribute_id , $term_id , $data );
2024-05-17 19:01:40 +02:00
echo $ricercaautore . " => " . $termupdate [ 'name' ] . " <br> " ;
2024-05-07 12:17:25 +02:00
break ;
}
}
}
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/wooorders' , function () {
2024-05-07 12:17:25 +02:00
/* $all_orders = new Collection ();
$page = 1 ;
do {
$orders = FacadesOrder :: all ( $options = [ 'per_page' => 100 , 'page' => $page , 'status' => [ " pending " , " processing " , " on-hold " ]]);
$all_orders = $all_orders -> merge ( $orders );
$page ++ ;
} while ( $orders -> count () > 0 );
dd ( $all_orders );
foreach ( $all_orders as $order ){
echo $order -> id . " <br> " ;
}
*/
2024-05-17 19:01:40 +02:00
/*
2024-05-07 12:17:25 +02:00
$data = [
'status' => 'completed' ,
];
$order = FacadesOrder :: update ( 142 , $data );
echo " fatto " ;
*/
2024-05-17 19:01:40 +02:00
$orders = Order :: where ( 'IdInternet' , 28380 ) -> latest ( 'DataOra' ) -> first ();
if ( ! $orders ) {
echo " inserisci " ;
}
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test30/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$clienti = Orderdetail :: where ( 'IdInternet' , $id ) -> get ();
/*
$clienti = Clientegm :: where ( 'IdInternet' , 37438 ) -> first ();
$clienti -> IdNazione = 227 ;
$clienti -> save ();
*/
dd ( $clienti );
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test31' , function () {
2024-05-07 12:17:25 +02:00
$ora_update = Carbon :: now ();
2024-05-17 19:01:40 +02:00
$settingora = Setting :: where ( 'key' , 'update_products' ) -> first ();
2024-05-07 12:17:25 +02:00
//echo $ora_update->diffInDays($settingora->value);
$totime = new Carbon ( $settingora -> value );
$totime = $totime -> addDays ( 15 );
2024-05-17 19:01:40 +02:00
$totime = str_replace ( '-' , '' , $totime );
2024-05-07 12:17:25 +02:00
echo $totime ;
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/test32' , function () {
2024-05-07 12:17:25 +02:00
set_time_limit ( 0 );
2024-05-17 19:01:40 +02:00
ini_set ( " memory_limit " , " 512M " );
/* $ora_update = Carbon :: now ();
2024-05-07 12:17:25 +02:00
$settingora = Setting :: where ( 'key' , 'update_products' ) -> first ();
$fromtime = str_replace ( '-' , '' , $settingora -> value );
*/
2024-05-17 19:01:40 +02:00
$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' );
})
/*
2024-05-07 12:17:25 +02:00
-> 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' );
})
*/
2024-05-17 19:01:40 +02:00
//->where('T_WEB_Articoli.DataOra','>',$settingora->value)
-> where ( 'data' , '>=' , '20221110 08:00:00' )
-> where ( function ( $query ) {
$query -> where ( 'DescrizioneStatoProdotto' , 'In commercio' )
-> orWhere ( 'DescrizioneStatoProdotto' , 'In prevendita' )
-> orWhere ( 'DescrizioneStatoProdotto' , 'Prossima uscita' );
})
//->where('DescrizioneTipologia','Video Streaming')
-> orderBy ( 'Titolo' )
-> get ();
dd ( $articles );
2024-05-07 12:17:25 +02:00
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/order/{id}' , function ( $id ) {
2024-05-07 12:17:25 +02:00
$orderwoo = FacadesOrder :: find ( $id );
$customer = Customer :: find ( $orderwoo [ 'customer_id' ]);
dd ( $customer );
dd ( $orderwoo );
/*
$changedest = false ;
if (( $orderwoo [ 'shipping' ] -> address_1 != null && $orderwoo [ 'shipping' ] -> address_1 != '' && $orderwoo [ 'shipping' ] -> address_1 != $orderwoo [ 'billing' ] -> address_1 ) || ( $orderwoo [ 'shipping' ] -> first_name != null && $orderwoo [ 'shipping' ] -> first_name != '' && $orderwoo [ 'shipping' ] -> first_name != $orderwoo [ 'billing' ] -> first_name ) ){
$changedest = true ;
}
$order = new Order ();
$order -> IdInternet = $orderwoo [ 'id' ];
$order -> CodClienteInternet = $orderwoo [ 'customer_id' ];
$order -> Enabled = 1 ;
$order -> DataOra = $orderwoo [ 'date_created' ];
$order -> Note = $orderwoo [ 'customer_note' ];
$order -> Totale = $orderwoo [ 'total' ];
if ( $orderwoo [ 'payment_method' ] == 'wc_gateway_gestpay' ){
$order -> CodPagamentoGM = 'CARTASELLA' ;
}
if ( $orderwoo [ 'payment_method' ] == 'bacs' ){
$order -> CodPagamentoGM = 'BONIFPOSTALE' ;
$order -> FlagSospeso = 1 ;
}
$order -> Spedizioniere = 'POSTE' ;
if ( $changedest )
{
$order -> CodDestInternet = $orderwoo [ 'customer_id' ];
}
$order -> save ();
$prodotti = $orderwoo [ 'line_items' ];
foreach ( $prodotti as $prodotto ){
$orderdetail = new Orderdetail ();
$orderdetail -> IdInternet = $orderwoo [ 'id' ];
$orderdetail -> CodArticoloGM = $prodotto -> sku ;
$orderdetail -> Qta = $prodotto -> quantity ;
$orderdetail -> PrezzoLordo = $prodotto -> total ;
$orderdetail -> Enabled = 1 ;
$orderdetail -> DataOra = $orderwoo [ 'date_created' ];
$orderdetail -> save ();
}
$customer = Customer :: find ( $orderwoo [ 'customer_id' ]);
$cliente = new Clientegm ();
$cliente -> CodClienteInternet = $customer [ 'id' ];
$cliente -> Nominativo = $customer [ 'last_name' ] . " " . $customer [ 'first_name' ];
$cliente -> Indirizzo = $customer [ 'billing' ] -> address_1 . " " . $customer [ 'billing' ] -> address_2 ;
$cliente -> Citta = $customer [ 'billing' ] -> city ;
$cliente -> Cap = $customer [ 'billing' ] -> postcode ;
$cliente -> Provincia = $customer [ 'billing' ] -> state ;
$cliente -> Telefono = $customer [ 'billing' ] -> phone ;
$cliente -> Email = $customer [ 'billing' ] -> email ;
$cliente -> IdNazione = 227 ;
$metas = $customer [ 'meta_data' ];
foreach ( $metas as $meta )
{
if ( $meta -> key == 'cod_fiscale' )
{
$cliente -> CodiceFiscale = $meta -> value ;
}
elseif ( $meta -> key == 'vat' )
{
$cliente -> PIVA = $meta -> value ;
}
}
$cliente -> IdInternet = $order [ 'id' ];
$cliente -> save ();
if ( $changedest ){
$clientedest = new Clientegmdest ();
$clientedest -> CodDestInternet = $order [ 'customer_id' ];
$clientedest -> Nominativo = $order [ 'shipping' ] -> last_name . " " . $order [ 'shipping' ] -> first_name ;
$clientedest -> Indirizzo = $order [ 'shipping' ] -> address_1 . " " . $order [ 'shipping' ] -> address_2 ;
$clientedest -> Citta = $order [ 'shipping' ] -> city ;
$clientedest -> Cap = $order [ 'shipping' ] -> postcode ;
$clientedest -> Provincia = $order [ 'shipping' ] -> state ;
$clientedest -> Telefono = $order [ 'shipping' ] -> phone ;
$cliente -> IdNazione = 227 ;
$clientedest -> IdInternet = $order [ 'id' ];
$clientedest -> save ();
Log :: info ( 'Inserito ordine' );
}
//dd($order['billing']->first_name);
//echo $order->id ."<br>";
//echo $order->billing['first_name'];
$prodotti = $order [ 'line_items' ];
foreach ( $prodotti as $prodotto ){
echo $prodotto -> sku . " <br> " ;
}
*/
});
2024-05-17 19:01:40 +02:00
Route :: get ( '/ordineclientegm/{id}' , function ( $id ) {
$clients = Clientegm :: where ( 'CodClienteInternet' , $id ) -> get ();
dd ( $clients );
2024-05-07 12:17:25 +02:00
});
2024-05-16 19:27:26 +02:00
Route :: get ( '/provapao' , [ TestPaoController :: class , 'provapao' ]);
2024-05-17 19:01:40 +02:00
2024-05-19 13:28:08 +02:00
Route :: get ( '/aggiornapreorder/{idarticolo}/{aggiornapreordine}' , function ( $idarticolo , $aggiornapreordine ) {
2024-05-20 01:23:47 +02:00
setPreOrder ( $idarticolo , $aggiornapreordine , true );
2024-05-17 19:01:40 +02:00
});
2024-05-18 17:37:12 +02:00
2024-06-21 13:19:35 +02:00
Route :: get ( '/aggiornadatapubblicazione/{idarticolo}' , function ( $idarticolo ) {
setDataPubblicazione ( $idarticolo , true );
});
2024-05-18 17:37:12 +02:00
Route :: get ( '/paolibri' , function () {
set_time_limit ( 0 );
$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', 'usato')
//->where(function($query){
//->where('DescrizioneStatoProdotto','Usato')
-> where ( function ( $query ) {
2024-05-21 00:42:31 +02:00
$query -> where ( 'DescrizioneStatoProdotto' , 'In prevendita' );
2024-05-18 17:37:12 +02:00
})
-> where ( DB :: raw ( 'CONVERT(INT, QtaDisponibile)' ), '>' , 0 )
-> where ( 'DescrizioneFormato' , 'brossura' )
-> where ( 'DescrizioneTipologia' , 'Libri' )
-> orderBy ( 'DataPubblicazione' , 'desc' )
-> get ();
$sep = ' | ' ;
$ind = 1 ;
foreach ( $articles as $article ) {
// $titolo = rtrim(str_ireplace('USATO', '', $article->Titolo));
$mydatestr = $article -> DataPubblicazione ;
echo '[' . $ind . ']' . $sep . $mydatestr . $sep . $article -> Id . $sep . $article -> IdArticolo . $sep . $article -> Titolo . $sep . $article -> DescrizioneStatoProdotto . $sep . $article -> DescrizioneFormato . '[Quantita = ' . $article -> QtaDisponibile . '] <br>' ;
// $prodotti = Product::where('name', $titolo)->get();
//$sku = Product::where('sku',6563)->first();
$ind ++ ;
}
});
2024-06-13 13:58:47 +02:00
Route :: get ( '/mylinkspao' , function ( Illuminate\Http\Request $request ) {
2024-06-13 14:13:09 +02:00
try {
$id = $request -> query ( 'id' );
2024-06-13 14:21:47 +02:00
$action = $request -> query ( 'action' );
2024-06-13 14:13:09 +02:00
} catch ( \Exception $e ) {
$id = '' ;
2024-06-13 14:21:47 +02:00
$action = '' ;
2024-06-13 14:13:09 +02:00
}
2024-06-13 14:21:47 +02:00
return view ( 'mylinkspao' , [ 'id' => $id , 'action' => $action ]);
2024-05-20 23:20:37 +02:00
});
2024-05-20 23:34:53 +02:00
Route :: get ( '/handle-article-action-pao/{id}/{action}' , function ( $id , $action ) {
2024-05-21 01:08:30 +02:00
set_time_limit ( 0 );
ini_set ( " memory_limit " , " 512M " );
2024-06-20 14:00:57 +02:00
2024-05-20 23:20:37 +02:00
if ( $action == 'search' ) {
// Logica di ricerca dell'articolo
2024-05-20 23:46:21 +02:00
return loadArticleByIdArticle ( $id );
2024-06-17 14:41:58 +02:00
} elseif ( $action == 'updateArtFromGM' ) {
return updateArticoloFromGM ( $id );
2024-05-21 00:42:31 +02:00
} elseif ( $action == 'inprevendita' ) {
2024-05-21 00:44:43 +02:00
return libriInPrevendita ();
2024-05-22 14:29:58 +02:00
} elseif ( $action == 'showOrdini' ) {
return showOrdini ();
2024-06-13 12:46:33 +02:00
} elseif ( $action == 'showDettOrdini' ) {
return showDettOrdini ();
2024-06-21 13:23:23 +02:00
} elseif ( $action == 'setDataPubblicazione' ) {
setDataPubblicazione ( $id , true );
2024-05-21 01:22:23 +02:00
} elseif ( $action == 'setPreOrder' ) {
2024-05-21 01:24:02 +02:00
setPreOrder ( $id , " 1 " , true );
2024-05-21 00:33:50 +02:00
} elseif ( $action == 'checkPrevendita' ) {
2024-05-20 23:20:37 +02:00
// Logica per verificare se l'articolo è in preordine
2024-06-15 21:29:12 +02:00
$inprevendita = isArticleInPrevendita ( $id , false );
2024-05-21 00:33:50 +02:00
if ( $inprevendita ) {
return " L'articolo è in prevendita " ;
} else {
return " --- " ;
}
2024-05-20 23:20:37 +02:00
} else {
return " Azione non supportata " ;
}
}) -> name ( 'handleArticleActionPao' );
2024-06-15 17:28:29 +02:00
Route :: get ( '/product/{sku}' , [ TestPaoController :: class , 'getProductBySku' ]);