00001 <?php
00002
00005 class oxImex extends oxBase
00006 {
00018 public function export( $iStart, $iLines, $sFilepath)
00019 {
00020 if ( !$this->getViewName()) {
00021 return false;
00022 } elseif ( $this->getViewName() == "lexware") {
00023 return $this->exportLexwareArticles( $iStart, $iLines, $sFilepath);
00024 }
00025
00026 $myConfig = $this->getConfig();
00027 $oDB = oxDb::getDb();
00028
00029 $sWhere = "";
00030
00031 $sSearch = $this->_sCoreTbl . "__oxshopid";
00032 if ( isset( $this->$sSearch)) {
00033 $sWhere = " where oxshopid = '".$myConfig->getShopId()."' ";
00034 }
00035
00036 $sSelect = "select count(oxid) from ".$this->getViewName().$sWhere;
00037 $iSize = $oDB->getOne( $sSelect);
00038 if ( $iStart < $iSize) {
00039
00040 $fp = fopen( $sFilepath, "a");
00041
00042 $sSelect = "select * from ".$this->getViewName().$sWhere;
00043 $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart);
00044
00045 $blDecReplace = false;
00046 $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' );
00047 if ( $sDecimalSeparator != ".") {
00048 $blDecReplace = true;
00049 }
00050
00051 while (!$rs->EOF) {
00052 $sLine = "\"".$this->_sCoreTbl."\"";
00053
00054 foreach ( $rs->fields as $iNum => $field) {
00055 $sLine .= $myConfig->getConfigParam( 'sCSVSign' );
00056
00057 if ( !is_numeric( $field)) {
00058 $sLine .= "\"".$this->interFormSimple($field)."\"";
00059 } else {
00060 if ( $blDecReplace) {
00061 $field = str_replace( ".", $sDecimalSeparator, $field );
00062 }
00063 $sLine .= $field;
00064 }
00065 }
00066 $sLine .= "\r\n";
00067
00068 fputs( $fp, $sLine);
00069
00070 $rs->moveNext();
00071 }
00072
00073 fclose( $fp);
00074
00075 return true;
00076 }
00077
00078 return false;
00079 }
00080
00092 public function exportUsers( $iStart, $iLines, $sFilepath)
00093 {
00094 $myConfig = $this->getConfig();
00095
00096 $aGroups = oxSession::getVar("_agroups");
00097
00098 if ( !$this->getViewName() || !$aGroups) {
00099 return false;
00100 }
00101
00102 $oDB = oxDb::getDb();
00103
00104 $sWhere = "";
00105 $sInGroup = "";
00106 $blSep = false;
00107 foreach ($aGroups as $sGroupId => $iAct) {
00108 if ($blSep) {
00109 $sInGroup .= ", ";
00110 }
00111 $sInGroup .= "'".$sGroupId."'";
00112 $blSep = true;
00113 }
00114
00115 $sSelect = "select count(".$this->getViewName().".oxid) from ".$this->getViewName()." ";
00116 $sSelect .= "left join oxobject2group on ".$this->getViewName().".oxid=oxobject2group.oxobjectid ";
00117 $sSelect .= "where oxobject2group.oxgroupsid in ($sInGroup) ";
00118 $sSearch = $this->getViewName() . "__oxshopid";
00119 if ( isset( $this->$sSearch)) {
00120 $sSelect .= $sWhere = "and ".$this->getViewName().".oxshopid = '".$myConfig->getShopId()."' ";
00121 }
00122
00123 $iSize = $oDB->getOne( $sSelect);
00124 if ( $iStart < $iSize) {
00125 $oObj = oxNew( "oxbase" );
00126 $oObj->init($this->getViewName());
00127
00128
00129 $fp = fopen( $sFilepath, "a");
00130
00131 $sSelect = "select * from ".$this->getViewName()." ";
00132 $sSelect .= "left join oxobject2group on ".$this->getViewName().".oxid=oxobject2group.oxobjectid ";
00133 $sSelect .= "where oxobject2group.oxgroupsid in ($sInGroup) ".$sWhere;
00134 $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart);
00135
00136
00137 $blDecReplace = false;
00138 $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' );
00139 if ( $sDecimalSeparator != "." ) {
00140 $blDecReplace = true;
00141 }
00142
00143 while (!$rs->EOF) {
00144 $sLine = "\"".$this->getViewName()."\"";
00145
00146 foreach ( $rs->fields as $iNum => $field) {
00147 $sLine .= $myConfig->getConfigParam( 'sCSVSign' );
00148
00149 if ( !is_numeric( $field)) {
00150 $oFieldObj = null;
00151 $aIdx2FldName = $oObj->getIdx2FldName();
00152 if ( isset($aIdx2FldName[$iNum])) {
00153 $sFieldName = $aIdx2FldName[$iNum];
00154
00155 $oFieldObj = clone $oObj->$sFieldName;
00156 }
00157
00158 $sLine .= "\"".$this->interForm($field, $oFieldObj)."\"";
00159 } else {
00160 if ( $blDecReplace) {
00161 $field = str_replace( ".", $sDecimalSeparator, $field );
00162 }
00163 $sLine .= $field;
00164 }
00165 }
00166 $sLine .= "\r\n";
00167
00168 fputs( $fp, $sLine);
00169
00170 $rs->moveNext();
00171 }
00172
00173 fclose( $fp);
00174 return true;
00175 }
00176
00177 return false;
00178 }
00179
00189 public function exportLexwareArticles( $iStart, $iLines, $sFilepath)
00190 {
00191 $myConfig = $this->getConfig();
00192 $oDB = oxDb::getDb();
00193
00194 $sArticleTable = getViewName('oxarticles');
00195
00196 $sSelect = "select count(oxid) from $sArticleTable ";
00197 $iSize = $oDB->getOne( $sSelect);
00198
00199 if ( $iStart < $iSize) {
00200 $fp = fopen( $sFilepath, "ab");
00201 if ( !$iStart) {
00202 fwrite( $fp, "\"Artikelnummer\";\"Bezeichnung\";\"Einheit\";\"Gewicht\";\"Matchcode\";\"Preis pro Anzahl\";\"Warengruppe\";\"Warengr.-Kurzbez.\";\"Warengr.-Steuersatz\";\"Warengr.-Konto Inland\";\"Warengr.-Konto Ausland\";\"Warengr.-Konto EG\";\"Preis 1\";\"Preis 2\";\"Preis 3\";\"Preis I/1\";\"Preis I/2\";\"Preis I/3\";\"Preis II/1\";\"Preis II/2\";\"Preis II/3\";\"Preis III/1\";\"Preis III/2\";\"Preis III/3\";\"B/N\";\"Lagerartikel\";\"EK 1\";\"Währung EK1\";\"EK 2\";\"Währung EK2\";\"Staffelmenge 1\";\"Staffelmenge 2\";\"Staffelmenge 3\";\"Lieferantennummer 1\";\"Lieferantennummer 2\";\"Bestellmenge Lf.1\";\"Bestellmenge Lf.2\";\"Bestellnr. Lf.1\";\"Bestellnr. Lf.2\";\"Lieferzeit Lf.1\";\"Lieferzeit Lf.2\";\"Lagerbestand\";\"Mindestbestand\";\"Lagerort\";\"Bestellte Menge\";\"Stückliste\";\"Internet\";\"Text\"\r\n");
00203 }
00204 $oldMode = $oDB->setFetchMode( ADODB_FETCH_ASSOC);
00205 $sSelect = "select * from $sArticleTable ";
00206 $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart);
00207 $oDB->setFetchMode( $oldMode);
00208
00209 while (!$rs->EOF) {
00210 $oArticle = oxNew( "oxarticle" );
00211 $blAdmin = $this->isAdmin();
00212
00213 $this->setAdminMode( false );
00214 $oArticle->load( $rs->fields['OXID']);
00215 $this->setAdminMode( $blAdmin );
00216
00217 $sSelect = "select oxtitle from oxarticles where oxid = '".$oArticle->oxarticles__oxparentid->value."'";
00218 $oTitle = $oDB->getOne( $sSelect);
00219 if ($oTitle != false && strlen ($oTitle)) {
00220 $nTitle = $this->interForm($oTitle);
00221 } else {
00222 $nTitle = $this->interForm($oArticle->oxarticles__oxtitle->value);
00223 }
00224
00225
00226 $sToFile = $oArticle->oxarticles__oxartnum->value
00227
00228 .";".$nTitle." ".$this->interForm($oArticle->oxarticles__oxvarselect->value)
00229 .";"."Stueck"
00230 .";".$oArticle->oxarticles__oxweight->value
00231 .";".$oArticle->oxarticles__oxartnum->value
00232 .";"."1,000"
00233 .";"
00234 .";"
00235 .";"
00236 .";"
00237 .";"
00238 .";"
00239 .";".number_format($oArticle->oxarticles__oxprice->value, 2, '.', '')
00240 .";"
00241 .";"
00242 .";"
00243 .";"
00244 .";"
00245 .";"
00246 .";"
00247 .";"
00248 .";"
00249 .";"
00250 .";"
00251 .";"
00252 .";"
00253
00254
00255 .";".number_format($oArticle->oxarticles__oxbprice->value, 2, '.', '')
00256 .";"
00257 .";"
00258 .";"
00259 .";"
00260 .";"
00261 .";"
00262 .";"
00263 .";"
00264 .";"
00265 .";"
00266 .";"
00267 .";"
00268 .";"
00269 .";"
00270 .";".$oArticle->oxarticles__oxstock->value
00271 .";"
00272 .";"
00273 .";"
00274 .";"
00275 .";1"
00276 .";".$this->interForm( $oArticle->oxarticles__oxshortdesc->value.$oArticle->oxarticles__oxlongdesc->value)
00277 .";";
00278 $sToFile .= "\r\n";
00279
00280 fwrite( $fp, $sToFile);
00281 $rs->moveNext();
00282 }
00283
00284 fclose( $fp );
00285 return true;
00286 }
00287
00288 return false;
00289
00290 }
00291
00299 function interFormSimple( $nValue )
00300 {
00301 $nValue = str_replace( "\r", "", $nValue );
00302 $nValue = str_replace( "\n", " ", $nValue );
00303 $nValue = str_replace( '"', '""', $nValue );
00304 return $nValue;
00305 }
00306
00316 function interForm( $nValue, $oObj = null)
00317 {
00318
00319
00320 $aFieldTypesToSkip = array("text", "oxshortdesc", "oxlongdesc");
00321 $blSkipStrpTags = false;
00322 if ( $oObj != null) {
00323
00324
00325
00326
00327
00328
00329 if ( in_array( $oObj->fldtype, $aFieldTypesToSkip ) || in_array( $oObj->fldname, $aFieldTypesToSkip ) ) {
00330 $blSkipStripTags = true;
00331 }
00332 }
00333
00334
00335
00336
00337 $oStr = getStr();
00338 if ( $oStr->strpos( $nValue, "&" ) !== false && $oStr->strpos($nValue, ";" ) == false ) {
00339 $nValue = str_replace("&", "&", $nValue);
00340 }
00341
00342 $nValue = str_replace( " ", " ", $nValue);
00343 $nValue = str_replace( "ä", "ä", $nValue);
00344 $nValue = str_replace( "ö", "ö", $nValue);
00345 $nValue = str_replace( "ü", "ü", $nValue);
00346 $nValue = str_replace( "Ä", "Ä", $nValue);
00347 $nValue = str_replace( "Ö", "Ö", $nValue);
00348 $nValue = str_replace( "Ü", "Ü", $nValue);
00349 $nValue = str_replace( "ß", "ß", $nValue);
00350
00351
00352
00353
00354 $nValue = str_replace( "& ", "& ", $nValue);
00355
00356 $nValue = str_replace( "\"", "'", $nValue);
00357 $nValue = str_replace( "(", "'", $nValue);
00358 $nValue = str_replace( ")", "'", $nValue);
00359 $nValue = str_replace( "\r\n", "", $nValue);
00360 $nValue = str_replace( "\n", "", $nValue);
00361
00362 if ( !$blSkipStripTags) {
00363 $nValue = strip_tags( $nValue );
00364 }
00365
00366 return $nValue;
00367 }
00368
00376 function internPrice( $nPrice)
00377 {
00378 $nPrice = $this->interForm($nPrice);
00379 $nPrice = number_format($nPrice, 2, '.', '');
00380 return $nPrice;
00381 }
00382
00394 function import( $iStart, $iLines, $sFilepath)
00395 {
00396 $myConfig = $this->getConfig();
00397 $blContinue = true;
00398
00399 $fp = fopen( $sFilepath, "r");
00400 $iEnd = $iStart+$iLines;
00401 $aData = null;
00402
00403
00404 $aProcTables = oxSession::getVar("_aProcTables");
00405 if ( !$aProcTables) {
00406 $aProcTables = array();
00407 }
00408
00409
00410 $blDecReplace = false;
00411 $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' );
00412 if ( $sDecimalSeparator != "." ) {
00413 $blDecReplace = true;
00414 }
00415
00416 for ( $i = 0; $i<=$iEnd; $i++) {
00417 $aData = $this->_oxFGetCsv( $fp, 40960, $myConfig->getConfigParam( 'sCSVSign' ) );
00418
00419 if ( $aData && $i >= $iStart) {
00420
00421
00422 $sTable = $aData[0];
00423 $aProcTables[] = $sTable;
00424 $this->init( $sTable);
00425
00426 $aData = array_splice( $aData, 1, count($aData)-1);
00427 foreach ($aData as $key => $value) {
00428 if ( $value == "''" || $value == "" || !$value) {
00429 $value = null;
00430 }
00431
00432
00433 $sKey = $this->_aIdx2FldName[$key];
00434 if ( $blDecReplace && $this->$sKey->fldtype == "double") {
00435 $value = str_replace( $sDecimalSeparator, ".", $value );
00436 }
00437
00438 $aData[$key] = trim($value);
00439 }
00440 $this->assign($aData);
00441 $this->save();
00442 }
00443
00444 if ( feof( $fp)) {
00445 $blContinue = false;
00446 if ( $sTable == "oxcategories" || in_array( "oxcategories", $aProcTables)) {
00447 $oDB = oxDb::getDb();
00448 $oDB->execute( "update oxcategories set oxhidden = '0' where oxhidden='' ");
00449 }
00450 $aProcTables = array();
00451 break;
00452 }
00453 }
00454 oxSession::setVar( "_aProcTables", $aProcTables);
00455 fclose( $fp);
00456
00457 return $blContinue;
00458 }
00459
00468 function exportLexwareOrders( $iFromOrderNr = null, $iToOrderNr = null)
00469 {
00470
00471 $myConfig = $this->getConfig();
00472
00473 $sNewLine = "\r\n";
00474
00475 $sSelect = "select * from oxorder where 1 ";
00476
00477 if ( $iFromOrderNr !== null ) {
00478 $sSelect .= "and oxordernr >= $iFromOrderNr ";
00479 }
00480
00481 if ( $iToOrderNr !== null ) {
00482 $sSelect .= "and oxordernr <= $iToOrderNr ";
00483 }
00484
00485 $oOrderlist = oxNew( "oxlist" );
00486 $oOrderlist->init( "oxorder" );
00487 $oOrderlist->selectString( $sSelect );
00488
00489 if ( !$oOrderlist->count() ) {
00490 return null;
00491 }
00492
00493 $sExport = "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>$sNewLine";
00494 $sExport .= "<Bestellliste>$sNewLine";
00495 $sRet = $sExport;
00496
00497 foreach ( $oOrderlist->arrayKeys() as $key ) {
00498 $oOrder = $oOrderlist[$key];
00499
00500 $oUser = oxNew( "oxuser" );
00501 $oUser->load( $oOrder->oxorder__oxuserid->value );
00502
00503 $sExport = "<Bestellung zurückgestellt=\"Nein\" bearbeitet=\"Nein\" übertragen=\"Nein\">$sNewLine";
00504 $sExport .= "<Bestellnummer>".$oOrder->oxorder__oxordernr->value."</Bestellnummer>$sNewLine";
00505 $sExport .= "<Standardwaehrung>978</Standardwaehrung>$sNewLine";
00506 $sExport .= "<Bestelldatum>$sNewLine";
00507 $sDBDate = oxUtilsDate::getInstance()->formatDBDate($oOrder->oxorder__oxorderdate->value);
00508 $sExport .= "<Datum>".substr($sDBDate, 0, 10)."</Datum>$sNewLine";
00509 $sExport .= "<Zeit>".substr($sDBDate, 11, 8)."</Zeit>$sNewLine";
00510 $sExport .= "</Bestelldatum>$sNewLine";
00511 $sExport .= "<Kunde>$sNewLine";
00512
00513 $sExport .= "<Kundennummer>"."</Kundennummer>$sNewLine";
00514 $sExport .= "<Firmenname>".$this->interForm($oOrder->oxorder__oxbillcompany->value)."</Firmenname>$sNewLine";
00515 $sExport .= "<Vorname>".$this->interForm($oOrder->oxorder__oxbillfname->value)."</Vorname>$sNewLine";
00516 $sExport .= "<Name>".$this->interForm($oOrder->oxorder__oxbilllname->value)."</Name>$sNewLine";
00517 $sExport .= "<Strasse>".$this->interForm($oOrder->oxorder__oxbillstreet->value)." ".$this->interForm($oOrder->oxorder__oxbillstreetnr->value)."</Strasse>$sNewLine";
00518 $sExport .= "<PLZ>".$this->interForm($oOrder->oxorder__oxbillzip->value)."</PLZ>$sNewLine";
00519 $sExport .= "<Ort>".$this->interForm($oOrder->oxorder__oxbillcity->value)."</Ort>$sNewLine";
00520 $sExport .= "<Bundesland>".""."</Bundesland>$sNewLine";
00521 $sExport .= "<Land>".$this->interForm($oOrder->oxorder__oxbillcountry->value)."</Land>$sNewLine";
00522 $sExport .= "<Email>".$this->interForm($oUser->oxuser__oxusername->value)."</Email>$sNewLine";
00523 $sExport .= "<Telefon>".$this->interForm($oOrder->oxorder__oxbillfon->value)."</Telefon>$sNewLine";
00524 $sExport .= "<Telefon2>".$this->interForm($oUser->oxuser__oxprivfon->value)."</Telefon2>$sNewLine";
00525 $sExport .= "<Fax>".$this->interForm($oOrder->oxorder__oxbillfax->value)."</Fax>$sNewLine";
00526
00527 $sDelComp = "";
00528 $sDelfName = "";
00529 $sDellName = "";
00530 $sDelStreet = "";
00531 $sDelZip = "";
00532 $sDelCity = "";
00533 $sDelCountry = "";
00534
00535
00536 if ( $oOrder->oxorder__oxdellname->value) {
00537 $sDelComp = $oOrder->oxorder__oxdelcompany->value;
00538 $sDelfName = $oOrder->oxorder__oxdelfname->value;
00539 $sDellName = $oOrder->oxorder__oxdellname->value;
00540 $sDelStreet = $oOrder->oxorder__oxdelstreet->value." ".$oOrder->oxorder__oxdelstreetnr->value;
00541 $sDelZip = $oOrder->oxorder__oxdelzip->value;
00542 $sDelCity = $oOrder->oxorder__oxdelcity->value;
00543 $sDelCountry= $oOrder->oxorder__oxdelcountry->value;
00544 }
00545
00546 $sExport .= "<Lieferadresse>$sNewLine";
00547 $sExport .= "<Firmenname>".$this->interForm($sDelComp)."</Firmenname>$sNewLine";
00548 $sExport .= "<Vorname>".$this->interForm($sDelfName)."</Vorname>$sNewLine";
00549 $sExport .= "<Name>".$this->interForm($sDellName)."</Name>$sNewLine";
00550 $sExport .= "<Strasse>".$this->interForm($sDelStreet)."</Strasse>$sNewLine";
00551 $sExport .= "<PLZ>".$this->interForm($sDelZip)."</PLZ>$sNewLine";
00552 $sExport .= "<Ort>".$this->interForm($sDelCity)."</Ort>$sNewLine";
00553 $sExport .= "<Bundesland>".""."</Bundesland>$sNewLine";
00554 $sExport .= "<Land>".$this->interForm($sDelCountry)."</Land>$sNewLine";
00555 $sExport .= "</Lieferadresse>$sNewLine";
00556 $sExport .= "<Matchcode>".$this->interForm($oOrder->oxorder__oxbilllname->value).", ".$this->interForm($oOrder->oxorder__oxbillfname->value)."</Matchcode>$sNewLine";
00557
00558
00559 $sCountry = strtolower( $oUser->oxuser__oxcountryid->value );
00560 $aHomeCountry = $myConfig->getConfigParam( 'aHomeCountry' );
00561 $sSteuerbar = ( is_array( $aHomeCountry ) && in_array( $sCountry, $aHomeCountry ) ) ? "ja" : "nein";
00562
00563 $sExport .= "<fSteuerbar>".$this->interForm( $sSteuerbar )."</fSteuerbar>$sNewLine";
00564 $sExport .= "</Kunde>$sNewLine";
00565 $sExport .= "<Artikelliste>$sNewLine";
00566 $sRet .= $sExport;
00567
00568 $dSumNetPrice = 0;
00569 $dSumBrutPrice = 0;
00570
00571 $oOrderArticles = $oOrder->getOrderArticles();
00572 foreach ($oOrderArticles->arrayKeys() as $key) {
00573 $oOrderArt = $oOrderArticles->offsetGet($key);
00574
00575 $dVATSet = array_search( $oOrderArt->oxorderarticles__oxvat->value, $myConfig->getConfigParam( 'aLexwareVAT' ) );
00576 $sExport = " <Artikel>$sNewLine";
00577
00578 $sExport .= " <Artikelzusatzinfo><Nettostaffelpreis></Nettostaffelpreis></Artikelzusatzinfo>$sNewLine";
00579 $sExport .= " <SteuersatzID>".$dVATSet."</SteuersatzID>$sNewLine";
00580 $sExport .= " <Steuersatz>".$this->internPrice($oOrderArt->oxorderarticles__oxvat->value/100)."</Steuersatz>$sNewLine";
00581 $sExport .= " <Artikelnummer>".$oOrderArt->oxorderarticles__oxartnum->value."</Artikelnummer>$sNewLine";
00582 $sExport .= " <Anzahl>".$oOrderArt->oxorderarticles__oxamount->value."</Anzahl>$sNewLine";
00583 $sExport .= " <Produktname>".$this->interForm( $oOrderArt->oxorderarticles__oxtitle->value);
00584 if ( $oOrderArt->oxorderarticles__oxselvariant->value) {
00585 $sExport .= "/".$oOrderArt->oxorderarticles__oxselvariant->value;
00586 }
00587 $sExport .= " </Produktname>$sNewLine";
00588 $sExport .= " <Rabatt>0.00</Rabatt>$sNewLine";
00589 $sExport .= " <Preis>".$this->internPrice($oOrderArt->oxorderarticles__oxbrutprice->value/$oOrderArt->oxorderarticles__oxamount->value)."</Preis>$sNewLine";
00590 $sExport .= " </Artikel>$sNewLine";
00591 $sRet .= $sExport;
00592
00593 $dSumNetPrice += $oOrderArt->oxorderarticles__oxnetprice->value;
00594 $dSumBrutPrice += $oOrderArt->oxorderarticles__oxbrutprice->value;
00595 }
00596
00597 $dDiscount = $oOrder->oxorder__oxvoucherdiscount->value + $oOrder->oxorder__oxdiscount->value;
00598 $sExport = "<GesamtRabatt>".$this->internPrice( $dDiscount)."</GesamtRabatt>$sNewLine";
00599 $sExport .= "<GesamtNetto>".$this->internPrice($dSumNetPrice)."</GesamtNetto>$sNewLine";
00600 $sExport .= "<Lieferkosten>".$this->internPrice($oOrder->oxorder__oxdelcost->value)."</Lieferkosten>$sNewLine";
00601 $sExport .= "<Zahlungsartkosten>0.00</Zahlungsartkosten>$sNewLine";
00602 $sExport .= "<GesamtBrutto>".$this->internPrice($dSumBrutPrice)."</GesamtBrutto>$sNewLine";
00603
00604 $oUserpayment = oxNew( "oxuserpayment" );
00605 $oUserpayment->load( $oOrder->oxorder__oxpaymentid->value);
00606 $sPayment = $oUserpayment->oxuserpayments__oxvalue->value;
00607 $sPayment = str_replace( "__", "", $sPayment);
00608 $sPayment = str_replace( "@@", ",", $sPayment);
00609
00610 $oPayment = oxNew( "oxpayment" );
00611 $oPayment->load( $oOrder->oxorder__oxpaymenttype->value);
00612
00613
00614 $sExport .= "<Bemerkung>".strip_tags( $oOrder->oxorder__oxremark->value)."</Bemerkung>$sNewLine";
00615 $sRet .= $sExport;
00616
00617 $sExport = "</Artikelliste>$sNewLine";
00618
00619 $sExport .= "<Zahlung>$sNewLine";
00620 $oPayment = oxNew( "oxpayment" );
00621 $oPayment->load( $oOrder->oxorder__oxpaymenttype->value);
00622
00623 $sExport .= "<Art>".$oPayment->oxpayments__oxdesc->value."</Art>$sNewLine";
00624 $sExport .= "</Zahlung>$sNewLine";
00625
00626 $sExport .= "</Bestellung>$sNewLine";
00627 $sRet .= $sExport;
00628
00629 $oOrder->oxorder__oxexport->setValue(1);
00630 $oOrder->save();
00631
00632 }
00633 $sExport = "</Bestellliste>$sNewLine";
00634 $sRet .= $sExport;
00635
00636 return $sRet;
00637 }
00638
00650 protected function _oxFGetCsv( $fp, $iMaxLen, $sSep )
00651 {
00652 $aRet = null;
00653
00654 $iField = 0;
00655 $iQuote = 0;
00656
00657 for ( $i=0; $i<$iMaxLen; $i++) {
00658 $c = fread( $fp, 1);
00659
00660 if ( ($c === false || !isset( $c)) || (($c == "\n") && !$iQuote)) {
00661 break;
00662 } elseif ( $c == $sSep && !$iQuote) {
00663 $iField++;
00664 $aRet[$iField] = "";
00665 continue;
00666 } elseif ( $c == "\"") {
00667 if ( $iQuote) {
00668 $iQuote--;
00669 } else {
00670 $iQuote++;
00671 }
00672 }
00673 if ( !isset( $aRet[$iField])) {
00674 $aRet[$iField] = "";
00675 }
00676 $aRet[$iField] .= $c;
00677 }
00678
00679 if ( count( $aRet) > 1) {
00680 $oStr = getStr();
00681
00682 foreach ( $aRet as $key => $sField) {
00683 $sField = trim($sField);
00684 if ( $sField) {
00685 if ( $sField[0] == "\"" || $sField[0] == "'") {
00686 $sField = $oStr->substr( $sField, 1);
00687 }
00688
00689 $iLen = $oStr->strlen( $sField) - 1;
00690 if ( $sField[$iLen] == "\"" || $sField[$iLen] == "'") {
00691 $sField = $oStr->substr( $sField, 0, $iLen);
00692 }
00693
00694 $aRet[$key] = $sField;
00695 }
00696 }
00697
00698 return str_replace('""', '"', $aRet);
00699 } else {
00700 return null;
00701 }
00702 }
00703 }