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 lars 2
    //$Id: rechnungsbuch.php 4251 2012-03-26 08:29:10Z tiefland $
1 lars 3
 
4
    /**
5
     * @author Patirck Lautsch <lautsch@weban.de>
6
     * @copyright 2010 Webagentur Niewerth
7
     * @package Content-management
2 lars 8
     * @version $Rev: 4251 $
1 lars 9
     * @license propietary
10
     * @filesource
11
     *
12
     */
13
 
14
    /**
15
     *
16
     * @author Patirck Lautsch <lautsch@weban.de>
17
     * @copyright 2010 Webagentur Niewerth
18
     * @package Content-management
19
     */
20
    // deutsche Umgebung
21
    setlocale( LC_ALL, "de_DE" );
22
    ////////////////////
23
 
24
    // Connect-Datei einbinden
25
    define( "modul_name", "Warenwirtschaft" );
26
    define( "tool_name", "bestellung" );
27
    define( "F_NAME", basename( $_SERVER["PHP_SELF"] ) );
28
    require_once  "../Online-Shop/connect2.php";
29
    require_once "module/functions.common.php";
30
    //////////////////////////
31
 
32
    // Start der Session
33
    session_start();
34
    ////////////////////
35
 
36
    // Smarty Initalisierung
37
    require_once  "Weban_Smarty.class.php";
38
    require_once "includes/rechnung/rechnungsbuch.function.php";
39
    $GLOBALS["ui"] = new Weban_Smarty();
40
    $GLOBALS["ui"]->conifg_dir = SMARTY_DIR;
41
    $GLOBALS["ui"]->template_dir = "templates/";
42
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c";
43
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|best_manu";
44
    $GLOBALS["ui"]->use_sub_dirs = true;
45
    $GLOBALS["ui"]->compile_check = true;
46
    $GLOBALS["ui"]->assign( "eingabefelder", $eingabefelder );
47
    $GLOBALS["ui"]->assign( "webs", $webs );
48
    $GLOBALS["ui"]->assign("site", $site);
2 lars 49
    $GLOBALS["ui"]->assign("web_rechte", $web_rechte);
1 lars 50
    ////////////////////////
51
 
52
    // ME: Muss der Bezahlstatus gespeichert werden?
53
    if($_POST['action'] == "save_bezahlstatus") {
54
        save_bezahlstatus($_POST['status']);
55
    }
56
 
57
    // Hole alle Ersteller und übergebe diese an Smarty
58
    $sql = '
59
        SELECT
60
            erstellt_von
61
        FROM
62
            rechnung
63
        GROUP BY
64
            erstellt_von
65
    ;';
66
 
67
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error
68
        () . '<hr />' . $sql );
69
 
70
    for ( $i = 0; $row = mysql_fetch_assoc( $result ); $i++ )
71
    {
72
        $ersteller2[$i] = $row['erstellt_von'];
73
    }
2 lars 74
    $_SESSION['post'] = $_POST;
1 lars 75
    $GLOBALS["ui"]->assign( "ersteller", $ersteller2 );
76
    ///////////////////////////////////////////////////
77
 
78
    // Hole alle Shops und übergebe diese an Smarty
79
    $sql = '
80
        SELECT
81
            ID AS id,
82
            Name AS name
83
        FROM
84
            shops
85
    ;';
86
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error
87
        () . '<hr />' . $sql );
88
 
89
    $shops["id"][] = "";
2 lars 90
    $shops["name"][] = "--- Shop ---";
1 lars 91
    while ( $row = mysql_fetch_assoc( $result ) )
92
    {
93
        $shops["id"][] = $row['id'];
94
        $shops["name"][] = $row["name"];
95
    }
96
 
97
    $GLOBALS["ui"]->assign( "shops", $shops );
98
    ///////////////////////////////////////////////
99
 
100
    // Zeitraum
101
    $zeitraum = array( 0 => strftime( "%B %Y" ), 1 => strftime( "%B %Y",
102
        strtotime( "-1 month" ) ), 2 => strftime( "%B %Y", strtotime( "-2 months" ) ),
103
        3 => strftime( "%B %Y", strtotime( "-3 months" ) ), 4 => strftime( "%B %Y",
104
        strtotime( "-4 months" ) ), 5 => strftime( "%B %Y", strtotime( "-5 months" ) ),
105
        6 => strftime( "%B %Y", strtotime( "-6 months" ) ), 7 => strftime( "%B %Y",
106
        strtotime( "-7 months" ) ), 8 => strftime( "%B %Y", strtotime( "-8 months" ) ),
107
        9 => strftime( "%B %Y", strtotime( "-9 months" ) ), 10 => strftime( "%B %Y",
108
        strtotime( "-10 months" ) ), 11 => strftime( "%B %Y", strtotime( "-11 months" ) ),
109
        12 => strftime( "%B %Y", strtotime( "-12 months" ) ), 13 => strftime
2 lars 110
        ( "%B %Y", strtotime( "-13 months" ) ), 14 => "--- Zeitraum ---", );
1 lars 111
 
112
    $GLOBALS["ui"]->assign( "zeitraum", $zeitraum );
113
    ///////////
114
 
2 lars 115
    // Übergebe ausgewählte Formulardaten an Smarty zur Vorauswahl / und in Session speichern
1 lars 116
    $GLOBALS["ui"]->assign( "cbErsteller", $_POST['cbErsteller'] );
2 lars 117
    if($_POST['cbErsteller'] && $_POST['submit'] == "OK") {
118
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbErsteller'] = $_POST['cbErsteller'];
119
    }elseif ($_POST['submit'] == "OK") {
120
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbErsteller']);
121
    }
1 lars 122
    $GLOBALS["ui"]->assign( "cbShop", $_POST['cbShop'] );
2 lars 123
    if($_POST['cbShop'] && $_POST['submit'] == "OK") {
124
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbShop'] = $_POST['cbShop'];
125
    }elseif ($_POST['submit'] == "OK") {
126
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbShop']);
127
    }
1 lars 128
    $GLOBALS["ui"]->assign( "cbBezahlstatus", $_POST['cbBezahlstatus'] );
2 lars 129
    if($_POST['cbBezahlstatus'] && $_POST['submit'] == "OK") {
130
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbBezahlstatus'] = $_POST['cbBezahlstatus'];
131
    }elseif ($_POST['submit'] == "OK") {
132
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbBezahlstatus']);
133
    }
1 lars 134
    $GLOBALS["ui"]->assign( "cbKdNr", $_POST['cbKdNr'] );
2 lars 135
    if($_POST['cbKdNr'] && $_POST['submit'] == "OK") {
136
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbKdNr'] = $_POST['cbKdNr'];
137
    }elseif ($_POST['submit'] == "OK") {
138
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbKdNr']);
139
    }
1 lars 140
    $GLOBALS["ui"]->assign( "cbKunde", $_POST['cbKunde'] );
2 lars 141
    if($_POST['cbKunde'] && $_POST['submit'] == "OK") {
142
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbKunde'] = $_POST['cbKunde'];
143
    }elseif ($_POST['submit'] == "OK") {
144
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbKunde']);
145
    }
1 lars 146
    $GLOBALS["ui"]->assign( "cbFirma", $_POST['cbFirma'] );
2 lars 147
    if($_POST['cbFirma'] && $_POST['submit'] == "OK") {
148
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbFirma'] = $_POST['cbFirma'];
149
    }elseif ($_POST['submit'] == "OK") {
150
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbFirma']);
151
    }
1 lars 152
    $GLOBALS["ui"]->assign( "cbMwSt7", $_POST['cbMwSt7'] );
2 lars 153
    if($_POST['cbMwSt7'] && $_POST['submit'] == "OK") {
154
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwSt7'] = $_POST['cbMwSt7'];
155
    }elseif ($_POST['submit'] == "OK") {
156
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwSt7']);
157
    }
1 lars 158
    $GLOBALS["ui"]->assign( "cbMwSt19", $_POST['cbMwSt19'] );
2 lars 159
    if($_POST['cbMwSt19'] && $_POST['submit'] == "OK") {
160
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwSt19'] = $_POST['cbMwSt19'];
161
    }elseif ($_POST['submit'] == "OK") {
162
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwSt19']);
163
    }
1 lars 164
    $GLOBALS["ui"]->assign( "cbNettobetrag", $_POST['cbNettobetrag'] );
2 lars 165
    if($_POST['cbNettobetrag'] && $_POST['submit'] == "OK") {
166
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbNettobetrag'] = $_POST['cbNettobetrag'];
167
    }elseif ($_POST['submit'] == "OK") {
168
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbNettobetrag']);
169
    }
1 lars 170
    $GLOBALS["ui"]->assign( "cbMwStBefreiung", $_POST['cbMwStBefreiung'] );
2 lars 171
    if($_POST['cbMwStBefreiung'] && $_POST['submit'] == "OK") {
172
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwStBefreiung'] = $_POST['cbMwStBefreiung'];
173
    }elseif ($_POST['submit'] == "OK") {
174
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbMwStBefreiung']);
175
    }
1 lars 176
    $GLOBALS["ui"]->assign( "cbUStIdNr", $_POST['cbUStIdNr'] );
2 lars 177
    if($_POST['cbUStIdNr'] && $_POST['submit'] == "OK") {
178
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbUStIdNr'] = $_POST['cbUStIdNr'];
179
    }elseif ($_POST['submit'] == "OK") {
180
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbUStIdNr']);
181
    }
1 lars 182
    $GLOBALS["ui"]->assign( "cbBestellnummer", $_POST['cbBestellnummer'] );
2 lars 183
    if($_POST['cbBestellnummer'] && $_POST['submit'] == "OK") {
184
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['cbBestellnummer'] = $_POST['cbBestellnummer'];
185
    }elseif ($_POST['submit'] == "OK") {
186
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['cbBestellnummer']);
187
    }
1 lars 188
    $GLOBALS["ui"]->assign( "va_zeitraum", $_POST['zeitraum'] );
2 lars 189
    if($_POST['zeitraum'] && $_POST['submit'] == "OK") {
190
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['zeitraum'] = $_POST['zeitraum'];
191
    }elseif ($_POST['submit'] == "OK") {
192
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['zeitraum']);
193
    }
1 lars 194
 
2 lars 195
 
196
    if($_POST['txtFaellig'] && $_POST['submit'] == "OK") {
197
 
1 lars 198
        $txtFaellig = strtotime( $_POST['txtFaellig'] ) + 86399;
2 lars 199
        $GLOBALS["ui"]->assign( "txtFaellig", strtotime( $_POST['txtFaellig'] ) + 86399 );
200
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['txtFaellig'] = strtotime( $_POST['txtFaellig'] ) + 86399;
201
    }elseif ($_POST['submit'] == "OK") {
202
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['txtFaellig']);
1 lars 203
    }
2 lars 204
 
205
 
206
    if(is_array( $_POST['msZahlart'] ) && $_POST['submit'] == "OK" ) {
1 lars 207
        $GLOBALS["ui"]->assign( "msZahlart", $_POST['msZahlart'] );
2 lars 208
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['msZahlart'] = $_POST['msZahlart'];
209
    }elseif ($_POST['submit'] == "OK") {
210
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['msZahlart']);
1 lars 211
    }
212
 
213
    /////////////////////////////////////////////////////////////
214
    // ME: alle Zahlungsarten holen, wenn es die Tabelle dazu gibt.
2 lars 215
    if(table_exists('zahlungsarten',$webs["datenbank"], $localhost_dbh)==true) {
1 lars 216
        $zahlungsarten = getZahlungsarten();
217
        $GLOBALS["ui"]->assign("zahlungsarten",$zahlungsarten);
218
    }
219
 
220
    // WHERE-Klausel zusammenbauen für die Rechnungsausgabe
221
    $post = $_POST;
222
 
223
    if ( !empty( $post['ersteller'] ) )
224
    {
225
        $where_klausel .= " AND erstellt_von = '" . $post['ersteller'] .
226
            "' ";
227
    }
228
 
2 lars 229
    if ( !empty( $post['shops_id'] ) && $_POST['submit'] == "OK" )
1 lars 230
    {
231
        $where_klausel .= " AND shops_id = '" . $post['shops_id'] . "' ";
2 lars 232
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['shops_id'] = $_POST['shops_id'];
233
    }elseif($_POST['submit'] == "OK") {
234
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['shops_id']);
1 lars 235
    }
236
 
237
    if ( !empty( $post['kd_nr'] ) )
238
    {
239
        $where_klausel .= " AND kundennr = '" . $post['kd_nr'] . "' ";
240
    }
241
 
242
    $zselect="";
243
    $zfrom="";
244
    $zorder_by="";
2 lars 245
 
246
    // ME: SUCHE nach Rechnungsnummer
247
    if ( isset($web_rechte["Warenwirtschaft"]["rechnungsbuch"]["suche_rechnungsnummer"]) ) {
248
        if ( !empty( $post['rechnungsnummer'] ) && $_POST['submit'] == "OK") {
249
            $where_klausel .= " AND rechnungsnummer LIKE '%".$post['rechnungsnummer']."%' ";
250
            $_SESSION['Warenwirtschaft']['rechnungsbuch']['rechnungsnummer'] = $post['rechnungsnummer'];
251
        }elseif ($_POST['submit']=="OK") {
252
            unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['rechnungsnummer']);
253
        }
254
    }
255
    // ME: SUCHE nach Rechnungsbetrag
256
    if ( isset($web_rechte["Warenwirtschaft"]["rechnungsbuch"]["suche_rechnungsbetrag"]) ) {
257
        if ( !empty( $post['rechnungsbetrag'] ) && $_POST['submit'] == "OK" ) {
258
            $r_start = floor($post['rechnungsbetrag']);
259
            $r_end = floor($post['rechnungsbetrag'])+1;
260
            $where_klausel .= " AND (bruttobetrag between ".$r_start." and ".$r_end ."
261
                                    OR nettobetrag between ".$r_start." and ".$r_end .")";
262
            $_SESSION['Warenwirtschaft']['rechnungsbuch']['rechnungsbetrag'] = $post['rechnungsbetrag'];
263
        }elseif ($_POST['submit']=="OK") {
264
            unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['rechnungsbetrag']);
265
        }
266
    }
267
 
268
    // ME: SUCHE nach Kundenname, Kundennummer, BestellNummer
269
    if ( !empty( $post['kundenname'] ) && $_POST['submit'] == "OK") {
270
        $where_klausel .= " AND (kunde LIKE '%".$post['kundenname']."%'
271
                                OR firma LIKE '%".$post['kundenname']."%' )";
272
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['kundenname'] = $post['kundenname'];
273
        $GLOBALS["ui"]->assign( "cbKunde", 'on' );
274
        $GLOBALS["ui"]->assign( "cbFirma", 'on' );
275
    }elseif($_POST['submit'] == "OK") {
276
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['kundenname']);
277
    }
278
    if ( !empty( $post['kundennr'] ) && $_POST['submit'] == "OK" ) {
279
        $where_klausel .= " AND kundennr = ".$post['kundennr']." ";
280
        $GLOBALS["ui"]->assign( "cbKdNr", 'on' );
281
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['kundennr'] = $post['kundennr'];
282
    }elseif($_POST['submit']=="OK") {
283
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['kundennr']);
284
    }
285
    if ( !empty( $post['bestellnr'] ) && $_POST['submit'] == "OK") {
286
        $where_klausel .= " AND bestellung = ".$post['bestellnr']." ";
287
        $GLOBALS["ui"]->assign( "cbBestellnummer", 'on' );
288
        $_SESSION['Warenwirtschaft']['rechnungsbuch']['bestellnr'] = $post['bestellnr'];
289
    }elseif($_POST['submit'] == "OK") {
290
        unset($_SESSION['Warenwirtschaft']['rechnungsbuch']['bestellnr']);
291
    }
292
 
293
    // ME: für den jeweiligen Kunden die Standardzahlungsart holen
294
    if ( isset($web_rechte['logins']['admin']['zahlungsart']) ) {
295
        $loginsza_select = " ,l.zahlungsarten_id as zugew_zahlart ";
296
        $loginsza_select .= " ,z.name as zugew_zahlart_name ";
297
        $loginsza_from = " left join Logins l on r.kundennr = l.id";
298
        $loginsza_from .= " left join zahlungsarten z on l.zahlungsarten_id = z.id";
299
    }
300
    // ME: für den jeweiligen Kunden das Standardzahlungsziel holen
301
    if ( isset($web_rechte['logins']['admin']['zahlungsziel']) ) {
302
        $loginszz_select = " ,lo.zahlungsziele_id as zugew_zahlungsziel ";
303
        $loginszz_select .= " ,zz.name as zugew_zahlungsziel_name ";
304
        $loginszz_from = " left join Logins lo on r.kundennr = lo.id";
305
        $loginszz_from .= " left join zahlungsziele zz on lo.zahlungsziele_id = zz.id";
306
    }
307
 
308
 
1 lars 309
    if ( isset($web_rechte["Warenwirtschaft"]["rechnungsbuch"]["zahlungsziel"]) ) {
2 lars 310
        // die "fällig bis"-Auswahl muss berücksichtigt werden.
1 lars 311
        if ( !empty( $post['txtFaellig'] ) )
312
        {
313
            $where_klausel .= " AND zahlungsziel != '' ";
2 lars 314
 
1 lars 315
        }
316
        if(table_exists('zahlungsarten',$webs['datenbank'])) {
317
            $zselect = " ,z.* ";
2 lars 318
            $zfrom = " left join zahlungsarten z on r.zahlungsarten_id = z.id";
1 lars 319
            $zorder_by = ", z.name ";
320
        }
321
        if(is_array( $_POST['msZahlart'] )) {
322
            foreach($_POST['msZahlart'] as $key => $val) {
323
                if($val>0) {
2 lars 324
                    $wh[] = " r.zahlungsarten_id = ".$val."";
1 lars 325
                }
326
            }
327
            if(is_array($wh)) {
328
                $wh_impl = implode(" or ", $wh);
329
                $where_klausel .= " AND ( ".$wh_impl." )";
330
                $zorder_by = ", z.name ";
331
            }
332
        }
333
    }
2 lars 334
 
1 lars 335
 
336
 
337
    //if ( isset( $post['zeitraum'] ) )
338
 
339
    {
340
        // ### ZEITFILTER HERSTELLEN ###
2 lars 341
        $filter_zeit1 = 'r.erstellt_am';
1 lars 342
        switch ( $post['zeitraum'] )
343
        {
344
            case 14:
345
                break;
346
            case 0: // lfd. Monat
347
            default:
348
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(NOW(),\"%Y%m\")";
349
                $zeit_filter2 = 'NOW()';
350
                break;
351
            case 1: // letzter Monat
352
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 1 MONTH),\"%Y%m\")";
353
                $zeit_filter2 = 'NOW() - INTERVAL 1 MONTH';
354
                break;
355
            case 2: // vorletzter Monat
356
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 2 MONTH),\"%Y%m\")";
357
                $zeit_filter2 = 'NOW() - INTERVAL 2 MONTH';
358
                break;
359
            case 3: // vorletzter Monat
360
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 3 MONTH),\"%Y%m\")";
361
                $zeit_filter2 = 'NOW() - INTERVAL 3 MONTH';
362
                break;
363
            case 4: // vorletzter Monat
364
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 4 MONTH),\"%Y%m\")";
365
                $zeit_filter2 = 'NOW() - INTERVAL 4 MONTH';
366
                break;
367
            case 5: // vorletzter Monat
368
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 5 MONTH),\"%Y%m\")";
369
                $zeit_filter2 = 'NOW() - INTERVAL 5 MONTH';
370
                break;
371
            case 6: // vorletzter Monat
372
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 6 MONTH),\"%Y%m\")";
373
                $zeit_filter2 = 'NOW() - INTERVAL 6 MONTH';
374
                break;
375
            case 7: // vorletzter Monat
376
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 7 MONTH),\"%Y%m\")";
377
                $zeit_filter2 = 'NOW() - INTERVAL 7 MONTH';
378
                break;
379
            case 8: // vorletzter Monat
380
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 8 MONTH),\"%Y%m\")";
381
                $zeit_filter2 = 'NOW() - INTERVAL 8 MONTH';
382
                break;
383
            case 9: // vorletzter Monat
384
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 9 MONTH),\"%Y%m\")";
385
                $zeit_filter2 = 'NOW() - INTERVAL 9 MONTH';
386
                break;
387
            case 10: // vorletzter Monat
388
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 10 MONTH),\"%Y%m\")";
389
                $zeit_filter2 = 'NOW() - INTERVAL 10 MONTH';
390
                break;
391
            case 11: // vorletzter Monat
392
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 11 MONTH),\"%Y%m\")";
393
                $zeit_filter2 = 'NOW() - INTERVAL 11 MONTH';
394
                break;
395
            case 12: // vorletzter Monat
396
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 12 MONTH),\"%Y%m\")";
397
                $zeit_filter2 = 'NOW() - INTERVAL 12 MONTH';
398
                break;
399
            case 13: // vorletzter Monat
400
                $time_filter = " and date_format(" . $filter_zeit1 . ",\"%Y%m\") = date_format(date_sub(NOW(), INTERVAL 13 MONTH),\"%Y%m\")";
401
                $zeit_filter2 = 'NOW() - INTERVAL 13 MONTH';
402
                break;
403
        }
404
        $where_klausel .= $time_filter;
405
    }
406
    /////////////////////////////////////////////////////
407
 
408
 
409
    // Hole alle Rechnungen für die Rechnungsausgabe
410
    $sql = '
411
        SELECT
412
            r.*
413
            '.$zselect.'
2 lars 414
            '.$loginsza_select.'
415
            '.$loginszz_select.'
1 lars 416
        FROM
417
            rechnung r
418
            '.$zfrom.'
2 lars 419
            '.$loginsza_from.'
420
            '.$loginszz_from.'
1 lars 421
        WHERE
422
            1 = 1
423
            ' . $where_klausel . '
424
        ORDER BY
425
            rechnungsnummer DESC '.$zorder_by.'
426
    ;';
427
 
428
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error
429
        () . '<hr />' . $sql );
430
 
431
    $temp = explode( "redaktion.", $_SERVER['SERVER_NAME'] );
432
    $domain = $temp[1];
433
 
434
    for ( $i = 0; $row = mysql_fetch_assoc( $result ); $i++ )
435
    {
2 lars 436
        if(strlen( $row['zahlungsziel']) > 0)  {
1 lars 437
            $zahlungsziel = unserialize($row['zahlungsziel']);
438
 
2 lars 439
            if($txtFaellig && $zahlungsziel['ziel']) {
440
                if($zahlungsziel['ziel'] >= $txtFaellig) {
1 lars 441
                    continue;
2 lars 442
                }else{
443
                    $rec[$i]['zahlungsziel'] = $zahlungsziel['ziel'];
444
                    $rec[$i]['now'] = time();
445
                    // ME: Mahnsymbol anzeigen?
446
                    if($row['bezahlt_am']=="0000-00-00 00:00:00") {
447
                        $rec[$i]['mahnung'] = 1;
448
                    }
1 lars 449
                }
450
            }
451
        }
452
 
2 lars 453
        if($row['zahlungsarten_id']>0 and $row['name']) {
1 lars 454
            $rec[$i]['zahlungsart'] = $row['name'];
455
        }else{
456
            $rec[$i]['zahlungsart'] = "n/a";
457
        }
458
        $rec[$i]['rechnungsnummer'] = $row['rechnungsnummer'];
459
        $rec[$i]['rechnungsnummerLupe'] = 'http://' . $domain .
460
            '/images/dokumente/R' . $rec[$i]['rechnungsnummer'] . '.pdf';
461
        $rec[$i]['rechnungsnummerLink'] = "http://redaktion." . $domain .
462
            "/Warenwirtschaft/bestellungen.php?Bestellung=" . $row['bestellung'];
463
        $rec[$i]['erstellt_am'] = $row['erstellt_am'];
464
        $rec[$i]['bruttobetrag'] = number_format( $row['bruttobetrag'], 2,
465
            ',', '.' );
466
        $rec[$i]['erstellt_von'] = $row['erstellt_von'];
467
        if ( $row['shops_id'] )
468
        {
469
            $rec[$i]['shop'] = getShop( $row['shops_id'] );
470
        }
471
        else
472
        {
473
            $rec[$i]["shop"] = $row["shop"];
474
        }
475
        $rec[$i]['kundennr'] = $row['kundennr'];
476
        $rec[$i]['kunde'] = $row['kunde'];
477
        $rec[$i]['firma'] = $row['firma'];
478
        $rec[$i]['mwst_7'] = number_format( $row['mwst_7'], 2, ',', '.' );
479
        $rec[$i]['mwst_19'] = number_format( $row['mwst_19'], 2, ',', '.' );
480
        $rec[$i]['nettobetrag'] = number_format( $row['nettobetrag'], 2, ',',
481
            '.' );
482
        $rec[$i]['mwst_befreiung'] = $row['mwst_befreiung'];
483
        $rec[$i]['ustid_nr'] = $row['ustid_nr'];
484
        $rec[$i]['bestellung'] = $row['bestellung'];
2 lars 485
 
486
        $rec[$i]['zugew_zahlart_name'] = $row['zugew_zahlart_name'];
487
        $rec[$i]['zugew_zahlungsziel_name'] = $row['zugew_zahlungsziel_name'];
1 lars 488
 
489
        // Zählen für die Summenfunktionen
490
        $nettobetragGesamt += $row['nettobetrag'];
491
        $bruttobetragGesamt += $row['bruttobetrag'];
492
        $mwst_7Gesamt += $row['mwst_7'];
493
        $mwst_19Gesamt += $row['mwst_19'];
494
 
495
        // Bezahlstatus Sonderfall
496
        // ME: History des Bezahlstatus aufbauen und an smarty übergeben
497
        $rec[$i]['bezahlstatus_history'] = getRechnungHistory($row);
498
 
499
        if ( $row['storniert'] )
500
        {
501
            $rec[$i]['bezahlstatus'] = 'storniert';
502
        }
503
        else
504
        {
505
            if ( $row['bezahlt_am'] > 0 )
506
            {
507
                $rec[$i]['bezahlstatus'] = 'bezahlt';
508
            }
509
            else
510
            {
511
                if ( $row['3_mahnung_nr'] > 0 )
512
                {
513
                    $rec[$i]['bezahlstatus'] = '3. Mahnung';
514
                } elseif ( $row['2_mahnung_nr'] > 0 )
515
                {
516
                    $rec[$i]['bezahlstatus'] = '2. Mahnung';
517
                } elseif ( $row['1_mahnung_nr'] > 0 )
518
                {
519
                    $rec[$i]['bezahlstatus'] = '1. Mahnung';
520
                }
521
                else
522
                {
523
                    $rec[$i]['bezahlstatus'] = 'offen';
524
                }
525
            }
526
        }
527
        //////////////////////////
528
    }
529
 
530
    // Gesamtsumme übergeben
531
    $nettobetragGesamt = number_format( $nettobetragGesamt, 2, ',', '.' );
532
    $bruttobetragGesamt = number_format( $bruttobetragGesamt, 2, ',', '.' );
533
    $mwst_7Gesamt = number_format( $mwst_7Gesamt, 2, ',', '.' );
534
    $mwst_19Gesamt = number_format( $mwst_19Gesamt, 2, ',', '.' );
535
 
536
 
537
    if ( $bruttobetragGesamt > 0 || $mwst_7Gesamt > 0 || $mwst_19Gesamt > 0 ||
538
        $nettobetragGesamt > 0 )
539
    {
540
 
541
        $rec[$i]['rechnungsnummer'] = "<b>Gesamt:</b>";
542
        $rec[$i]['erstellt_am'] = "&nbsp;";
543
        $rec[$i]['bruttobetrag'] = "<b>" . $bruttobetragGesamt . "</b>";
544
        $rec[$i]['erstellt_von'] = "&nbsp;";
545
        $rec[$i]['shop'] = "&nbsp;";
546
        $rec[$i]['kundennr'] = "&nbsp;";
547
        $rec[$i]['kunde'] = "&nbsp;";
548
        $rec[$i]['firma'] = "&nbsp;";
549
        $rec[$i]['mwst_7'] = "<b>" . $mwst_7Gesamt . "</b>";
550
        $rec[$i]['mwst_19'] = "<b>" . $mwst_19Gesamt . "</b>";
551
        $rec[$i]['nettobetrag'] = "<b>" . $nettobetragGesamt . "</b>";
552
        $rec[$i]['mwst_befreiung'] = "&nbsp;";
553
        $rec[$i]['ustid_nr'] = "&nbsp;";
554
        $rec[$i]['bestellung'] = "&nbsp;";
2 lars 555
 
1 lars 556
    }
557
 
558
    $GLOBALS["ui"]->assign( "rec", $rec );
559
    ////////////////////////////////////////////////
560
 
561
    // Datev-Export Recht
562
    $GLOBALS["ui"]->assign( "datev_web_recht", $web_rechte['Warenwirtschaft']['rechnungsbuch']['datev_export'] );
563
    $GLOBALS["ui"]->assign( "datev_user_recht", $user_rechte['Warenwirtschaft']['rechnungsbuch']['datev_export'] );
564
    /////////////////////
565
 
566
    // Datev CSV-Export
567
    if ( empty( $_POST['zeitraum'] ) )
568
    {
569
        $_POST['zeitraum'] = 0;
570
    }
571
 
572
    $aktMonatJahr = date( "Y-m-d H:i:s", strtotime( "-" . $_POST['zeitraum'] .
573
        " months" ) );
574
    $aktMonatJahr = urlencode( $aktMonatJahr );
575
    $GLOBALS["ui"]->assign( "aktMonatJahr", $aktMonatJahr );
576
    ////////////////////
577
 
578
    // Templateausgabe
579
    $GLOBALS["ui"]->display( "rechnungsbuch/rechnungsbuch.tpl" );
580
    //////////////////
581
 
582
 
583
    function getRechnungHistory($row) {
584
        $str = "";
585
        if($row['1_mahnung_nr']!="0000-00-00 00:00:00") {
586
            $date = datetime2human( $row['1_mahnung_nr'] );
587
            $str .= "1. Mahnung am ". $date['Datum']." ".$date['Zeit'] ."<br />";
588
        }
589
        if($row['2_mahnung_nr']!="0000-00-00 00:00:00") {
590
            $date = datetime2human( $row['2_mahnung_nr'] );
591
            $str .= "2. Mahnung am ". $date['Datum']." ".$date['Zeit'] ."<br />";
592
        }
593
        if($row['3_mahnung_nr']!="0000-00-00 00:00:00") {
594
            $date = datetime2human( $row['3_mahnung_nr'] );
595
            $str .= "3. Mahnung am ". $date['Datum']." ".$date['Zeit'] ."<br />";
596
        }
597
        if($row['bezahlt_am']=="0000-00-00 00:00:00") {
598
            $str .= "Rechnung noch nicht bezahlt!<br />";
599
        } else {
600
            $date = datetime2human( $row['bezahlt_am'] );
601
            $str .= "Rechnung bezahlt am ". $date['Datum']." ".$date['Zeit'] ."<br />";
602
        }
603
        if($row['storniert'] == 1) {
604
            $str = "storniert";
605
        }
606
        return $str;
607
    }
608
 
609
 
610
 
611
    function save_bezahlstatus($status) {
612
        if(is_array($status)) {
613
            foreach($status as $rid => $newStatus) {
614
                switch($newStatus) {
615
                    case "bezahlt":
616
                        $sql = "update
617
                                    rechnung
618
                                set
619
                                    bezahlt_am = NOW(),
620
                                    storniert = 0
621
                                where
622
                                    rechnungsnummer = '".$rid."'
623
                        ";
624
                    break;
625
 
626
                    case "storniert":
627
                        $sql = "update
628
                                    rechnung
629
                                set
630
                                    storniert = 1
631
                                where
632
                                    rechnungsnummer = '".$rid."'
633
                        ";
634
                    break;
635
 
636
                    default:
637
                }
638
                if($sql) {
639
                    if($q=mysql_query($sql)){
640
 
641
                    }
642
                }
643
            }
644
        }
645
    }
2 lars 646
 
1 lars 647
?>