-
Notifications
You must be signed in to change notification settings - Fork 0
/
Item.php
129 lines (116 loc) · 3.4 KB
/
Item.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
* Delivery_Item class
*
*
* @author Gerry Demaret <gerry@tigron.be>
* @author Christophe Gosiau <christophe@tigron.be>
* @author David Vandemaele <david@tigron.be>
*/
namespace Skeleton\Package\Delivery;
use Skeleton\Package\Delivery\Delivery;
use Skeleton\Database\Database;
class Item {
use \Skeleton\Object\Get;
use \Skeleton\Object\Model;
use \Skeleton\Object\Delete;
use \Skeleton\Object\Save;
private static $class_configuration = [
'database_table' => 'delivery_item',
];
/**
* Set deliverable
*
* @access public
* @param Deliverable $deliverable
*/
public function set_deliverable(\Skeleton\Package\Delivery\Deliverable $deliverable) {
$this->deliverable_object_classname = get_class($deliverable);
$this->deliverable_object_id = $deliverable->id;
}
/**
* Get deliverable
*
* @access public
* @return Deliverable $deliverable
*/
public function get_deliverable() {
$classname = $this->deliverable_object_classname;
$object = $classname::get_by_id($this->deliverable_object_id);
return $object;
}
/**
* Get undelivered
*
* @access public
* @return array $undelivery_items
*/
public static function get_undelivered() {
$db = Database::get();
$ids = $db->get_column('SELECT id FROM delivery_item WHERE shipment_item_id=0', []);
$objects = [];
foreach ($ids as $id) {
$objects[] = self::get_by_id($id);
}
return $objects;
}
/**
* Get undelivered by deliverable
*
* @access public
* @return array $undelivery_items
*/
public static function get_undelivered_by_deliverable(\Skeleton\Package\Delivery\Deliverable $deliverable) {
$db = Database::get();
$ids = $db->get_column('SELECT id FROM delivery_item WHERE shipment_item_id=0 AND deliverable_object_classname=? AND deliverable_object_id=?', [ get_class($deliverable), $deliverable->id]);
$objects = [];
foreach ($ids as $id) {
$objects[] = self::get_by_id($id);
}
return $objects;
}
/**
* Get undelivered count by deliverable
*
* @access public
* @return int $count_undelivery_items
*/
public static function get_count_undelivered_by_deliverable(\Skeleton\Package\Delivery\Deliverable $deliverable) {
$db = Database::get();
$count = $db->get_one('SELECT COUNT(id) FROM delivery_item WHERE shipment_item_id=0 AND deliverable_object_classname=? AND deliverable_object_id=?', [ get_class($deliverable), $deliverable->id]);
return $count;
}
/**
* Get by delivery
*
* @access public
* @param Delivery $delivery
* @return array $delivery_items
*/
public static function get_by_delivery(Delivery $delivery) {
$db = Database::Get();
$ids = $db->get_column('SELECT id FROM delivery_item WHERE delivery_id=?', [ $delivery->id ]);
$objects = [];
foreach ($ids as $id) {
$objects[] = self::get_by_id($id);
}
return $objects;
}
/**
* get_by_delivery_deliverable
*
* @access public
* @param Delivery $delivery
* @param Deliverable $deliverable
* @return array $delivery_items
*/
public static function get_by_delivery_deliverable(Delivery $delivery, \Skeleton\Package\Delivery\Deliverable $deliverable) {
$db = Database::get();
$ids = $db->get_column('SELECT id FROM delivery_item WHERE delivery_id=? AND deliverable_object_classname=? AND deliverable_object_id=?', [ $delivery->id, get_class($deliverable), $deliverable->id ]);
$objects = [];
foreach ($ids as $id) {
$objects[] = self::get_by_id($id);
}
return $objects;
}
}