Files
register/marko_unpacked/marko/portal/views/mobile-api/orders.php
T
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

71 lines
2.2 KiB
PHP

<?php
use app\models\Order;
use app\services\JR;
$user = \app\services\Auth::getUserByToken();
//$user = \app\models\UserPublic::findOne(34);
$lg = Yii::$app->language;
$data = [];
if ($user) {
$per_page = 10;
$page = $_GET['page'] ?? 1;
$orders = Order::find()->where(['user_id' => $user->id])->offset($per_page * $page - $per_page)->orderBy(['id' => SORT_DESC]);
$count = $orders->count();
foreach ($orders->all() as $order) {
$paying = $order->payment;
//$booking = $order->booking;
//$event = $booking && $booking->event ? $booking->event->title() : '';
$booking = [];
foreach ($order->booking as $ticket) {
$count = $ticket->tickets_count;
$booking[] = [
'id' => $ticket->id,
'ticket_type' => $ticket->{'name_' . $lg},
'event' => $ticket->event->title(),
'event_img' => $ticket->event->image('16:11'),
'single_price' => $ticket->single_price,
'datetime' => $ticket->formatedHtmlDate(),
'hashed_id' => $ticket->getHashedId(),
'tickets_count' => $count
];
}
$default = $booking[0] ?? null;
$event = null;
if (!empty($booking[0])) {
$event = [
'name' => $booking[0]['event'],
'img' => $booking[0]['event_img'],
];
}
$status = [
'PAID' => [
'bg' => 'Платено',
'en' => 'Paid'
],
'PENDING' => [
'bg' => 'Изчаква се плащане',
'en' => 'Payment pending'
]
];
$item = [
'id' => $order->id,
'price' => $order->total_price,
'date' => $order->order_date,
'status' => $paying->status == 'PAID' ? ($status['PAID'][$lg]) : $status['PENDING'][$lg],
'booking' => $booking,
];
if ($event) {
$item['event'] = $event;
}
$data[] = $item;
}
JR::message(JR::done, ['data' => $data, 'lastPage' => ceil($count / $per_page), 'count' => $count]);
}