function latexspecialchars($string)
{
- $map = array(
- "#"=>"\\#",
- "$"=>"\\$",
- "%"=>"\\%",
- "&"=>"\\&",
- "~"=>"\\~{}",
- "_"=>"\\_",
- "^"=>"\\^{}",
- "\\"=>"\\textbackslash",
- "{"=>"\\{",
- "}"=>"\\}",
- );
- return preg_replace("/([\^\%~\\\\#\$%&_\{\}])/e", "\$map['$1']", $string);
+ return preg_replace_callback("/([\^\%~\\\\#\$%&_\{\}])/",
+ function($matches) {
+ $map = array(
+ "#"=>"\\#",
+ "$"=>"\\$",
+ "%"=>"\\%",
+ "&"=>"\\&",
+ "~"=>"\\~{}",
+ "_"=>"\\_",
+ "^"=>"\\^{}",
+ "\\"=>"\\textbackslash",
+ "{"=>"\\{",
+ "}"=>"\\}",
+ );
+ return $map[$matches[0]];
+ },
+ $string);
}
function latex_encode($text)
{
global $db;
+ $weekdays = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
+
$fname = sprintf("%smasks/%s/%s",
$_SESSION['sys']['basedir'],
MODULE,
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]));
+ $time = mktime(10,0,0,$d[1], $d[2], $d[0]);
+ fwrite($f, sprintf('\newcommand{\datum}{%s, %d.%d.%d}'."\n", $weekdays[date('w', $time)], $d[2], $d[1], $d[0]));
fclose($f);
$sql = sprintf("SELECT artnr,gang,metro_vpe.short AS vpname,menge,bezeichnung,hinweis,hersteller,anzahl " .
"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,bezeichnung",
+ "ORDER BY sort,gang,menge,bezeichnung",
$id);
$result = query_db($sql);
$f = fopen(FNAME_ITEMS, 'w');
- foreach ($result as $row) {
+ $i = -1;
+ while (++$i < count($result)) {
+ $row = $result[$i];
+
$bez = latex_encode($row['bezeichnung']);
+ if (strlen($row['menge']))
+ $bez = latex_encode($row['menge']) . ' ' . $bez;
if (strlen($row['hersteller']))
$bez .= ' (' . latex_encode($row['hersteller']) . ')';
if (strlen($row['hinweis']))
$bez .= sprintf("\\newline\\textbf{%s}", latex_encode($row['hinweis']));
- fwrite($f, sprintf('\order{%d}{%s}{%s %s}{%s}{%s}'."\n",
+ fwrite($f, sprintf('\order%s{%d}{%s}{%s}{%s}{%s}'."\n",
+ ($i+1 < count($result) && $result[$i+1]['gang'] != $row['gang']) ? '[l]' : '',
$row['anzahl'],
- $row['artnr'] ? (int)$row['artnr'] : '',
- latex_encode($row['menge']),
+ ($row['artnr'] && $row['artnr'] != 4711) ? (int)$row['artnr'] : '',
$bez,
latex_encode($row['vpname']),
latex_encode($row['gang'])));
'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",
+ $message = utf8_decode(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'],
- mb_encode_mimeheader(utf8_decode('Ordersatz ' . $satz[0]['name']),'latin1'),
+ mb_encode_mimeheader('Ordersatz ' . $satz[0]['name'],'latin1'),
$satz[0]['email'],
- mb_encode_mimeheader(utf8_decode('Infodrom ' . $satz[0]['koch']),'latin1'),
+ mb_encode_mimeheader('Infodrom ' . $satz[0]['koch'],'latin1'),
array($dir . '/ordersatz.pdf'),
$message);