2024-11-01 10:57:50 +01:00

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);
}
}
}
}