59 Zeilen
2.5 KiB
PHP
59 Zeilen
2.5 KiB
PHP
<?php
|
|
|
|
namespace D3\XRechnung\Modules\Application\Controller\Admin;
|
|
|
|
use OxidEsales\Eshop\Core\Registry;
|
|
|
|
class OrderOverview extends OrderOverview_parent
|
|
{
|
|
public function createXRechnung()
|
|
{
|
|
$soxId = $this->getEditObjectId();
|
|
if ($soxId != "-1" && isset($soxId)) {
|
|
// load object
|
|
$oOrder = oxNew(\OxidEsales\Eshop\Application\Model\Order::class);
|
|
if ($oOrder->load($soxId)) {
|
|
$oConfig = $this->getConfig();
|
|
$aParams = $oConfig->getRequestParameter("editval");
|
|
|
|
if($aParams["oxorder__d3leitwegid"])
|
|
{
|
|
$oOrder->assign(
|
|
array('d3leitwegid' => $aParams["oxorder__d3leitwegid"])
|
|
);
|
|
$oOrder->save();
|
|
}
|
|
|
|
$oUtils = \OxidEsales\Eshop\Core\Registry::getUtils();
|
|
$sTrimmedBillName = trim($oOrder->oxorder__oxbilllname->getRawValue());
|
|
if(!$sTrimmedBillName) {
|
|
return FALSE;
|
|
}
|
|
else {
|
|
$strx=array('#[^a-zA-Z0-9äöüß\040]#','# +#','#ä#','#ö#','#ü#','#ß#');
|
|
$stry=array(' ',' ','ae','oe','ue','ss');
|
|
$sTrimmedBillName=preg_replace($strx,$stry,$sTrimmedBillName);
|
|
$sTrimmedBillName=trim($sTrimmedBillName);
|
|
$sTrimmedBillName=strtolower($sTrimmedBillName);
|
|
}
|
|
$sFilename = $oOrder->oxorder__oxordernr->value . "_" . $sTrimmedBillName . ".xml";
|
|
$sFilename = $this->makeValidFileName($sFilename);
|
|
ob_start();
|
|
$oOrder->genXRechnung($sFilename, \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("xmllanguage"), false);
|
|
|
|
$myConfig = Registry::getConfig();
|
|
|
|
echo file_get_contents($myConfig->getConfigParam('sShopDir')."/export/xml/".$sFilename);
|
|
$sXML = ob_get_contents();
|
|
ob_end_clean();
|
|
$oUtils->setHeader("Pragma: public");
|
|
$oUtils->setHeader("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
|
$oUtils->setHeader("Expires: 0");
|
|
$oUtils->setHeader("Content-type: application/xml");
|
|
$oUtils->setHeader("Content-Disposition: attachment; filename=" . $sFilename);
|
|
\OxidEsales\Eshop\Core\Registry::getUtils()->showMessageAndExit($sXML);
|
|
}
|
|
}
|
|
}
|
|
}
|