Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
	/**
3
	 * @author Patrick Lautsch <lautsch@weban.de>
4
	 * @date 2010-05-14
5
	 *
6
	 * Diese Datei enthält eine Sammlung von Funktionen,
7
	 * welche für die Verwaltung der Lagerwirtschaft nötig sind.
8
	 */
9
 
10
	/**
11
	 * getArtikelbestandsInfo($artikelId)
12
	 *
13
	 * Gibt die reservierte Menge, den aktuellen Bestand und den Verfügbaren Bestand als Array zurück.
14
	 *
15
	 * @param INT
16
	 * @return ARRAY
17
	 */
18
	function getArtikelbestandsInfo($artikelId) {
19
		$return['reservierteMenge'] = getReservierteMenge($artikelId);
20
		$return['bestandsmenge'] = getBestandsmenge($artikelId);
21
		$return['verfuegbareMenge'] = $return['bestandsmenge'] - $return['reservierteMenge'];
22
 
23
		return $return;
24
	}
25
 
26
	/**
27
	 * getReservierteMenge($artikelId)
28
	 *
29
	 * Gibt die Gesamtmenge aller Artikel mit der $artikelId zurück,
30
	 * welche den status "offen", "in Bearbeitung" oder "reserviert" haben
31
	 * und nicht "exported_liferschein" gesetzt haben.
32
	 *
33
	 * @param INT
34
	 * @return INT
35
	 */
36
	function getReservierteMenge($artikelId) {
37
		if ( isset($web_rechte['Warenwirtschaft']['lagerwirtschaft']['lagerwirtschaft']) )
38
		{
39
			$sql = '
40
				SELECT
41
					SUM(Menge) AS reservierteMenge
42
				FROM
43
					artikel_to_Bestellung AS a2b
44
				WHERE
45
					artikel = ' . $artikelId . '
46
					AND
47
					(
48
						a2b.status = "offen"
49
						OR a2b.status = "in Bearbeitung"
50
						OR a2b.status = "reserviert"
51
					)
52
					AND exported_lieferschein = "0000-00-00 00:00:00"
53
			;';
54
			$result = mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
55
			$row = mysql_fetch_assoc($result);
56
			$reservierteMenge = $row['reservierteMenge'];
57
 
58
			if ( $reservierteMenge == NULL ) {
59
				$reservierteMenge = 0;
60
			}
61
 
62
			return $reservierteMenge;
63
		}
64
	}
65
 
66
	/**
67
	 * getBestandsmenge($artikelId)
68
	 *
69
	 * Gibt die Bestandsmenge aller Artikel mit der $artikelId zurück.
70
	 *
71
	 * @param INT
72
	 * @return INT
73
	 */
74
	function getBestandsmenge($artikelId ) {
75
		if ( !empty($artikelId) )
76
		{
77
			$sql = '
78
				SELECT
79
					SUM(menge) as bestandsmenge
80
				FROM
81
					lagerbewegungen
82
				WHERE
83
					artikel = ' . $artikelId . '
84
			;';
85
			$result = mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
86
			$row = mysql_fetch_assoc($result);
87
			$bestandsmenge = $row['bestandsmenge'];
88
 
89
			if ( $bestandsmenge == NULL ) {
90
				$bestandsmenge = 0;
91
			}
92
 
93
			return $bestandsmenge;
94
		}
95
 
96
	}
97
 
98
	/**
99
	 * setBuchungFromBestellung($bestellId, $buchungstext)
100
	 *
101
	 * Bucht eine Bestellung in die Datenbank.
102
	 *
103
	 * @param INT
104
	 * @param STRING
105
	 * @return BOOL
106
	 */
107
	function setBuchungFromBestellung( $bestellId, $buchungstext, $artikelID, $menge )
108
	{
109
		$sql = '
110
			INSERT INTO
111
				buchungen
112
			(
113
				buchungsdatum,
114
				eintragsdatum,
115
				buchungstext
116
			)
117
			VALUES
118
			(
119
				NOW(),
120
				NOW(),
121
				"' . $buchungstext . '"
122
			)
123
		;';
124
 
125
		mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
126
		$buchungsId = mysql_insert_id();
127
 
128
 
129
			$sql = '
130
				INSERT INTO
131
					lagerbewegungen
132
				(
133
					artikel,
134
					buchungen,
135
					menge
136
				)
137
				VALUES
138
				(
139
					' . $artikelID . ',
140
					' . $buchungsId . ',
141
					' . $menge . '
142
				)
143
			;';
144
 
145
		mysql_query($sql) OR die($sql . '<hr />' . mysql_errno . ':' . mysql_error());
146
 
147
 
148
	}
149
 
150
 
151
 
152
	/**
153
	 * getBestandskennzeichnung()
154
	 *
155
	 * Holt die Bestandskennzeichnungsfarbe des Webs aus den Webrechten.
156
	 *
157
	 * @param STRING
158
	 * @return STRING
159
	 */
160
	function getBestandskennzeichnung($farbe) {
161
		if ( $farbe ) {
162
			return $farbe;
163
		} else {
164
			return '00ff00';
165
		}
166
	}
167
 
168
 
169
?>