Subversion-Projekte lars-tiefland.ci

Revision

Revision 1332 | Revision 1392 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1132 lars 1
<?php
2
 
3
/**
4
 *
5
 * @package WebanOS CI
6
 * @author Lars Tiefland <ltiefland@gmail.com>
7
 * @copyright 2016
8
 * @version $Rev: 1335 $
9
 */
10
 
11
class Order_model extends CI_Model
12
{
13
	public function __construct()
14
	{
15
		parent::__construct();
1136 lars 16
		$this->load->model('bestelladresse_model', 'bestelladresse');
17
		$this->load->model('artikel_to_bestellung_model', 'artikel');
1309 lars 18
		$this->load->model('dokumente_model', 'dokumente');
1132 lars 19
	}
20
 
21
	public function get_list()
22
	{
23
		$orders = array();
24
		$sql = "SELECT
1173 lars 25
				b.id
1132 lars 26
			FROM
1150 lars 27
				Bestellung b
1132 lars 28
			ORDER BY
1152 lars 29
				b.id DESC
1145 lars 30
			LIMIT
31
				100
1132 lars 32
		";
33
		$res = $GLOBALS['order_db']->query($sql);
1134 lars 34
		while ($order = $res->unbuffered_row('array'))
1132 lars 35
		{
1173 lars 36
			$order = $this->get($order['id']);
1132 lars 37
			$orders[] = $order;
38
		}
39
		return $orders;
40
	}
1173 lars 41
 
42
	public function get($id)
43
	{
44
		$orders = array();
45
		$sql = "SELECT
46
				b.id,
1273 lars 47
				b.language,
1192 lars 48
				b.shops_ID,
49
				b.login,
1173 lars 50
				bill_addr_id,
51
				ship_addr_id,
52
				erstellt_am,
1204 lars 53
				erstellt_von,
54
				letzte_aenderung_am,
55
				letzte_aenderung_von,
1173 lars 56
				status,
1281 lars 57
				gesamtsumme_buffer,
1173 lars 58
				fremd_id,
59
				artikelstatus_buffer,
60
				rechnungsstatus_buffer,
61
				lieferscheinstatus_buffer,
62
				bezahlt,
1332 lars 63
				Bemerkung,
64
				Bemerkung_extern,
1173 lars 65
				bezahlt_am,
1273 lars 66
				s.name AS shop,
1277 lars 67
				ba.name AS bestellart
1173 lars 68
			FROM
69
				Bestellung b
70
			JOIN
71
				shops s
72
			ON
73
				s.id=b.shops_id
1273 lars 74
			JOIN
75
				bestellart ba
76
			ON
1274 lars 77
				ba.id=b.bestellart_id
1173 lars 78
			WHERE
79
				b.id=".$id."
80
		";
81
		$res = $GLOBALS['order_db']->query($sql);
82
		$order = $res->unbuffered_row('array');
83
		$billAddr = $this->bestelladresse->get($order['bill_addr_id']);
84
		$shipAddr = $this->bestelladresse->get($order['ship_addr_id']);
85
		$artikel = $this->artikel->get($order['id']);
1309 lars 86
		$dokumente = $this->dokumente->get_list($order['id']);
1173 lars 87
		$artikelstatus_buffer = unserialize($order["artikelstatus_buffer"]);
88
		foreach ($artikelstatus_buffer as $key => $value)
89
		{
90
			switch ($key)
91
			{
92
				case "statusOffen":
93
					$info[$key]["class"] = "status_red";
94
					break;
95
				case "statusInBearbeitung":
96
					$info[$key]["class"] = "status_yellow";
97
					break;
98
				case "statusReserviert":
99
					$info[$key]["class"] = "status_blue";
100
					break;
101
				case "statusErledigt":
102
					$info[$key]["class"] = "status_green";
103
					break;
104
				case "statusAbgeschlossen":
105
				default:
106
					$info[$key]["class"] = "status_white";
107
					break;
108
 
109
			}
110
			$info[$key]["wert"] = $value;
111
		}
112
		$order["info"] = $info;
113
		$rechnungsstatus_buffer = unserialize($order["rechnungsstatus_buffer"]);
114
		foreach ($rechnungsstatus_buffer as $key => $value)
115
		{
116
			switch ($key)
117
			{
118
				case "rechnungSchreiben":
119
					$rstatus[$key]["class"] = "status_red";
120
					break;
121
				case "rechnungGeschrieben":
122
					$rstatus[$key]["class"] = "status_yellow";
123
					break;
124
				case "rechnungBezahlt":
125
					$rstatus[$key]["class"] = "status_green";
126
					break;
127
 
128
			}
129
			$rstatus[$key]["wert"] = $value;
130
		}
131
		$order["rechnungsstatus"] = $rstatus;
132
		$lieferscheinstatus_buffer = unserialize($order["lieferscheinstatus_buffer"]);
133
		foreach ($lieferscheinstatus_buffer as $key => $value)
134
		{
135
			switch ($key)
136
			{
137
				case "lieferscheinSchreiben":
138
					$lstatus[$key]["class"] = "status_yellow";
139
					break;
140
				case "lieferscheinGeschrieben":
141
					$lstatus[$key]["class"] = "status_green";
142
					break;
143
				case "lieferscheinOffen":
144
					$lstatus[$key]["class"] = "status_red";
145
					break;
146
 
147
			}
148
			$lstatus[$key]["wert"] = $value;
149
		}
150
		$order['lieferscheinstatus'] = $lstatus;
1309 lars 151
		$order['dokumente'] = $dokumente;
1173 lars 152
		$order['artikel'] = $artikel;
153
		$order['shipAddr'] = $shipAddr;
154
		$order['billAddr'] = $billAddr;
155
 
156
		return $order;
157
	}
1335 lars 158
 
159
	public function save()
160
	{
161
		$Bestellung = $this->input->post('Bestellung');
162
		if ((isset($_GET["update"]) && $_GET["update"]) || (isset($_POST["update"]) && $_POST["update"]))
163
		{
164
 
165
			if ($_POST["update"])
166
			{
167
				$update = $_POST["update"];
168
			}
169
			else
170
			{
171
				$update = $_GET["update"];
172
			}
173
 
174
			if ($_POST["cmd"])
175
			{
176
				foreach (array_keys($_POST["cmd"]) as $table)
177
				{
178
					foreach (array_keys($_POST["cmd"][$table]) as $primaryKeyValue)
179
					{
180
						$changed_id = "artikel_".$primaryKeyValue."_changed";
181
						if ($_POST[$changed_id] == 1)
182
						{
183
							foreach (array_keys($_POST["cmd"][$table][$primaryKeyValue]) as $tablefield)
184
							{
185
								$query = "
186
									UPDATE
187
										".$table."
188
									SET
189
										".$tablefield." = '".$GLOBALS["order_db"]->escape(html_entity_decode($_POST["cmd"][$table][$primaryKeyValue][$tablefield],
190
									ENT_COMPAT, $_SESSION["charset"]))."'
191
									WHERE
192
										ID = '".$primaryKeyValue."'
193
								";
194
								$result = $GLOBALS["order_db"]->query($query);
195
							}
196
						}
197
					}
198
				}
199
			}
200
			$upd_fields[] = "Bemerkung=".$GLOBALS["order_db"]->escape($_POST["Bemerkung"]).
201
				"";
202
 
203
			if (isset($user_rechte["Warenwirtschaft"]["bestellung"]["shortline1"]))
204
			{
205
				$upd_fields[] = "shortline1 = ".$GLOBALS["order_db"]->escape($_POST["shortline1"]).
206
					"";
207
			}
208
			if (isset($user_rechte["Warenwirtschaft"]["bestellung"]["shortline2"]))
209
			{
210
				$upd_fields[] = "shortline2 = ".$GLOBALS["order_db"]->escape($_POST["shortline2"]).
211
					"'";
212
			}
213
			if (isset($user_rechte["Warenwirtschaft"]["bestellung"]["status1"]))
214
			{
215
				$upd_fields[] = "status1 = '".$GLOBALS["order_db"]->escape($_POST["status1"]).
216
					"";
217
			}
218
			if (isset($user_rechte["Warenwirtschaft"]["bestellung"]["Bemerkung_extern"]))
219
			{
220
				$upd_fields[] = "Bemerkung_extern=".$GLOBALS["order_db"]->escape($_POST["Bemerkung_extern"]).
221
					"";
222
			}
223
			if (isset($user_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"]))
224
			{
225
				$upd_fields[] = "bezahlt=".$GLOBALS["order_db"]->escape($_POST["bezahlt"])."";
226
				$upd_fields[] = "bezahlt_bemerkung=".$GLOBALS["order_db"]->escape($_POST["bezahlt_bemerkung"]).
227
					"";
228
			}
229
			if (isset($_POST['fremd_id']))
230
			{
231
				$upd_fields[] = "fremd_id=".$GLOBALS["order_db"]->escape($_POST["fremd_id"])."";
232
			}
233
			$sql = "
234
				SELECT
235
					erstellt_von
236
				FROM
237
					Bestellung
238
				WHERE
239
					ID=".$Bestellung."
240
			";
241
 
242
			$result = $GLOBALS["order_db"]->query($sql);
243
			$zeile = $result->unbuffered_row('array');
244
			if ($zeile["erstellt_von"] == '')
245
			{
246
				$upd_fields[] = "erstellt_von='".$this->session->user_data['user']."'";
247
			}
248
			if ($_POST["s_changed"] == 1)
249
			{
250
				$upd_fields[] = "shops_ID=".$_POST["s_id"];
251
			}
252
			$sql = "
253
				UPDATE
254
					Bestellung
255
				SET
256
					letzte_Aenderung_von='".$this->session->user_data['user']."',
257
					".implode(",", $upd_fields)."
258
				WHERE
259
					ID=".$Bestellung."
260
			";
261
			$GLOBALS["order_db"]->query($sql);
262
			if (isset($_POST["logistiker_id"]))
263
			{
264
				if ($_POST["logistiker_id"])
265
				{
266
					$sql_bl = "
267
						REPLACE INTO
268
							bestellung_logistiker
269
						SET
270
							bestellung=".$Bestellung.",
271
							logistiker=".$_POST["logistiker_id"]."
272
					";
273
 
274
					$GLOBALS["order_db"]->query($sql_bl);
275
					if (isset($web_rechte["admin"]["toolbox"]["logbuch"]))
276
					{
277
						$GLOBALS["Log"]["best"]->log("Logistiker der Bestellung geändert", $Bestellung);
278
					}
279
				}
280
				else
281
				{
282
					$sql_bl = "
283
						DELETE FROM
284
							bestellung_logistiker
285
						WHERE
286
							bestellung=".$Bestellung."
287
					";
288
					$GLOBALS["order_db"]->query($sql_bl);
289
					if (isset($web_rechte["admin"]["toolbox"]["logbuch"]))
290
					{
291
						$GLOBALS["Log"]["best"]->log("Logistiker der Bestellung geändert", $Bestellung);
292
					}
293
				}
294
			}
295
			if (isset($update["current"]))
296
			{
297
				header("Location: /backend/order/edit/".$Bestellung);
298
			}
299
			elseif (isset($update["list"]))
300
			{
301
				header("Location: /backend/order/index/".$Bestellung);
302
			}
303
		}
304
	}
1132 lars 305
}
306
 
1332 lars 307
?>