Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

        
    //$Id: xml_bestellung.php 3482 2011-03-31 06:45:30Z erling $

    /**
     * @author Malte Erling <info@weban.de>
     * @author Lars Tiefland <tiefland@weban.de>
     * @copyright 2008 Webagentur Niewerth
     * @package Content-management
     * @version $Rev: 3482 $
     * @license propietary
     * @filesource
     * 
     */

    /**
     * exportiert die Bestellungen als XML-Datei
     * @author Malte Erling <info@weban.de>
     * @author Lars Tiefland <tiefland@weban.de>
     * @copyright 2008 Webagentur Niewerth
     * @package Content-management
     */
        session_start();
    require_once  "Config.php";
    require_once  "../Warenwirtschaft/includes/bestellungen/system/artikelDatabase.php";

        // zu verarbeitende Shops einlesen
        $shops_file = file("xml_bestellung_shops.txt");
        
    define( "FILE_PATH", "xml/" );
    define( "ARCHIVE_PATH_BASE", "xml/archiv/" );
    define( "ARCHIVE_PATH_EXT", date("Y") . "/" . date("m") );
    define( "ARCHIVE_PATH", ARCHIVE_PATH_BASE . ARCHIVE_PATH_EXT . "/" );
    define( "TRENNER", "\r\n" );

    // connect zur Datenbank
    require_once  "../Online-Shop/connect2.php";

        $main_shop_db = isset($_SERVER['argv']['main_shop_db'])?$_SERVER['argv']['main_shop_db']:"pieper_freizeit_de";

    //Archiv-Verzeichnisse erstellen
    if ( !file_exists(ARCHIVE_PATH) )
    {
        $res = chdir( ARCHIVE_PATH_BASE );
        $archive_path_ext = substr( ARCHIVE_PATH_EXT, 0, (strlen(ARCHIVE_PATH_EXT) -
            1) );
        $p = explode( "/", $archive_path_ext );
        foreach ( $p as $dir )
        {
            if ( !file_exists($dir) )
            {
                $res_d = mkdir( $dir );
                if ( !$res_d )
                {
                    mail( "tiefland@weban.de", "Fehler beim Export der Bestellungen",
                        "Konnte Verzeichnis $dir NICHT erstellen!\n" );
                }
                chdir( $dir );
            }
        }
    }
        
    foreach($shops_file as $key => $val){
                $sql = "select ID from shops where Name = '".trim($val)."'";
        echo "<br>".$sql;
        if($q = mysql_query($sql)){
                if($r = mysql_fetch_assoc($q)){
                                $shopID = $r['ID'];
                            $_SESSION[filter][shops_ID] = $shopID;
                            $_SESSION[shops][$shopID][database] = getDatabasefromShopID( $shopID );
                        getOrderInfo($shopID);                          
                }
        }
    }

    


    function getOrderInfo($shopID)
    {
        global $main_shop_db;
        $xmlFile = $shopID . "_best_bootdepot.xml";
        // alle Informationen zu den Bestellungen holen
        $config = new Config();
        $bestArr = array();
        
                $sql = "select 
                                
                                b.ID as referenznummer,
                                b.erstellt_am as bestelldatum,
                                b.Login as loginID,
                                b.Bemerkung as internebemerkung,
                                
                                l.ID as kundid,
                                l.Anrede as Anrede,
                                l.Vorname as Name1,
                                l.Name1 as Name2,
                                l.Name2 as Name3,
                                l.Strasse as Strasse,
                                l.Hausnummer as Hausnummer,
                                l.Land as Land,
                                l.PLZ as PLZ,
                                l.ORT as Ort,
                                l.E_Mail as Email,
                                l.Telefon as Telefon,
                                l.Fax as Telefax,
                                
                                l.liefer_Anrede as lieferAnrede,
                                l.liefer_Firma as lieferFirma,
                                l.liefer_Name as lieferName,
                                l.liefer_Strasse as lieferStrasse,
                                l.liefer_Str_Nr as lieferHausnummer,
                                l.liefer_Land as lieferLand,
                                l.liefer_PLZ as lieferPLZ,
                                l.liefer_Ort as lieferOrt,
                                
                                a2b.rechnungStatus as rStatus
                                
                                from Bestellung b, Logins l, artikel_to_Bestellung a2b
                
                                where b.bestellart_id = 1 and
                                b.Login = l.ID and
                                b.shops_ID=".$shopID." and
                                a2b.Bestellung = b.ID and
                (a2b.rechnungStatus IN ('schreiben','geschrieben'))

                                order by b.ID desc
                                limit 0,5
                                ";
                echo "<br><br>".$sql;

        if ( $q = mysql_query($sql) )
        {
            $i = 0;
            while ( $r = mysql_fetch_assoc($q) )
            {
                
                // Auftragskopf Start
                if(strlen($r['bestelldatum'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['bestelldatum'] =
                            utf8_encode( $r['bestelldatum'] );
                }
                if(strlen($r['internebemerkung'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['externebemerkung'] =
                    utf8_encode( $r['internebemerkung'] );
                }
                if(strlen($r['bestelldatum'])>0){
                        $bestellDatum = datetime2human( $r['bestelldatum'] );
                }
                if(strlen($bestellDatum['Datum'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['bestellzeichen'] =
                    utf8_encode( "Online Order vom " . $bestellDatum['Datum'] );
                }
                if(strlen($r['referenznummer'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['referenznummer'] =
                    utf8_encode( $r['referenznummer'] );
                }
                $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['agbakzeptiert'] =
                    utf8_encode( "JA" );
                if(strlen($r['internebemerkung'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['internebemerkung'] =
                    utf8_encode( $r['internebemerkung'] );
                                }
                                
                // Kundenanschrift
                if(strlen($r['kundid'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['kundid'] =
                    utf8_encode( $r['kundid'] );
                }
                if(strlen($r['Anrede'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Anrede'] =
                    utf8_encode( $r['Anrede'] );
                }
                if(strlen($r['Name1'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name1'] =
                    utf8_encode( $r['Name1'] );
                }
                if(strlen($r['Name2'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name2'] =
                    utf8_encode( $r['Name2'] );
                }
                if(strlen($r['Name3'])>0){
                                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name3'] =
                    utf8_encode( $r['Name3'] );
                }
                if(strlen($r['Strasse'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Strasse'] =
                    utf8_encode( $r['Strasse'] . " " . $r['Hausnummer'] );
                }
                if(strlen($r['Land'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Land'] =
                    utf8_encode( $r['Land'] );
                }
                if(strlen($r['PLZ'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['PLZ'] =
                    utf8_encode( $r['PLZ'] );
                }
                if(strlen($r['Ort'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Ort'] =
                    utf8_encode( $r['Ort'] );
                }
                if(strlen($r['Email'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Email'] =
                    utf8_encode( $r['Email'] );
                }
                if(strlen($r['Telefon'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Telefon'] =
                    utf8_encode( $r['Telefon'] );
                }
                if(strlen($r['Telefax'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Telefax'] =
                    utf8_encode( $r['Telefax'] );
                }

                // Lieferanschrift
                if(strlen($r['lieferAnrede'])>0){
                                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Anrede'] =
                    utf8_encode( $r['lieferAnrede'] );
                }
                if(strlen($r['lieferName'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Name2'] =
                    utf8_encode( $r['lieferName'] );
                }
                if(strlen($r['lieferFirma'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Name3'] =
                    utf8_encode( $r['lieferFirma'] );
                }
                if(strlen($r['lieferStrasse'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Strasse'] =
                    utf8_encode( $r['lieferStrasse'] . " " . $r['lieferHausnummer'] );
                }
                if(strlen($r['lieferLand'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Land'] =
                    utf8_encode( $r['lieferLand'] );
                }
                if(strlen($r['lieferPLZ'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['PLZ'] =
                    utf8_encode( $r['lieferPLZ'] );
                }
                if(strlen($r['lieferOrt'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Ort'] =
                    utf8_encode( $r['lieferOrt'] );
                }


                // Rechnungsanschrift
                if(strlen($r['Anrede'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Anrede'] =
                    utf8_encode( $r['Anrede'] );
                }
                if(strlen($r['Name1'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name1'] =
                    utf8_encode( $r['Name1'] );
                }
                if(strlen($r['Name2'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name2'] =
                    utf8_encode( $r['Name2'] );
                }
                if(strlen($r['Name3'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name3'] =
                    utf8_encode( $r['Name3'] );
                }
                if(strlen($r['Strasse'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Strasse'] =
                    utf8_encode( $r['Strasse'] . " " . $r['Hausnummer'] );
                }
                if(strlen($r['Land'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Land'] =
                    utf8_encode( $r['Land'] );
                }
                if(strlen($r['PLZ'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['PLZ'] =
                    utf8_encode( $r['PLZ'] );
                }
                if(strlen($r['Ort'])>0){
                        $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Ort'] =
                        utf8_encode( $r['Ort'] );
                }
                                
                                // welche Artikel zur Bestellung?
                $sql_a = "select 
                                
                                                        a2b.artikel as artid,
                                                        a2b.Menge as bestellmenge,
                                                        a.kurzbezeichnung as artikeltext1,
                                                        a.beschreibung as artikeltext2,
                                                        a.preis1 as basispreis
                                                        
                                                        from ".$main_shop_db.".artikel_to_Bestellung a2b, " .
                    artikelDatabase() . " a
                                                        
                                                        where
                                                        
                                                        a2b.Bestellung = " . $r['referenznummer'] . " and
                                                        a2b.artikel = a.ID
                            and
                            (
                                (a.Father = -3)
                                or
                                    (a2b.rechnungStatus IN ('schreiben','geschrieben'))
                            )
                                                        order by artid
                                                ";
                        echo "<hr>" . $sql_a;
                    


                if ( $q_a = mysql_query($sql_a) )
                {
                    $k = 0;
                    $ordervalue = 0;


                    while ( $r_a = mysql_fetch_assoc($q_a) )
                    {
                        $pos[$k]['positionsnr'] = $k + 1;
                        if(strlen($r_a['artid'])>0){
                                $pos[$k]['artid'] = $r_a['artid'];      
                        }
                                                if(strlen($r_a['ean'])>0){
                                $pos[$k]['ean'] = $r_a['ean'];
                        }
                        if(strlen($r_a['artikeltext1'])>0){
                                                        $pos[$k]['artikeltext1'] = $r_a['artikeltext1'];
                                                }
                        //$pos[$k]['artikeltext2'] = $r_a['artikeltext2'];
                        if(strlen($r_a['bestellmenge'])>0){
                                                        $pos[$k]['bestellmenge'] = $r_a['bestellmenge'];
                                                }
                                                if(strlen($r_a['basispreis'])>0){
                                $pos[$k]['basispreis'] = number_format( $r_a['basispreis'], 2, ',', '.' );
                                $pos[$k]['poseinzel'] = number_format( $r_a['basispreis'], 2, ',', '.' );
                            $pos[$k]['posgesamt'] = number_format( $r_a['basispreis'] * $r_a['bestellmenge'],
                            2, ',', '.' );
                        }

                        $k++;
                        $ordervalue += $r_a['basispreis'] * $r_a['bestellmenge'];
                    }


                    $bestArr['onlinebestellungen']['bestellung'][$i]['positionen']['position'] =
                        $pos;
                    $bestArr['onlinebestellungen']['bestellung'][$i]['auftragsfuss']['poscount'] =
                        utf8_encode( count($pos) );
                    $bestArr['onlinebestellungen']['bestellung'][$i]['auftragsfuss']['ordervalue'] =
                        utf8_encode( number_format($ordervalue, 2, ',', '.') );

                }

                $i++;


            } // end while

            // die xml-Datei erstellen

            $xmlFileArchiv = ARCHIVE_PATH . $shopID . "_best_" . date( YmdHi ) . ".xml";
                        
            if ( $config->parseConfig($bestArr["onlinebestellungen"], 'phparray') )
            {
                if ( $config->writeConfig(FILE_PATH . $xmlFile, 'xml', array('name' =>
                    'onlinebestellungen','encoding' => 'utf-8')) )
                {
                    if ( !copy(FILE_PATH . $xmlFile, $xmlFileArchiv) )
                    {
                        echo "<br>Datei konnte nicht kopiert werden!";
                    }
                    else
                    {
                        echo "<br>kopiert: " . FILE_PATH . $xmlFile . " => " . $xmlFileArchiv;
                    }
                }
            }


        }
        else
        {
            echo mysql_error();
        }
        
        
    }

    function getDatabasefromShopID( $shopID )

    {
        
        $db = "";
        $sql = "select * from shops where ID = " . $shopID . "";
                if ( $q = mysql_query($sql) )
        {
                        if ( $r = mysql_fetch_assoc($q) )
            {
                $db = $r['database'];
  
            }
        }

        return $db;
    }
?>