Files
admin-php-module/commands/GETClientInfo.php
miroman-afk fb46c8e739 v.2.27
Fixed reports
2023-05-02 15:21:54 +03:00

78 lines
3.1 KiB
PHP

<?php
namespace App\Commands;
use App\Component\Models\Client;
use App\Component\Models\ClientsBonus;
use App\Component\Models\ClientsPresale;
use App\Component\Models\ExchangeOrders;
use App\Component\Models\ShiftOnlineOrders;
use App\Console\Commands\HRCCommand;
use App\Console\Commands\HRCCommandInterface;
class GETClientInfo extends HRCCommand implements HRCCommandInterface
{
protected $signature = 'getclientinfo';
public function command($input, $output = null)
{
if (isset($input['id'])) {
$client = Client::where('id', $input['id'])->first();
$client_guid = $client['user_code'];
$phone = Client::getPhone($client_guid);
$address = Client::getAddress($client_guid);
$email = Client::getEmail($client_guid);
$presale = ClientsPresale::getPresale($client_guid);
$bonus = ClientsBonus::getBonus($client_guid);
$orders_count_exchange = ExchangeOrders::where('client_code', $client_guid)->where('is_returned', 0)->where('is_deleted', 0)->count();
$orders_count_current = ShiftOnlineOrders::where('client_code', $client_guid)->where('is_returned', 0)->where('is_deleted', 0)->count();
$orders_sum_exchange = ExchangeOrders::where('client_code', $client_guid)->where('is_returned', 0)->where('is_deleted', 0)->sum('full_sum');
$orders_sum_current = ShiftOnlineOrders::where('client_code', $client_guid)->where('is_returned', 0)->where('is_deleted', 0)->sum('full_sum');
$orders_count = $orders_count_exchange + $orders_count_current;
$orders_sum = $orders_sum_exchange + $orders_sum_current;
$barcode = Client::getBarcode($client_guid);
if ($client['is_special_price'] == 0) {
$special_price = false;
} else {
$special_price = true;
}
if ($client['is_employee'] == 0) {
$employee = false;
} else {
$employee = true;
}
if ($client['is_block'] == 0) {
$is_block = false;
} else {
$is_block = true;
}
$result = array(
'id' => $client['id'],
'name' => $client['name'],
'info' => array(
'phone' => $phone,
'email' => $email,
'address' => $address,
'order_count' => $orders_count,
'order_sum' => round($orders_sum, 2),
'presale' => $presale,
'bonus' => intval($bonus),
'barcode' => $barcode,
'special_price' => $special_price,
'employee' => $employee,
'is_block' => $is_block,
)
);
return [
'status' => 'success',
'client' => $result,
];
} else {
return [
'status' => 'error',
'more' => 'Проверьте введенные данные',
];
}
}
}