Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?
2
    // $Id: auftrag.php 3456 2011-03-17 14:55:30Z tiefland $
3
    require_once "connect2.php";
4
    require_once "includes/bestellungen/system/mysql_query_logged.php";
5
    //    require_once  "Weban_Smarty.class.php";
6
    //    require_once  "includes/best_manu/best_manu_search.php";
7
    require_once "includes/auftrag/body_$site.inc.php";
8
    require_once "fpdf/fpdf.php";
9
    require_once "includes/bestellungen/system/artikelDatabase.php";
10
 
11
    class PDF extends FPDF
12
    {
13
        function generate_LN( $bestell_id, $art )
14
        {
15
            $date = date( "Y-m-d" );
16
            $f_name = $art . "_" . $bestell_id . "_" . $date;
17
            $sql =
18
                "SELECT MAX(document) AS dokument FROM dokumente WHERE document LIKE '$f_name%'";
19
            $res = mysql_query( $sql );
20
            if ( $res )
21
            {
22
                if ( mysql_num_rows( $res ) )
23
                {
24
                    $row = mysql_fetch_assoc( $res );
25
                    $dokument = substr( $row["dokument"], 0, strlen( $row["dokument"] ) -
26
                        4 );
27
                    $dokument = explode( "_", $dokument );
28
                    $ln = $dokument[count( $dokument ) - 1];
29
                    $ln++;
30
                }
31
                else
32
                {
33
                    $ln = 1;
34
                }
35
            }
36
            else
37
            {
38
                $ln = 1;
39
                die( mysql_error() );
40
            }
41
            return $ln;
42
        }
43
        //Page header
44
        function Header()
45
        {
46
            global $site, $r_nr;
47
            require_once "includes/auftrag/header_$site.inc.php";
48
        }
49
 
50
        //Page footer
51
        function Footer()
52
        {
53
            global $site;
54
            require_once "includes/auftrag/footer_$site.inc.php";
55
        }
56
        function NbLines( $w, $txt )
57
        {
58
            //Computes the number of lines a MultiCell of width w will take
59
            $cw = &$this->CurrentFont['cw'];
60
            if ( $w == 0 )
61
                $w = $this->w - $this->rMargin - $this->x;
62
            $wmax = ( $w - 2 * $this->cMargin ) * 1000 / $this->FontSize;
63
            $s = str_replace( "\r", '', $txt );
64
            $nb = strlen( $s );
65
            if ( $nb > 0 and $s[$nb - 1] == "\n" )
66
                $nb--;
67
            $sep = -1;
68
            $i = 0;
69
            $j = 0;
70
            $l = 0;
71
            $nl = 1;
72
            while ( $i < $nb )
73
            {
74
                $c = $s[$i];
75
                if ( $c == "\n" )
76
                {
77
                    $i++;
78
                    $sep = -1;
79
                    $j = $i;
80
                    $l = 0;
81
                    $nl++;
82
                    continue;
83
                }
84
                if ( $c == ' ' )
85
                    $sep = $i;
86
                $l += $cw[$c];
87
                if ( $l > $wmax )
88
                {
89
                    if ( $sep == -1 )
90
                    {
91
                        if ( $i == $j )
92
                            $i++;
93
                    }
94
                    else
95
                        $i = $sep + 1;
96
                    $sep = -1;
97
                    $j = $i;
98
                    $l = 0;
99
                    $nl++;
100
                }
101
                else
102
                    $i++;
103
            }
104
            return $nl;
105
        }
106
    }
107
    $pdf = new PDF();
108
    if ( !isset( $liefer_id ) )
109
    {
110
        $liefer_id = "0";
111
    }
112
    if ( !$b_id )
113
    {
114
        if ( $_GET["b_id"] )
115
        {
116
            $b_id = ( int )$_GET["b_id"];
117
        } elseif ( $_POST["b_id"] )
118
        {
119
            $b_id = ( int )$_POST["b_id"];
120
        }
121
        else
122
        {
123
            die( "Keine Bestellung angegeben!" );
124
        }
125
    }
126
    if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["drucken"] ) )
127
    {
128
        $Status = false;
129
        $Nummernkreis = false;
130
        $Speichern = false;
131
        $Lieferadressenauswahl = false;
132
        $daten = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["drucken"] );
133
        $id = array_search( "Lieferadressenauswahl", $daten );
134
        if ( $id !== false )
135
        {
136
            $Lieferadressenauswahl = true;
137
        }
138
        $id = array_search( "Status", $daten );
139
        if ( $id !== false )
140
        {
141
            $Status = true;
142
        }
143
        $id = array_search( "Nummernkreis", $daten );
144
        if ( $id !== false )
145
        {
146
            $Nummernkreis = true;
147
            if ( !isset( $anz_stellen ) )
148
            {
149
                $anz_stellen = 5;
150
            }
151
            $r_nr = sprintf( "%0" . $anz_stellen . "d", $pdf->generate_LN( $b_id,
152
                "A", $Nummernkreis ) );
153
            $r_nr = date( "y" ) . $r_nr;
154
            $fName = "A" . $r_nr . ".pdf";
155
        }
156
        else
157
        {
158
            $date = date( "Y-m-d" );
159
            $ln = $pdf->generate_LN( $b_id, "A", false );
160
            if ( !isset( $anz_stellen ) )
161
            {
162
                $anz_stellen = 5;
163
            }
164
            $r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );
165
            $fName = "A_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";
166
        }
167
        $id = array_search( "Speichern", $daten );
168
        if ( $id !== false )
169
        {
170
            $Speichern = true;
171
        }
172
    }
173
    //Instanciation of inherited class
174
 
175
    $pdf->setSubject( "Auftrag" );
176
    $pdf->setAuthor( $haendler_name );
177
    $pdf->setCreator( "fpdf PHP Library" );
178
    $pdf->AliasNbPages();
179
    $pdf->AddPage();
180
    $sql_b = "SELECT * FROM Bestellung WHERE ID=$b_id";
181
    $res_b = mysql_query_logged( $sql_b );
182
    $row_b = mysql_fetch_assoc( $res_b );
183
    $b_name = $row_b["letzte_Aenderung_von"];
184
    $b_name = substr( $b_name, 0, strpos( $b_name, "@" ) );
185
    $sql_l = "SELECT * FROM Logins WHERE ID=" . $row_b["Login"];
186
    $res_l = mysql_query_logged( $sql_l );
187
    $row_l = mysql_fetch_assoc( $res_l );
188
    $name = ( $row_l["Vorname"] ) ? $row_l["Vorname"] . " " . $row_l['Name1'] :
189
        $row_l["Name1"];
190
    $anrede = $row_l["Anrede"];
191
    $plz = $row_l["PLZ"];
192
    $ort = $row_l["ORT"];
193
    $str = $row_l["Strasse"];
194
    $str .= ( isset( $row_l["Hausnummer"] ) ) ? " " . $row_l["Hausnummer"] :
195
        "";
196
    $firma = ( isset( $row_l["Name2"] ) ) ? $row_l["Name2"] : "";
197
    $telefon = $row_l["Telefon"];
198
    $pdf->SetFont( 'Arial', 'B', 14 );
199
    $pdf->Ln( 4 );
200
    $pdf->cell( 100, 8, "Kundendaten", 1, 1, "C" );
201
    $pdf->SetFont( 'Arial', 'B', 9 );
202
    $pdf->cell( 20, 8, "Firma", 1, 0, "L" );
203
    $pdf->SetFont( 'Arial', '', 9 );
204
    $pdf->cell( 80, 8, $firma, 1, 1, "L" );
205
    $pdf->SetFont( 'Arial', 'B', 9 );
206
    $pdf->cell( 20, 8, "Name", 1, 0, "L" );
207
    $pdf->SetFont( 'Arial', '', 9 );
208
    $pdf->cell( 80, 8, $anrede . " " . $name, 1, 1, "L" );
209
    $pdf->SetFont( 'Arial', 'B', 9 );
210
    $pdf->cell( 20, 8, "Straße", 1, 0, "L" );
211
    $pdf->SetFont( 'Arial', '', 9 );
212
    $pdf->cell( 80, 8, $str, 1, 1, "L" );
213
    $pdf->SetFont( 'Arial', 'B', 9 );
214
    $pdf->cell( 20, 8, "PLZ", 1, 0, "L" );
215
    $pdf->SetFont( 'Arial', '', 9 );
216
    $pdf->cell( 80, 8, $plz, 1, 1, "L" );
217
    $pdf->SetFont( 'Arial', 'B', 9 );
218
    $pdf->cell( 20, 8, "Ort", 1, 0, "L" );
219
    $pdf->SetFont( 'Arial', '', 9 );
220
    $pdf->cell( 80, 8, $ort, 1, 1, "L" );
221
    $pdf->SetFont( 'Arial', 'B', 9 );
222
    $pdf->cell( 20, 8, "Telefon", 1, 0, "L" );
223
    $pdf->SetFont( 'Arial', '', 9 );
224
    $pdf->cell( 80, 8, $telefon, 1, 1, "L" );
225
    $pdf->ln( 10 );
226
    $pdf->SetFont( 'Arial', 'B', 14 );
227
    $info = unserialize( $row_b["zusatzInfo"] );
228
    switch ( $info["typ"] )
229
    {
230
        case "reklamation":
231
            $REName .= " (Reklamation)";
232
            break;
233
        case "reparatur":
234
            $REName .= " (Reparatur)";
235
            break;
236
        case "kva":
237
            $REName .= " (Reparatur mit Kostenvoranschlag)";
238
            break;
239
        default:
240
            break;
241
    }
242
    $pdf->cell( 0, 4, $REName, 0, 1, "C" );
243
    $pdf->ln( 5 );
244
    $pdf->SetFont( 'Arial', 'B', 9 );
245
    $sql = "SELECT * FROM artikel_to_Bestellung WHERE Bestellung=$b_id AND status!='storniert'";
246
    $sql .= " ORDER BY Rang";
247
    $res = mysql_query_logged( $sql );
248
    $summe_n = 0;
249
    $summe_b = 0;
250
    $preis_n = 0;
251
    $g_preis = 0;
252
    $g_preis_n = 0;
253
    $pos = 1;
254
    //Zusatzkopf
255
    if ( $Infozeile == 'on' )
256
    {
257
        $pdf->setFillColor( 204 );
258
        $pdf->cell( 30, 4, "Auftrag Nr.", "LTR", 0, "C", 1 );
259
        $pdf->cell( 30, 4, "Kunden Nr.", "LTR", 0, "C", 1 );
260
        $pdf->cell( 70, 4, "Bearbeiter", "LTR", 0, "C", 1 );
261
        $pdf->cell( 34, 4, "Datum", "LTR", 0, "C", 1 );
262
        $pdf->cell( 0, 4, "Seite", "LTR", 1, "C", 1 );
263
        $pdf->setFillColor( 255 );
264
        $pdf->cell( 30, 4, "$r_nr", "LBR", 0, "C", 1 );
265
        $pdf->cell( 30, 4, $row_l['ID'], "LBR", 0, "C", 1 );
266
        $pdf->cell( 70, 4, "$b_name", "LBR", 0, "C", 1 );
267
        $pdf->cell( 34, 4, date( 'd.m.Y' ), "LBR", 0, "C", 1 );
268
        $pdf->cell( 0, 4, $pdf->PageNo(), "LBR", 1, "C", 1 );
269
    }
270
    $pdf->setFillColor( 204 );
271
    $pdf->cell( 10, 4, "$Pos_text", "LTR", 0, "C", 1 );
272
    $pdf->cell( 20, 4, "$Menge_text", "LTR", 0, "C", 1 );
273
    $pdf->cell( 20, 4, "$Kennung_text", "LTR", 0, "C", 1 );
274
    $pdf->cell( 100, 4, "$Text_text", "LTR", 0, "C", 1 );
275
    $pdf->cell( 20, 4, "$Einzelpreis_text", "LTR", 0, "C", 1 );
276
    $pdf->cell( 0, 4, "$Gesamtpreis_text", "LTR", 1, "C", 1 );
277
    $pdf->cell( 10, 4, "", "LBR", 0, "C", 1 );
278
    $pdf->cell( 20, 4, "", "LBR", 0, "C", 1 );
279
    $pdf->cell( 20, 4, "", "LBR", 0, "C", 1 );
280
    $pdf->cell( 100, 4, "", "LBR", 0, "C", 1 );
281
    $pdf->cell( 20, 4, "€", "LBR", 0, "C", 1 );
282
    $pdf->cell( 0, 4, "€", "LBR", 1, "C", 1 );
283
    $pdf->setFillColor( 255 );
284
    $pdf->SetFont( 'Arial', '', 9 );
285
    while ( $row = mysql_fetch_assoc( $res ) )
286
    {
287
        $menge = $row["Menge"];
288
        $e_preis = $row["Preis_pro_Stueck"];
289
        $preis_n = $e_preis - ( $e_preis * 19 / 119 );
290
        if ( $row["artikel"] != 999999 )
291
        {
292
            $sql_a = "SELECT
293
                    *
294
                FROM
295
                    " . artikelDatabase( $row_b["shops_ID"] ) . "
296
                WHERE
297
                    ID=" . $row["artikel"] . "
298
            ";
299
            $res_a = mysql_query( $sql_a );
300
            $row_a = mysql_fetch_assoc( $res_a );
301
            $kennung = $row_a["kennung"];
302
            if ( $row_a["Father"] == -3 )
303
            {
304
                $versandname = $row["Bezeichnung"];
305
                $pos = "";
306
                $menge = "";
307
                $g_preis = $e_preis;
308
                $g_preis_n = $preis_n;
309
            }
310
            else
311
            {
312
                $g_preis = $e_preis * $menge;
313
                $g_preis_n = $preis_n * $menge;
314
            }
315
        }
316
        else
317
        {
318
            $g_preis = $e_preis * $menge;
319
            $g_preis_n = $preis_n * $menge;
320
            $kennung = "";
321
        }
322
        $summe_b += $g_preis;
323
        $summe_n += $g_preis_n;
324
        $a_name = $row["Bezeichnung"];
325
        $h = $pdf->NbLines( 100, $a_name );
326
        $h = 5 * $h;
327
        //var_dump($h);
328
        $x = $pdf->GetX();
329
        $y = $pdf->GetY();
330
        $pdf->Multicell( 10, $h, $pos, 1, "C" );
331
        $pdf->SetXY( $x + 10, $y );
332
        $x = $pdf->GetX();
333
        $y = $pdf->GetY();
334
        $pdf->Multicell( 20, $h, ( is_numeric( $pos ) ) ? number_format( $menge,
335
            2, ',', '.' ) : "", 1, "R" );
336
        $pdf->SetXY( $x + 20, $y );
337
        $x = $pdf->GetX();
338
        $y = $pdf->GetY();
339
        $pdf->Multicell( 20, $h, $kennung, 1, "C" );
340
        $pdf->SetXY( $x + 20, $y );
341
        $x = $pdf->GetX();
342
        $y = $pdf->GetY();
343
        $pdf->Multicell( 100, 5, $a_name, 1, "L" );
344
        $pdf->SetXY( $x + 100, $y );
345
        $x = $pdf->GetX();
346
        $y = $pdf->GetY();
347
        $pdf->Multicell( 20, $h, number_format( $preis_n, 3, ',', '.' ), 1,
348
            "R" );
349
        $pdf->SetXY( $x + 20, $y );
350
        $pdf->Multicell( 0, $h, number_format( $g_preis_n, 2, ',', '.' ), 1,
351
            "R" );
352
        $pos++;
353
    }
354
    $pdf->cell( 170, 4, "Gesamt Netto", 1, 0, "L" );
355
    $pdf->cell( 0, 4, number_format( $summe_n, 2, ',', '.' ), 1, 1, "R" );
356
    $pdf->cell( 50, 4, "zzgl. 19,00 % MwSt. auf ", "LBT", 0, "L" );
357
    $pdf->cell( 120, 4, number_format( $summe_n, 2, ',', '.' ), "BTR", 0,
358
        "R" );
359
    $pdf->cell( 0, 4, number_format( $summe_n * 0.19, 2, ',', '.' ), 1, 1,
360
        "R" );
361
    $pdf->setFont( 'Arial', 'B', 12 );
362
    $pdf->cell( 170, 8, "Gesamtbetrag", "LBR", 0, "L" );
363
    $pdf->cell( 0, 8, number_format( $summe_b, 2, ',', '.' ), "LBR", 1, "R" );
364
    $pdf->cell( 0, 8, "", "T", 1 );
365
    $pdf->setFont( 'Arial', '', 9.5 );
366
    switch ( $info["back"] )
367
    {
368
        case "return":
369
            $pdf->cell( 0, 8, "ausgetauschte Teile werden zurückgeschickt",
370
                "", 1, "L" );
371
            break;
372
        case "noreturn":
373
            $pdf->cell( 0, 8, "ausgetauschte Teile verbleiben bei $haendler_name",
374
                "", 1, "L" );
375
            break;
376
        default:
377
            break;
378
    }
379
    if ( $row_b["Bemerkung_extern"] )
380
    {
381
        // externe Bemerkung
382
        $pdf->multiCell( 35, 4, "externe Bemerkung: ", 0, 0, "L" );
383
        $pdf->setFont( 'Arial', 'B', 9.5 );
384
        $pdf->multiCell( 0, 4, $row_b["Bemerkung_extern"], 0, 1, "L" );
385
        $pdf->setFont( 'Arial', '', 9.5 );
386
    }
387
    if ( VERSAND_ANZEIGEN )
388
    {
389
        $pdf->multiCell( 0, 4, "\r\nZahlung: $versandname\n$zahlungs_hinweis",
390
            0, 1, "L" );
391
    }
392
    else
393
    {
394
        $pdf->multiCell( 0, 4, "\r\n$zahlungs_hinweis", 0, 1, "L" );
395
    }
396
    $pdf->ln( 15 );
397
    $pdf->cell( 100 );
398
    $pdf->cell( 80, 8, "Unterschrift Kunde", "T", 1, "L" );
399
    $date = date( "Y-m-d" );
400
    $ln = $pdf->generate_LN( $b_id, "A", false );
401
    if ( !isset( $anz_stellen ) )
402
    {
403
        $anz_stellen = 5;
404
    }
405
    $r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );
406
    $fName = "A_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";
407
 
408
    $pdf->Output( $webs['verzeichnis'] . "/images/dokumente/" . $fName, "F" );
409
    $sql = "
410
                INSERT INTO
411
                    dokumente
412
                (
413
                    table_foreign,
414
                    row_foreign,
415
                    data_foreign,
416
                    document,
417
                    letzte_Aenderung_am,
418
                    letzte_Aenderung_von
419
                )
420
                VALUES
421
                (
422
                    'Bestellung',
423
                    'ID',
424
                    $b_id,
425
                    '$fName',
426
                    NOW(),
427
                    '" . $_SERVER["PHP_AUTH_USER"] . "'
428
                )
429
            ";
430
    mysql_query_logged( $sql );
431
    $pdf->Output();
432
?>