4 E-Mail-Adresse für Kopie
5 Telefonnr für Rückfragen:
9 - Ordersatz auswählen || neuen Ordersatz erstellen || Ordersatz kopieren
10 - Ordersatz abschließen = PDF-Datei erzeugen, archivieren, per Mail, per Fax
13 include_once($_SESSION['sys']['basedir'].'masks/metro/utils.php');
14 include_once($_SESSION['sys']['basedir'].'lib/mail.php');
16 if (substr($_SERVER["SCRIPT_FILENAME"],-10) == '/index.php' &&
18 $_SESSION['ordersatz'] = $_GET['id'];
21 grid_column_edit[1] = {
26 ['1 mal bestellen', '1', 1],
27 ['2 mal bestellen', '2', 2],
28 ['3 mal bestellen', '3', 3],
29 ['4 mal bestellen', '4', 4],
30 ['5 mal bestellen', '5', 5],
31 ['6 mal bestellen', '6', 6],
32 ['7 mal bestellen', '7', 7],
33 ['8 mal bestellen', '8', 8],
34 ['10 mal bestellen', '10', 10],
35 ['12 mal bestellen', '12', 12],
36 ['14 mal bestellen', '14', 14]
40 function build_pdf_callback(data)
43 window.open('ajax/ajax.php?tmpdir='+data.tmpdir+'&source=metro__ordersatz_pos&func=file&name=download','_blank');
48 var source = document.getElementById('source');
49 if (!source) return false;
51 var parms = 'source=' + source.innerHTML + '&callback=pdf';
52 ajax_request('function', parms, build_pdf_callback);
56 function finish_callback(data)
58 if (data.status == true) {
59 info('Ordersatz verschickt');
61 confirm("Der Ordersatz wurde verschickt.");
62 window.location.href = './?mask=metro__ordersatz';
68 var source = document.getElementById('source');
69 if (!source) return false;
71 var parms = 'source=' + source.innerHTML + '&callback=send';
72 ajax_request('function', parms, finish_callback);
79 <p style="margin-top: 0px; margin-bottom: 4px; text-align: center;">
80 <button onclick="return build_pdf()">PDF erstellen</button>
82 <button onclick="return finish()">Abschließen</button>
83 <br>Bei Abschluß wird ein Fax zu Metro und eine Kopie per Mail an den Koch geschickt.
87 function get_title($id)
91 $query = sprintf('SELECT name FROM metro_ordersatz WHERE id = %d', $id);
92 $sth = $db->query($query);
94 if ($row) return 'Ordersatz für ' . $row['name'];
95 else return 'Unbekannter Ordersatz';
98 # INSERT INTO metro_ordersatz_pos (ordersatz,artikel,sys_user,sys_edit) SELECT ORDERID,id,'joey',now() FROM metro_artikel;
99 # DELETE FROM metro_ordersatz_pos WHERE ordersatz = ORDERID AND anzahl IS NULL
101 'table' => 'metro_ordersatz',
102 'join' => array('metro_ordersatz_pos ON ordersatz = metro_ordersatz.id',
103 'metro_artikel ON artikel = metro_artikel.id'),
104 'title' => get_title($_SESSION['ordersatz']),
105 'edit_title' => 'Ordersatz',
106 'where' => sprintf('ordersatz = %d AND owner = %d AND done IS NULL', $_SESSION['ordersatz'], $_SESSION['sys']['uid']),
110 'sql' => 'metro_artikel.id',
116 'specs' => "ClassName: 'alignrightpad', filterUI: 't'",
121 'specs' => "filterUI: 't'",
127 'specs' => "ClassName: 'alignrightpad', filterUI: 't'",
129 'bezeichnung' => array(
130 'name' => 'Bezeichnung',
132 'specs' => "filterUI: 't'",
134 'hersteller' => array(
135 'name' => 'Hersteller',
137 'specs' => "filterUI: 't'",
142 'specs' => "ClassName: 'aligncenter', filterUI: 's'",
143 'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_vpe','id','name').", 0, '')",
145 'abteilung' => array(
146 'name' => 'Abteilung',
148 'specs' => "ClassName: 'aligncenter', filterUI: 's'",
149 'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','name').", 0, '')",
154 'sql' => 'abteilung',
155 'specs' => "ClassName: 'aligncenter', filterUI: 's'",
156 'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','gang').", 0, '')",
166 'callbacks' => array(
167 'cellsave' => cb_cellsave,
172 'download' => process_download,
181 function cb_cellsave()
185 if ($_POST['value'] == 0)
186 $sql = sprintf("UPDATE metro_ordersatz_pos SET anzahl = NULL, sys_user = %s, sys_edit = now() WHERE ordersatz = %d AND artikel = %d",
187 $db->quote($_SESSION['sys']['login']),
188 $_SESSION['ordersatz'], $_POST['id']);
190 $sql = sprintf("UPDATE metro_ordersatz_pos SET anzahl = %d, sys_user = %s, sys_edit = now() WHERE ordersatz = %d AND artikel = %d",
191 $_POST['value'], $db->quote($_SESSION['sys']['login']),
192 $_SESSION['ordersatz'], $_POST['id']);
194 $sth = $db->query($sql);
200 $tmpdir = mk_tempdir();
201 $result = ordersatz_write($_SESSION['ordersatz'], $tmpdir, false);
203 if ($result !== true)
204 return array('error' => $result);
206 return array('tmpdir' => substr($tmpdir,strlen($_SESSION['sys']['basedir'])));
209 function process_download()
211 if (strpos($_GET['tmpdir'], '..') !== false)
214 $fname = $_SESSION['sys']['basedir'] . $_GET['tmpdir'] . '/ordersatz.pdf';
216 if (!file_exists($fname) || !is_file($fname))
217 return 'File not found';
220 rm_tempdir($_SESSION['sys']['basedir'] . $_GET['tmpdir']);
225 $tmpdir = mk_tempdir();
226 $result = ordersatz_write($_SESSION['ordersatz'], $tmpdir, true);
228 if ($result !== true)
229 return array('error' => $result);
233 return array('status' => true);