View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001494 | OXID eShop (all versions) | 2. ----- eShop backend (admin) ----- | public | 2009-11-24 10:18 | 2012-12-10 14:22 |
Reporter | Stefan_Werner | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 4.1.6 revision 22740 | ||||
Fixed in Version | 4.3.0 revision 26948 | ||||
Summary | 0001494: Salutation and billnr is missed in XML order export | ||||
Description | fixed file attached | ||||
Tags | Export, Import | ||||
Attached Files | oximex.php (31,222 bytes)
<?php /** * This Software is the property of OXID eSales and is protected * by copyright law - it is NOT Freeware. * * Any unauthorized use of this software without a valid license key * is a violation of the license agreement and will be prosecuted by * civil and criminal law. * * @link http://www.oxid-esales.com * @package core * @copyright (C) OXID eSales AG 2003-2009 * @version OXID eShop PE * $Id: oximex.php 22592 2009-09-24 07:21:04Z alfonsas $ */ /** * @package core */ class oxImex extends oxBase { /** * Exports table contents to file, returns true on success. * * @param integer $iStart Start writing export data from * @param integer $iLines Write number of lines * @param string $sFilepath Path to export file * * @deprecated * * @return bool */ public function export( $iStart, $iLines, $sFilepath) { if ( !$this->getViewName()) { return false; } elseif ( $this->getViewName() == "lexware") { return $this->exportLexwareArticles( $iStart, $iLines, $sFilepath); } $myConfig = $this->getConfig(); $oDB = oxDb::getDb(); $sWhere = ""; $sSearch = $this->_sCoreTbl . "__oxshopid"; if ( isset( $this->$sSearch)) { $sWhere = " where oxshopid = '".$myConfig->getShopId()."' "; } $sSelect = "select count(oxid) from ".$this->getViewName().$sWhere; $iSize = $oDB->getOne( $sSelect); if ( $iStart < $iSize) { // if first, delete the file $fp = fopen( $sFilepath, "a"); $sSelect = "select * from ".$this->getViewName().$sWhere; $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart); // #573 defining decimal separator $blDecReplace = false; $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' ); if ( $sDecimalSeparator != ".") { $blDecReplace = true; } while (!$rs->EOF) { $sLine = "\"".$this->_sCoreTbl."\""; foreach ( $rs->fields as $iNum => $field) { $sLine .= $myConfig->getConfigParam( 'sCSVSign' ); if ( !is_numeric( $field)) { $sLine .= "\"".$this->interFormSimple($field)."\""; } else { if ( $blDecReplace) { $field = str_replace( ".", $sDecimalSeparator, $field ); } $sLine .= $field; } } $sLine .= "\r\n"; fputs( $fp, $sLine); $rs->moveNext(); } fclose( $fp); return true; } return false; } /** * Exports users table contents to file, returns true on success. * * @param integer $iStart Start writing export data from * @param integer $iLines Write number of lines * @param string $sFilepath Path to export file * * @deprecated * * @return bool */ public function exportUsers( $iStart, $iLines, $sFilepath) { $myConfig = $this->getConfig(); $aGroups = oxSession::getVar("_agroups"); if ( !$this->getViewName() || !$aGroups) { return false; } $oDB = oxDb::getDb(); $sWhere = ""; $sInGroup = implode(',',oxDb::getInstance()->quoteArray(array_keys($aGroups))); $sSelect = "select count(".$this->getViewName().".oxid) from ".$this->getViewName()." "; $sSelect .= "left join oxobject2group on ".$this->getViewName().".oxid=oxobject2group.oxobjectid "; $sSelect .= "where oxobject2group.oxgroupsid in (".$sInGroup.") "; $sSearch = $this->getViewName() . "__oxshopid"; if ( isset( $this->$sSearch)) { $sSelect .= $sWhere = "and ".$this->getViewName().".oxshopid = '".$myConfig->getShopId()."' "; } $iSize = $oDB->getOne( $sSelect); if ( $iStart < $iSize) { // #387A creating object to fetch field information $oObj = oxNew( "oxbase" ); $oObj->init($this->getViewName()); // if first, delete the file $fp = fopen( $sFilepath, "a"); $sSelect = "select * from ".$this->getViewName()." "; $sSelect .= "left join oxobject2group on ".$this->getViewName().".oxid=oxobject2group.oxobjectid "; $sSelect .= "where oxobject2group.oxgroupsid in ($sInGroup) ".$sWhere; $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart); // #573 defining decimal separator $blDecReplace = false; $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' ); if ( $sDecimalSeparator != "." ) { $blDecReplace = true; } while (!$rs->EOF) { $sLine = "\"".$this->getViewName()."\""; foreach ( $rs->fields as $iNum => $field) { $sLine .= $myConfig->getConfigParam( 'sCSVSign' ); if ( !is_numeric( $field)) { // #387A $oFieldObj = null; $aIdx2FldName = $oObj->getIdx2FldName(); if ( isset($aIdx2FldName[$iNum])) { $sFieldName = $aIdx2FldName[$iNum]; //#1096S full copy instead of reference. $oFieldObj = clone $oObj->$sFieldName; } $sLine .= "\"".$this->interForm($field, $oFieldObj)."\""; } else { if ( $blDecReplace) { $field = str_replace( ".", $sDecimalSeparator, $field ); } $sLine .= $field; } } $sLine .= "\r\n"; fputs( $fp, $sLine); $rs->moveNext(); } fclose( $fp); return true; } return false; } /** * Performs Lexware export to file. * * @param integer $iStart Start writing to file from line * @param integer $iLines Amount of lines to write * @param string $sFilepath Path to export file * * @return bool */ public function exportLexwareArticles( $iStart, $iLines, $sFilepath) { $myConfig = $this->getConfig(); $oDB = oxDb::getDb(); $sArticleTable = getViewName('oxarticles'); $sSelect = "select count(oxid) from $sArticleTable "; $iSize = $oDB->getOne( $sSelect); if ( $iStart < $iSize) { $fp = fopen( $sFilepath, "ab"); if ( !$iStart) { // first time, write header 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"); } $oldMode = $oDB->setFetchMode( ADODB_FETCH_ASSOC); $sSelect = "select * from $sArticleTable "; $rs = $oDB->selectLimit( $sSelect, $iLines, $iStart); $oDB->setFetchMode( $oldMode); while (!$rs->EOF) { $oArticle = oxNew( "oxarticle" ); $blAdmin = $this->isAdmin(); // TODO: this workaround should be overworked $this->setAdminMode( false ); $oArticle->load( $rs->fields['OXID']); $this->setAdminMode( $blAdmin ); $sSelect = "select oxtitle from oxarticles where oxid = " . $oDB->quote( $oArticle->oxarticles__oxparentid->value ); $oTitle = $oDB->getOne( $sSelect); if ($oTitle != false && strlen ($oTitle)) { $nTitle = $this->interForm($oTitle); } else { $nTitle = $this->interForm($oArticle->oxarticles__oxtitle->value); } $sToFile = $oArticle->oxarticles__oxartnum->value // Artikelnummer //.";".$this->interForm($oArticle->oxarticles__oxshortdesc->value." ".$oArticle->oxarticles__oxvarselect->value) // Bezeichnung .";".$nTitle." ".$this->interForm($oArticle->oxarticles__oxvarselect->value) // Bezeichnung .";"."Stueck" // Einheit .";".$oArticle->oxarticles__oxweight->value // Gewicht .";".$oArticle->oxarticles__oxartnum->value // Matchcode .";"."1,000" // Preis pro Anzahl .";" // Warengruppe .";" // Warengr.-Kurzbez. .";" // Warengr.-Steuersatz .";" // Warengr.-Konto Inland .";" // Warengr.-Konto Ausland .";" // Warengr.-Konto EG .";".number_format($oArticle->oxarticles__oxprice->value, 2, '.', '') // 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 //.";".number_format($oArticle->oxarticles__oxtprice->value, 2, '.', '')// EK 1 // #343 fix .";".number_format($oArticle->oxarticles__oxbprice->value, 2, '.', '')// 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 .";".$oArticle->oxarticles__oxstock->value // Lagerbestand .";" // Mindestbestand .";" // Lagerort .";" // Bestellte Menge .";" // St�ckliste .";1" // Internet .";".$this->interForm( $oArticle->oxarticles__oxshortdesc->value.$oArticle->oxarticles__oxlongdesc->value)// Text .";"; $sToFile .= "\r\n"; fwrite( $fp, $sToFile); $rs->moveNext(); } fclose( $fp ); return true; } return false; } /** * Ensures, that the given data can be put in the csv * * @param string $nValue given string * * @return string */ function interFormSimple( $nValue ) { $nValue = str_replace( "\r", "", $nValue ); $nValue = str_replace( "\n", " ", $nValue ); $nValue = str_replace( '"', '""', $nValue ); return $nValue; } /** * Replaces some special chars to HTML compatible codes, returns string * with replaced chars. * * @param string $nValue string to replace special chars * @param object $oObj object * * @return string */ function interForm( $nValue, $oObj = null) { // thnx to Volker D�rk for this function and his help here // #387A skipping conversion for fields where info must be passed in original format $aFieldTypesToSkip = array("text", "oxshortdesc", "oxlongdesc"); $blSkipStrpTags = false; if ( $oObj != null) { // using object field "fldtype", to skip processing because usually // this type of field is used for HTML text // // you may change field to "fldname" and add to $aFieldTypesToSkip // "oxlongdesc" value to skip only longdesc field // if ( in_array( $oObj->fldtype, $aFieldTypesToSkip ) || in_array( $oObj->fldname, $aFieldTypesToSkip ) ) { $blSkipStripTags = true; } } //removing simple & (and not ü chars) //(not full just a simple check for existing customers for cases like Johnson&Johnson) $oStr = getStr(); if ( $oStr->strpos( $nValue, "&" ) !== false && $oStr->strpos($nValue, ";" ) == false ) { $nValue = str_replace("&", "&", $nValue); } $nValue = str_replace( " ", " ", $nValue); $nValue = str_replace( "ä", "�", $nValue); $nValue = str_replace( "ö", "�", $nValue); $nValue = str_replace( "ü", "�", $nValue); $nValue = str_replace( "Ä", "�", $nValue); $nValue = str_replace( "Ö", "�", $nValue); $nValue = str_replace( "Ü", "�", $nValue); $nValue = str_replace( "ß", "�", $nValue); // usually & symbol goes (or should go) like that: // "& text...", so we predict that this is a rule // and replace it with special HTML code $nValue = str_replace( "& ", "& ", $nValue); $nValue = str_replace( "\"", "'", $nValue); $nValue = str_replace( "(", "'", $nValue); $nValue = str_replace( ")", "'", $nValue); $nValue = str_replace( "\r\n", "", $nValue); $nValue = str_replace( "\n", "", $nValue); if ( !$blSkipStripTags) { $nValue = strip_tags( $nValue ); } return $nValue; } /** * Returns formatted price (grouped thousands, etc.). * * @param float $nPrice Price to format * * @return string */ function internPrice( $nPrice) { // thnx to Volker D�rk for this function and his help here $nPrice = $this->interForm($nPrice); $nPrice = number_format($nPrice, 2, '.', ''); return $nPrice; } /** * Performs CSV format file reading and parsing, returns true on success. * * @param integer $iStart Start reading from * @param integer $iLines Read number of lines * @param string $sFilepath Path to file * * @deprecated * * @return bool */ function import( $iStart, $iLines, $sFilepath) { $myConfig = $this->getConfig(); $blContinue = true; $fp = fopen( $sFilepath, "r"); $iEnd = $iStart+$iLines; $aData = null; //array of tables whitch were updated $aProcTables = oxSession::getVar("_aProcTables"); if ( !$aProcTables) { $aProcTables = array(); } // #573 defining decimal separator $blDecReplace = false; $sDecimalSeparator = $myConfig->getConfigParam( 'sDecimalSeparator' ); if ( $sDecimalSeparator != "." ) { $blDecReplace = true; } for ( $i = 0; $i<=$iEnd; $i++) { $aData = $this->_oxFGetCsv( $fp, 40960, $myConfig->getConfigParam( 'sCSVSign' ) ); if ( $aData && $i >= $iStart) { // import // read table description if needed $sTable = $aData[0]; $aProcTables[] = $sTable; $this->init( $sTable); // remove table from line $aData = array_splice( $aData, 1, count($aData)-1); foreach ($aData as $key => $value) { if ( $value == "''" || $value == "" || !$value) { $value = null; } // #573 - fixing import $sKey = $this->_aIdx2FldName[$key]; if ( $blDecReplace && $this->$sKey->fldtype == "double") { $value = str_replace( $sDecimalSeparator, ".", $value ); } $aData[$key] = trim($value); } $this->assign($aData); $this->save(); } if ( feof( $fp)) { $blContinue = false; if ( $sTable == "oxcategories" || in_array( "oxcategories", $aProcTables)) { $oDB = oxDb::getDb(); $oDB->execute( "update oxcategories set oxhidden = '0' where oxhidden='' "); } $aProcTables = array(); break; } } oxSession::setVar( "_aProcTables", $aProcTables); fclose( $fp); return $blContinue; } /** * Returns XML compatible text for LexwareOrders export. * * @param integer $iFromOrderNr Order from (default null) * @param integer $iToOrderNr Order number * * @return string */ function exportLexwareOrders( $iFromOrderNr = "", $iToOrderNr = "") { // thnx to Volker D�rk for this function and his help here $myConfig = $this->getConfig(); $sNewLine = "\r\n"; $sSelect = "select * from oxorder where 1 "; if ( $iFromOrderNr !== "" ) { $iFromOrderNr = (int)$iFromOrderNr; $sSelect .= "and oxordernr >= $iFromOrderNr "; } if ( $iToOrderNr !== "" ) { $iToOrderNr = (int)$iToOrderNr; $sSelect .= "and oxordernr <= $iToOrderNr "; } $oOrderlist = oxNew( "oxlist" ); $oOrderlist->init( "oxorder" ); $oOrderlist->selectString( $sSelect ); if ( !$oOrderlist->count() ) { return null; } $sCharset = $this->_getCharset(); $sExport = "<?xml version=\"1.0\" encoding=\"{$sCharset}\"?>$sNewLine"; $sExport .= "<Bestellliste>$sNewLine"; $sRet = $sExport; foreach ( $oOrderlist->arrayKeys() as $key ) { $oOrder = $oOrderlist[$key]; $oUser = oxNew( "oxuser" ); $oUser->load( $oOrder->oxorder__oxuserid->value ); $sExport = "<Bestellung " . $this->_convertStr( "zur�ckgestellt" ) . "=\"Nein\" bearbeitet=\"Nein\" " . $this->_convertStr( "�bertragen" ) . "=\"Nein\">$sNewLine"; $sExport .= "<Bestellnummer>".$oOrder->oxorder__oxordernr->value."</Bestellnummer>$sNewLine"; $sExport .= "<Rechnungsnummer>".$oOrder->oxorder__oxbillnr->value."</Rechnungsnummer>$sNewLine"; $sExport .= "<Standardwaehrung>978</Standardwaehrung>$sNewLine"; $sExport .= "<Bestelldatum>$sNewLine"; $sDBDate = oxUtilsDate::getInstance()->formatDBDate($oOrder->oxorder__oxorderdate->value); $sExport .= "<Datum>".substr($sDBDate, 0, 10)."</Datum>$sNewLine"; $sExport .= "<Zeit>".substr($sDBDate, 11, 8)."</Zeit>$sNewLine"; $sExport .= "</Bestelldatum>$sNewLine"; $sExport .= "<Kunde>$sNewLine"; $sExport .= "<Kundennummer>"./*$this->interForm($oUser->oxuser__oxcustnr->value).*/"</Kundennummer>$sNewLine"; $sExport .= "<Firmenname>".$this->interForm($oOrder->oxorder__oxbillcompany->value)."</Firmenname>$sNewLine"; $sExport .= "<Anrede>".$this->interForm($oOrder->oxorder__oxbillsal->value)."</Anrede>$sNewLine"; $sExport .= "<Vorname>".$this->interForm($oOrder->oxorder__oxbillfname->value)."</Vorname>$sNewLine"; $sExport .= "<Name>".$this->interForm($oOrder->oxorder__oxbilllname->value)."</Name>$sNewLine"; $sExport .= "<Strasse>".$this->interForm($oOrder->oxorder__oxbillstreet->value)." ".$this->interForm($oOrder->oxorder__oxbillstreetnr->value)."</Strasse>$sNewLine"; $sExport .= "<PLZ>".$this->interForm($oOrder->oxorder__oxbillzip->value)."</PLZ>$sNewLine"; $sExport .= "<Ort>".$this->interForm($oOrder->oxorder__oxbillcity->value)."</Ort>$sNewLine"; $sExport .= "<Bundesland>".""."</Bundesland>$sNewLine"; $sExport .= "<Land>".$this->interForm($oOrder->oxorder__oxbillcountry->value)."</Land>$sNewLine"; $sExport .= "<Email>".$this->interForm($oUser->oxuser__oxusername->value)."</Email>$sNewLine"; $sExport .= "<Telefon>".$this->interForm($oOrder->oxorder__oxbillfon->value)."</Telefon>$sNewLine"; $sExport .= "<Telefon2>".$this->interForm($oUser->oxuser__oxprivfon->value)."</Telefon2>$sNewLine"; $sExport .= "<Fax>".$this->interForm($oOrder->oxorder__oxbillfax->value)."</Fax>$sNewLine"; $sDelComp = ""; $sDelfName = ""; $sDellName = ""; $sDelStreet = ""; $sDelZip = ""; $sDelCity = ""; $sDelCountry = ""; // lieferadresse if ( $oOrder->oxorder__oxdellname->value) { $sDelComp = $oOrder->oxorder__oxdelcompany->value; $sDelfSal = $oOrder->oxorder__oxdelsal->value; $sDelfName = $oOrder->oxorder__oxdelfname->value; $sDellName = $oOrder->oxorder__oxdellname->value; $sDelStreet = $oOrder->oxorder__oxdelstreet->value." ".$oOrder->oxorder__oxdelstreetnr->value; $sDelZip = $oOrder->oxorder__oxdelzip->value; $sDelCity = $oOrder->oxorder__oxdelcity->value; $sDelCountry= $oOrder->oxorder__oxdelcountry->value; } $sExport .= "<Lieferadresse>$sNewLine"; $sExport .= "<Firmenname>".$this->interForm($sDelComp)."</Firmenname>$sNewLine"; $sExport .= "<Anrede>".$this->interForm($sDelfSal)."</Anrede>$sNewLine"; $sExport .= "<Vorname>".$this->interForm($sDelfName)."</Vorname>$sNewLine"; $sExport .= "<Name>".$this->interForm($sDellName)."</Name>$sNewLine"; $sExport .= "<Strasse>".$this->interForm($sDelStreet)."</Strasse>$sNewLine"; $sExport .= "<PLZ>".$this->interForm($sDelZip)."</PLZ>$sNewLine"; $sExport .= "<Ort>".$this->interForm($sDelCity)."</Ort>$sNewLine"; $sExport .= "<Bundesland>".""."</Bundesland>$sNewLine"; $sExport .= "<Land>".$this->interForm($sDelCountry)."</Land>$sNewLine"; $sExport .= "</Lieferadresse>$sNewLine"; $sExport .= "<Matchcode>".$this->interForm($oOrder->oxorder__oxbilllname->value).", ".$this->interForm($oOrder->oxorder__oxbillfname->value)."</Matchcode>$sNewLine"; // ermitteln ob steuerbar oder nicht $sCountry = strtolower( $oUser->oxuser__oxcountryid->value ); $aHomeCountry = $myConfig->getConfigParam( 'aHomeCountry' ); $sSteuerbar = ( is_array( $aHomeCountry ) && in_array( $sCountry, $aHomeCountry ) ) ? "ja" : "nein"; $sExport .= "<fSteuerbar>".$this->interForm( $sSteuerbar )."</fSteuerbar>$sNewLine"; $sExport .= "</Kunde>$sNewLine"; $sExport .= "<Artikelliste>$sNewLine"; $sRet .= $sExport; $dSumNetPrice = 0; $dSumBrutPrice = 0; $oOrderArticles = $oOrder->getOrderArticles(); foreach ($oOrderArticles->arrayKeys() as $key) { $oOrderArt = $oOrderArticles->offsetGet($key); $dVATSet = array_search( $oOrderArt->oxorderarticles__oxvat->value, $myConfig->getConfigParam( 'aLexwareVAT' ) ); $sExport = " <Artikel>$sNewLine"; //$sExport .= " <Artikelzusatzinfo><Nettostaffelpreis>".$this->InternPrice( $oOrderArt->oxorderarticles__oxnetprice->value)."</Nettostaffelpreis></Artikelzusatzinfo>$sNewLine"; $sExport .= " <Artikelzusatzinfo><Nettostaffelpreis></Nettostaffelpreis></Artikelzusatzinfo>$sNewLine"; $sExport .= " <SteuersatzID>".$dVATSet."</SteuersatzID>$sNewLine"; $sExport .= " <Steuersatz>".$this->internPrice($oOrderArt->oxorderarticles__oxvat->value/100)."</Steuersatz>$sNewLine"; $sExport .= " <Artikelnummer>".$oOrderArt->oxorderarticles__oxartnum->value."</Artikelnummer>$sNewLine"; $sExport .= " <Anzahl>".$oOrderArt->oxorderarticles__oxamount->value."</Anzahl>$sNewLine"; $sExport .= " <Produktname>".$this->interForm( $oOrderArt->oxorderarticles__oxtitle->value); if ( $oOrderArt->oxorderarticles__oxselvariant->value) { $sExport .= "/".$oOrderArt->oxorderarticles__oxselvariant->value; } $sExport .= " </Produktname>$sNewLine"; $sExport .= " <Rabatt>0.00</Rabatt>$sNewLine"; $sExport .= " <Preis>".$this->internPrice($oOrderArt->oxorderarticles__oxbrutprice->value/$oOrderArt->oxorderarticles__oxamount->value)."</Preis>$sNewLine"; $sExport .= " </Artikel>$sNewLine"; $sRet .= $sExport; $dSumNetPrice += $oOrderArt->oxorderarticles__oxnetprice->value; $dSumBrutPrice += $oOrderArt->oxorderarticles__oxbrutprice->value; } $dDiscount = $oOrder->oxorder__oxvoucherdiscount->value + $oOrder->oxorder__oxdiscount->value; $sExport = "<GesamtRabatt>".$this->internPrice( $dDiscount)."</GesamtRabatt>$sNewLine"; $sExport .= "<GesamtNetto>".$this->internPrice($dSumNetPrice)."</GesamtNetto>$sNewLine"; $sExport .= "<Lieferkosten>".$this->internPrice($oOrder->oxorder__oxdelcost->value)."</Lieferkosten>$sNewLine"; $sExport .= "<Zahlungsartkosten>0.00</Zahlungsartkosten>$sNewLine"; $sExport .= "<GesamtBrutto>".$this->internPrice($dSumBrutPrice)."</GesamtBrutto>$sNewLine"; $oUserpayment = oxNew( "oxuserpayment" ); $oUserpayment->load( $oOrder->oxorder__oxpaymentid->value); $sPayment = $oUserpayment->oxuserpayments__oxvalue->value; $sPayment = str_replace( "__", "", $sPayment); $sPayment = str_replace( "@@", ",", $sPayment); $oPayment = oxNew( "oxpayment" ); $oPayment->load( $oOrder->oxorder__oxpaymenttype->value); $sExport .= "<Bemerkung>".strip_tags( $oOrder->oxorder__oxremark->value)."</Bemerkung>$sNewLine"; $sRet .= $sExport; $sExport = "</Artikelliste>$sNewLine"; $sExport .= "<Zahlung>$sNewLine"; $oPayment = oxNew( "oxpayment" ); $oPayment->load( $oOrder->oxorder__oxpaymenttype->value); $sExport .= "<Art>".$oPayment->oxpayments__oxdesc->value."</Art>$sNewLine"; $sExport .= "</Zahlung>$sNewLine"; $sExport .= "</Bestellung>$sNewLine"; $sRet .= $sExport; $oOrder->oxorder__oxexport->setValue(1); $oOrder->save(); } $sExport = "</Bestellliste>$sNewLine"; $sRet .= $sExport; return $sRet; } /** * CSV file parser. Returns an array of parsed values. * * @param mixed $fp Resource to file * @param integer $iMaxLen Max file line length * @param string $sSep parameter/value separator * * @deprecated * * @return array */ protected function _oxFGetCsv( $fp, $iMaxLen, $sSep ) { $aRet = null; $iField = 0; $iQuote = 0; for ( $i=0; $i<$iMaxLen; $i++) { $c = fread( $fp, 1); if ( ($c === false || !isset( $c)) || (($c == "\n") && !$iQuote)) { break; // end } elseif ( $c == $sSep && !$iQuote) { $iField++; $aRet[$iField] = ""; continue; } elseif ( $c == "\"") { if ( $iQuote) { $iQuote--; } else { $iQuote++; } } if ( !isset( $aRet[$iField])) { $aRet[$iField] = ""; } $aRet[$iField] .= $c; } if ( count( $aRet) > 1) { $oStr = getStr(); // remove " or ' foreach ( $aRet as $key => $sField) { $sField = trim($sField); if ( $sField) { if ( $sField[0] == "\"" || $sField[0] == "'") { $sField = $oStr->substr( $sField, 1); } $iLen = $oStr->strlen( $sField) - 1; if ( $sField[$iLen] == "\"" || $sField[$iLen] == "'") { $sField = $oStr->substr( $sField, 0, $iLen); } $aRet[$key] = $sField; } } // process "" qoutes return str_replace('""', '"', $aRet); } else { return null; } } /** * Get current charset * * @return string */ protected function _getCharset() { return oxLang::getInstance()->translateString( 'charset' ); } /** * Converts string from 'ISO-8859-15' to defined charset * * @param string $sStr string to convert * * @return string */ protected function _convertStr( $sStr ) { $sCharset = $this->_getCharset(); if ( $sCharset == 'ISO-8859-15' ) { return $sStr; } return $sStr = iconv( 'ISO-8859-15', $sCharset, $sStr ); } } | ||||
Theme | |||||
Browser | All | ||||
PHP Version | any | ||||
Database Version | any | ||||