Subversion-Projekte lars-tiefland.content-management

Revision

Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    /**
4
     * @package   Content-management
5
     * @author    Lars Tiefland <tiefland@weban.de>
6
     * @copyright 2009 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
8
     * @version   $Rev: 4005 $
9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * neue Version der Bestellungsübersicht
16
     *
17
     * @package   Content-management
18
     * @author    Lars Tiefland <tiefland@weban.de>
19
     * @copyright 2009 Webagentur Niewerth
20
     */
21
 
22
    define( "tool_name", "gutschein" );
23
    require_once "fpdf/fpdf.php";
24
    require_once "Text/Password.php";
25
    class PDF extends FPDF
26
    {
27
        //Page header
28
        function Header()
29
        {
30
            global $site, $r_nr, $shops_ID, $webs;
31
 
32
            $header_file = "includes/gutschein/header_" . $site . "_" . $shops_ID .
33
                ".inc.php";
34
            if ( !file_exists( $header_file ) )
35
            {
36
                $header_file = "includes/gutschein/header_" . $site . ".inc.php";
37
            }
38
            if ( file_exists( $header_file ) )
39
            {
40
                require $header_file;
41
            }
42
        }
43
 
44
        //Page footer
45
        function Footer()
46
        {
47
            global $site, $shops_ID;
48
            $header_file = "includes/gutschein/footer_" . $site . "_" . $shops_ID .
49
                ".inc.php";
50
            if ( !file_exists( $header_file ) )
51
            {
52
                $header_file = "includes/gutschein/footer_" . $site . ".inc.php";
53
            }
54
            if ( file_exists( $header_file ) )
55
            {
56
                require $header_file;
57
            }
58
        }
59
    }
60
 
61
    if ( $_POST["b_id"] )
62
    {
63
        define( "FROM_BESTELLUNG", true );
64
    } elseif ( !defined( "FROM_BESTELLUNG" ) )
65
    {
66
        define( "FROM_BESTELLUNG", false );
67
    }
68
    // SVN: $Id:
69
 
70
    $shops_id = $_POST['filter']['shopID'];
71
    $time = microtime( true );
72
 
73
    setlocale( LC_TIME, "de_DE" );
74
 
75
    define( "Range", 100 );
76
    define( "modul_name", "Warenwirtschaft" );
77
    define( "tool_name", "bestellung" );
78
 
79
    require_once "../Online-Shop/connect2.php";
80
    require_once "Weban_Smarty.class.php";
81
    require_once "../Warenwirtschaft/includes/bestellungen/pagination.php";
82
    require_once "../Warenwirtschaft/includes/statistik/system.php";
83
    require_once "module/functions.common.php";
84
    require_once "fpdf/fpdf.php";
85
 
86
    $shops_neu = getShops();
87
    $all_shops = get_all_shops();
88
 
89
    $shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );
90
 
91
    $zeiten = array( "alle", "heute", "gestern", "lfd. Woche", "letzte Woche",
92
        strftime( "%B %G" ), strftime( "%B %G", strtotime( "-1 month" ) ),
93
        strftime( "%B %G", strtotime( "-2 months" ) ), strftime( "%B %G",
94
        strtotime( "-3 months" ) ), strftime( "%B %G", strtotime( "-4 months" ) ) );
95
 
96
    $stati = array( "aktuell und g&uuml;ltig", "abgelaufen",
97
        "abgelaufen/ung&uuml;ltig", "ung&uuml;ltig", "alle" );
98
    // Filter verarbeiten und vorbelegen
99
    if ( $_SESSION["filter"] )
100
    {
101
        $filter = $_SESSION["filter"];
102
    }
103
    if ( $_GET["filter"] )
104
    {
105
        $filter = $_GET["filter"];
106
    } elseif ( $_POST["filter"] )
107
    {
108
        $filter = $_POST["filter"];
109
    }
110
    if ( $_GET["start"] )
111
    {
112
        $filter["start"] = $_GET["start"];
113
    }
114
    else
115
    {
116
        $filter["start"] = 0;
117
    }
118
 
119
    /*if ( $filter["start"] )
120
    {
121
    SmartyPaginate::setCurrentItem( $filter["start"] );
122
    }
123
    else
124
    {
125
    $filter["start"] = SmartyPaginate::getCurrentItem();
126
    }*/
127
    $order = $filter["order"];
128
    // wenn ausgabeart: Schnelleditor/Bestellung
129
 
130
    if ( $order[0] == "_" )
131
    {
132
        $order = substr( $order, 1 );
133
        $desc = true;
134
    }
135
 
136
    if ( $filter["empfaenger"] )
137
    {
138
        $empf_filter = " empfaenger LIKE '%" . $filter["empfaenger"] . "%'";
139
    }
140
    else
141
    {
142
        unset( $empf_filter );
143
    }
144
    if ( $filter["code"] )
145
    {
146
        $code_filter = " code LIKE '%" . $filter["code"] . "%'";
147
    }
148
    else
149
    {
150
        unset( $code_filter );
151
    }
152
    switch ( $filter["status"] )
153
    {
154
        case 0:
155
        default:
156
            $status_filter = "status=1 AND gueltig_bis >= '" . date( "Y-m-d 00:00:00" ) .
157
                "'";
158
            break;
159
        case 1:
160
            $status_filter = "gueltig_bis < '" . date( "Y-m-d 00:00:00" ) . "'";
161
            break;
162
        case 2:
163
            $status_filter = "((gueltig_bis < '" . date( "Y-m-d 00:00:00" ) .
164
                "') OR (status=0))";
165
            break;
166
        case 3:
167
            $status_filter = "status=0";
168
            break;
169
        case 4:
170
            unset( $status_filter );
171
            break;
172
    }
173
    if ( $filter["ausgabe"] == 0 || $filter["ausgabe"] == 2 )
174
    {
175
        switch ( $order )
176
        {
177
            case "Bestellnummer":
178
                $queryOrder = " ORDER BY b.ID";
179
                break;
180
            case "Bestelldatum":
181
                $queryOrder = " ORDER BY b.erstellt_am";
182
                break;
183
            case "Artikel":
184
                $queryOrder = " ORDER BY 1";
185
                break;
186
            case "Kunde":
187
                $queryOrder = " ORDER BY l.Name1";
188
                break;
189
            case "PLZ":
190
                $queryOrder = " ORDER BY l.PLZ";
191
                break;
192
            case "ORT":
193
                $queryOrder = " ORDER BY l.ORT";
194
                break;
195
            case "Land":
196
                $queryOrder = " ORDER BY l.Land";
197
                break;
198
            case "Language":
199
                $queryOrder = " ORDER BY b.Language";
200
                break;
201
            default:
202
                $queryOrder = " ORDER BY b.ID DESC";
203
                break;
204
        }
205
    }
206
    if ( $desc === true )
207
    {
208
        $queryOrder .= " DESC";
209
    }
210
    if ( is_null( $filter['bestellart_id'] ) )
211
    {
212
        if ( !isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
213
        {
214
            $filter["bestellart_id"] = -1;
215
        }
216
        else
217
        {
218
            $filter['bestellart_id'] = 1;
219
        }
220
    }
221
 
222
 
223
    if ( ( $_POST['action'] == "edit" ) and ( $_POST['ID'] > 0 ) )
224
    {
225
        $insert_1 = "&ID[]=" . $_POST['ID'] . " onClick=\"return confirm('Diesen Eintrag wirklich löschen ?');\"";
226
    }
227
    else
228
    {
229
        $insert_1 = "\"";
230
    }
231
 
232
    // Smarty initialisieren
233
    $GLOBALS["ui"] = new Weban_Smarty();
234
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
235
    $GLOBALS["ui"]->compile_id = "marketing|gutschein";
236
 
237
    // Smarty Variablen füllen
238
    $GLOBALS["ui"]->assign( "insert_1", $insert_1 );
239
    $GLOBALS["ui"]->assign( "self", $_SERVER['PHP_SELF'] );
240
    $GLOBALS["ui"]->assign( "zeiten", $zeiten );
241
    $GLOBALS["ui"]->assign( "shops", $shops_sel );
242
    $GLOBALS["ui"]->assign( "start", $filter["start"] );
243
    $GLOBALS["ui"]->assign( "order", $filter["order"] );
244
    $GLOBALS["ui"]->assign( "webs", $webs );
245
    $GLOBALS["ui"]->assign( "all_shops", $all_shops );
246
    $GLOBALS["ui"]->assign( "stati", $stati );
247
    $GLOBALS["ui"]->assign( "site", $site );
248
    $GLOBALS["ui"]->assign( "status_sel", $filter["status"] );
249
    $GLOBALS["ui"]->assign( "user_rechte", $user_rechte );
250
 
251
    $_SESSION["filter"] = $filter;
252
    // Template ausgeben
253
 
254
    switch ( $_POST['action'] )
255
    {
256
        case "add":
257
            $vorlage = getVorlage( $_POST["vorlage"] );
258
            $gs["gs_name"] = $vorlage["kurzbezeichnung"];
259
            $gs["wert"] = $vorlage["preis1"];
260
            $gs["minwert"] = $vorlage["preis2"];
261
            $gs["gueltig_von"] = strftime( "%x" );
262
            $gs["gueltig_bis"] = strftime( "%x", strtotime( $vorlage["short_line_2"] .
263
                " days" ) );
264
            $GLOBALS["ui"]->assign( "gutschein", $gs );
265
            $tpl_file = "templates/gutschein_create.tpl";
266
            break;
267
 
268
        case "insert":
269
            // Gutschein in Tabelle 'gutscheine' speichern
270
            if ( insert_into_gutscheine() == true )
271
            {
272
                $gutscheine = get_gutscheine( $shops_id );
273
 
274
                $GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );
275
                $tpl_file = "templates/gutschein_liste.tpl";
276
                $GLOBALS["ui"]->assign( "succ_msg",
277
                    "Gutschein erfolgreich gespeichert!" );
278
            }
279
            else
280
            {
281
                $tpl_file = "templates/gutschein_create.tpl";
282
                $GLOBALS["ui"]->assign( "error_msg",
283
                    "Fehler beim Speichern des Gutscheins!" );
284
            }
285
            break;
286
        case "update":
287
            $erg = update_gutschein( $_POST['gs_id'] );
288
            $gutschein = get_single_gutschein( $_POST["gs_id"] );
289
            $GLOBALS["ui"]->assign( "gutschein", $gutschein );
290
            $tpl_file = "templates/gutschein_edit.tpl";
291
            /*header( "Location:" . $_SERVER["SCRIPT_NAME"] .
292
            "?action=edit&ID=" . $_POST["gs_id"] );*/
293
            break;
294
        default:
295
            switch ( $_GET["action"] )
296
            {
297
                case "add":
298
                    $vorlagen = getVorlagen();
299
                    $GLOBALS["ui"]->assign( "vorlagen", $vorlagen );
300
                    $tpl_file = "templates/gutschein_create_select.tpl";
301
                    break;
302
 
303
                case "delete":
304
                    delete_gutschein( $_GET['ID'] );
305
                    $gutscheine = get_gutscheine( $shops_id );
306
                    if ( $gutscheine["total"] )
307
                    {
308
                        $GLOBALS["ui"]->assign( "pagination", pagination( $gutscheine["total"] ) );
309
                    }
310
 
311
                    $GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );
312
                    $tpl_file = "templates/gutschein_liste.tpl";
313
                    break;
314
 
315
                case "edit":
316
                    // Modconf => Gutschein
317
                    $uploadPath = $webs['verzeichnis'] . "/images/dokumente/";
318
                    $moduleTyp[tool_name] = array( "table_foreign" =>
319
                        "gutschein", "row_foreign" => "ID", "data_foreign" =>
320
                        "ID" );
321
                    $id = $_GET['ID'];
322
                    if ( $gutschein = get_single_gutschein( $id ) )
323
                    {
324
                        $GLOBALS["ui"]->assign( "gutschein", $gutschein );
325
                        $sql = "SELECT
326
                                *
327
                            FROM
328
                                dokumente
329
                            WHERE
330
                                table_foreign = 'gutschein'
331
                            AND
332
                                data_foreign = $id
333
                        ";
334
                        $res = mysql_query( $sql );
335
                        $docCount = 1;
336
                        while ( $row = mysql_fetch_assoc( $res ) )
337
                        {
338
                            $daten["dokumente"][$docCount - 1] = $row;
339
                            $fTmpName = $row['document'];
340
                            $daten["dokumente"][$docCount - 1]["nr"] = $docCount;
341
                            $daten["dokumente"][$docCount - 1]["id"] = $row['id'];
342
                            $daten["dokumente"][$docCount - 1]["name"] = $fTmpName;
343
                            $daten["dokumente"][$docCount - 1]["date"] = $row["letzte_aenderung_am"];
344
                            $author = $row["letzte_aenderung_von"];
345
                            $pos = strpos( $author, "@" );
346
                            if ( $pos !== false )
347
                            {
348
                                $author = substr( $row["letzte_aenderung_von"],
349
                                    0, $pos );
350
                            }
351
 
352
                            $daten["dokumente"][$docCount - 1]["author"] = $author;
353
                            $daten["dokumente"][$docCount - 1]["add_document"] =
354
                                "window.open('../dokumente/index.php?table_foreign=" .
355
                                $moduleTyp[tool_name]['table_foreign'] .
356
                                "&row_foreign=" . $moduleTyp[tool_name]['row_foreign'] .
357
                                "&data_foreign=" . $row['data_foreign'] .
358
                                "#', 'DokumentUpload', 'status, menubar, height=110, width=500');return false;";
359
                            $daten["dokumente"][$docCount - 1]["del_document"] =
360
                                "window.open('../dokumente/index.php?action=unlink&id=" .
361
                                $zeile_d['id'] . "&table_foreign=" . $moduleTyp[tool_name]['table_foreign'] .
362
                                "&row_foreign=" . $moduleTyp[tool_name]['row_foreign'] .
363
                                "&data_foreign=" . $row['data_foreign'] .
364
                                "#', 'DokumentUpload', 'status, menubar, height=110, width=500');return false;";
365
 
366
                            $daten["dokumente"][$docCount - 1]["type"] =
367
                                strtolower( substr( $fTmpName, strrpos( $fTmpName,
368
                                "." ) + 1, strlen( $fTmpName ) ) );
369
                            $start = substr( $zeile_d['document'], 0, 1 );
370
                            $no_delete = array( "R", "L" );
371
                            if ( in_array( $start, $no_delete ) )
372
                            {
373
                                $daten["dokumente"][$docCount - 1]["deleteable"] = false;
374
                            }
375
                            else
376
                            {
377
                                $daten["dokumente"][$docCount - 1]["deleteable"] = true;
378
                            }
379
                            $fTmpLinkIcon = "../dokumente/gfx/fileicons/" . $daten["dokumente"][$docCount -
380
                                1]["type"] . ".gif";
381
                            $fTmpIcon =
382
                                "/web/apache/content-management/dokumente/gfx/fileicons/" .
383
                                $daten["dokumente"][$docCount - 1]["type"] .
384
                                ".gif";
385
                            $daten["dokumente"][$docCount - 1]["size"] = @
386
                                filesize( $uploadPath . $fTmpName );
387
                            $daten["dokumente"][$docCount - 1]["icon"] =
388
                                file_exists( $fTmpIcon ) ? $fTmpLinkIcon :
389
                                "../dokumente/gfx/fileicons/default.gif";
390
                            $docCount++;
391
                        }
392
                        $daten["dokPath"] = "http://www.$site/images/dokumente/";
393
                        $GLOBALS["ui"]->assign( "daten", $daten );
394
                    }
395
                    $tpl_file = "templates/gutschein_edit.tpl";
396
                    break;
397
                case "genpdf":
398
                    $gs_id = $_GET['gs_id'];
399
                    $pdf = generate_gutschein_pdf( $gs_id );
400
                    //header("Location: ".$_SERVER["SCRIPT_NAME"]."?action=edit&id=$gs_id");
401
                    echo "<script>opener.location.href.reload();</script>";
402
                    die();
403
                    break;
404
                default:
405
                    $gutscheine = get_gutscheine( $shops_id, $status_filter, $empf_filter,
406
                        $code_filter );
407
                    if ( FROM_BESTELLUNG != true )
408
                    {
409
                        if ( $gutscheine["total"] )
410
                        {
411
                            $GLOBALS["ui"]->assign( "pagination", pagination( $gutscheine["total"] ) );
412
                        }
413
 
414
                    }
415
                    $GLOBALS["ui"]->assign( "gutscheine", $gutscheine["gutscheine"] );
416
                    $tpl_file = "templates/gutschein_liste.tpl";
417
                    break;
418
            }
419
    }
420
 
421
    $GLOBALS["ui"]->assign( "tpl_file", $tpl_file );
422
 
423
    // Zeit messen
424
    if ( defined( "DEBUG" ) )
425
    {
426
        $time2 = microtime( true );
427
        $diff = round( $time2 - $time, 2 );
428
        $sdat = date( "d.m.Y H:i:s", $time );
429
        $edat = date( "d.m.Y H:i:s", $time2 );
430
        $GLOBALS["ui"]->assign( "sdat", $sdat );
431
        $GLOBALS["ui"]->assign( "edat", $edat );
432
        $GLOBALS["ui"]->assign( "diff", number_format( $diff, 2, ',', '' ) );
433
    }
434
 
435
    if ( FROM_BESTELLUNG !== true )
436
    {
437
        $GLOBALS["ui"]->display( "gutschein.tpl" );
438
    }
439
    function insert_into_gutscheine()
440
    {
441
        global $remoteServer_dbh;
442
        $shop = $_POST['gs_shop'];
443
        if ( !$shop )
444
        {
445
            $shop = 0;
446
        }
447
        if ( !$_POST['gs_anfangswert'] )
448
        {
449
            $_POST['gs_anfangswert'] = 0;
450
        }
451
        if ( !$_POST['gs_minbestwert'] )
452
        {
453
            $_POST['gs_minbestwert'] = 0;
454
        }
455
 
456
        $wert = $_POST['gs_anfangswert'];
457
        if ( stristr( $wert, '%' ) )
458
        {
459
            $wert *= -1;
460
        }
461
 
462
        $code = gen_code( $_POST['gs_name'], time(), $_POST['gs_anfangswert'],
463
            'gs_code_' . Text_Password::create( 32, "unpronounceable" ) );
464
 
465
        $sql = "INSERT INTO
466
                    gutscheine
467
                (
468
                    shops_id,
469
                    name,
470
                    code,
471
                    empfaenger,
472
                    status,
473
                    anfangswert,
474
                    minbestwert,
475
                    restwert,
476
                    gueltig_von,
477
                    gueltig_bis,
478
                    erstellt_von,
479
                    erstellt_am
480
                )
481
                    VALUES
482
                (
483
                    " . $shop . ",
484
                    '" . $_POST['gs_name'] . "',
485
                    '" . $code . "',
486
                    '" . $_POST['gs_empfaenger'] . "',
487
                    " . $_POST['gs_status'] . ",
488
                    " . $wert . ",
489
                    " . $_POST['gs_minbestwert'] . ",
490
                    " . $wert . ",
491
                    '" . human2date( $_POST['gs_gueltig_von'] ) . "',
492
                    '" . human2date( $_POST['gs_gueltig_bis'] ) . "',
493
                    '" . $_SERVER['PHP_AUTH_USER'] . "',
494
                    NOW()
495
                )
496
        ";
497
 
498
        $res = mysql_query( $sql, $remoteServer_dbh );
499
        if ( $res )
500
        {
501
            $gs_id = mysql_insert_id( $remoteServer_dbh );
502
            if ( $gs_id )
503
            {
504
                if ( $_POST["gen_pdf"] || !isset( $_POST["gen_pdf"] ) )
505
                {
506
                    generate_gutschein_pdf( $gs_id );
507
                }
508
                return get_single_gutschein( $gs_id );
509
            }
510
        }
511
        return false;
512
    }
513
 
514
    function get_gutscheine( $shops_id = null, $status = null, $empf_filter = null,
515
        $code_filter = null )
516
    {
517
        global $remoteServer_dbh;
518
        if ( $shops_id )
519
        {
520
            $wh_arr[] = " shops_id=" . $shops_id . "";
521
        }
522
 
523
        if ( $status )
524
        {
525
            $wh_arr[] = $status;
526
        }
527
        if ( $empf_filter )
528
        {
529
            $wh_arr[] = $empf_filter;
530
        }
531
        if ( $code_filter )
532
        {
533
            $wh_arr[] = $code_filter;
534
        }
535
 
536
        if ( is_array( $wh_arr ) )
537
        {
538
            $wh = "WHERE " . implode( " AND ", $wh_arr );
539
        }
540
 
541
        $sql = "SELECT SQL_CALC_FOUND_ROWS
542
                    *
543
                FROM
544
                    gutscheine
545
 
546
                " . $wh . "
547
 
548
                ORDER BY
549
                    erstellt_am desc,
550
                    id desc
551
                LIMIT
552
                    " . $_SESSION["filter"]["start"] . ", " . SmartyPaginate::
553
            getLimit() . "
554
        ";
555
 
556
        $q = mysql_query( $sql, $remoteServer_dbh );
557
        if ( $q )
558
        {
559
            while ( $r = mysql_fetch_assoc( $q ) )
560
            {
561
                $gs["gutscheine"][] = $r;
562
            }
563
        }
564
        if ( is_array( $gs ) )
565
        {
566
            $sql = "SELECT
567
                    FOUND_ROWS() AS total
568
            ";
569
            $res = mysql_query( $sql );
570
            $row = mysql_fetch_assoc( $res );
571
            $gs["total"] = $row["total"];
572
            return $gs;
573
        }
574
        return false;
575
    }
576
 
577
 
578
    function get_single_gutschein( $id )
579
    {
580
        global $remoteServer_dbh;
581
        $sql = "SELECT
582
                    *
583
                FROM
584
                    gutscheine
585
                WHERE
586
                    id=" . $id . "
587
        ";
588
        if ( $q = mysql_query( $sql, $remoteServer_dbh ) )
589
        {
590
            $gutschein = mysql_fetch_assoc( $q );
591
            return $gutschein;
592
        }
593
        return false;
594
    }
595
 
596
 
597
 
598
    function delete_gutschein( $id )
599
    {
600
        global $remoteServer_dbh;
601
        $sql = "DELETE FROM
602
                    gutscheine
603
                WHERE
604
                    id=" . $id . "
605
        ";
606
        if ( $q = mysql_query( $sql, $remoteServer_dbh ) )
607
        {
608
            return true;
609
        }
610
        return false;
611
    }
612
 
613
 
614
    function update_gutschein( $id )
615
    {
616
        global $remoteServer_dbh;
617
        $sql = "UPDATE
618
                    gutscheine
619
                SET
620
                    shops_id = " . $_POST['gs_shop'] . ",
621
                    name = '" . $_POST['gs_name'] . "',
622
                    empfaenger = '" . $_POST['gs_empfaenger'] . "',
623
                    `status` = " . $_POST['gs_status'] . ",
624
                    anfangswert = " . $_POST['gs_anfangswert'] . ",
625
                    minbestwert = " . $_POST['gs_minbestwert'] . ",
626
                    gueltig_von='" . human2date( $_POST["gs_gueltig_von"] ) .
627
            "',
628
                    gueltig_bis='" . human2date( $_POST["gs_gueltig_bis"] ) .
629
            "',
630
                    restwert = " . $_POST['gs_restwert'] . ",
631
 
632
                    letzte_aenderung_am = 'NOW()',
633
                    letzte_aenderung_von = '" . $_SERVER['PHP_AUTH_USER'] . "'
634
 
635
                WHERE
636
                    id = " . $id . "
637
        ";
638
        $q = mysql_query( $sql, $remoteServer_dbh );
639
        if ( $q )
640
        {
641
            return true;
642
 
643
        }
644
        echo mysql_error( $remoteServer_dbh ) . PHP_EOL . $sql;
645
        return false;
646
    }
647
 
648
 
649
    function gen_code( $name, $time, $wert, $str )
650
    {
651
        return substr( md5( $name . $time . $wert . $str ), 0, 12 );
652
    }
653
 
654
 
655
 
656
    function get_all_shops()
657
    {
658
        $sql = "SELECT
659
                ID,
660
                Name
661
            FROM
662
                `shops`
663
            WHERE
664
                `database` <> ''
665
        ";
666
        if ( $q = mysql_query( $sql ) )
667
        {
668
            while ( $r = mysql_fetch_assoc( $q ) )
669
            {
670
                $shops[] = $r;
671
            }
672
            return $shops;
673
        }
674
        return false;
675
    }
676
 
677
 
678
 
679
    function generate_gutschein_pdf( $id )
680
    {
681
        $gs = get_single_gutschein( $id );
682
        $dat = datetime2Human( $gs['erstellt_am'] );
683
 
684
        //$text = $gs["name"] . "\n";
685
        $text["body"] = "";
686
        $text["body"] .= utf8_decode( 'ausgestellt für: ' . $gs['empfaenger'] .
687
            "\n" );
688
        $text["gs"] = $gs;
689
        $text["body"] .= utf8_decode( 'Wert: ' . $wert . "\n" );
690
        $text["body"] .= utf8_decode( 'ausgestellt am ' . $dat["Datum"] . " " .
691
            $dat["Zeit"] . "\n" );
692
        $f_name = create_pdf( $id, "", "", $text, "Gutschein", generate_LN( $id,
693
            "Gutschein" ) );
694
        //echo "Speichere Dokument (Gutschein)<br>";
695
        save_document( $f_name, $id, "Gutschein" );
696
        if ( FROM_BESTELLUNG === true && $_POST["b_id"] )
697
        {
698
            $b_id = $_POST["b_id"];
699
            //echo "Speichere Dokument (Bestellung)<br>";
700
            save_document( $f_name, $b_id );
701
        }
702
    }
703
 
704
    function create_pdf( $bestell_id, $adminMail, $mailto, $text, $art, $ln = 1 )
705
    {
706
        global $webs, $site;
707
 
708
        $sql = "
709
            SELECT
710
                shops_ID
711
            FROM
712
                Bestellung
713
            WHERE
714
                ID=$bestell_id
715
        ";
716
        $res = mysql_query( $sql );
717
        $row = mysql_fetch_assoc( $res );
718
        $shops_ID = $row["shops_ID"];
719
 
720
        $gs = $text["gs"];
721
 
722
        $wert = $gs["anfangswert"];
723
        if ( $wert < 0 )
724
        {
725
            $wert = number_format( $wert * -1 ) . "%";
726
        }
727
        else
728
        {
729
            $wert = number_format( $wert, 2, ",", "." ) . " EUR";
730
        }
731
 
732
        $config_file =
733
            "/web/apache/content-management/marketing/includes/gutschein/config_$site.inc.php";
734
 
735
        if ( file_exists( $config_file ) )
736
        {
737
            require $config_file;
738
        }
739
        else
740
        {
741
            $orientation = "P";
742
            $unit = "mm";
743
            $format = "A4";
744
        }
745
        //Instanciation of inherited class
746
        $pdf = new PDF( $orientation, $unit, $format );
747
        $pdf->setSubject( "Voucher" );
748
        $pdf->setAuthor( $haendler_name );
749
        $pdf->setCreator( "fpdf PHP Library" );
750
        $body_file =
751
            "/web/apache/content-management/marketing/includes/gutschein/body_$site.inc.php";
752
 
753
        if ( file_exists( $body_file ) )
754
        {
755
            require $body_file;
756
        }
757
        $date = date( "Y-m-d_H-i-s" );
758
        $f_name = $art . "_" . $bestell_id . "_" . $date . "_" . $ln . ".pdf";
759
        $f_name = str_replace( "ä", "ae", $f_name );
760
        $f_name = str_replace( "Ä", "Ae", $f_name );
761
        $f_name = str_replace( "ö", "oe", $f_name );
762
        $f_name = str_replace( "Ö", "Oe", $f_name );
763
        $f_name = str_replace( "ü", "ue", $f_name );
764
        $f_name = str_replace( "Ü", "Ue", $f_name );
765
        $f_name = str_replace( "ß", "ss", $f_name );
766
 
767
        $pdf->Output( $webs['verzeichnis'] . "/images/dokumente/$f_name" );
768
        $pdf->Output();
769
 
770
        return $f_name;
771
    }
772
 
773
    function save_document( $f_name, $bestell_id, $table = "Bestellung" )
774
    {
775
        global $remoteServer_dbh;
776
        $sql = "
777
            REPLACE INTO
778
                dokumente
779
            (
780
                table_foreign,
781
                row_foreign,
782
                data_foreign,
783
                document,
784
                letzte_Aenderung_am,
785
                letzte_Aenderung_von
786
            )
787
            VALUES
788
            (
789
                '$table',
790
                'ID',
791
                $bestell_id,
792
                '$f_name',
793
                NOW(),
794
                '" . $_SERVER["PHP_AUTH_USER"] . "'
795
            )
796
        ";
797
        $res = mysql_query( $sql, $remoteServer_dbh );
798
        if ( !$res )
799
        {
800
            /*mail( "admin@weban.de",
801
            "Fehler beim hinzufgen der PDF-Datei zur Bestellung!",
802
            mysql_error() . "\n$sql", "From: redaktion@$site" );*/
803
            //echo mysql_error();
804
            $ret = false;
805
        }
806
        else
807
        {
808
            $ret = mysql_insert_id( $remoteServer_dbh );
809
        }
810
        return $ret;
811
    }
812
 
813
    function generate_LN( $bestell_id, $art )
814
    {
815
        global $remoteServer_dbh;
816
        $date = date( "Y-m-d_H-i-s" );
817
        $f_name = $art . "_" . $bestell_id . "_" . $date;
818
        $f_name = str_replace( "ä", "ae", $f_name );
819
        $f_name = str_replace( "Ä", "Ae", $f_name );
820
        $f_name = str_replace( "ö", "oe", $f_name );
821
        $f_name = str_replace( "Ö", "Oe", $f_name );
822
        $f_name = str_replace( "ü", "ue", $f_name );
823
        $f_name = str_replace( "Ü", "Ue", $f_name );
824
        $f_name = str_replace( "ß", "ss", $f_name );
825
 
826
        $sql = "
827
            SELECT
828
                MAX(document) AS dokument
829
            FROM
830
                dokumente
831
            WHERE
832
                document LIKE '$f_name%'
833
        ";
834
        $res = mysql_query( $sql, $remoteServer_dbh );
835
        if ( $res )
836
        {
837
            if ( mysql_num_rows( $res ) )
838
            {
839
                $row = mysql_fetch_assoc( $res );
840
                $dokument = substr( $row["dokument"], 0, strlen( $row["dokument"] ) -
841
                    4 );
842
                $dokument = explode( "_", $dokument );
843
                $ln = $dokument[count( $dokument ) - 1];
844
                $ln++;
845
            }
846
            else
847
            {
848
                $ln = 1;
849
            }
850
        }
851
        else
852
        {
853
            $ln = 1;
854
        }
855
        return $ln;
856
    }
857
 
858
    function getVorlagen()
859
    {
860
        global $remoteServer_dbh;
861
        $table = "artikel";
862
        $sql = "SELECT
863
                *
864
            FROM
865
                $table
866
            WHERE
867
                Father = -5
868
        ";
869
        $res = mysql_query( $sql, $remoteServer_dbh );
870
        $vorlagen[-1] = "Bitte wählen";
871
        while ( $row = mysql_fetch_assoc( $res ) )
872
        {
873
            $vorlagen[$row["ID"]] = $row["kurzbezeichnung"];
874
        }
875
        return $vorlagen;
876
    }
877
 
878
    function getVorlage( $v_id, $shop_id = 1 )
879
    {
880
        global $remoteServer_dbh;
881
        $table = "artikel";
882
        $sql = "SELECT
883
                *
884
            FROM
885
                $table
886
            WHERE
887
                Father = -5
888
            AND
889
                ID=$v_id
890
        ";
891
 
892
        $res = mysql_query( $sql, $remoteServer_dbh );
893
        $row = mysql_fetch_assoc( $res );
894
        return $row;
895
    }
896
?>