Revision 1 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** @package Content-management* @author Webagentur Niewerth <tiefland@weban.de>* @copyright 2011 Webagentur Niewerth* @license propietary http://www.weban.de* @version $Rev: 4164 $* @filesource**//**** @package Content-management* @author Webagentur Niewerth <tiefland@weban.de>* @copyright 2011 Webagentur Niewerth*/// SVN: $Id: amazon_bestellungen.php 4164 2012-01-24 14:14:40Z tiefland $require_once "../Online-Shop/connect2.php";require_once "Weban_Smarty.class.php";$GLOBALS["error_cnt"] = 0;$GLOBALS["ui"] = new Weban_Smarty();set_time_limit( 0 );if ( !isset( $_FILES["amazon"] ) ){$GLOBALS["ui"]->assign( "tpl_file", "amazon_import.tpl" );}else{$rows = read_file( $_FILES["amazon"]["tmp_name"] );//var_dump($rows);$rows = gen_data( $rows );foreach ( $rows as $r_id => $row ){$res = check_order( $row["b"]["fremd_id"] );if ( $res ){$l_id = create_login( $row["l"] );if ( $l_id ){$row["b"]["login"] = $l_id;$o_id = create_order( $row["b"] );if ( $o_id ){//$row["ab"]["rechnungstatus"] = "schreiben";$row["ab"]["bestellung"] = $o_id;$row["v"]["bestellung"] = $o_id;//$row["v"]["rechnungstatus"] = "";create_order_item( $row["ab"] );$res = create_order_item( $row["v"] );if ( $res && $r_id == count( $rows ) - 1 ){$GLOBALS["ui"]->assign( "meld","Alle Bestellungen verarbeitet!" );$GLOBALS["ui"]->assign( "error", false );}}}}else{$o_id = getOrderId( $row["b"]["fremd_id"] );$o_items = getOrderItems( $o_id );if ( !in_array( $row["ab"]["artikel"], $o_items["ids"] ) || $row["ab"]["artikel"] ==999990 ){if ( !in_array( $row["ab"]["bezeichnung"], $o_items["names"] ) ){$row["ab"]["bestellung"] = $o_id;$res = create_order_item( $row["ab"] );}}}}$GLOBALS["ui"]->assign( "webs", $webs );$GLOBALS["ui"]->assign( "tpl_file", "meld_inc.tpl" );}$GLOBALS["ui"]->display( "page.tpl" );/*** read_file()** @param mixed $file* @return*/function read_file( $file ){$row = 1; // Anzahl der Arrays$handle = fopen( $file, "r" ); // Datei zum Lesen öffnenwhile ( ( $data = fgetcsv( $handle, 10000, "\t", '"' ) ) !== false ){ // Daten werden aus der Datei// in ein Array $data gelesen$num = count( $data ); // Felder im Array $data// werden gezählt//print "<p> $num fields in line $row: <br>\n";if ( $row == 1 ){$kopfdaten = $data;}else{foreach ( $kopfdaten as $c => $name ){$rows[$row - 3][$name] = $data[$c];}}$row++; // Anzahl der Arrays wird// inkrementiert/*for ( $c = 0; $c < $num; $c++ ){ // FOR-Schleife, um Felderprint $data[$c] . "<br>\n"; // des Arrays auszugeben}*/}fclose( $handle );return $rows;}/*** gen_data()** @param mixed $rows* @return*/function gen_data( $rows ){foreach ( $rows as $r_id => $row ){$data = array();$data["b"]["bestellart_id"] = 3;$data["b"]["erstellt_von"] = "Amazon-Import";$data["l"]["erstellt_von"] = "Amazon-Import";$data["ab"]["rechnungstatus"] = "schreiben";foreach ( $row as $feld => $wert ){//var_dump($feld);//var_dump($wert);switch ( $feld ){case "order-id":$data["b"]["fremd_id"] = $wert;break;case "purchase-date":$wert = date( "Y-m-d H:i:s", strtotime( $wert ) );$data["b"]["erstellt_am"] = $wert;$data["l"]["erstellt_am"] = $wert;break;case "buyer-name":$data["l"]["name1"] = $wert;break;case "buyer-email":$data["l"]["e_mail"] = $wert;break;case "product-name":$data["ab"]["bezeichnung"] = $wert;break;case "quantity-purchased":$data["ab"]["menge"] = $wert;break;case "item-price":$data["ab"]["preis_pro_stueck"] = $wert / $data["ab"]["menge"];break;case "recipient-name":$data["b"]["liefer_name"] = $wert;break;case "ship-address-1":$data["b"]["liefer_strasse"] = $wert;break;case "ship-address-2":if ( $wert ){$data["b"]["liefer_firma"] = $data["b"]["liefer_strasse"];$data["b"]["liefer_strasse"] = $wert;}break;case "ship-city":$data["b"]["liefer_ort"] = $wert;break;case "ship-postal-code":$data["b"]["liefer_plz"] = $wert;break;case "ship-phone-number":$data["l"]["telefon"] = $wert;break;case "bill-address-1":$data["l"]["strasse"] = $wert;break;case "bill-address-2":if ( $wert ){$data["l"]["name2"] = $data["l"]["strasse"];$data["l"]["strasse"] = $wert;}break;case "bill-city":$data["l"]["ort"] = $wert;break;case "bill-postal-code":$data["l"]["plz"] = $wert;break;case "shipping-price":$data["v"]["preis_pro_stueck"] = $wert;$data["v"]["artikel"] = 1010657;$data["v"]["menge"] = 1;break;case "sku":$item_id = filter_var( $wert, FILTER_SANITIZE_STRING );if ( $item_id ){$res = check_item( $item_id );if ( !$res ){$item_id = 999990;}else{$item_id = $res;}}else{$item_id = 999990;}$data["ab"]["artikel"] = $item_id;break;}}if ( !$data["l"]["strasse"] ){$data["l"]["strasse"] = $data["b"]["liefer_strasse"];$data["l"]["name2"] = $data["b"]["liefer_firma"];$data["l"]["ort"] = $data["b"]["liefer_ort"];$data["l"]["plz"] = $data["b"]["liefer_plz"];}$daten[] = $data;//exit;}return $daten;}function check_item( $item_id ){$sql = "SELECTartikel_idFROMartikel_to_lieferanten al,lieferanten lWHEREl.id=al.lieferanten_idANDl.name LIKE 'Amazon%'ANDlieferanten_artnr='$item_id'";$res = mysql_query( $sql );if ( !$res ){meld_error( $sql );return false;}$row = mysql_fetch_assoc( $res );$id = $row["artikel_id"];return $id;}/*** check_order()** @param mixed $fremd_id* @return*/function check_order( $fremd_id ){$sql = "SELECTIDFROMBestellungWHEREfremd_id='" . $fremd_id . "'";$res = mysql_query( $sql );if ( !$res ){meld_error( $sql );return false;}return !mysql_num_rows( $res );}/*** create_login()** @param mixed $login* @return*/function create_login( $login ){$keys = array_keys( $login );$values = array_values( $login );foreach ( $values as $v_id => $value ){$values[$v_id] = mysql_real_escape_string( str_replace( "\"", "", $value ) );}$sql = 'INSERT INTOLogins(' . implode( ', ', $keys ) . ')VALUES("' . implode( '", "', $values ) . '")';$res = mysql_query( $sql );if ( !$res ){meld_error( $sql );return false;}return mysql_insert_id();}/*** create_order()** @param mixed $order* @return*/function create_order( $order ){$keys = array_keys( $order );$values = array_values( $order );foreach ( $values as $v_id => $value ){$values[$v_id] = mysql_real_escape_string( $value );}$sql = "INSERT INTOBestellung(\n" . implode( ",\n", $keys ) . ")VALUES(\n'" . implode( "',\n'", $values ) . "')";$res = mysql_query( $sql );if ( !$res ){meld_error( $sql );return false;}return mysql_insert_id();}/*** create_order_item()** @param mixed $item* @return*/function create_order_item( $item ){$keys = array_keys( $item );$values = array_values( $item );foreach ( $values as $v_id => $value ){$values[$v_id] = mysql_real_escape_string( $value );}$sql = "INSERT INTOartikel_to_Bestellung(\n" . implode( ",\n", $keys ) . ")VALUES(\n'" . implode( "',\n'", $values ) . "')";$res = mysql_query( $sql );if ( !$res ){meld_error( $sql );return false;}return mysql_insert_id();}function meld_error( $sql ){global $site;$GLOBALS["ui"]->assign( "error", true );$GLOBALS["ui"]->assign( "meld","Es ist ein Fehler aufgetreten!<br>Bitte versuchen Sie später noch einmal!" );$GLOBALS["ui"]->assign( "db_meld", "Die Technik ist breits informiert!" );if ( $GLOBALS["error_cnt"] === 0 ){mail( "admin@weban.de", "Fehler beim Amazon-Import", $sql . "<br>" .mysql_error(), "", "-F info@" . $site );}$GLOBALS["error_cnt"]++;}function getOrderId( $amazon_id ){$sql = "SELECTidFROMBestellungWHEREfremd_id='$amazon_id'";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );return $row["id"];}function getOrderItems( $bestellung ){$sql = "SELECTartikel,bezeichnungFROMartikel_to_BestellungWHEREbestellung=$bestellung";$res = mysql_query( $sql );while ( $row = mysql_fetch_assoc( $res ) ){$items["ids"][] = $row["artikel"];$items["names"][] = $row["bezeichnung"];}return $items;}?>