0) $fname .= '('.$i.')'; if (!empty($parts['extension'])) $fname .= '.' . $parts['extension']; if (!is_file($base.$fname)) { if (copy($filename, $base.$fname) === false) return 'Kann Datei nicht speichern'; chmod($base.$fname, 0640); break; } } $sql = sprintf("INSERT INTO metro_files (ordersatz,date,title,path,sys_user,sys_edit) " . "VALUES (%d,now(),%s,%s,%s,now())", $id, $db->quote($title), $db->quote($fname), $db->quote($_SESSION['sys']['login'])); $sth = $db->query($sql); return true; } function ordersatz_finish($id) { global $db; $sql = sprintf("DELETE FROM metro_ordersatz_pos WHERE ordersatz = %d AND anzahl IS NULL", $id); $sth = $db->query($sql); $sql = sprintf("UPDATE metro_ordersatz SET done = now(), sys_edit = now(), sys_user = %s WHERE id = %d", $db->quote($_SESSION['sys']['login']), $id); $sth = $db->query($sql); } function ordersatz_write($id, $dir, $send) { global $db; $fname = sprintf("%smasks/%s/%s", $_SESSION['sys']['basedir'], MODULE, TEMPLATE); if (!file_exists($fname)) return "Vorlage nicht gefunden"; copy($fname, $dir . '/ordersatz.tex'); chdir($dir); $sql = sprintf("SELECT name,koch,email,telefon,datum,uhrzeit,owner FROM metro_ordersatz WHERE id = %d", $id); $satz = query_db($sql); $f = fopen(FNAME_VARS, 'w'); fwrite($f, sprintf('\newcommand{\koch}{%s}'."\n", latex_encode($satz[0]['koch']))); fwrite($f, sprintf('\newcommand{\reise}{%s}'."\n", latex_encode($satz[0]['name']))); fwrite($f, sprintf('\newcommand{\telefon}{%s}'."\n", latex_encode($satz[0]['telefon']))); fwrite($f, sprintf('\newcommand{\uhrzeit}{%s}'."\n", latex_encode($satz[0]['uhrzeit']))); $d = explode('-', $satz[0]['datum']); fwrite($f, sprintf('\newcommand{\datum}{%d.%d.%d}'."\n", $d[2], $d[1], $d[0])); fclose($f); $sql = sprintf("SELECT artnr,gang,metro_vpe.short AS vpname,menge,bezeichnung,hersteller,anzahl " . "FROM metro_ordersatz_pos " . "JOIN metro_artikel ON artikel = metro_artikel.id " . "JOIN metro_abteilung ON abteilung = metro_abteilung.id " . "JOIN metro_vpe ON vpe = metro_vpe.id " . "WHERE ordersatz = %d AND anzahl IS NOT NULL " . "ORDER BY gang,metro_abteilung.name", $id); $result = query_db($sql); $f = fopen(FNAME_ITEMS, 'w'); foreach ($result as $row) { $bez = $row['bezeichnung']; if (strlen($row['hersteller'])) $bez .= ' (' . $row['hersteller'] . ')'; fwrite($f, sprintf('\order{%d}{%d}{%s %s}{%s}'."\n", $row['anzahl'], $row['artnr'], $row['menge'], latex_encode($bez), latex_encode($row['vpname']))); } fclose($f); system("latex ordersatz > ordersatz.out 2>&1 && dvips ordersatz >> ordersatz.out 2>&1 && ps2pdf ordersatz.ps", $ret); if ($ret !== 0) return "Probleme beim Compilieren des Ordersatzes"; if (!file_exists('ordersatz.ps')) return "Postscript-Datei nicht erstellt"; if ($send) { $ret = ordersatz_archive($id, 'Ordersatz '.$satz[0]['name'], $dir . '/ordersatz.pdf'); if ($ret !== true) return $ret; $cmd = sprintf("faxspool -f %s %s %s > /dev/null 2>&1", $satz[0]['email'], FAXNUMBER, 'ordersatz.ps'); system($cmd); $message = sprintf("Hallo %s!\n\nDer angehängte Ordersatz wurde gerade an Metro Oldenburg verschickt.\n" . "Eine Bestätigung über den Versand kommt per Mail.\n\n", $satz[0]['koch']); mail_attach($satz[0]['email'], 'Ordersatz ' . $satz[0]['name'], $satz[0]['email'], 'Infodrom ' . $satz[0]['koch'], array($dir . '/ordersatz.pdf'), $message); ordersatz_finish($id); } return true; } ?>