PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.16
Yatra – Travel Booking & Tour Operator Software v3.0.16
3.0.16 3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 All 84 releases
← All changes | app/Models/Discount.php +16 -1 3.0.2.6 → 3.0.16 View file →
@@ -57,9 +57,24 @@
57 57 $discount->valid_from = $data['valid_from'] ?? null;
58 58 $discount->expiry_date = $data['expiry_date'] ?? null;
59 59 $discount->status = $data['status'] ?? 'active';
60 60 $discount->applicable_to = $data['applicable_to'] ?? 'all';
61 - $discount->trip_ids = isset($data['trip_ids']) ? (is_array($data['trip_ids']) ? $data['trip_ids'] : maybe_unserialize($data['trip_ids'])) : null;
61 + if (!isset($data['trip_ids']) || $data['trip_ids'] === '' || $data['trip_ids'] === null) {
62 + $discount->trip_ids = null;
63 + } elseif (is_array($data['trip_ids'])) {
64 + $discount->trip_ids = $data['trip_ids'];
65 + } elseif (is_string($data['trip_ids'])) {
66 + $raw = trim($data['trip_ids']);
67 + if ($raw !== '' && ($raw[0] === '[' || $raw[0] === '{')) {
68 + $decoded = json_decode($raw, true);
69 + $discount->trip_ids = is_array($decoded) ? $decoded : null;
70 + } else {
71 + $unser = maybe_unserialize($data['trip_ids']);
72 + $discount->trip_ids = is_array($unser) ? $unser : array_values(array_filter(array_map('trim', explode(',', $raw))));
73 + }
74 + } else {
75 + $discount->trip_ids = null;
76 + }
62 77 $discount->min_amount = isset($data['min_amount']) ? (float) $data['min_amount'] : null;
63 78 $discount->first_time_customer_only = (bool) ($data['first_time_customer_only'] ?? false);
64 79 $discount->is_group_discount = (bool) ($data['is_group_discount'] ?? false);
65 80 $discount->min_group_size = isset($data['min_group_size']) ? (int) $data['min_group_size'] : null;