Subversion-Projekte lars-tiefland.content-management

Revision

Revision 1 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
2 lars 3
    // $Id: rechnung.php 4255 2012-03-29 09:59:11Z erling $
4
    session_start();
5
 
1 lars 6
    require_once "connect2.php";
2 lars 7
 
8
 
1 lars 9
    require_once "includes/bestellungen/system/mysql_query_logged.php";
10
    require_once "Weban_Smarty.class.php";
11
 
12
    require_once "module/functions.common.php";
13
    require_once "includes/rechnung/rechnungsbuch.function.php";
14
    require_once "includes/bestellungen/system/artikelDatabase.php";
2 lars 15
    /**
16
     * Funktionen der Lagerwirtschaft.
17
     */
18
    require_once '../includes/system/functions.lagerwirtschaft.php';
1 lars 19
 
2 lars 20
    require_once "fpdf/fpdf.php";
1 lars 21
 
22
 
23
    $GLOBALS["ui"] = new Weban_Smarty();
24
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
25
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|rechnungen";
26
    $GLOBALS["ui"]->use_sub_dirs = true;
27
 
2 lars 28
    $errorIds = array();
29
 
30
    $show_prepage = 0;
31
 
32
    // ME: bei Einzelrechnung die b_id speichern
33
    if ( $_GET['b_id'] )
1 lars 34
    {
2 lars 35
        $b_id = $_GET['b_id'];
1 lars 36
    }
2 lars 37
    elseif ( $_POST["b_id"] )
1 lars 38
    {
2 lars 39
        $b_id = $_POST["b_id"];
1 lars 40
    }
2 lars 41
    else // bei Massendruck die erste übergebene b_id speichern
42
    {
43
        $b_id = $_POST['chk_bestellung'][0];
44
    }
1 lars 45
 
46
    // ME: Soll der Kunde das Rechnungsdatum auf der Vorschaltseite ändern können?
2 lars 47
    if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["abw_rechnungsdatum"] ) )
48
    {
1 lars 49
        $GLOBALS["ui"]->assign( "rechnungsdatum_aendern", true );
50
    }
51
 
52
    // ME: Soll der Kunde das Leistungsdatum auf der Vorschaltseite ändern können?
2 lars 53
    if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["abw_lieferdatum"] ) )
54
    {
1 lars 55
        $GLOBALS["ui"]->assign( "leistungsdatum_aendern", true );
56
    }
57
 
2 lars 58
    // ME: Webrecht und Userrecht für Gutschriften gesetzt?
59
    $GLOBALS["ui"]->assign( "gutschriftoption", 0 );
60
    if ( ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["gutschriftoption"] ) ) and
61
        ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["gutschriftoption"] ) ) )
62
    {
63
        $GLOBALS["ui"]->assign( "gutschriftoption", 1 );
1 lars 64
    }
65
 
2 lars 66
    // ME: Bestandsminderung? Muss in Kombination mit Rechnungsbausteinen eingebaut werden, damit dasselbe Template genutzt werden kann!
67
    if ( isset( $web_rechte['Warenwirtschaft']['lagerwirtschaft']['minderungsunterdrueckung'] ) )
68
    {
69
        $GLOBALS["ui"]->assign( "minderungsunterdrueckung", true );
70
 
1 lars 71
    }
72
 
73
    $sql = "SELECT
2 lars 74
            bestellart_id,
75
            shops_ID
76
        FROM
77
            Bestellung
78
        WHERE
79
            ID = " . $b_id . "
1 lars 80
    ";
81
 
2 lars 82
    if ( $q = mysql_query( $sql ) )
1 lars 83
    {
2 lars 84
        if ( $r = mysql_fetch_assoc( $q ) )
85
        {
86
        }
1 lars 87
    }
2 lars 88
 
89
    // wenn der filter bestellart gesetzt ist.
90
    if ( isset( $_SESSION['filter']['bestellart_id'] ) )
1 lars 91
    {
2 lars 92
        // bestellart_id gesetzt?
93
        if ( $_SESSION['filter']['bestellart_id'] )
94
        {
95
            // wenn ja, bestellart_id nehmen und weiter..
96
            $bestellart_id = $_SESSION['filter']['bestellart_id'];
97
        }
98
        else
99
        {
100
            // wenn nein, dann die bestellart_id über die erste Bestellung ermitteln
101
            $bestellart_id = $r['bestellart_id'];
102
        }
1 lars 103
    }
2 lars 104
    // wenn der filter shopID gesetzt ist.
105
    if ( isset( $_SESSION['filter']['shopID'] ) )
1 lars 106
    {
2 lars 107
        // shopID gesetzt?
108
        if ( $_SESSION['filter']['shopID'] )
109
        {
110
            // wenn ja, shopID nehmen und weiter..
111
            $GLOBALS["shops_ID"] = $_SESSION['filter']['shopID'];
112
        }
113
        else
114
        {
115
            // wenn nein, dann die shopID über die erste Bestellung ermitteln
116
            $GLOBALS["shops_ID"] = $r['shops_ID'];
117
        }
118
    }
1 lars 119
 
2 lars 120
    unset( $r );
121
 
122
    // Rechnungsbausteine?
123
    if ( ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["rechnungsbausteine"] ) and
124
        ( !$_POST['action'] ) ) or ( isset( $web_rechte['Warenwirtschaft']['lagerwirtschaft']['minderungsunterdrueckung'] ) and
125
        ( !$_POST['action'] ) ) )
126
    {
127
 
128
        $bausteinIDs = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["rechnungsbausteine"] );
129
        $bausteine_ids = implode( " OR ID=", $bausteinIDs );
130
 
131
 
132
        // gibt es das Feld bestellart_id?
133
        $wcl = "";
134
        $result = mysql_query( "SHOW COLUMNS FROM web_settings" );
135
        if ( !$result )
1 lars 136
        {
2 lars 137
            echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
138
            //exit;
139
        }
140
 
141
        if ( mysql_num_rows( $result ) > 0 )
142
        {
143
            while ( $row = mysql_fetch_assoc( $result ) )
1 lars 144
            {
2 lars 145
                if ( is_array( $row ) )
146
                {
147
                    foreach ( $row as $key => $value )
148
                    {
149
                        if ( $value == "bestellart_id" )
150
                        {
151
                            $wcl .= " AND bestellart_id = " . $bestellart_id .
152
                                " ";
153
                        }
154
                        if ( $value == "shops_ID" )
155
                        {
156
                            $wcl .= " AND shops_ID = " . $GLOBALS["shops_ID"] .
157
                                " ";
158
                        }
159
                    }
160
                }
1 lars 161
            }
162
        }
163
 
2 lars 164
        // die Texte zu den Bausteinen ermitteln, wenn es bausteine gibt..
165
        $bausteine = array();
166
        if ( $bausteine_ids )
167
        {
1 lars 168
 
169
 
2 lars 170
            $sql_b = "SELECT * FROM Bestellung WHERE ID=$b_id";
171
            $res_b = mysql_query_logged( $sql_b );
172
            $row_b = mysql_fetch_assoc( $res_b );
1 lars 173
 
2 lars 174
            $sql = "SELECT
175
                        *
176
                    FROM
177
                        web_settings
178
                    WHERE
179
                        ID=" . $bausteine_ids . "
180
                        " . $wcl . "
181
                    ORDER BY
182
                        Rang";
1 lars 183
 
2 lars 184
            if ( $q = mysql_query( $sql ) )
185
            {
186
                $row_b["kk_info"] = unserialize( $row_b["kk_info"] );
187
                while ( $r = mysql_fetch_assoc( $q ) )
188
                {
189
                    $billsafesumme = $row_b["gesamtsumme_buffer"];
1 lars 190
 
2 lars 191
                    $billsafetxn = $row_b["kk_info"]["code"];
192
                    $billsafedate = date( "d.m.Y", strtotime( "14 days" ) );
193
                    @eval( "\$rbaustein_int=\"" . addslashes( $r['Inhalt'] ) . "\";" );
194
 
195
                    $bausteine[$r['ID']] = $rbaustein_int;
196
                }
197
            }
198
        }
199
 
200
        $GLOBALS["ui"]->assign( "b_id", $b_id );
201
        $GLOBALS["ui"]->assign( "bausteine", $bausteine );
202
 
203
        $show_prepage++;
204
        $GLOBALS["ui"]->assign( "rechnungsbausteine", true );
205
 
1 lars 206
    }
207
 
2 lars 208
    // ME: START Soll 'Rechnung bezahlt' auf der Vorschaltseite angezeigt werden?
209
    if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] ) )
1 lars 210
    {
2 lars 211
        if ( isset( $user_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] ) )
1 lars 212
        {
2 lars 213
            $show_prepage++;
214
            $GLOBALS["ui"]->assign( "show_rechnung_bezahlt", 1 );
215
            if ( strstr( $user_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"],
216
                ";" ) )
217
            {
218
                $bezahlt_values = explode( ";", $user_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] );
219
            }
220
            else
221
            {
222
                $bezahlt_values = trim( $user_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] );
223
            }
224
 
225
            // den bezahlstatus der Bestellung holen
226
            $sql = "select bezahlt from Bestellung where ID=$b_id";
227
            $q = mysql_query( $sql );
228
            if ( $r = mysql_fetch_assoc( $q ) )
229
            {
230
                $GLOBALS["ui"]->assign( "bezahlt", $r['bezahlt'] );
231
                $GLOBALS["ui"]->assign( "bestellung_bezahlt", $r['bezahlt'] );
232
            }
233
 
234
            // die aktuelle Versandart zur Bestellung holen
235
            $sql = "SELECT
236
                        a.*,
237
                        ab.*,
238
                        z.interner_name
239
                    FROM
240
                        artikel_to_Bestellung ab,
241
                        artikel a,
242
                        zahlungsarten z
243
                    WHERE
244
                        ab.Bestellung=$b_id
245
                    AND
246
                        ab.`status` != 'storniert'
247
                    AND
248
                        a.Father=-3
249
                    AND
250
                        a.ID = ab.artikel
251
                    AND
252
                        a.short_line_1 = z.interner_name
253
            ";
254
 
255
            if ( $q = mysql_query( $sql ) )
256
            {
257
                while ( $r = mysql_fetch_assoc( $q ) )
258
                {
259
                    // Prüfen, ob für die Versandart der interne Name (zahlungsarten) übereinstimmt
260
                    if ( is_array( $bezahlt_values ) )
261
                    {
262
                        foreach ( $bezahlt_values as $key => $val )
263
                        {
264
                            if ( stristr( $r['interner_name'], $val ) )
265
                            {
266
                                $GLOBALS["ui"]->assign( "bezahlt", 1 );
267
                                $GLOBALS["ui"]->assign( "rechnung_bezahlt",
268
                                    "Rechnung bezahlt (" . $val . ")" );
269
                            }
270
                        }
271
                    }
272
                    else
273
                    {
274
                        if ( stristr( $bezahlt_values, $r['interner_name'] ) )
275
                        {
276
                            $GLOBALS["ui"]->assign( "bezahlt", 1 );
277
                            $GLOBALS["ui"]->assign( "rechnung_bezahlt",
278
                                "Rechnung bezahlt (" . $bezahlt_values . ")" );
279
                        }
280
                    }
281
                }
282
            }
283
            $GLOBALS["ui"]->assign( "bezahlt_values", $bezahlt_values );
1 lars 284
        }
285
    }
2 lars 286
    // ME: ENDE Soll 'Rechnung bezahlt' auf der Vorschaltseite angezeigt werden?
1 lars 287
 
2 lars 288
 
289
    // die FPDF Class erweitern (PDF)
1 lars 290
    class PDF extends FPDF
291
    {
292
        function generate_LN( $bestell_id, $art, $Nummernkreis )
293
        {
294
            global $web_rechte;
295
            if ( $Nummernkreis )
296
            {
2 lars 297
                if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
1 lars 298
                {
299
                    $sql_re = "SELECT
2 lars 300
                                re_short
301
                            FROM
302
                                shops
303
                            WHERE
304
                                ID=" . $GLOBALS["shops_ID"] . "
305
                        ";
1 lars 306
                    $res_re = mysql_query( $sql_re );
307
                    $row_re = mysql_fetch_assoc( $res_re );
308
                    $re_short = $row_re["re_short"];
309
                }
310
                $sql = "SELECT
2 lars 311
                            l_nr AS ln
312
                        FROM
313
                            nummernkreis_rechnung
314
                        WHERE
315
                            jahr=" . date( "Y" );
316
                if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
1 lars 317
                {
318
                    $sql .= "
2 lars 319
                            AND
320
                                re_short='$re_short'
321
                        ";
1 lars 322
                }
323
                $res = mysql_query_logged( $sql );
324
                if ( $res )
325
                {
2 lars 326
                    if ( mysql_num_rows( $res ) )
1 lars 327
                    {
328
                        $row = mysql_fetch_assoc( $res );
329
                        $ln = $row["ln"];
330
                        $ln++;
331
                    }
332
                    else
333
                    {
334
                        $ln = 1;
335
                        $sql = "
2 lars 336
                                INSERT INTO
337
                                    nummernkreis_rechnung
338
                                (
339
                                    l_nr,
340
                            ";
341
                        if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
1 lars 342
                        {
343
                            $sql .= "
2 lars 344
                                    re_short,
345
                            ";
1 lars 346
                        }
347
                        $sql .= "
2 lars 348
                                    jahr
349
                                )
350
                                VALUES
351
                                (
352
                                    $ln,
353
                                ";
354
                        if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
1 lars 355
                        {
356
                            $sql .= "
2 lars 357
                                    '" . $re_short . "',
358
                                ";
1 lars 359
                        }
360
                        $sql .= "
2 lars 361
                                    " . date( "Y" ) . "
362
                                )
363
                            ";
1 lars 364
                        mysql_query_logged( $sql );
365
                    }
366
                }
367
                else
368
                {
369
                    $ln = 1;
370
                }
371
                $sql = "
2 lars 372
                        UPDATE
373
                            nummernkreis_rechnung
374
                        SET
375
                            l_nr=" . $ln . "
376
                        WHERE
377
                            jahr=" . date( "Y" ) . "
378
                    ";
379
                if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
1 lars 380
                {
381
                    $sql .= "
2 lars 382
                            AND
383
                                re_short='$re_short'
384
                        ";
1 lars 385
                }
386
                mysql_query_logged( $sql );
387
            }
388
            else
389
            {
390
                $date = date( "Y-m-d" );
391
                $f_name = $art . "_" . $bestell_id . "_" . $date;
392
                $sql = "SELECT
2 lars 393
                                MAX(document) AS dokument
394
                            FROM
395
                                dokumente
396
                            WHERE
397
                                document
398
                            LIKE
399
                                '$f_name%'
400
                        ";
1 lars 401
                $res = mysql_query( $sql );
402
                if ( $res )
403
                {
2 lars 404
                    if ( mysql_num_rows( $res ) )
1 lars 405
                    {
406
                        $row = mysql_fetch_assoc( $res );
2 lars 407
                        $dokument = substr( $row["dokument"], 0, strlen( $row["dokument"] ) -
408
                            4 );
1 lars 409
                        $dokument = explode( "_", $dokument );
410
                        $ln = $dokument[count( $dokument ) - 1];
411
                        $ln++;
412
                    }
413
                    else
414
                    {
415
                        $ln = 1;
416
                    }
417
                }
418
                else
419
                {
420
                    $ln = 1;
421
                    die( mysql_error() );
422
                }
423
            }
424
            return $ln;
425
        }
426
        //Page header
427
        function Header()
428
        {
2 lars 429
            global $site, $r_nr, $Einzug;
1 lars 430
 
2 lars 431
            $h_file = "includes/rechnung/header_" . $site . "_" . $GLOBALS["shops_ID"] .
432
                ".inc.php";
433
 
434
            if ( file_exists( $h_file ) )
1 lars 435
            {
2 lars 436
 
437
                require ( $h_file );
1 lars 438
            }
439
            else
440
            {
2 lars 441
                require ( "includes/rechnung/header_" . $site . ".inc.php" );
1 lars 442
            }
443
        }
444
 
445
        //Page footer
446
        function Footer()
447
        {
2 lars 448
            global $site, $Einzug;
1 lars 449
 
2 lars 450
            if ( file_exists( "includes/rechnung/footer_" . $site . "_" . $GLOBALS["shops_ID"] .
451
                ".inc.php" ) )
1 lars 452
            {
2 lars 453
                require ( "includes/rechnung/footer_" . $site . "_" . $GLOBALS["shops_ID"] .
1 lars 454
                    ".inc.php" );
455
            }
456
            else
457
            {
2 lars 458
                require ( "includes/rechnung/footer_" . $site . ".inc.php" );
1 lars 459
            }
460
        }
2 lars 461
 
1 lars 462
        function NbLines( $w, $txt )
463
        {
464
            //Computes the number of lines a MultiCell of width w will take
465
            $cw = &$this->CurrentFont['cw'];
466
            if ( $w == 0 )
467
                $w = $this->w - $this->rMargin - $this->x;
468
            $wmax = ( $w - 2 * $this->cMargin ) * 1000 / $this->FontSize;
469
            $s = str_replace( "\r", '', $txt );
470
            $nb = strlen( $s );
471
            if ( $nb > 0 and $s[$nb - 1] == "\n" )
472
                $nb--;
473
            $sep = -1;
474
            $i = 0;
475
            $j = 0;
476
            $l = 0;
477
            $nl = 1;
478
            while ( $i < $nb )
479
            {
480
                $c = $s[$i];
481
                if ( $c == "\n" )
482
                {
483
                    $i++;
484
                    $sep = -1;
485
                    $j = $i;
486
                    $l = 0;
487
                    $nl++;
488
                    continue;
489
                }
490
                if ( $c == ' ' )
491
                    $sep = $i;
492
                $l += $cw[$c];
493
                if ( $l > $wmax )
494
                {
495
                    if ( $sep == -1 )
496
                    {
497
                        if ( $i == $j )
498
                            $i++;
499
                    }
500
                    else
501
                        $i = $sep + 1;
502
                    $sep = -1;
503
                    $j = $i;
504
                    $l = 0;
505
                    $nl++;
506
                }
507
                else
508
                    $i++;
509
            }
510
            return $nl;
511
        }
512
    }
513
 
2 lars 514
 
515
 
516
    // ME: wurde die Seite über Massenrechnungsdruck aufgerufen?
517
    if ( is_array( $_POST['chk_bestellung'] ) && $_POST['action'] !=
518
        "genMultiPDF" )
1 lars 519
    {
2 lars 520
        unset( $_POST['b_id'] );
521
        // dann erstmal die Vorschaltseite anzeigen und die action entsprechend ändern
522
        $GLOBALS["ui"]->assign( "chk_bestellung", $_POST['chk_bestellung'] );
523
        $GLOBALS["ui"]->assign( "action", "genMultiPDF" );
524
        $GLOBALS["ui"]->display( "rechnung_prepage.tpl" );
525
    }
526
    else
527
    {
528
        // Wenn nein, wird die Funktion normal aufgerufen
529
        $GLOBALS["ui"]->assign( "action", "genPDF" );
530
        print_Rechnung( $b_id );
531
    }
532
 
533
    // Massendruck: nach der Vorschaltseite gehts hier weiter durch alle Bestellungen
534
    if ( $_POST['action'] == "genMultiPDF" )
535
    {
536
        unset( $_POST['b_id'] );
537
        $_POST['action'] = "genPDF";
538
        foreach ( $_POST['chk_bestellung'] as $key => $b_id )
1 lars 539
        {
2 lars 540
            $f_name = print_Rechnung( $b_id );
541
            if ( !file_exists( $webs['verzeichnis'] .
542
                "/images/dokumente/combine" ) )
543
            {
544
                mkdir( $webs['verzeichnis'] . "/images/dokumente/combine" );
545
            }
546
            copy( $webs['verzeichnis'] . "/images/dokumente/" . $f_name, $webs['verzeichnis'] .
547
                "/images/dokumente/combine/$f_name" );
1 lars 548
        }
2 lars 549
        $tmp_name = "combined_" . Text_Password::create( 32, "unpronouncable" ) .
550
            ".pdf";
551
        $cmd = "cd " . $webs['verzeichnis'] .
552
            "/images/dokumente/combine/; mbtPdfAsm -MR*.pdf -d" . $tmp_name .
553
            ";rm R*.pdf";
554
        exec( $cmd, $out );
555
        $loc = "http://www." . $site_full . "/images/dokumente/combine/$tmp_name";
556
        //echo $loc;
557
        header( "Location: $loc" );
558
        if ( count( $errorIds ) )
1 lars 559
        {
2 lars 560
            $ids = implode( ", ", $errorIds );
561
            echo "Fehler beim Erstellen der Rechnung in Bestellungen: " . $ids;
1 lars 562
        }
563
    }
564
 
2 lars 565
    ////////////////////////////////////////////
566
    // Beginn der Hauptfunktion print_Rechnung
567
    ////////////////////////////////////////////
568
    function print_Rechnung( $b_id )
1 lars 569
    {
2 lars 570
        global $errorIds;
571
        global $web_rechte;
572
        global $user_rechte;
573
        global $site;
574
        global $webs;
575
        global $show_prepage;
1 lars 576
 
2 lars 577
        global $localhost_dbh;
1 lars 578
 
579
 
2 lars 580
        if ( $b_id )
1 lars 581
        {
2 lars 582
            $GLOBALS["ui"]->assign( "b_id", $b_id );
1 lars 583
        }
584
 
2 lars 585
        $zz_text = null;
586
        $mass_print = 0;
1 lars 587
 
2 lars 588
        // ME: wurde die Seite über Massenrechnungsdruck aufgerufen?
589
        if ( is_array( $_POST['chk_bestellung'] ) )
1 lars 590
        {
2 lars 591
            $mass_print = 1;
1 lars 592
        }
593
 
2 lars 594
        // ME: START Vorbereitung der Ausgabe des Zahlungsziels auf der Rechnung
595
        if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["zahlungsziel"] ) )
1 lars 596
        {
2 lars 597
            if ( $_POST['action'] == "genPDF" )
1 lars 598
            {
2 lars 599
                if ( $_POST['zahlungsziel'] )
1 lars 600
                {
2 lars 601
                    $sql = "select * from zahlungsziele where id=" . $_POST['zahlungsziel'] .
602
                        "";
603
                    if ( $q = mysql_query( $sql ) )
1 lars 604
                    {
2 lars 605
                        if ( $r = mysql_fetch_assoc( $q ) )
1 lars 606
                        {
2 lars 607
                            $zieltage = date( 'd.m.Y', strtotime( '+' . $r['zieltage'] .
608
                                ' days' ) );
609
                            $serArr['ziel'] = strtotime( '+' . $r['zieltage'] .
610
                                ' days' );
611
 
612
 
613
                            if ( $r['skonto1'] > 0 )
614
                            {
615
                                $skonto1 = $r['skonto1'];
616
                                $serArr['skonto1'] = $skonto1;
617
                            }
618
                            if ( $r['zieltageskonto1'] > 0 )
619
                            {
620
                                $zieltageskonto1 = date( 'd.m.Y', strtotime( '+' .
621
                                    $r['zieltageskonto1'] . ' days' ) );
622
                                $serArr['zielskonto1'] = strtotime( '+' . $r['zieltageskonto1'] .
623
                                    ' days' );
624
                            }
625
 
626
                            if ( $r['skonto2'] > 0 )
627
                            {
628
                                $skonto2 = $r['skonto2'];
629
                                $serArr['skonto2'] = $skonto2;
630
                            }
631
                            if ( $r['zieltageskonto2'] > 0 )
632
                            {
633
                                $zieltageskonto2 = date( 'd.m.Y', strtotime( '+' .
634
                                    $r['zieltageskonto2'] . ' days' ) );
635
                                $serArr['zielskonto2'] = strtotime( '+' . $r['zieltageskonto2'] .
636
                                    ' days' );
637
                            }
638
                            @eval( "\$rechnungsbaustein_int=\"" . addslashes( $r["rechnungsbaustein"] ) .
639
                                "\";" );
640
 
641
                            $zz_text = $rechnungsbaustein_int;
642
 
1 lars 643
                        }
644
                    }
645
                }
646
            }
647
        }
648
 
2 lars 649
        if ( $_POST['rechnung_bezahlt'] )
1 lars 650
        {
2 lars 651
            $zz_text = "Betrag lt. Kassenbeleg dankend erhalten.";
1 lars 652
        }
2 lars 653
        // ME: ENDE Vorbereitung der Ausgabe des Zahlungsziels auf der Rechnung
1 lars 654
 
655
 
2 lars 656
 
657
 
658
        // ME: soll die Rechnung als Gutschrift ausgegeben werden?
659
        $gutschrift = 0;
660
        if ( isset( $_POST['gutschrift'] ) )
1 lars 661
        {
2 lars 662
            $gutschrift = 1;
1 lars 663
        }
664
 
665
 
2 lars 666
        // START PRÜFUNG ARTIKEL FÜR RECHNUNGSDRUCK!
667
        // ME: hier muss geprüft werden, ob mind. ein Artikel für den Rechnungsdruck ausgewählt wurde.
668
        // Wenn nicht, gibts ne Fehlermeldung!
669
        $sql = "SELECT
670
                    ab.*
671
                FROM
672
                    artikel_to_Bestellung ab
673
                LEFT OUTER JOIN
674
                    artikel a
675
                ON
676
                    a.ID=ab.artikel
677
                WHERE
678
                    Bestellung=$b_id
679
                AND
680
                    ab.`status` != 'storniert'
681
        ";
682
 
683
        if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["artikel_sortieren"] ) )
684
        {
685
            $sql .= "
686
                ORDER BY
687
                    ab.Rang,
688
                    Father desc,
689
                    a.kennung
1 lars 690
            ";
2 lars 691
        }
692
        else
693
        {
694
            $sql .= "
695
                ORDER BY
696
                    Father desc,
697
                    a.kennung
698
            ";
699
        }
1 lars 700
 
2 lars 701
        $r_schreiben = 0;
702
        if ( $q = mysql_query( $sql ) )
703
        {
704
            while ( $r = mysql_fetch_assoc( $q ) )
705
            {
706
                if ( $r['rechnungStatus'] == 'schreiben' )
707
                {
708
                    $r_schreiben++;
1 lars 709
                }
710
            }
711
        }
2 lars 712
        else
713
        {
714
            echo mysql_error();
715
        }
1 lars 716
 
2 lars 717
        if ( $r_schreiben == 0 )
1 lars 718
        {
2 lars 719
            if ( $mass_print == 1 )
1 lars 720
            {
2 lars 721
                $errorIds[] = $b_id;
722
                return true;
1 lars 723
            }
724
            else
725
            {
2 lars 726
                die( "<div style=\"font-size:0.8em;padding:10px;width:300px;border:1px solid #ccc;font-family:arial,helvetica,sans-serif;\"><h1 style=\"font-size:1em;\">Fehler!</h1><p>Sie müssen den Rechnungsstatus für mind. einen Artikel auf 'schreiben' setzen!</p><p><a href=\"javascript:window.close();\">Fenster schliessen</a></p></div>" );
1 lars 727
            }
2 lars 728
 
1 lars 729
        }
2 lars 730
        // ENDE PRÜFUNG ARTIKEL FÜR RECHNUNGSDRUCK!
1 lars 731
 
2 lars 732
 
733
        // Rechnungsbausteine?
734
        $sql_b = "SELECT * FROM Bestellung WHERE ID=$b_id";
735
 
736
 
737
        $res_b = mysql_query_logged( $sql_b );
738
        $row_b = mysql_fetch_assoc( $res_b );
739
 
740
        $bestellart_id = $row_b['bestellart_id'];
741
        $shops_ID = $row_b['shops_ID'];
742
        $b_name = $row_b["letzte_Aenderung_von"];
743
        $b_name = substr( $b_name, 0, strpos( $b_name, "@" ) );
744
        $dat = datetime2human( $row_b["letzte_Aenderung_am"] );
745
        $sql_l = "SELECT * FROM Logins WHERE ID=" . $row_b["Login"];
746
        $res_l = mysql_query_logged( $sql_l );
747
        $row_l = mysql_fetch_assoc( $res_l );
748
        $name = ( $row_l["Vorname"] ) ? $row_l["Vorname"] . " " . $row_l['Name1'] :
749
            $row_l["Name1"];
750
 
751
        /**
752
         *  Wenn Nettoberechnung nicht gesetzt ist (bei Logins),
753
         * und beim Kunden das Recht gesetzt ist,
754
         * oder das Webrecht garnicht existiert,
755
         * werden Bruttopreise angezeigt
756
         */
757
        $showBruttoPreis = 1;
758
        if ( ( isset( $web_rechte['logins']['admin']['nettoberechnung'] ) == 1 &&
759
            $row_l['nettoberechnung'] == "on" ) || ( isset( $web_rechte['logins']['admin']['nettoberechnung'] ) !=
760
            1 ) )
1 lars 761
        {
2 lars 762
            $showBruttoPreis = 0;
1 lars 763
        }
2 lars 764
        if ( isset( $web_rechte['Warenwirtschaft']['bestellung']['abw_lieferdatum'] ) )
765
        {
766
            define( 'LEISTUNGS_DATUM', true );
767
        }
768
        if ( file_exists( "includes/rechnung/body_" . $site . "_" . $shops_ID .
769
            ".inc.php" ) )
770
        {
771
            require ( "includes/rechnung/body_" . $site . "_" . $shops_ID .
772
                ".inc.php" );
773
        }
1 lars 774
        else
775
        {
2 lars 776
            require "includes/rechnung/body_" . $site . ".inc.php";
1 lars 777
        }
2 lars 778
 
779
        if ( $Einzug_rechts )
1 lars 780
        {
2 lars 781
            $Einzug = $Einzug_rechts;
1 lars 782
        }
783
        else
784
        {
2 lars 785
            $Einzug = 10;
786
        }
787
 
788
        if ( !defined( "BEMERKUNG2_DRUCKEN" ) )
789
        {
790
            define( "BEMERKUNG2_DRUCKEN", true );
791
        }
792
        if ( !defined( "LEISTUNGS_DATUM" ) )
793
        {
794
            define( "LEISTUNGS_DATUM", false );
795
        }
796
 
797
        // ME: Anrede in der richtigen Sprache
798
        $anrede = $row_l["Anrede"];
799
        if ( $row_l['Land'] == "Nederland" )
800
        {
801
            switch ( $row_l['Anrede'] )
1 lars 802
            {
2 lars 803
                case "Herr":
804
                    $anrede = "Heer";
805
                    break;
806
                case "Frau":
807
                    $anrede = "Mevrouw";
808
                    break;
809
                default:
810
                    $anrede = "Heer";
811
                    break;
1 lars 812
            }
813
        }
814
 
2 lars 815
        $plz = $row_l["PLZ"];
816
        $ort = $row_l["ORT"];
817
        $str = $row_l["Strasse"];
818
        $str .= ( isset( $row_l["Hausnummer"] ) ) ? " " . $row_l["Hausnummer"] :
819
            "";
820
        $iso_land = getIsoCode( $row_l['Land'], 2 );
821
        $firma = ( isset( $row_l["Name2"] ) ) ? $row_l["Name2"] : "";
822
        $mwst_befreiung = $row_l["mwst_befreiung"];
823
        $ustid_nr = $row_l["ustid_nr"];
824
 
825
        if ( !$b_id )
1 lars 826
        {
2 lars 827
            if ( $_GET["b_id"] )
1 lars 828
            {
2 lars 829
                $b_id = ( int )$_GET["b_id"];
1 lars 830
            }
2 lars 831
            elseif ( $_POST["b_id"] )
832
            {
833
                $b_id = ( int )$_POST["b_id"];
834
            }
1 lars 835
            else
836
            {
2 lars 837
                die( "Keine Bestellung angegeben!" );
1 lars 838
            }
2 lars 839
        }
1 lars 840
 
2 lars 841
        // Standard-Zahlungsziel? START
842
        if ( isset( $web_rechte["logins"]["admin"]["zahlungsziel"] ) )
843
        {
844
            // alle Zahlungsziele holen
845
            $sql = "select
846
                        *
847
                    from
848
                        zahlungsziele
849
                    order by
850
                        name
851
                    ";
852
 
853
 
854
            if ( $q = mysql_query( $sql ) )
1 lars 855
            {
2 lars 856
                while ( $r = mysql_fetch_assoc( $q ) )
857
                {
858
                    $zieltage = date( 'd.m.Y', strtotime( '+' . $r['zieltage'] .
859
                        ' days' ) );
860
 
861
                    $skonto1 = $r['skonto1'];
862
                    $zieltageskonto1 = date( 'd.m.Y', strtotime( '+' . $r['zieltageskonto1'] .
863
                        ' days' ) );
864
                    if ( $skonto1 > 0 )
865
                    {
866
                        $skontobetrag1 = money_format( $summe_b['total'] - ( $summe_b['total'] *
867
                            ( $skonto1 / 100 ) ), 2 );
868
                    }
869
 
870
                    $skonto2 = $r['skonto2'];
871
                    $zieltageskonto2 = date( 'd.m.Y', strtotime( '+' . $r['zieltageskonto2'] .
872
                        ' days' ) );
873
                    if ( $skonto2 > 0 )
874
                    {
875
                        $skontobetrag2 = money_format( $summe_b['total'] - ( $summe_b['total'] *
876
                            ( $skonto2 / 100 ) ), 2 );
877
                    }
878
 
879
 
880
                    @eval( "\$rechnungsbaustein_int=\"" . addslashes( $r["rechnungsbaustein"] ) .
881
                        "\";" );
882
                    $r["rechnungsbaustein_int"] = $rechnungsbaustein_int;
883
                    $zziele[] = $r;
1 lars 884
                }
2 lars 885
            }
886
            $GLOBALS["ui"]->assign( "zziele", $zziele );
887
 
888
            // gibt es für den User ein Zahlungsziel?
889
            $sql = "select
890
                        l.zahlungsziele_id
891
 
892
                    from
893
                        Bestellung b,
894
                        Logins l
895
                    where
896
                        b.Login = l.ID
897
                    and
898
                        b.ID = " . $b_id . "
899
            ";
900
 
901
            if ( $q = mysql_query( $sql ) )
1 lars 902
            {
2 lars 903
                if ( $r = mysql_fetch_assoc( $q ) )
904
                {
905
                    $GLOBALS["ui"]->assign( "zID", $r['zahlungsziele_id'] );
906
                }
1 lars 907
            }
908
 
2 lars 909
            $GLOBALS["ui"]->assign( "zahlungsziel", "true" );
910
            $show_prepage++;
1 lars 911
        }
912
 
2 lars 913
        // Standard-Zahlungsziel? ENDE
1 lars 914
 
915
 
2 lars 916
 
917
 
918
        // ggf. wird die Vorschaltseite ausgegeben
919
        if ( $show_prepage > 0 and !$_POST['action'] )
1 lars 920
        {
2 lars 921
            $GLOBALS["ui"]->display( "rechnung_prepage.tpl" );
1 lars 922
        }
2 lars 923
 
924
        if ( ( $show_prepage == 0 ) or ( $_POST['action'] == "genPDF" ) )
1 lars 925
        {
926
 
2 lars 927
            //Instanciation of inherited class
928
            $showLieferadresse = 0;
929
            $pdf = new PDF();
1 lars 930
 
2 lars 931
            if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["rechnung"] ) )
932
            {
933
                $Status = false;
934
                $Nummernkreis = false;
935
                $Speichern = false;
1 lars 936
 
2 lars 937
                $daten = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["rechnung"] );
1 lars 938
 
939
 
2 lars 940
                $id = array_search( "Status", $daten );
941
                if ( $id !== false )
942
                {
943
                    $Status = true;
944
                }
945
                $id = array_search( "Nummernkreis", $daten );
946
                if ( $id !== false )
947
                {
948
                    $Nummernkreis = true;
949
                    if ( !isset( $anz_stellen ) )
950
                    {
951
                        $anz_stellen = 5;
952
                    }
953
                    $r_nr = sprintf( "%0" . $anz_stellen . "d", $pdf->
954
                        generate_LN( $b_id, "R", true ) );
955
                    if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnungsnrtrennung"] ) )
956
                    {
957
                        $sql = "SELECT
958
                                re_short
959
                            FROM
960
                                shops
961
                            WHERE
962
                                id=$shops_ID
963
                        ";
964
                        $res = mysql_query( $sql );
965
                        $row = mysql_fetch_assoc( $res );
966
                        $r_nr = $row["re_short"] . $r_nr;
967
                    }
968
                    $r_nr = date( "y" ) . $r_nr;
1 lars 969
 
2 lars 970
                    $fName = "R" . $r_nr . ".pdf";
971
                    if ( $gutschrift == 1 )
972
                    {
973
                        $fName = "G" . $r_nr . ".pdf";
974
                    }
975
                }
976
                else
1 lars 977
                {
2 lars 978
                    $date = date( "Y-m-d" );
979
                    $ln = $pdf->generate_LN( $b_id, "L", false );
980
                    if ( !isset( $anz_stellen ) )
981
                    {
982
                        $anz_stellen = 5;
983
                    }
984
                    $r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );
985
                    $fName = "R_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";
986
                    if ( $gutschrift == 1 )
987
                    {
988
                        $fName = "G_" . $b_id . "_" . $date . "_" . $r_nr .
989
                            ".pdf";
990
                    }
1 lars 991
                }
2 lars 992
                $id = array_search( "Speichern", $daten );
993
                if ( $id !== false )
994
                {
995
                    $Speichern = true;
996
                }
1 lars 997
            }
998
 
2 lars 999
            $pdf->setSubject( "Rechnung" );
1000
 
1001
            $pdf->setAuthor( $haendler_name );
1002
            $pdf->setCreator( "fpdf PHP Library" );
1003
            $pdf->AliasNbPages();
1004
            $pdf->AddPage();
1005
            $pdf->setY( 45 );
1006
            $pdf->setFont( 'Arial', '', 8 );
1007
            $pdf->SetX( $Einzug );
1008
            $pdf->cell( 80, 4, $umschlag, "B", 1, "L" );
1009
            $pdf->setFont( 'Arial', '', 10 );
1010
            $pdf->ln( 5 );
1011
            $pdf->setX( 20 );
1012
            $pdf->SetX( $Einzug );
1013
            if ( !$firma )
1 lars 1014
            {
2 lars 1015
                $pdf->setX( 20 );
1016
                $pdf->cell( 80, 4, $anrede, 0, 1, "L" );
1017
                $pdf->setX( 20 );
1018
                $pdf->cell( 80, 4, $name, 0, 1, "L" );
1 lars 1019
            }
1020
            else
1021
            {
2 lars 1022
                $pdf->setX( 20 );
1023
                $pdf->cell( 80, 4, $firma, 0, 1, "L" );
1024
                $pdf->setX( 20 );
1025
                $pdf->cell( 80, 4, $anrede . " " . $name, 0, 1, "L" );
1 lars 1026
            }
2 lars 1027
            $pdf->setX( 20 );
1028
            $pdf->cell( 80, 4, $str, 0, 1, "L" );
1029
            $pdf->setX( 20 );
1030
            if ( $iso_land == "DE" or $iso_land == "DEU" )
1031
            {
1032
                $pdf->cell( 80, 4, "$plz $ort", 0, 1, "L" );
1 lars 1033
            }
2 lars 1034
            else
1 lars 1035
            {
2 lars 1036
                if ( strlen( $iso_land ) > 0 )
1037
                {
1038
                    $pdf->cell( 80, 4, "$iso_land - $plz $ort", 0, 1, "L" );
1039
                }
1040
                else
1041
                {
1042
                    $pdf->cell( 80, 4, "$plz $ort", 0, 1, "L" );
1043
                }
1 lars 1044
            }
2 lars 1045
 
1046
            if ( $Infozeile != 'on' )
1047
            {
1048
                $pdf->setY( 80 );
1049
                if ( $bestellnummer_drucken === true )
1050
                {
1051
                    $nr_text = "Best.Nr.";
1052
                    $nr = $row_b["ID"];
1053
                }
1054
                else
1055
                {
1056
                    $nr_text = "Kunden Nr.:";
1057
                    $nr = $row_l["ID"];
1058
                }
1059
                $pdf->cell( 150, 4, $nr_text, 0, 0, "R" );
1060
                $pdf->cell( 0, 4, $nr, 0, 1, "R" );
1061
                $pdf->cell( 150, 4, "Bearbeiter:", 0, 0, "R" );
1062
                $pdf->cell( 0, 4, $b_name, 0, 1, "R" );
1063
                $pdf->cell( 150, 4, "USt-IdNr.:", 0, 0, "R" );
1064
                $pdf->cell( 0, 4, $haendler_ust_id, 0, 1, "R" );
1065
 
1066
 
1067
                // Ausgabe Leistungsdatum
1068
                if ( LEISTUNGS_DATUM == true )
1069
                {
1070
                    if ( $_POST['leistungsdatum'] )
1071
                    {
1072
                        $pdf->cell( 150, 4, "Leistungsdatum:", 0, 0, "R" );
1073
                        $pdf->cell( 0, 4, $_POST['leistungsdatum'], 0, 1, "R" );
1074
                    }
1075
                    else
1076
                    {
1077
                        $pdf->cell( 150, 4, "Leistungsdatum:", 0, 0, "R" );
1078
                        $pdf->cell( 0, 4, $dat["Datum"], 0, 1, "R" );
1079
                    }
1080
                }
1081
                else
1082
                {
1083
                    $pdf->cell( 150, 4, "Datum:", 0, 0, "R" );
1084
                    $pdf->cell( 0, 4, date( "d.m.Y" ), 0, 1, "R" );
1085
                }
1086
 
1087
                // Ausgabe Rechnungsdatum
1088
                if ( $_POST['rechnungsdatum'] )
1089
                {
1090
                    $pdf->cell( 150, 4, "Rechnungsdatum:", 0, 0, "R" );
1091
                    $pdf->cell( 0, 4, $_POST['rechnungsdatum'], 0, 1, "R" );
1092
                }
1093
                else
1094
                {
1095
                    $pdf->cell( 150, 4, "Rechnungsdatum:", 0, 0, "R" );
1096
                    $pdf->cell( 0, 4, date( "d.m.Y" ), 0, 1, "R" );
1097
                }
1098
            }
1099
 
1100
            // Lieferadresse auf Rechnung ausdrucken?
1101
            if ( ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["rechnung"] ) and
1102
                ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["lieferadresse_auf_rechnung"] ) and
1103
                ( $row_b['liefer_Strasse'] ) ) ) )
1104
            {
1105
                $pdf->setY( 50 );
1106
                $pdf->setX( 135 );
1107
                $pdf->setFont( 'Arial', 'B', 8 );
1108
                $pdf->cell( 145, 4, "Lieferadresse:", 0, 2, "L" );
1109
                $pdf->setFont( 'Arial', '', 8 );
1110
                if ( $row_b['liefer_Firma'] )
1111
                    $pdf->cell( 145, 4, $row_b['liefer_Firma'], 0, 2, "L" );
1112
                if ( $row_b['liefer_Name'] )
1113
                    $pdf->cell( 145, 4, $row_b['liefer_Name'], 0, 2, "L" );
1114
                if ( $row_b['liefer_Strasse'] )
1115
                    $pdf->cell( 145, 4, $row_b['liefer_Strasse'] . " " . $row_b['liefer_Str_Nr'],
1116
                        0, 2, "L" );
1117
                if ( $row_b['liefer_Ort'] )
1118
                    $pdf->cell( 145, 4, $row_b['liefer_PLZ'] . " " . $row_b['liefer_Ort'],
1119
                        0, 2, "L" );
1120
                if ( $row_b['liefer_Land'] )
1121
                    $pdf->cell( 145, 4, $row_b['liefer_Land'], 0, 2, "L" );
1122
            }
1123
 
1124
            $pdf->ln( 10 );
1125
            $pdf->SetFont( 'Arial', 'B', 14 );
1126
 
1127
            if ( !$Rechungsueberschrift )
1128
            {
1129
                $pdf->cell( 0, 4, $REName, 0, 1, "C" );
1130
            }
1 lars 1131
            else
1132
            {
2 lars 1133
                $fill = "cell( 0, 4, \'Rechnung\' , 0, 1, \'L\' )";
1134
                $pdf->$fill;
1 lars 1135
            }
2 lars 1136
            $pdf->ln( 5 );
1137
            $pdf->SetFont( 'Arial', 'B', 9 );
1 lars 1138
 
2 lars 1139
 
1140
            $sql = "SELECT
1141
                    ab.*
1142
                FROM
1143
                    artikel_to_Bestellung ab
1144
                LEFT OUTER JOIN
1145
                    artikel a
1146
                ON
1147
                    a.ID=ab.artikel
1148
                WHERE
1149
                    Bestellung=$b_id
1150
                AND
1151
                    ab. `status` != 'storniert'
1152
            ";
1153
            if ( $Status )
1 lars 1154
            {
2 lars 1155
                $sql .= " AND rechnungStatus = 'schreiben'";
1 lars 1156
            }
2 lars 1157
            //$sql .= " ORDER BY Rang, Bezeichnung ";
1158
            if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["artikel_sortieren"] ) )
1159
            {
1160
                $sql .= "
1161
                    ORDER BY
1162
                        ab.Rang,
1163
                        Father desc,
1164
                        a.kennung
1165
                ";
1166
            }
1 lars 1167
            else
1168
            {
2 lars 1169
                $sql .= "
1170
                    ORDER BY
1171
                        Father desc,
1172
                        a.kennung
1173
                ";
1 lars 1174
            }
1175
 
2 lars 1176
            $res = mysql_query_logged( $sql );
1 lars 1177
 
1178
 
2 lars 1179
            $summe_n = array();
1180
            $summe_b = array();
1181
            $preis_n = 0;
1182
            $g_preis = 0;
1183
            $g_preis_n = 0;
1184
            $pos = 1;
1185
            $mwst_arr = array(
1186
 
1187
                1 => 7,
1188
                null => 19 );
1189
 
1190
 
1191
            // Lieferadresse ausgeben
1192
            if ( $Lieferadresse == "on" )
1 lars 1193
            {
2 lars 1194
                if ( $row_b['liefer_Strasse'] )
1195
                {
1196
                    $x_tmp = $pdf->GetX();
1197
                    $y_tmp = $pdf->GetY();
1 lars 1198
 
2 lars 1199
                    $lanr = "";
1200
                    if ( $row_b['liefer_Anrede'] )
1201
                    {
1202
                        $lanr = $row_b['liefer_Anrede'] . " ";
1203
                    }
1 lars 1204
 
2 lars 1205
                    $pdf->SetFont( 'Arial', '', 9 );
1206
                    $pdf->SetY( 10 );
1207
                    $pdf->SetX( $Einzug + 5 );
1208
                    $pdf->cell( 0, 3, 'Lieferanschrift:', 0, 2, 'L' );
1209
                    $pdf->Cell( 0, 3, $row_b['liefer_Firma'], 0, 2, 'L' );
1210
                    $pdf->cell( 0, 3, $lanr . $row_b['liefer_Name'], 0, 2, 'L' );
1211
                    $pdf->cell( 0, 3, $row_b['liefer_Strasse'] . " " . $row_b['liefer_Str_Nr'],
1212
                        0, 2, 'L' );
1213
                    $pdf->cell( 0, 3, $row_b['liefer_PLZ'] . " " . $row_b['liefer_Ort'],
1214
                        0, 2, 'L' );
1215
                    $pdf->cell( 0, 3, $row_b['liefer_Land'], 0, 2, 'L' );
1216
                    $pdf->SetFont( 'Arial', '', 10 );
1217
                    $pdf->SetX( $x_tmp );
1218
                    $pdf->SetY( $y_tmp );
1 lars 1219
                }
2 lars 1220
            }
1221
            //Zusatzkopf
1 lars 1222
 
2 lars 1223
            if ( $Infozeile == 'on' )
1224
            {
1225
                if ( $bestellnummer_drucken === true )
1 lars 1226
                {
2 lars 1227
                    $nr_text = "Best.Nr.";
1228
                    $nr = $row_b["ID"];
1229
                }
1230
                else
1231
                {
1232
                    $nr_text = "Kunden Nr.:";
1233
                    $nr = $row_l["ID"];
1234
                }
1235
                $pdf->Ln( 15 );
1236
                $pdf->SetX( $Einzug );
1237
                $pdf->setFillColor( 204 );
1238
                if ( $gutschrift == 1 )
1239
                {
1240
                    $pdf->cell( 25, 4, "Gutschrift Nr.", "LTR", 0, "C", 1 );
1241
                }
1242
                else
1243
                {
1244
                    $pdf->cell( 25, 4, "Rechnungs Nr.", "LTR", 0, "C", 1 );
1245
                }
1 lars 1246
 
2 lars 1247
                $pdf->cell( 20, 4, $nr_text, "LTR", 0, "C", 1 );
1248
                $pdf->cell( 65, 4, "Bearbeiter", "LTR", 0, "C", 1 );
1249
                if ( LEISTUNGS_DATUM == true )
1 lars 1250
                {
2 lars 1251
                    $pdf->cell( 35, 4, "Leistungsdatum", "LTR", 0, "C", 1 );
1 lars 1252
                }
2 lars 1253
                else
1254
                {
1255
                    $pdf->cell( 35, 4, "Datum", "LTR", 0, "C", 1 );
1256
                }
1257
                $pdf->cell( 0, 4, "Seite", "LTR", 1, "C", 1 );
1 lars 1258
 
2 lars 1259
                $pdf->setFillColor( 255 );
1260
                $pdf->SetX( $Einzug );
1261
                $pdf->cell( 25, 4, "$r_nr", "LBR", 0, "C", 1 );
1262
                $pdf->cell( 20, 4, $nr, "LBR", 0, "C", 1 );
1263
                $pdf->cell( 65, 4, "$b_name", "LBR", 0, "C", 1 );
1264
                if ( LEISTUNGS_DATUM == true )
1 lars 1265
                {
2 lars 1266
                    $pdf->cell( 35, 4, $dat["Datum"], "LBR", 0, "C", 1 );
1 lars 1267
                }
1268
                else
1269
                {
2 lars 1270
                    $pdf->cell( 35, 4, date( 'd.m.Y' ), "LBR", 0, "C", 1 );
1271
                }
1272
                $pdf->cell( 0, 4, $pdf->PageNo(), "LBR", 1, "C", 1 );
1273
            }
1274
            $pdf->setFillColor( 204 );
1275
            $pdf->SetX( $Einzug );
1276
            $pdf->cell( 10, 4, "$Pos_text", "LTR", 0, "C", 1 );
1277
            $pdf->cell( 15, 4, "$Menge_text", "LTR", 0, "C", 1 );
1278
            $pdf->cell( 20, 4, "$Kennung_text", "LTR", 0, "C", 1 );
1279
            $pdf->cell( 100, 4, "$Text_text", "LTR", 0, "C", 1 );
1280
            $pdf->cell( 20, 4, "$Einzelpreis_text", "LTR", 0, "C", 1 );
1281
            $pdf->cell( 0, 4, "$Gesamtpreis_text", "LTR", 1, "C", 1 );
1282
            $pdf->SetX( $Einzug );
1283
            $pdf->cell( 10, 4, "", "LBR", 0, "C", 1 );
1284
            $pdf->cell( 15, 4, "", "LBR", 0, "C", 1 );
1285
            $pdf->cell( 20, 4, "", "LBR", 0, "C", 1 );
1286
            $pdf->cell( 100, 4, "", "LBR", 0, "C", 1 );
1287
            $pdf->cell( 20, 4, "€", "LBR", 0, "C", 1 );
1288
            $pdf->cell( 0, 4, "€", "LBR", 1, "C", 1 );
1289
            $pdf->setFillColor( 255 );
1290
 
1291
            $pdf->SetFont( 'Arial', '', 9 );
1292
 
1293
 
1294
            while ( $row = mysql_fetch_assoc( $res ) )
1295
            {
1296
                $pdf->SetX( $Einzug );
1297
                $menge = $row["Menge"];
1298
                $zahlart = $row['zahlart'];
1299
                $e_preis = $row["Preis_pro_Stueck"];
1300
                $a_name = $row["Bezeichnung"];
1301
                if ( $row["artikel"] != "0" )
1302
                {
1303
 
1304
                    $sql_a = "SELECT
1305
                            *
1306
                        FROM
1307
                            " . artikelDatabase( $row_b["shops_ID"] ) . "
1308
                        WHERE
1309
                            ID=" . $row["artikel"] . "
1310
                    ";
1311
 
1312
                    $res_a = mysql_query( $sql_a );
1313
                    $row_a = mysql_fetch_assoc( $res_a );
1314
                    if ( !$a_name )
1 lars 1315
                    {
2 lars 1316
                        $a_name = html_entity_decode( $row_a["kurzbezeichnung"] );
1 lars 1317
                    }
2 lars 1318
                    $kennung = $row_a["kennung"];
1319
                    $mwst = ( $row["mwst"] != "0.00" && !empty( $row["mwst"] ) ) ?
1320
                        $row["mwst"] : $mwst_arr[$row_a["tax1"]];
1321
                    $preis_n = $e_preis - ( $e_preis * $mwst / ( 100 + $mwst ) );
1 lars 1322
 
2 lars 1323
                    // ME: Wenn in der Bestellung ein Rang angegeben ist,
1324
                    // wird dieser statt der laufenden Nummer als Pos ausgegeben
1325
                    /*
1326
                    if ( $row['Rang'] > 0 )
1 lars 1327
                    {
2 lars 1328
                    $pos = $row['Rang'];
1329
                    }*/
1 lars 1330
 
2 lars 1331
                    if ( $showBruttoPreis == 1 )
1332
                    {
1333
                        $preis_n = $e_preis;
1334
                    }
1 lars 1335
 
2 lars 1336
                    if ( $row_a["Father"] == -3 )
1337
                    {
1338
                        continue;
1339
                        /*    $versandname = $row["Bezeichnung"];
1340
                        $pos = "";
1341
                        $menge = "";
1342
                        $g_preis = $e_preis;
1343
                        $g_preis_n = $preis_n;*/
1344
                    }
1345
                    else
1346
                    {
1347
                        // ME: Bestandsmehrung oder auch nicht bei Gutschriften
1348
                        if ( ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["gutschriftoption"] ) ) and
1349
                            ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["gutschriftoption"] ) ) )
1 lars 1350
                        {
2 lars 1351
                            if ( isset( $_POST['gutschrift'] ) )
1352
                            {
1353
                                if ( !isset( $_POST['keine_bestandsaenderung'] ) )
1354
                                {
1355
                                    $buchungstext =
1356
                                        'Buchung durchgeführt durch Gutschrift ' .
1357
                                        $r_nr . ' am ' . date( 'd.m.Y', time() );
1358
                                    setBuchungFromBestellung( $_GET['b_id'], $buchungstext,
1359
                                        $row_a['ID'], $menge );
1360
                                }
1361
                            }
1362
                        }
1 lars 1363
 
2 lars 1364
                        /**
1365
                         *  Bestandsminderung:
1366
                         *
1367
                         *  Ist das Webrecht: $web_rechte['Warenwirtschaft']['lagerwirtschaft']['bestandsminderung'] gleich "Rechnung",
1368
                         *  so wird in der Rechnungserstellung (rechnung.php) die Bestandsminderung durchgeführt.
1369
                         *
1370
                         *  Folgende Punkte werden hierfür durchgeführt:
1371
                         *         1. Eine neue Buchung wird in der Tabelle "buchungen" erzeugt.
1372
                         *        2. Die zur Buchung gehörenden Lagerbewegungen, werden in die Tabelle "lagerbewegungen" eingetragen.
1373
                         *
1374
                         */
1 lars 1375
 
2 lars 1376
                        if ( ( $row_a['Father'] > 0 ) and ( $web_rechte['Warenwirtschaft']['lagerwirtschaft']['bestandsminderung'] ==
1377
                            'Rechnung' ) )
1378
                        {
1379
 
1380
 
1381
                            if ( ( isset( $web_rechte['Warenwirtschaft']['lagerwirtschaft']['minderungsunterdrueckung'] ) ) )
1 lars 1382
                            {
2 lars 1383
                                $minderung = 1;
1384
 
1385
 
1386
                                if ( is_array( $_POST["baustein"] ) )
1 lars 1387
                                {
2 lars 1388
                                    foreach ( $_POST['baustein'] as $key => $val )
1 lars 1389
                                    {
2 lars 1390
                                        if ( stristr( $val,
1391
                                            "keine Bestandsminderung" ) )
1392
                                        {
1393
                                            $minderung = 0;
1394
                                        }
1 lars 1395
                                    }
1396
                                }
2 lars 1397
                                if ( isset( $_POST['keine_bestandsaenderung'] ) or
1398
                                    isset( $_POST['gutschrift'] ) )
1399
                                {
1400
                                    $minderung = 0;
1401
                                }
1 lars 1402
 
2 lars 1403
                                if ( $minderung == 1 )
1404
                                {
1 lars 1405
 
2 lars 1406
                                    $buchungstext =
1407
                                        'Buchung durchgeführt durch Rechnung ' .
1408
                                        $r_nr . ' am ' . date( 'd.m.Y', time() );
1409
                                    setBuchungFromBestellung( $_GET['b_id'], $buchungstext,
1410
                                        $row_a['ID'], $menge * -1 );
1411
                                }
1 lars 1412
                            }
2 lars 1413
 
1 lars 1414
                        }
1415
 
1416
 
2 lars 1417
                        $g_preis = $e_preis * $menge;
1418
                        $g_preis_n = $preis_n * $menge;
1419
                    }
1420
                }
1421
                else
1422
                {
1423
                    $mwst = 19;
1424
                    $preis_n = $e_preis - ( $e_preis * $mwst / ( 100 + $mwst ) );
1 lars 1425
                    $g_preis = $e_preis * $menge;
1426
                    $g_preis_n = $preis_n * $menge;
2 lars 1427
                    $kennung = "";
1428
                    $a_name = $row["Bezeichnung"];
1 lars 1429
                }
2 lars 1430
                $summe_b[$mwst] += $g_preis;
1431
                $summe_n[$mwst] += $g_preis_n;
1432
                $h = $pdf->NbLines( 100, $a_name );
1433
                $h = 5 * $h;
1 lars 1434
 
2 lars 1435
                $x = $pdf->GetX();
1436
                $y = $pdf->GetY();
1 lars 1437
 
1438
 
2 lars 1439
                $pdf->Multicell( 10, $h, $pos . ".", 1, "C" );
1440
                $pdf->SetXY( $x + 10, $y );
1441
                $x = $pdf->GetX();
1442
                $y = $pdf->GetY();
1 lars 1443
 
1444
 
2 lars 1445
                $pdf->Multicell( 15, $h, ( ( is_numeric( $pos ) ) ? str_replace
1446
                    ( ",00", "", number_format( $menge, 2, ',', '.' ) ) : "" ) .
1447
                    " x", 1, "C" );
1448
                $pdf->SetXY( $x + 15, $y );
1449
                $x = $pdf->GetX();
1450
                $y = $pdf->GetY();
1 lars 1451
 
1452
 
2 lars 1453
                $pdf->Multicell( 20, $h, $kennung, 1, "C" );
1454
                $pdf->SetXY( $x + 20, $y );
1455
                $x = $pdf->GetX();
1456
                $y = $pdf->GetY();
1 lars 1457
 
2 lars 1458
                $pdf->Multicell( 100, 5, $a_name, 1, "L" );
1459
                $pdf->SetXY( $x + 100, $y );
1460
                $x = $pdf->GetX();
1461
                $y = $pdf->GetY();
1 lars 1462
 
2 lars 1463
                if ( $showBruttoPreis == 1 )
1464
                {
1465
                    $pdf->Multicell( 20, $h, number_format( $preis_n, 2, ',',
1466
                        '.' ), 1, "R" );
1467
                }
1468
                else
1469
                {
1470
                    $pdf->Multicell( 20, $h, number_format( $preis_n, 3, ',',
1471
                        '.' ), 1, "R" );
1472
                }
1 lars 1473
 
1474
 
2 lars 1475
                $pdf->SetXY( $x + 20, $y );
1 lars 1476
 
2 lars 1477
 
1478
                $pdf->Multicell( 0, $h, number_format( $g_preis_n, 2, ',', '.' ),
1479
                    1, "R" );
1480
                //$pdf->ln( 4 );
1481
                if ( $Status )
1482
                {
1483
                    $sql_s =
1484
                        "UPDATE artikel_to_Bestellung SET rechnungStatus='geschrieben' WHERE ID=" .
1485
                        $row["ID"];
1486
                    mysql_query_logged( $sql_s ) or die( mysql_errno() . ": " .
1487
                        mysql_error() );
1488
                }
1489
                $pos++;
1 lars 1490
            }
1491
 
2 lars 1492
            // ME: Prüfen, ob die Tabelle zahlungsarten existiert
1493
            $select_z = "";
1494
            $from_z = "";
1495
            $where_z = "";
1496
 
1497
            if ( table_exists( 'zahlungsarten', $webs["datenbank"], $localhost_dbh ) == "true" )
1498
            {
1499
                $zahlungsarten = 1;
1500
                $select_z = ",z.id as zahlungsarten_id";
1501
                $from_z = ", zahlungsarten z";
1502
                $where_z = " and z.interner_name = a.short_line_1";
1 lars 1503
            }
1504
 
2 lars 1505
            $sql = "
1506
                SELECT
1507
                    ab.*,
1508
                    a.short_line_1 as zahlart
1509
                    " . $select_z . "
1510
                FROM
1511
                    artikel_to_Bestellung ab,
1512
                    " . artikelDatabase( $row_b["shops_ID"] ) . " a
1513
                    " . $from_z . "
1514
                WHERE
1515
                    Bestellung=$b_id
1516
                AND
1517
                    ab.status!='storniert'
1518
                AND
1519
                    a.ID=ab.artikel
1520
                AND
1521
                    a.Father=-3
1522
                " . $where_z . "
1523
                ORDER BY
1524
                    Rang,
1525
                    ab.Bezeichnung
1526
 
1527
            ";
1528
 
1529
            $res = mysql_query_logged( $sql ) or mail( "niewerth@weban.de",
1530
                "Fehler in createMailOrderText.php", mysql_errno() . ": " .
1531
                mysql_error() . "<hr>$query<hr>",
1532
                "from: cms_Warenwirtschaft_rechung.php select artikel_to_Bestellung" );
1533
 
1534
            if ( mysql_num_rows( $res ) )
1 lars 1535
            {
2 lars 1536
                $row = mysql_fetch_assoc( $res );
1537
                $menge = $row["Menge"];
1538
                $e_preis = $row["Preis_pro_Stueck"];
1539
                if ( $zahlungsarten == 1 )
1 lars 1540
                {
2 lars 1541
                    $zahlungsarten_id = $row['zahlungsarten_id'];
1 lars 1542
                }
1543
 
2 lars 1544
                if ( $row["artikel"] != 999999 )
1545
                {
1546
                    $sql_a = "SELECT
1547
                            *
1548
                        FROM
1549
                            " . artikelDatabase( $row_b["shops_ID"] ) . "
1550
                        WHERE
1551
                            ID=" . $row["artikel"] . "
1552
                    ";
1553
                    $res_a = mysql_query( $sql_a ) or die( mysql_errno() . ": " .
1554
                        mysql_error() );
1555
                    if ( !$res_a )
1556
                    {
1557
                        echo mysql_error() . "<br>$sql_a";
1558
                        var_dump( $row );
1559
                    }
1560
                    $row_a = mysql_fetch_assoc( $res_a );
1561
                    $kennung = $row_a["kennung"];
1562
                    $mwst = ( $row["mwst"] != "0.00" && !empty( $row["mwst"] ) ) ?
1563
                        $row["mwst"] : $mwst_arr[$row_a["tax1"]];
1 lars 1564
 
2 lars 1565
                    $preis_n = $e_preis - ( $e_preis * $mwst / ( 100 + $mwst ) );
1566
 
1567
                    if ( $showBruttoPreis == 1 )
1568
                    {
1569
                        $preis_n = $e_preis;
1570
                    }
1571
                    if ( $row_a["Father"] == -3 )
1572
                    {
1573
                        $versandname = $row["Bezeichnung"];
1574
                        $pos = "";
1575
                        $menge = "";
1576
                        $g_preis = $e_preis;
1577
                        $g_preis_n = $preis_n;
1578
                    }
1579
                    else
1580
                    {
1581
 
1582
 
1583
                        $g_preis = $e_preis * $menge;
1584
                        $g_preis_n = $preis_n * $menge;
1585
                    }
1586
                }
1587
                else
1 lars 1588
                {
2 lars 1589
                    $mwst = 19;
1590
                    $preis_n = $e_preis - ( $e_preis * $mwst / ( 100 + $mwst ) );
1591
                    $g_preis = $e_preis * $menge;
1592
                    $g_preis_n = $preis_n * $menge;
1593
                    $kennung = "";
1 lars 1594
                }
2 lars 1595
                $summe_b[$mwst] += $g_preis;
1596
                $summe_n[$mwst] += $g_preis_n;
1597
                $a_name = $row["Bezeichnung"];
1598
 
1599
                $pdf->SetX( $Einzug );
1600
                $pdf->cell( 10, 4, $pos, 1, 0, "C" );
1601
                $pdf->cell( 15, 4, ( is_numeric( $pos ) ) ? number_format( $menge,
1602
                    2, ',', '.' ) : "", 1, 0, "R" );
1603
                $pdf->cell( 20, 4, $kennung, 1, 0, "C" );
1604
                $pdf->cell( 100, 4, $a_name, 1, 0, "L", 0, "", 0, 0 );
1605
                if ( $showBruttoPreis == 1 )
1 lars 1606
                {
2 lars 1607
                    $pdf->cell( 20, 4, number_format( $preis_n, 2, ',', '.' ), 1,
1608
                        0, "R" );
1 lars 1609
                }
1610
                else
1611
                {
2 lars 1612
                    $pdf->cell( 20, 4, number_format( $preis_n, 3, ',', '.' ), 1,
1613
                        0, "R" );
1614
                }
1 lars 1615
 
2 lars 1616
                $pdf->cell( 0, 4, number_format( $g_preis_n, 2, ',', '.' ), 1, 0,
1617
                    "R" );
1618
                $pdf->ln( 4 );
1619
                $pos++;
1620
            }
1 lars 1621
 
2 lars 1622
            foreach ( $summe_n as $mwst => $betrag )
1623
            {
1624
                $summe_n["total"] += $betrag;
1 lars 1625
            }
2 lars 1626
            foreach ( $summe_b as $mwst => $betrag )
1 lars 1627
            {
2 lars 1628
                $summe_b["total"] += $betrag;
1 lars 1629
            }
1630
            $pdf->SetX( $Einzug );
1631
            if ( $showBruttoPreis == 1 )
1632
            {
2 lars 1633
                $pdf->cell( 165, 4, "Gesamt Brutto", 1, 0, "L" );
1634
                $pdf->cell( 0, 4, number_format( $summe_b["total"], 2, ',', '.' ),
1635
                    1, 1, "R" );
1 lars 1636
            }
1637
            else
1638
            {
2 lars 1639
                $pdf->cell( 165, 4, "Gesamt Netto", 1, 0, "L" );
1640
                $pdf->cell( 0, 4, number_format( $summe_n["total"], 2, ',', '.' ),
1641
                    1, 1, "R" );
1 lars 1642
            }
1643
 
2 lars 1644
            $pdf->SetX( $Einzug );
1645
            // Mehrwertsteuer Ausgabe bei Bruttoberechnung
1646
            if ( $showBruttoPreis == 1 )
1 lars 1647
            {
2 lars 1648
                foreach ( $summe_b as $mwst => $betrag )
1 lars 1649
                {
2 lars 1650
                    if ( $mwst != "total" )
1 lars 1651
                    {
2 lars 1652
                        if ( $mwst_befreiung == 'on' )
1653
                        {
1654
                            $mwst = 0.00;
1655
                        }
1 lars 1656
 
2 lars 1657
                        if ( $showBruttoPreis == 1 )
1658
                        {
1659
                            $pdf->cell( 165, 4, "inkl. $mwst % MwSt. auf " .
1660
                                number_format( $betrag / 1.19, 2, ',', '.' ) .
1661
                                " € ( = Nettorechnungsbetrag)", "LBT", 0, "L" );
1662
                        }
1 lars 1663
 
1664
 
2 lars 1665
                        $pdf->cell( 0, 4, number_format( $betrag * $mwst / ( 100 +
1666
                            $mwst ), 2, ',', '.' ), 1, 1, "R" );
1 lars 1667
 
1668
 
2 lars 1669
                        define( 'MWST', $mwst );
1670
                    }
1 lars 1671
                }
2 lars 1672
 
1 lars 1673
            }
2 lars 1674
            else
1675
            {
1 lars 1676
 
1677
 
2 lars 1678
                // Mehrwertsteuer Ausgabe bei Nettoberechnung
1679
                foreach ( $summe_n as $mwst => $betrag )
1 lars 1680
                {
2 lars 1681
                    if ( $mwst != "total" )
1 lars 1682
                    {
2 lars 1683
                        if ( $mwst_befreiung == 'on' )
1684
                        {
1685
                            $mwst = 0.00;
1686
                        }
1 lars 1687
 
2 lars 1688
                        $pdf->cell( 165, 4, "zzgl. $mwst % MwSt. auf " .
1689
                            number_format( $betrag, 2, ',', '.' ) . " €", "LBT",
1690
                            0, "L" );
1 lars 1691
 
2 lars 1692
                        $pdf->cell( 0, 4, number_format( $betrag * $mwst / 100,
1693
                            2, ',', '.' ), 1, 1, "R" );
1 lars 1694
 
2 lars 1695
                        define( 'MWST', $mwst );
1696
                    }
1 lars 1697
                }
1698
            }
2 lars 1699
            $pdf->setFont( 'Arial', 'B', 12 );
1700
            $pdf->SetX( $Einzug );
1701
            // Ist Summe-Brutto kleiner als 0, wird der 'Gesamtbetrag' umbenannt in 'Gutschriftsbetrag'
1702
            if ( $summe_b["total"] < 0 )
1703
            {
1704
                $pdf->cell( 165, 8, "Gutschriftsbetrag", "LBR", 0, "L" );
1705
            }
1706
            else
1707
            {
1708
                $pdf->cell( 165, 8, "Gesamtbetrag", "LBR", 0, "L" );
1709
            }
1 lars 1710
 
2 lars 1711
            // Wenn die MwSt-Befreiung gesetzt ist, gebe als Gesamtbetrag die Summe als Netto aus, ansonsten mit Brutto
1712
            $pdf->SetX( $Einzug );
1713
            if ( $mwst_befreiung == 'on' )
1714
            {
1715
                $pdf->cell( 0, 8, number_format( $summe_n["total"], 2, ',', '.' ),
1716
                    "LBR", 1, "R" );
1717
            }
1718
            else
1719
            {
1720
                $pdf->cell( 0, 8, number_format( $summe_b["total"], 2, ',', '.' ),
1721
                    "LBR", 1, "R" );
1722
            }
1 lars 1723
 
1724
            $pdf->SetX( $Einzug );
2 lars 1725
            $pdf->cell( 0, 8, "", "T", 1 );
1 lars 1726
            $pdf->setFont( 'Arial', '', 9.5 );
1727
 
2 lars 1728
            if ( $row_b["Bemerkung_extern"] && BEMERKUNG2_DRUCKEN )
1729
            {
1 lars 1730
 
2 lars 1731
                // externe Bemerkung
1732
                $pdf->SetX( $Einzug );
1733
                $pdf->multiCell( 35, 4, "", 0, 0, "L" );
1734
                $pdf->setFont( 'Arial', 'B', 9.5 );
1735
                $pdf->SetX( $Einzug );
1736
                $pdf->multiCell( 0, 4, $row_b["Bemerkung_extern"], 0, 1, "L" );
1737
                $pdf->SetX( $Einzug );
1738
                $pdf->multiCell( 0, 4, " ", 0, 1, "L" );
1739
                $pdf->setFont( 'Arial', '', 9.5 );
1 lars 1740
            }
2 lars 1741
 
1742
            // MwSt.-Befreiung Zusatztext
1743
            $pdf->SetX( $Einzug );
1744
            if ( $mwst_befreiung == 'on' )
1 lars 1745
            {
2 lars 1746
                $pdf->setFont( 'Arial', 'B', 10 );
1747
 
1748
                // Wenn das Land 'Deutschland' oder Leer ist, dann gebe speziellen Text aus
1749
                if ( $row_l['Land'] == 'Deutschland' || empty( $row_l['Land'] ) )
1 lars 1750
                {
2 lars 1751
                    $pdf->multiCell( 0, 4, "Deutschland nach §4", "", 1 );
1 lars 1752
                }
1753
                else
1754
                {
2 lars 1755
                    // Wenn UST.IdNr. gesetzt ist   => EU-Inland
1756
                    // Wenn nicht gesetzt ist       => EU-Ausland
1757
                    if ( $ustid_nr )
1758
                    {
1759
                        $pdf->multiCell( 0, 4,
1760
                            "Der Rechnungsempfänger ist Steuerschuldner gem. § 13b UStG.\nUSt. ID Nr. vom Leistungsempfänger ist: $ustid_nr\nUSt. ID Nr. vom Leistungserbringer ist: $haendler_ust_id",
1761
                            "", 1 );
1762
                    }
1763
                    else
1764
                    {
1765
                        $pdf->multiCell( 0, 4, "ACHTUNG:\n\nES HANDELT SICH UM EINE STEUERFREIE AUSLIEFERUNG IN EIN DRITTLAND GEM:.§4Nr. 1A USTG",
1766
                            "", 1 );
1767
                    }
1 lars 1768
                }
1769
            }
1770
 
2 lars 1771
            $pdf->setFont( 'Arial', '', 9.5 );
1772
            $pdf->SetX( $Einzug );
1773
            if ( VERSAND_ANZEIGEN )
1774
            {
1775
                if ( $gutschrift == 1 )
1776
                {
1777
                    $pdf->multiCell( 0, 4, "\r\nGutschrift", 0, 1, "L" );
1778
                }
1779
                else
1780
                {
1781
                    $pdf->multiCell( 0, 4, "\r\nZahlung: $versandname\n$zahlungs_hinweis",
1782
                        0, 1, "L" );
1783
                }
1784
 
1 lars 1785
            }
2 lars 1786
            else
1787
            {
1788
                $pdf->multiCell( 0, 4, "\r\n$zahlungs_hinweis", 0, 1, "L" );
1789
            }
1 lars 1790
 
2 lars 1791
            // START die Anzeige der ausgewählten Rechnungsbausteine
1792
            $pdf->SetX( $Einzug );
1793
            if ( ( $web_rechte["Warenwirtschaft"]["bestellung"]["rechnungsbausteine"] ) and
1794
                ( $_POST['action'] == "genPDF" ) )
1795
            {
1796
                //$pdf->multiCell( 0, 4, "Bemerkung:", 0, 1, "L" );
1797
                //$pdf->setFont( 'Arial', '', 9.5 );
1 lars 1798
 
2 lars 1799
                if ( is_array( $_POST['baustein'] ) )
1 lars 1800
                {
2 lars 1801
                    foreach ( $_POST['baustein'] as $kk => $vv )
1 lars 1802
                    {
2 lars 1803
                        if ( $vv != "keine Bestandsminderung" )
1804
                        {
1805
                            $pdf->multiCell( 0, 4, $vv, 0, 1, "L" );
1806
                            $pdf->setFont( 'Arial', '', 9.5 );
1807
                        }
1 lars 1808
                    }
1809
                }
1810
            }
2 lars 1811
            // ENDE die Anzeige der ausgewählten Rechnungsbausteine
1 lars 1812
 
1813
 
2 lars 1814
            // ME: START Vorbereitung der Ausgabe des Zahlungsziels auf der Rechnung
1815
            if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["zahlungsziel"] ) )
1 lars 1816
            {
2 lars 1817
                if ( $_POST['action'] == "genPDF" )
1 lars 1818
                {
2 lars 1819
                    if ( $_POST['zahlungsziel'] )
1 lars 1820
                    {
2 lars 1821
                        $sql = "select * from zahlungsziele where id=" . $_POST['zahlungsziel'] .
1822
                            "";
1823
 
1824
                        if ( $q = mysql_query( $sql ) )
1 lars 1825
                        {
2 lars 1826
                            if ( $r = mysql_fetch_assoc( $q ) )
1827
                            {
1828
                                $zieltage = date( 'd.m.Y', strtotime( '+' . $r['zieltage'] .
1829
                                    ' days' ) );
1830
                                $serArr['ziel'] = strtotime( '+' . $r['zieltage'] .
1831
                                    ' days' );
1 lars 1832
 
2 lars 1833
                                // SKONTO 1
1834
                                if ( $r['skonto1'] > 0 )
1835
                                {
1836
                                    $skonto1 = $r['skonto1'];
1837
                                    $serArr['skonto1'] = $skonto1;
1838
                                    $sk1 = $summe_b['total'] * ( $skonto1 / 100 );
1839
                                    $skontobetrag1 = number_format( $sk1, 2, ",",
1840
                                        "." );
1841
                                    $serArr['skontobetrag1'] = $sk1;
1842
                                }
1843
                                if ( $r['zieltageskonto1'] > 0 )
1844
                                {
1845
                                    $zieltageskonto1 = date( 'd.m.Y', strtotime
1846
                                        ( '+' . $r['zieltageskonto1'] . ' days' ) );
1847
                                    $serArr['zielskonto1'] = strtotime( '+' . $r['zieltageskonto1'] .
1848
                                        ' days' );
1849
                                }
1 lars 1850
 
1851
 
2 lars 1852
                                // SKONTO 2
1853
                                if ( $r['skonto2'] > 0 )
1854
                                {
1855
                                    $skonto2 = $r['skonto2'];
1856
                                    $serArr['skonto2'] = $skonto2;
1857
                                    $sk2 = $summe_b['total'] * ( $skonto2 / 100 );
1858
                                    $skontobetrag2 = number_format( $sk2, 2, ",",
1859
                                        "." );
1860
                                    $serArr['skontobetrag2'] = $sk2;
1861
                                }
1862
                                if ( $r['zieltageskonto2'] > 0 )
1863
                                {
1864
                                    $zieltageskonto2 = date( 'd.m.Y', strtotime
1865
                                        ( '+' . $r['zieltageskonto2'] . ' days' ) );
1866
                                    $serArr['zielskonto2'] = strtotime( '+' . $r['zieltageskonto2'] .
1867
                                        ' days' );
1868
                                }
1 lars 1869
 
1870
 
2 lars 1871
                                $serArr['bruttobetrag'] = $summe_b['total'];
1872
 
1873
                                @eval( "\$rechnungsbaustein_int=\"" . addslashes
1874
                                    ( $r["rechnungsbaustein"] ) . "\";" );
1875
 
1876
                                $zz_text = $rechnungsbaustein_int;
1877
 
1878
                            }
1 lars 1879
                        }
1880
                    }
1881
                }
1882
            }
2 lars 1883
            // ME: ENDE Vorbereitung der Ausgabe des Zahlungsziels auf der Rechnung
1 lars 1884
 
2 lars 1885
            // Start Anzeige des Zahlungsziels
1886
            if ( $zz_text )
1 lars 1887
            {
2 lars 1888
                $pdf->multiCell( 0, 6, $zz_text, 0, 1, "L" );
1889
                $pdf->setFont( 'Arial', '', 9.5 );
1 lars 1890
            }
2 lars 1891
            // Ende Anzeige des Zahlungsziels
1 lars 1892
 
1893
 
2 lars 1894
            if ( $Speichern )
1895
            {
1896
                $add_flds = "";
1897
                $rechnung_key = "";
1898
                if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["rechnungslink"] ) )
1899
                {
1900
                    $add_flds = ", rechnung_key";
1901
                    $rechnung_key = uniqid( hash( "sha512", $fName, true ) );
1902
                }
1 lars 1903
 
2 lars 1904
                $pdf->Output( $webs['verzeichnis'] . "/images/dokumente/" . $fName,
1905
                    "F" );
1 lars 1906
 
2 lars 1907
                $sql = "
1908
                        INSERT INTO
1909
                            dokumente
1910
                        (
1911
                            table_foreign,
1912
                            row_foreign,
1913
                            data_foreign,
1914
                            document,
1915
                            letzte_Aenderung_am,
1916
                            letzte_Aenderung_von
1917
                        )
1918
                        VALUES
1919
                        (
1920
                            'Bestellung',
1921
                            'ID',
1922
                            $b_id,
1923
                            '$fName',
1924
                            NOW(),
1925
                            '" . $_SERVER["PHP_AUTH_USER"] . "'
1926
                        )
1927
                ";
1928
                mysql_query_logged( $sql ) or mail( "niewerth@weban.de",
1929
                    "Fehler in createMailOrderText.php", mysql_errno() . ": " .
1930
                    mysql_error() . "<hr>$query<hr>",
1931
                    "from: cms_Warenwirtschaft_rechung.php into documente" );
1932
            }
1 lars 1933
 
2 lars 1934
            // Eintrag der Rechnung in das Rechnungsbuch
1935
            if ( isset( $web_rechte['Warenwirtschaft']['rechnungsbuch']['rechnungsbuch'] ) )
1936
            {
1937
                $rechnungsdaten = array();
1 lars 1938
 
2 lars 1939
                // Rechnungsnummer
1940
                $rechnungsdaten['rechnungsnummer'] = $r_nr;
1 lars 1941
 
2 lars 1942
                // Bestellnummer
1943
                $rechnungsdaten['bestellung'] = $b_id;
1 lars 1944
 
2 lars 1945
                // shop
1946
                $rechnungsdaten['shop'] = $shops_ID;
1 lars 1947
 
2 lars 1948
                // kundennr
1949
                $rechnungsdaten['kundennr'] = $row_l["ID"];
1 lars 1950
 
2 lars 1951
                // kunde
1952
                $rechnungsdaten['kunde'] = $name;
1 lars 1953
 
2 lars 1954
                // kunde
1955
                $rechnungsdaten['firma'] = $firma;
1 lars 1956
 
2 lars 1957
                // erstellt_von
1958
                $rechnungsdaten['erstellt_von'] = $_SERVER['PHP_AUTH_USER'];
1 lars 1959
 
2 lars 1960
                //  mwst_19 und mwst_7
1961
                switch ( MWST )
1962
                {
1963
                    case '19.00':
1964
                        $rechnungsdaten['mwst_19'] = $betrag * ( MWST / 100 );
1965
                        $rechnungsdaten['mwst_7'] = 0.00;
1966
                        break;
1 lars 1967
 
2 lars 1968
                    case '7.00':
1969
                        $rechnungsdaten['mwst_7'] = $betrag * ( MWST / 100 );
1970
                        $rechnungsdaten['mwst_19'] = 0.00;
1971
                        break;
1 lars 1972
 
2 lars 1973
                    case '0.00':
1974
                        $rechnungsdaten['mwst_7'] = 0.00;
1975
                        $rechnungsdaten['mwst_19'] = 0.00;
1976
                        break;
1977
                }
1 lars 1978
 
2 lars 1979
                // nettobetrag
1980
                $rechnungsdaten['nettobetrag'] = $summe_n["total"];
1981
 
1982
                // bruttobetrag
1983
                $rechnungsdaten['bruttobetrag'] = $rechnungsdaten['nettobetrag'] +
1984
                    $rechnungsdaten['mwst_7'] + $rechnungsdaten['mwst_19'];
1985
 
1986
                // ME: Bei Gutschriften müssen die Beträge negativ sein.
1987
                if ( $gutschrift == 1 )
1988
                {
1989
                    if ( $rechnungsdaten['mwst_7'] > 0 )
1990
                    {
1991
                        $rechnungsdaten['mwst_7'] = $rechnungsdaten['mwst_7'] *
1992
                            -1;
1993
                    }
1994
                    if ( $rechnungsdaten['mwst_19'] > 0 )
1995
                    {
1996
                        $rechnungsdaten['mwst_19'] = $rechnungsdaten['mwst_19'] *
1997
                            -1;
1998
                    }
1999
                    if ( $rechnungsdaten['nettobetrag'] > 0 )
2000
                    {
2001
                        $rechnungsdaten['nettobetrag'] = $rechnungsdaten['nettobetrag'] *
2002
                            -1;
2003
                    }
2004
                    if ( $rechnungsdaten['bruttobetrag'] > 0 )
2005
                    {
2006
                        $rechnungsdaten['bruttobetrag'] = $rechnungsdaten['bruttobetrag'] *
2007
                            -1;
2008
                    }
1 lars 2009
                }
2010
 
2011
 
2 lars 2012
                // zahlart
2013
                $rechnungsdaten['zahlart'] = $versandname;
1 lars 2014
 
2 lars 2015
                // Ort
2016
                $rechnungsdaten['ort'] = $ort;
1 lars 2017
 
2 lars 2018
                // mwst_befreiung
2019
                $rechnungsdaten['mwst_befreiung'] = $mwst_befreiung;
1 lars 2020
 
2 lars 2021
                // mwst_befreiung
2022
                $rechnungsdaten['ustid_nr'] = $ustid_nr;
2023
 
2024
 
2025
                // ME: Abweichendes Rechnungsdatum?
2026
                if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["abw_rechnungsdatum"] ) )
2027
                {
2028
                    if ( $_POST['rechnungsdatum'] )
2029
                    {
2030
                        $rechnungsdaten['rechnungsdatum'] = human2date( $_POST['rechnungsdatum'] );
2031
                    }
1 lars 2032
                }
2 lars 2033
                // ME: Abweichendes Lieferdatum?
2034
                if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["abw_lieferdatum"] ) )
2035
                {
2036
                    if ( $_POST['leistungsdatum'] )
2037
                    {
2038
                        $rechnungsdaten['leistungsdatum'] = human2date( $_POST['leistungsdatum'] );
2039
                    }
1 lars 2040
                }
2041
 
2 lars 2042
                if ( setRechnungsbuch( $rechnungsdaten ) )
2043
                {
2044
                }
1 lars 2045
            }
2 lars 2046
 
2047
            // Zahlungsziel in Rechnung speichern START
2048
            if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["zahlungsziel"] ) )
2049
            {
2050
                if ( isset( $serArr ) )
2051
                {
2052
                    if ( $serArr = serialize( $serArr ) )
2053
                    {
2054
                        if(!$zahlungsarten_id) {
2055
                            $zahlungsarten_id = 12; // Zahlungsart: Sonstige . wenn nichts anderes verfügbar.
2056
                        }
2057
 
2058
                        updateRechnung( $serArr, $rechnungsdaten['rechnungsnummer'],
2059
                            $zahlungsarten_id );
2060
                    }
1 lars 2061
                }
2 lars 2062
            }
2063
            // Zahlungsziel in Rechnung speichern ENDE
1 lars 2064
 
2 lars 2065
 
2066
            // rechnung_bezahlt speichern START
2067
            if ( isset( $web_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] ) )
2068
            {
2069
                if ( isset( $user_rechte["Warenwirtschaft"]["rechnungsbuch"]["rechnung_bezahlt"] ) )
2070
                {
2071
                    if ( isset( $_POST['rechnung_bezahlt'] ) )
2072
                    {
2073
                        upd_bezahlt( $rechnungsdaten['rechnungsnummer'], $rechnungsdaten['bestellung'] );
2074
                    }
1 lars 2075
                }
2076
            }
2 lars 2077
            // rechnung_bezahlt speichern ENDE
2078
 
2079
 
2080
            if ( $mass_print == 0 )
2081
            {
2082
                $pdf->Output();
2083
            }
1 lars 2084
        }
2 lars 2085
        unset( $pdf );
2086
        return $fName;
2087
    } // end Function print_Rechnung()
1 lars 2088
 
2089
 
2 lars 2090
    ////////////////////////////////////////////
2091
    // Ende der Hauptfunktion print_Rechnung
2092
    ////////////////////////////////////////////
1 lars 2093
 
2094
?>