Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

    /**
     * @package   php_share
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2010 Webagentur Niewerth
     * @license   propietary http://www.weban.de
     * @version   $Rev: 753 $
     * @filesource
     * 
     */

    /**
     * 
     * @package   php_share
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2010 Webagentur Niewerth
     */

    // SVN: $Id: frankana.class.php 753 2011-10-12 07:36:40Z tiefland $

    require_once "lieferantenbase.class.php";
    require_once "File.php";
    require_once "module/shop/html_mails/mail_func.php";
    require_once "Net/FTP.php";

    require_once "File/CSV.php";

    class Frankana extends LieferantenBase
    {
        public function import( $file )
        {
            $sql_lager = "SELECT
                    id
                FROM
                    lieferanten_lager
                WHERE
                    lieferanten_id=$this->lieferant_id
            ";
            $res_lager = $GLOBALS["db"]->query( $sql_lager );
            while ( $row = $res_lager->fetchRow() )
            {
                $lager_ids[] = $row["id"];
            }
            $lager_id_str = implode( ", ", $lager_ids );
            if ( !isset( $file["port"] ) )
            {
                $file["port"] = 21;
            }
            $ftp = new Net_FTP( $file["server"], $file["port"] );
            $ftp->connect();
            $res = $ftp->login( $file["user"], $file["password"] );
            $ftp->get( $file["name"], $file["name"], true, FTP_ASCII );

            $csv = new File_CSV();

            $fmt = $csv->discoverFormat( $file["name"], array( "@" ) );

            while ( $row = $csv->read( $file["name"], $fmt ) )
            {
                $content[] = $row;
            }
            foreach ( $this->databases as $database )
            {
                $sql = "DELETE FROM
                        " . $database . ".artikel_lagerbestand
                    WHERE
                        lager_id IN ($lager_id_str)
                ";
                $res = $GLOBALS["db"]->exec( $sql );
                $sql_a_s = "SELECT
                        id
                    FROM
                        " . $database . ".artikel
                    WHERE
                        kennung=:kennung
                    AND
                        language='DE'
                ";

                $sql_alb_i = "
                    INSERT INTO
                        " . $database . ".artikel_lagerbestand
                    (
                        lager_id,
                        artikel_id,
                        `status`,
                        ek_preis,
                        vk_preis
                    )
                    VALUES
                    (
                        :lager,
                        :id,
                        :lb_status,
                        :ek_preis,
                        :vk_preis
                    )
                ";
                $GLOBALS["sql_sth_a_s"] = $GLOBALS["db"]->prepare( $sql_a_s );
                $GLOBALS["sql_sth_alb_i"] = $GLOBALS["db"]->prepare( $sql_alb_i );

                foreach ( $content as $row )
                {
                    $res = $GLOBALS["sql_sth_a_s"]->execute( array( "kennung" =>
                        $row[0] ) );
                    $artikel = $res->fetchRow();
                    if ( $artikel["id"] )
                    {
                        $daten_bestand["id"] = $artikel["id"];
                        foreach ( $lager_ids as $lager )
                        {
                            switch ( $row[$lager + 6] )
                            {
                                case 0:
                                    $lb_status = 4;
                                    break;
                                case 1:
                                    $lb_status = 3;
                                    break;
                                case 2:
                                    $lb_status = 2;
                                    break;
                                case 3:
                                    $lb_status = 1;
                                    break;
                                case 4:
                                    $lb_status = 0;
                                    break;
                            }
                            $daten_bestand["ek_preis"] = str_replace( ",", ".",
                                $row[5] );
                            $daten_bestand["vk_preis"] = str_replace( ",", ".",
                                $row[6] );
                            $daten_bestand["lb_status"] = $lb_status;
                            $daten_bestand["lager"] = $lager;
                            $res_alb_i = $GLOBALS["sql_sth_alb_i"]->execute( $daten_bestand );
                        }
                    }
                }
            }
        }
    }
?>