Blame | 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: 913 $* @filesource**//**** @package Content-management* @author Webagentur Niewerth <tiefland@weban.de>* @copyright 2011 Webagentur Niewerth*/// SVN: $Id: meinpaket_bestellungen.php 913 2012-01-25 12:47:30Z tiefland $require_once "../Online-Shop/connect2.php";require_once "File/CSV.php";require_once "Weban_Smarty.class.php";$GLOBALS["error_cnt"] = 0;$GLOBALS["ui"] = new Weban_Smarty();set_time_limit( 0 );if ( !isset( $_FILES["meinpaket"] ) ){$GLOBALS["ui"]->assign( "tpl_file", "meinpaket_import.tpl" );}else{$rows = read_file( $_FILES["meinpaket"]["tmp_name"] );$rows = gen_data( $rows );//exit;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 = 0; // Anzahl der Arrays$csv = new File_CSV();$fmt = $csv->discoverFormat( $file );while ( $data = $csv->read( $file, $fmt ) ){if ( $row == 0 ){$kopfdaten = $data;}else{foreach ( $kopfdaten as $c => $name ){$rows[$row - 1][$name] = $data[$c];}}$row++; // Anzahl der Arrays wird// inkrementiert}return $rows;}/*** gen_data()** @param mixed $rows* @return*/function gen_data( $rows ){foreach ( $rows as $r_id => $row ){//var_dump( $row );$data = array();$data["b"]["bestellart_id"] = 4;$data["b"]["erstellt_von"] = "meinpaket-Import";$data["l"]["erstellt_von"] = "meinpaket-Import";$data["ab"]["rechnungstatus"] = "schreiben";foreach ( $row as $feld => $wert ){//var_dump($feld);//var_dump($wert);switch ( $feld ){case "orderId":$data["b"]["fremd_id"] = $wert;break;case "orderDate":$wert = date( "Y-m-d H:i:s", strtotime( $wert ) );$data["b"]["erstellt_am"] = $wert;$data["l"]["erstellt_am"] = $wert;break;case "billingAddressSalutation":$data["l"]["anrede"] = $wert;break;case "billingAddressFirstName":$data["l"]["vorname"] = $wert;break;case "billingAddressLastName":$data["l"]["name1"] = $wert;break;case "billingAddressCompany":$data["l"]["name2"] = $wert;break;case "billingAddressStreet":$data["l"]["strasse"] = $wert;break;case "billingAddressHousenumber":$data["l"]["hausnummer"] = $wert;break;case "billingAddressZipCode":$data["l"]["plz"] = $wert;break;case "billingAddressCity":$data["l"]["ort"] = $wert;break;case "aliasAddress":$data["l"]["e_mail"] = $wert;break;case "productName":$data["ab"]["bezeichnung"] = $wert;break;case "quantity":$data["ab"]["menge"] = $wert;break;case "totalPrice":$data["ab"]["preis_pro_stueck"] = $wert / $data["ab"]["menge"];break;case "deliveryAddressFirstName":$data["b"]["liefer_vorname"] = $wert;break;case "deliveryAddressLastName":$data["b"]["liefer_name"] = $wert;break;case "deliveryAddressStreet":if ( $wert ){$data["b"]["liefer_strasse"] = $wert;}break;case "deliveryAddressHousenumber":if ( $wert ){$data["b"]["liefer_str_nr"] = $wert;}break;case "deliveryAddressSalutation":$data["b"]["liefer_anrede"] = $wert;break;case "deliveryAddressPackstationId":if ( $wert ){$data["b"]["liefer_strasse"] = "Packstation";$data["b"]["liefer_str_nr"] = $wert;}break;case "deliveryAddressAdditional":if ( $wert ){$data["b"]["liefer_name"] .= " " . $wert;}break;case "deliveryAddressCustomerId":if ( $wert ){$data["b"]["liefer_firma"] = $wert;}break;case "deliveryAddressCompany":if ( $wert ){$data["b"]["liefer_firma"] = $wert;}break;case "deliveryAddressCity":$data["b"]["liefer_ort"] = $wert;break;case "deliveryAddressZipCode":$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 "totalDeliveryCosts":$data["v"]["preis_pro_stueck"] = $wert;$data["v"]["artikel"] = 1012574;$data["v"]["menge"] = 1;break;case "productId":$item_id = filter_var( $wert, FILTER_SANITIZE_NUMBER_INT );//var_dump( $item_id );if ( $item_id ){$res = check_item( $item_id, false );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"];}*/$login = $data["l"];unset( $login["erstellt_von"], $login["erstellt_am"] );$liefer = $data["b"];unset( $liefer["erstellt_von"], $liefer["erstellt_am"] );unset( $login["e_mail"], $liefer["fremd_id"], $liefer["bestellart_id"] );$login = implode( "", $login );$liefer = implode( "", $liefer );if ( $login == $liefer ){unset( $data["b"]["liefer_plz"], $data["b"]["liefer_ort"], $data["b"]["liefer_strasse"],$data["b"]["liefer_str_nr"], $data["b"]["liefer_anrede"], $data["b"]["liefer_name"],$data["b"]["liefer_vorname"], $data["b"]["liefer_firma"] );}$daten[] = $data;//exit;}return $daten;}function check_item( $item_id, $fremd_id = true ){if ( $fremd_id ){$sql = "SELECTartikel_idFROMartikel_to_lieferanten al,lieferanten lWHEREl.id=al.lieferanten_idANDl.name LIKE 'meinpaket%'ANDlieferanten_artnr='$item_id'";}else{$sql = "SELECTid AS artikel_idFROMartikelWHEREid = $item_idANDlanguage = 'DE'";}$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 meinpaket-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;}?>