Revision 1 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** @package Content-management* @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @license propietary http://www.weban.de* @version $Rev: 4085 $* @filesource**//**** neue Version der Bestellungsübersicht** @package Content-management* @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth*/define( "tool_name", "gutschein" );require_once "fpdf/fpdf.php";require_once "Text/Password.php";class PDF extends FPDF{//Page headerfunction Header(){global $site, $r_nr, $shops_ID, $webs;$header_file = "includes/gutschein/header_" . $site . "_" . $shops_ID .".inc.php";if ( !file_exists( $header_file ) ){$header_file = "includes/gutschein/header_" . $site . ".inc.php";}if ( file_exists( $header_file ) ){require $header_file;}}//Page footerfunction Footer(){global $site, $shops_ID;$header_file = "includes/gutschein/footer_" . $site . "_" . $shops_ID .".inc.php";if ( !file_exists( $header_file ) ){$header_file = "includes/gutschein/footer_" . $site . ".inc.php";}if ( file_exists( $header_file ) ){require $header_file;}}}if ( $_POST["b_id"] ){define( "FROM_BESTELLUNG", true );} elseif ( !defined( "FROM_BESTELLUNG" ) ){define( "FROM_BESTELLUNG", false );}// SVN: $Id:$shops_id = $_POST['filter']['shopID'];$time = microtime( true );setlocale( LC_TIME, "de_DE" );define( "Range", 100 );define( "modul_name", "Warenwirtschaft" );define( "tool_name", "bestellung" );require_once "../Online-Shop/connect2.php";require_once "Weban_Smarty.class.php";require_once "../Warenwirtschaft/includes/bestellungen/pagination.php";require_once "../Warenwirtschaft/includes/statistik/system.php";require_once "module/functions.common.php";require_once "fpdf/fpdf.php";$shops_neu = getShops();$all_shops = get_all_shops();$shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );$zeiten = array( "alle", "heute", "gestern", "lfd. Woche", "letzte Woche",strftime( "%B %G" ), strftime( "%B %G", strtotime( "-1 month" ) ),strftime( "%B %G", strtotime( "-2 months" ) ), strftime( "%B %G",strtotime( "-3 months" ) ), strftime( "%B %G", strtotime( "-4 months" ) ) );$stati = array( "aktuell und gültig", "abgelaufen","abgelaufen/ungültig", "ungültig", "alle" );// Filter verarbeiten und vorbelegenif ( $_SESSION["filter"] ){$filter = $_SESSION["filter"];}if ( $_GET["filter"] ){$filter = $_GET["filter"];} elseif ( $_POST["filter"] ){$filter = $_POST["filter"];}if ( $_GET["start"] ){$filter["start"] = $_GET["start"];}else{$filter["start"] = 0;}/*if ( $filter["start"] ){SmartyPaginate::setCurrentItem( $filter["start"] );}else{$filter["start"] = SmartyPaginate::getCurrentItem();}*/$order = $filter["order"];// wenn ausgabeart: Schnelleditor/Bestellungif ( $order[0] == "_" ){$order = substr( $order, 1 );$desc = true;}if ( $filter["empfaenger"] ){$empf_filter = " empfaenger LIKE '%" . $filter["empfaenger"] . "%'";}else{unset( $empf_filter );}if ( $filter["code"] ){$code_filter = " code LIKE '%" . $filter["code"] . "%'";}else{unset( $code_filter );}switch ( $filter["status"] ){case 0:default:$status_filter = "status=1 AND gueltig_bis >= '" . date( "Y-m-d 00:00:00" ) ."'";break;case 1:$status_filter = "gueltig_bis < '" . date( "Y-m-d 00:00:00" ) . "'";break;case 2:$status_filter = "((gueltig_bis < '" . date( "Y-m-d 00:00:00" ) ."') OR (status=0))";break;case 3:$status_filter = "status=0";break;case 4:unset( $status_filter );break;}if ( $filter["ausgabe"] == 0 || $filter["ausgabe"] == 2 ){switch ( $order ){case "Bestellnummer":$queryOrder = " ORDER BY b.ID";break;case "Bestelldatum":$queryOrder = " ORDER BY b.erstellt_am";break;case "Artikel":$queryOrder = " ORDER BY 1";break;case "Kunde":$queryOrder = " ORDER BY l.Name1";break;case "PLZ":$queryOrder = " ORDER BY l.PLZ";break;case "ORT":$queryOrder = " ORDER BY l.ORT";break;case "Land":$queryOrder = " ORDER BY l.Land";break;case "Language":$queryOrder = " ORDER BY b.Language";break;default:$queryOrder = " ORDER BY b.ID DESC";break;}}if ( $desc === true ){$queryOrder .= " DESC";}if ( is_null( $filter['bestellart_id'] ) ){if ( !isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) ){$filter["bestellart_id"] = -1;}else{$filter['bestellart_id'] = 1;}}if ( ( $_POST['action'] == "edit" ) and ( $_POST['ID'] > 0 ) ){$insert_1 = "&ID[]=" . $_POST['ID'] . " onClick=\"return confirm('Diesen Eintrag wirklich löschen ?');\"";}else{$insert_1 = "\"";}// Smarty initialisieren$GLOBALS["ui"] = new Weban_Smarty();$GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";$GLOBALS["ui"]->compile_id = "marketing|gutschein";// Smarty Variablen füllen$GLOBALS["ui"]->assign( "insert_1", $insert_1 );$GLOBALS["ui"]->assign( "self", $_SERVER['PHP_SELF'] );$GLOBALS["ui"]->assign( "zeiten", $zeiten );$GLOBALS["ui"]->assign( "shops", $shops_sel );$GLOBALS["ui"]->assign( "start", $filter["start"] );$GLOBALS["ui"]->assign( "order", $filter["order"] );$GLOBALS["ui"]->assign( "webs", $webs );$GLOBALS["ui"]->assign( "all_shops", $all_shops );$GLOBALS["ui"]->assign( "stati", $stati );$GLOBALS["ui"]->assign( "site", $site );$GLOBALS["ui"]->assign( "status_sel", $filter["status"] );$GLOBALS["ui"]->assign( "user_rechte", $user_rechte );$_SESSION["filter"] = $filter;// Template ausgebenswitch ( $_POST['action'] ){case "add":$vorlage = getVorlage( $_POST["vorlage"] );$gs["gs_name"] = $vorlage["kurzbezeichnung"];$gs["wert"] = $vorlage["preis1"];$gs["minwert"] = $vorlage["preis2"];$gs["gueltig_von"] = strftime( "%x" );$gs["gueltig_bis"] = strftime( "%x", strtotime( $vorlage["short_line_2"] ." days" ) );$GLOBALS["ui"]->assign( "gutschein", $gs );$tpl_file = "templates/gutschein_create.tpl";break;case "insert":// Gutschein in Tabelle 'gutscheine' speichernif ( insert_into_gutscheine() == true ){$gutscheine = get_gutscheine( $shops_id );$GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );$tpl_file = "templates/gutschein_liste.tpl";$GLOBALS["ui"]->assign( "succ_msg","Gutschein erfolgreich gespeichert!" );}else{$tpl_file = "templates/gutschein_create.tpl";$GLOBALS["ui"]->assign( "error_msg","Fehler beim Speichern des Gutscheins!" );}break;case "update":$erg = update_gutschein( $_POST['gs_id'] );$gutschein = get_single_gutschein( $_POST["gs_id"] );$GLOBALS["ui"]->assign( "gutschein", $gutschein );$tpl_file = "templates/gutschein_edit.tpl";/*header( "Location:" . $_SERVER["SCRIPT_NAME"] ."?action=edit&ID=" . $_POST["gs_id"] );*/break;default:switch ( $_GET["action"] ){case "add":$vorlagen = getVorlagen();if ( count( $vorlagen ) ){$GLOBALS["ui"]->assign( "vorlagen", $vorlagen );$tpl_file = "gutschein_create_select.tpl";}else{$tpl_file = "gutschein_create.tpl";}break;case "delete":delete_gutschein( $_GET['ID'] );$gutscheine = get_gutscheine( $shops_id );if ( $gutscheine["total"] ){$GLOBALS["ui"]->assign( "pagination", pagination( $gutscheine["total"] ) );}$GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );$tpl_file = "templates/gutschein_liste.tpl";break;case "edit":// Modconf => Gutschein$uploadPath = $webs['verzeichnis'] . "/images/dokumente/";$moduleTyp[tool_name] = array( "table_foreign" =>"gutschein", "row_foreign" => "ID", "data_foreign" =>"ID" );$id = $_GET['ID'];if ( $gutschein = get_single_gutschein( $id ) ){$GLOBALS["ui"]->assign( "gutschein", $gutschein );$sql = "SELECT*FROMdokumenteWHEREtable_foreign = 'gutschein'ANDdata_foreign = $id";$res = mysql_query( $sql );$docCount = 1;while ( $row = mysql_fetch_assoc( $res ) ){$daten["dokumente"][$docCount - 1] = $row;$fTmpName = $row['document'];$daten["dokumente"][$docCount - 1]["nr"] = $docCount;$daten["dokumente"][$docCount - 1]["id"] = $row['id'];$daten["dokumente"][$docCount - 1]["name"] = $fTmpName;$daten["dokumente"][$docCount - 1]["date"] = $row["letzte_aenderung_am"];$author = $row["letzte_aenderung_von"];$pos = strpos( $author, "@" );if ( $pos !== false ){$author = substr( $row["letzte_aenderung_von"],0, $pos );}$daten["dokumente"][$docCount - 1]["author"] = $author;$daten["dokumente"][$docCount - 1]["add_document"] ="window.open('../dokumente/index.php?table_foreign=" .$moduleTyp[tool_name]['table_foreign'] ."&row_foreign=" . $moduleTyp[tool_name]['row_foreign'] ."&data_foreign=" . $row['data_foreign'] ."#', 'DokumentUpload', 'status, menubar, height=110, width=500');return false;";$daten["dokumente"][$docCount - 1]["del_document"] ="window.open('../dokumente/index.php?action=unlink&id=" .$zeile_d['id'] . "&table_foreign=" . $moduleTyp[tool_name]['table_foreign'] ."&row_foreign=" . $moduleTyp[tool_name]['row_foreign'] ."&data_foreign=" . $row['data_foreign'] ."#', 'DokumentUpload', 'status, menubar, height=110, width=500');return false;";$daten["dokumente"][$docCount - 1]["type"] =strtolower( substr( $fTmpName, strrpos( $fTmpName,"." ) + 1, strlen( $fTmpName ) ) );$start = substr( $zeile_d['document'], 0, 1 );$no_delete = array( "R", "L" );if ( in_array( $start, $no_delete ) ){$daten["dokumente"][$docCount - 1]["deleteable"] = false;}else{$daten["dokumente"][$docCount - 1]["deleteable"] = true;}$fTmpLinkIcon = "../dokumente/gfx/fileicons/" . $daten["dokumente"][$docCount -1]["type"] . ".gif";$fTmpIcon ="/web/apache/content-management/dokumente/gfx/fileicons/" .$daten["dokumente"][$docCount - 1]["type"] .".gif";$daten["dokumente"][$docCount - 1]["size"] = @filesize( $uploadPath . $fTmpName );$daten["dokumente"][$docCount - 1]["icon"] =file_exists( $fTmpIcon ) ? $fTmpLinkIcon :"../dokumente/gfx/fileicons/default.gif";$docCount++;}$daten["dokPath"] = "http://www.$site/images/dokumente/";$GLOBALS["ui"]->assign( "daten", $daten );}$tpl_file = "templates/gutschein_edit.tpl";break;case "genpdf":$gs_id = $_GET['gs_id'];$pdf = generate_gutschein_pdf( $gs_id );//header("Location: ".$_SERVER["SCRIPT_NAME"]."?action=edit&id=$gs_id");echo "<script>opener.location.href.reload();</script>";die();break;default:$gutscheine = get_gutscheine( $shops_id, $status_filter, $empf_filter,$code_filter );if ( FROM_BESTELLUNG != true ){if ( $gutscheine["total"] ){$GLOBALS["ui"]->assign( "pagination", pagination( $gutscheine["total"] ) );}}$GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );$tpl_file = "templates/gutschein_liste.tpl";break;}}$GLOBALS["ui"]->assign( "tpl_file", $tpl_file );// Zeit messenif ( defined( "DEBUG" ) ){$time2 = microtime( true );$diff = round( $time2 - $time, 2 );$sdat = date( "d.m.Y H:i:s", $time );$edat = date( "d.m.Y H:i:s", $time2 );$GLOBALS["ui"]->assign( "sdat", $sdat );$GLOBALS["ui"]->assign( "edat", $edat );$GLOBALS["ui"]->assign( "diff", number_format( $diff, 2, ',', '' ) );}if ( FROM_BESTELLUNG !== true ){$GLOBALS["ui"]->display( "gutschein.tpl" );}function insert_into_gutscheine(){global $remoteServer_dbh;$shop = $_POST['gs_shop'];if ( !$shop ){$shop = 0;}if ( !$_POST['gs_anfangswert'] ){$_POST['gs_anfangswert'] = 0;}if ( !$_POST['gs_minbestwert'] ){$_POST['gs_minbestwert'] = 0;}$wert = $_POST['gs_anfangswert'];if ( stristr( $wert, '%' ) ){$wert *= -1;}$code = gen_code( $_POST['gs_name'], time(), $_POST['gs_anfangswert'],'gs_code_' . Text_Password::create( 32, "unpronounceable" ) );$sql = "INSERT INTOgutscheine(shops_id,name,code,empfaenger,status,anfangswert,minbestwert,restwert,gueltig_von,gueltig_bis,erstellt_von,erstellt_am)VALUES(" . $shop . ",'" . $_POST['gs_name'] . "','" . $code . "','" . $_POST['gs_empfaenger'] . "'," . $_POST['gs_status'] . "," . $wert . "," . $_POST['gs_minbestwert'] . "," . $wert . ",'" . human2date( $_POST['gs_gueltig_von'] ) . "','" . human2date( $_POST['gs_gueltig_bis'] ) . "','" . $_SERVER['PHP_AUTH_USER'] . "',NOW())";$res = mysql_query( $sql, $remoteServer_dbh );if ( $res ){$gs_id = mysql_insert_id( $remoteServer_dbh );if ( $gs_id ){if ( $_POST["gen_pdf"] || !isset( $_POST["gen_pdf"] ) ){generate_gutschein_pdf( $gs_id );}return get_single_gutschein( $gs_id );}}return false;}function get_gutscheine( $shops_id = null, $status = null, $empf_filter = null,$code_filter = null ){global $remoteServer_dbh;if ( $shops_id ){$wh_arr[] = " shops_id=" . $shops_id . "";}if ( $status ){$wh_arr[] = $status;}if ( $empf_filter ){$wh_arr[] = $empf_filter;}if ( $code_filter ){$wh_arr[] = $code_filter;}if ( is_array( $wh_arr ) ){$wh = "WHERE " . implode( " AND ", $wh_arr );}$sql = "SELECT SQL_CALC_FOUND_ROWS*FROMgutscheine" . $wh . "ORDER BYerstellt_am desc,id descLIMIT" . $_SESSION["filter"]["start"] . ", " . SmartyPaginate::getLimit() . "";$q = mysql_query( $sql, $remoteServer_dbh );if ( $q ){while ( $r = mysql_fetch_assoc( $q ) ){$gs["gutscheine"][] = $r;}}else{//echo mysql_error();}if ( is_array( $gs ) ){$sql = "SELECTFOUND_ROWS() AS total";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$gs["total"] = $row["total"];return $gs;}return false;}function get_single_gutschein( $id ){global $remoteServer_dbh;$sql = "SELECT*FROMgutscheineWHEREid=" . $id . "";if ( $q = mysql_query( $sql, $remoteServer_dbh ) ){$gutschein = mysql_fetch_assoc( $q );return $gutschein;}return false;}function delete_gutschein( $id ){global $remoteServer_dbh;$sql = "DELETE FROMgutscheineWHEREid=" . $id . "";if ( $q = mysql_query( $sql, $remoteServer_dbh ) ){return true;}return false;}function update_gutschein( $id ){global $remoteServer_dbh;$sql = "UPDATEgutscheineSETshops_id = " . $_POST['gs_shop'] . ",name = '" . $_POST['gs_name'] . "',empfaenger = '" . $_POST['gs_empfaenger'] . "',`status` = " . $_POST['gs_status'] . ",anfangswert = " . $_POST['gs_anfangswert'] . ",minbestwert = " . $_POST['gs_minbestwert'] . ",gueltig_von='" . human2date( $_POST["gs_gueltig_von"] ) ."',gueltig_bis='" . human2date( $_POST["gs_gueltig_bis"] ) ."',restwert = " . $_POST['gs_restwert'] . ",letzte_aenderung_am = 'NOW()',letzte_aenderung_von = '" . $_SERVER['PHP_AUTH_USER'] . "'WHEREid = " . $id . "";$q = mysql_query( $sql, $remoteServer_dbh );if ( $q ){return true;}echo mysql_error( $remoteServer_dbh ) . PHP_EOL . $sql;return false;}function gen_code( $name, $time, $wert, $str ){return substr( md5( $name . $time . $wert . $str ), 0, 12 );}function get_all_shops(){$sql = "SELECTID,NameFROM`shops`WHERE`database` <> ''";if ( $q = mysql_query( $sql ) ){while ( $r = mysql_fetch_assoc( $q ) ){$shops[] = $r;}return $shops;}return false;}function generate_gutschein_pdf( $id ){$gs = get_single_gutschein( $id );$dat = datetime2Human( $gs['erstellt_am'] );//$text = $gs["name"] . "\n";$text["body"] = "";$text["body"] .= utf8_decode( 'ausgestellt für: ' . $gs['empfaenger'] ."\n" );$text["gs"] = $gs;$text["body"] .= utf8_decode( 'Wert: ' . $wert . "\n" );$text["body"] .= utf8_decode( 'ausgestellt am ' . $dat["Datum"] . " " .$dat["Zeit"] . "\n" );$f_name = create_pdf( $id, "", "", $text, "Gutschein", generate_LN( $id,"Gutschein" ) );//echo "Speichere Dokument (Gutschein)<br>";save_document( $f_name, $id, "Gutschein" );if ( FROM_BESTELLUNG === true && $_POST["b_id"] ){$b_id = $_POST["b_id"];//echo "Speichere Dokument (Bestellung)<br>";save_document( $f_name, $b_id );}}function create_pdf( $bestell_id, $adminMail, $mailto, $text, $art, $ln = 1 ){global $webs, $site;$sql = "SELECTshops_IDFROMBestellungWHEREID=$bestell_id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$shops_ID = $row["shops_ID"];$gs = $text["gs"];$wert = $gs["anfangswert"];if ( $wert < 0 ){$wert = number_format( $wert * -1 ) . "%";}else{$wert = number_format( $wert, 2, ",", "." ) . " EUR";}$config_file ="/web/apache/content-management/marketing/includes/gutschein/config_$site.inc.php";if ( file_exists( $config_file ) ){require $config_file;}else{$orientation = "P";$unit = "mm";$format = "A4";}//Instanciation of inherited class$pdf = new PDF( $orientation, $unit, $format );$pdf->setSubject( "Voucher" );$pdf->setAuthor( $haendler_name );$pdf->setCreator( "fpdf PHP Library" );$body_file ="/web/apache/content-management/marketing/includes/gutschein/body_$site.inc.php";if ( file_exists( $body_file ) ){require $body_file;}$date = date( "Y-m-d_H-i-s" );$f_name = $art . "_" . $bestell_id . "_" . $date . "_" . $ln . ".pdf";$f_name = str_replace( "ä", "ae", $f_name );$f_name = str_replace( "Ä", "Ae", $f_name );$f_name = str_replace( "ö", "oe", $f_name );$f_name = str_replace( "Ö", "Oe", $f_name );$f_name = str_replace( "ü", "ue", $f_name );$f_name = str_replace( "Ü", "Ue", $f_name );$f_name = str_replace( "ß", "ss", $f_name );$pdf->Output( $webs['verzeichnis'] . "/images/dokumente/$f_name" );$pdf->Output();return $f_name;}function save_document( $f_name, $bestell_id, $table = "Bestellung" ){global $remoteServer_dbh;$sql = "REPLACE INTOdokumente(table_foreign,row_foreign,data_foreign,document,letzte_Aenderung_am,letzte_Aenderung_von)VALUES('$table','ID',$bestell_id,'$f_name',NOW(),'" . $_SERVER["PHP_AUTH_USER"] . "')";$res = mysql_query( $sql, $remoteServer_dbh );if ( !$res ){/*mail( "admin@weban.de","Fehler beim hinzufgen der PDF-Datei zur Bestellung!",mysql_error() . "\n$sql", "From: redaktion@$site" );*///echo mysql_error();$ret = false;}else{$ret = mysql_insert_id( $remoteServer_dbh );}return $ret;}function generate_LN( $bestell_id, $art ){global $remoteServer_dbh;$date = date( "Y-m-d_H-i-s" );$f_name = $art . "_" . $bestell_id . "_" . $date;$f_name = str_replace( "ä", "ae", $f_name );$f_name = str_replace( "Ä", "Ae", $f_name );$f_name = str_replace( "ö", "oe", $f_name );$f_name = str_replace( "Ö", "Oe", $f_name );$f_name = str_replace( "ü", "ue", $f_name );$f_name = str_replace( "Ü", "Ue", $f_name );$f_name = str_replace( "ß", "ss", $f_name );$sql = "SELECTMAX(document) AS dokumentFROMdokumenteWHEREdocument LIKE '$f_name%'";$res = mysql_query( $sql, $remoteServer_dbh );if ( $res ){if ( mysql_num_rows( $res ) ){$row = mysql_fetch_assoc( $res );$dokument = substr( $row["dokument"], 0, strlen( $row["dokument"] ) -4 );$dokument = explode( "_", $dokument );$ln = $dokument[count( $dokument ) - 1];$ln++;}else{$ln = 1;}}else{$ln = 1;}return $ln;}function getVorlagen(){global $remoteServer_dbh;$table = "artikel";$sql = "SELECT*FROM$tableWHEREFather = -5";$res = mysql_query( $sql, $remoteServer_dbh );$vorlagen[-1] = "Bitte wählen";while ( $row = mysql_fetch_assoc( $res ) ){$vorlagen[$row["ID"]] = $row["kurzbezeichnung"];}return $vorlagen;}function getVorlage( $v_id, $shop_id = 1 ){global $remoteServer_dbh;$table = "artikel";$sql = "SELECT*FROM$tableWHEREFather = -5ANDID=$v_id";$res = mysql_query( $sql, $remoteServer_dbh );$row = mysql_fetch_assoc( $res );return $row;}?>