Files
apimacro/app/Console/Commands/OrderUpdateGm.php
paoloar77 0ce8a96097 log
2024-05-13 19:30:49 +02:00

113 lines
3.5 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Order as AppOrder;
use Codexshaper\WooCommerce\Facades\Order;
use Illuminate\Console\Command;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Mail;
class OrderUpdateGm extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'order:gmupdate';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Aggiornamenti ordini da GM';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$all_orderswoo = new Collection();
$page = 1;
$orderupdated = 0;
do{
$orderswoo = Order::all($options = ['per_page' => 100, 'page' => $page,'status'=> ["pending","processing","on-hold"]]);
$all_orderswoo = $all_orderswoo->merge($orderswoo);
$page++;
} while($orderswoo->count() > 0);
foreach($all_orderswoo as $orderwoo ){
$this->info("Processing order #{$orderwoo->id}...");
$ordergm = AppOrder::where('IdInternet', $orderwoo->id)->latest('DataOra')->first();
if($ordergm){
$this->info("Order #{$orderwoo->id} found in GM, checking status...");
if($orderwoo->status == 'processing'){
$this->info("Order #{$orderwoo->id} is processing, checking if it needs to be completed...");
if($ordergm->EnabledWoo == 1){
$this->info("Order #{$orderwoo->id} needs to be completed, updating WooCommerce...");
$data = [
'status' => 'completed',
];
$orderwooupdate = Order::update($orderwoo->id,$data);
// sum the number updated of order to the log
$orderupdated++;
}
}
elseif ($orderwoo->status == 'on-hold'){
$this->info("Order #{$orderwoo->id} is on-hold, checking if it needs to be processed...");
if($ordergm->FlagSospeso == 0) {
$this->info("Order #{$orderwoo->id} needs to be processed, updating WooCommerce...");
$data = [
'status' => 'processing',
];
$orderwooupdate = Order::update($orderwoo->id,$data);
// sum the number updated of order to the log
$orderupdated++;
}
}
}
else{
$this->info("Order #{$orderwoo->id} not found in GM, skipping...");
}
}
// get the directory actual name and put in the log file
$title = '*** SITO DI PRODUZIONE *** ';
$log = $title . ' Ordini aggiornati' . "\n";
// check if there are orders to log
if($orderupdated > 0) {
// Send the email to the admin with the details of the order log
Mail::raw($log, function ($message, $orderupdated) {
$message->to("log@fioredellavita.it");
//$message->bcc('');
$message->subject("Ordini Aggiornati su GM:" . $orderupdated);
});
}
}
}