Subversion-Projekte lars-tiefland.ci

Revision

Revision 2316 | Revision 2321 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2243 lars 1
<?php
2
 
3
/**
4
 *
5
 * @package WebanOS CI
6
 * @author Lars Tiefland <ltiefland@gmail.com>
7
 * @copyright 2016
8
 * @version $Rev: 2317 $
9
 */
10
 
11
class Logistiker_model extends CI_Model
12
{
13
	public function __construct()
14
	{
15
		parent::__construct();
16
	}
17
 
18
	public function get_list($start = 0)
19
	{
2244 lars 20
		$sql = "SELECT
21
				*
22
			FROM
23
				logistiker
24
		";
2247 lars 25
		$res = $this->db->query($sql);
2244 lars 26
		while ($row = $res->unbuffered_row('array')) {
27
			$logistiker[] = $row;
28
		}
29
		return $logistiker;
2243 lars 30
	}
31
 
32
	public function get($id)
33
	{
2244 lars 34
		$sql = "SELECT
35
				*
36
			FROM
37
				logistiker
38
			WHERE
39
				id=" . $id . "
40
		";
2247 lars 41
		$res = $this->db->query($sql);
2244 lars 42
		$logistiker = $res->unbuffered_row('array');
43
		return $logistiker;
2243 lars 44
	}
45
 
46
	public function save()
47
	{
48
	}
2283 lars 49
 
2280 lars 50
	public function export($id)
51
	{
2309 lars 52
		$aColumns = array("exported");
2314 lars 53
		$sIndexColumn = "exported";
2313 lars 54
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2317 lars 55
		if (isset($_GET['iSortCol_0'])) {
56
			$sOrder = "ORDER BY  ";
57
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
58
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
59
					"true") {
60
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
61
                                    " . $this->input->get('sSortDir_' . $i) .
62
						", ";
63
				}
64
			}
65
 
66
			$sOrder = substr_replace($sOrder, "", -2);
67
			if ($sOrder == "ORDER BY") {
68
				$sOrder = "";
69
			}
70
		}
2286 lars 71
		$sQuery = "SELECT DISTINCT
72
                    exported
73
                FROM
74
                    artikel_to_Bestellung ab
75
                JOIN
76
                    bestellung_logistiker bl
77
                ON
78
                    bl.logistiker=$id
79
                AND
80
                    bl.bestellung = ab.Bestellung
81
                WHERE
82
                    exported
2283 lars 83
 
2314 lars 84
                " . $sWhere . "
85
                " . $sOrder . "
86
                LIMIT " . $sLimit . "
2286 lars 87
            ";
2310 lars 88
		trigger_error($sQuery);
2288 lars 89
		$rResult = $GLOBALS['order_db']->query($sQuery);
2286 lars 90
 
91
		/* Data set length after filtering */
92
		$sQuery = "
93
                        SELECT FOUND_ROWS() AS total
94
                ";
2288 lars 95
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2312 lars 96
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2286 lars 97
		$iFilteredTotal = $aResultFilterTotal["total"];
98
 
99
		/* Total data set length */
100
		$sQuery = "
101
                        SELECT
102
                    COUNT(" . $sIndexColumn . ") AS total
103
                FROM
104
                    artikel_to_Bestellung ab
105
                JOIN
106
                    bestellung_logistiker bl
107
                ON
108
                    bl.logistiker=$id
109
                AND
110
                    bl.bestellung = ab.Bestellung
111
                WHERE
112
                    exported
113
                ";
2288 lars 114
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2315 lars 115
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2286 lars 116
		$iTotal = $aResultTotal["total"];
117
 
118
 
119
		/*
120
		* Output
121
		*/
122
		$output = array(
2316 lars 123
			"sEcho" => intval($this->input->get('sEcho')),
2286 lars 124
			"iTotalRecords" => $iTotal,
125
			"iTotalDisplayRecords" => $iTotal,
126
			"aaData" => array());
127
 
128
		$sql = "SELECT
129
                    export_script
130
                FROM
131
                    logistiker
132
                WHERE
133
                    id = " . $id . "
134
            ";
2288 lars 135
		$res = $GLOBALS['order_db']->query($sql);
2286 lars 136
		$nrow = $res->unbuffered_row('array');
137
		if (strstr($nrow["export_script"], "=")) {
138
			$qs = explode(";", $nrow["export_script"]);
139
			foreach ($qs as $val) {
140
				list($key, $wert) = explode("=", $val);
141
				if ($key == "mode") {
142
					$qsArr[] = "mode=" . $wert;
143
				} elseif (is_null($wert)) {
144
					$script = $key;
145
				} elseif (!stristr($key, "status") && $wert) {
146
					$qsArr[] = "$key=" . $wert;
147
				}
148
			}
149
			$qs = implode("&", $qsArr);
150
		} else {
151
			list($script, $mode) = explode(";", $nrow["export_script"]);
152
			$qs = "mode=" . $mode;
153
		}
154
		while ($aRow = $rResult->unbuffered_row('array')) {
155
			$aRow['exported'] = '<a href="/Warenwirtschaft/' . $script . '?time=' . $aRow['exported'] .
156
				'&id=' . $id . '&' . $qs . '" target="_blank">' . date('d.m.Y H:i:s', strtotime
157
				($aRow['exported'])) . '</a>';
158
			$row = array();
159
			for ($i = 0; $i < count($aColumns); $i++) {
160
				if ($aColumns[$i] == "version") {
161
					/* Special output formatting for 'version' column */
162
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
163
				} else
164
					if ($aColumns[$i] != ' ') {
165
						/* General output */
166
						$row[] = $aRow[$aColumns[$i]];
167
					}
168
			}
169
			$output['aaData'][] = $row;
170
		}
171
 
172
		return json_encode($output);
2280 lars 173
	}
2283 lars 174
 
2280 lars 175
	public function tracking($id)
176
	{
2303 lars 177
		$aColumns = array(
178
			'paketnummer',
179
			'datum',
180
			'bestellung',
181
			);
2305 lars 182
		if (isset($_GET['iSortCol_0'])) {
183
			$sOrder = "ORDER BY  ";
184
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
185
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
186
					"true") {
187
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
2306 lars 188
                                    " . $this->input->get('sSortDir_' . $i) .
189
						", ";
2305 lars 190
				}
191
			}
192
 
193
			$sOrder = substr_replace($sOrder, "", -2);
194
			if ($sOrder == "ORDER BY") {
195
				$sOrder = "";
196
			}
197
		}
2285 lars 198
		$sWhere = "";
2287 lars 199
		if ($this->input->get('sSearch') != "") {
2285 lars 200
			$sWhere = "WHERE (";
201
			for ($i = 0; $i < count($aColumns); $i++) {
202
				if ($aColumns[$i] == "datum") {
203
					$a = " from_unixtime(datum) ";
2288 lars 204
					$sWhere .= $a . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch')) .
2285 lars 205
						"%' OR ";
206
				} else {
2295 lars 207
					$sWhere .= $aColumns[$i] . " LIKE '%" . $GLOBALS['order_db']->escape($this->
208
						input->get('sSearch')) . "%' OR ";
2285 lars 209
				}
210
 
211
			}
212
			$sWhere = substr_replace($sWhere, "", -3);
213
			$sWhere .= ')';
2280 lars 214
		}
2285 lars 215
 
216
		/* Individual column filtering */
217
		for ($i = 0; $i < count($aColumns); $i++) {
2287 lars 218
			if ($this->input->get('bSearchable_' . $i) == "true" && $this->input->get('sSearch_' .
219
				$i) != '') {
2285 lars 220
				if ($sWhere == "") {
221
					$sWhere = "WHERE ";
222
				} else {
223
					$sWhere .= " AND ";
224
				}
225
				if ($aColumns[$i] == "datum") {
226
					$r = " from_unixtime(datum) ";
2288 lars 227
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 228
						$i)) . "%' ";
2285 lars 229
				} else {
2288 lars 230
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 231
						$i)) . "%' ";
2285 lars 232
				}
233
 
234
			}
235
		}
236
 
237
		if (empty($sWhere)) {
238
			$sWhere = " where bp.logistiker=l.id AND l.id = $id ";
239
		} else {
240
			$sWhere = " $sWhere and bp.logistiker=l.id AND l.id = $id ";
241
		}
2297 lars 242
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2285 lars 243
		$sQuery = "SELECT
244
                    SQL_CALC_FOUND_ROWS
245
                    bp.*,
246
                    l.kname,
247
                    l.trackinglink
248
                FROM
249
                    logistiker l,
250
                    bestellung_paketnummern bp
2297 lars 251
                    " . $sWhere . "
252
                    " . $sOrder . "
2298 lars 253
					LIMIT " . $sLimit . "
2285 lars 254
                ";
255
		//echo $sQuery;
2288 lars 256
		$rResult = $GLOBALS['order_db']->query($sQuery);
2285 lars 257
 
258
		/* Data set length after filtering */
259
		$sQuery = "
260
                        SELECT FOUND_ROWS() AS total
261
                ";
2288 lars 262
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2289 lars 263
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2285 lars 264
		$iFilteredTotal = $aResultFilterTotal["total"];
265
 
266
		/* Total data set length */
267
		$sQuery = "
268
                        SELECT
2292 lars 269
                    COUNT(bp.id) AS total
2285 lars 270
                FROM
271
                    logistiker l,
272
                    bestellung_paketnummern bp
273
                WHERE
274
                    bp.logistiker=l.id
275
                AND
276
                    l.id = $id
277
                ";
278
 
279
 
2288 lars 280
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2294 lars 281
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2285 lars 282
		$iTotal = $aResultTotal["total"];
283
 
284
 
285
		/*
286
		* Output
287
		*/
288
		$output = array(
2286 lars 289
			"sEcho" => intval($this->input->get('sEcho')),
2285 lars 290
			"iTotalRecords" => $iTotal,
291
			"iTotalDisplayRecords" => $iFilteredTotal,
292
			"aaData" => array());
293
 
294
		while ($aRow = $rResult->unbuffered_row('array')) {
295
			//$aRow['datum'] = strtotime($aRow['datum']);
296
			$aRow['datum'] = date('d.m.Y', $aRow['datum']);
2308 lars 297
			$aRow['bestellung'] = ' <a target="_blank" href="/backend/order/edit/' . $aRow['bestellung'] .
2307 lars 298
				'">zum Vorgang</a>';
2285 lars 299
 
300
			$url = $aRow["trackinglink"];
301
			if (stristr($url, "%")) {
302
				$tag = date("d", $row_p["datum"]);
303
				$monat = date("m", $row_p["datum"]);
304
				$jahr = date("Y", $row_p["datum"]);
305
				$url = str_replace("%tag%", $tag, $url);
306
				$url = str_replace("%monat%", $monat, $url);
307
				$url = str_replace("%jahr%", $jahr, $url);
308
				$url = str_replace("%trackingnr%", $aRow["paketnummer"], $url);
309
			} else {
310
				$url .= $aRow["paketnummer"];
311
			}
312
 
313
 
314
			$aRow["paketnummer"] = $aRow["kname"] . ': <a href=' . $url . ' target=_blank>' .
315
				$aRow["paketnummer"] . '</a>';
316
			$row = array();
317
			for ($i = 0; $i < count($aColumns); $i++)
318
				if ($aColumns[$i] == "version") {
319
					/* Special output formatting for 'version' column */
320
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
321
				} else
322
					if ($aColumns[$i] != ' ') {
323
						/* General output */
324
						$row[] = $aRow[$aColumns[$i]];
325
					}
2304 lars 326
			$output['aaData'][] = $row;
2285 lars 327
		}
328
 
329
		return json_encode($output);
2280 lars 330
	}
2285 lars 331
 
2243 lars 332
}
333
 
334
?>