XRechnung4OXID/src/public/connect.php
2024-12-17 09:33:10 +01:00

224 lines
6.7 KiB
PHP

<?php
use OxidEsales\Eshop\Core\Controller\BaseController;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\TableViewNameGenerator;
require_once dirname(__FILE__) . "/../../../../bootstrap.php";
/**
* Class d3_Cron_Points
*/
class connect extends BaseController
{
/**
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function init()
{
$this->checkParamter();
//dumpvar($this->processRequest());
//echo __METHOD__ . " " . __LINE__ . "<br>" . PHP_EOL;
#dumpvar($this->prepareFromTansport($this->prepareDataForTansport($this->processRequest())));
#echo __METHOD__ . " " . __LINE__ . "<br>" . PHP_EOL;
//die();
echo $this->prepareDataForTansport($this->processRequest());
}
/**
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function processRequest()
{
$Parameter = $this->getParameter();
switch ($Parameter['FNC']) {
case 'getShopData':
return $this->getShopData($Parameter);
break;
case 'getOrder':
return $this->getOrder($Parameter);
break;
case 'getOrderArticles':
return $this->getOrderArticles($Parameter);
break;
case 'getArticle':
return $this->getArticle($Parameter);
break;
case 'getDeliveryData':
return $this->getDeliveryData($Parameter);
break;
case 'getPaymentData':
return $this->getPaymentData($Parameter);
break;
case 'getCountry':
return $this->getCountry($Parameter);
break;
}
}
/**
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function getShopData(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxshops');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery =
<<<MSQL
SELECT * FROM {$sTable} WHERE OXID = ?
MSQL;
$result = $Db->getRow($sQuery,[$OXID]);
unset($result['OXSERIAL']);
unset($result['OXSMTP']);
unset($result['OXSMTPUSER']);
unset($result['OXSMTPPWD']);
return $result;
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
*/
public function getOrder(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxorder');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE OXID= ?";
return $Db->getRow($sQuery,[$OXID]);
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getOrderArticles(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxorderarticles');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE
oxorderid = ?
AND OXAMOUNT > 0
AND OXSTORNO = 0
ORDER BY oxartid, oxselvariant, oxpersparam";
return $Db->getAll($sQuery,[$OXID]);
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getArticle(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxarticles');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE OXID= ?";
return $Db->getAll($sQuery,[$OXID]);
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getDeliveryData(array $aParameter)
{
$OXID = $aParameter['OXID'];
if(!$OXID) {
$OXID = 'oxidstandard';
}
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxdeliveryset');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE OXID= ?";
return $Db->getRow($sQuery,[$OXID]);
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getPaymentData(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxpayments');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE OXID= ?";
return $Db->getAll($sQuery,[$OXID]);
}
/**
* @param array $aParameter
* @return array
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getCountry(array $aParameter)
{
$OXID = $aParameter['OXID'];
$sTable = Registry::get(TableViewNameGenerator::class)->getViewName('oxcountry');
$Db = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
$sQuery = "SELECT * FROM ".$sTable." WHERE OXID= ?";
return $Db->getAll($sQuery,[$OXID]);
}
public function checkParamter()
{
// todo check accesstoken
//fnc
//oxid
//
$this->getParameter();
}
public function getParameter()
{
return array(
'SecureID' => $_GET['ID'],
'FNC' => $_GET['FNC'],
'OXID' => $_GET['OXID'],
);
}
/**
* @param array $Data
* @return string
*/
public function prepareDataForTansport(array $Data): string
{
return base64_encode(json_encode($Data));
}
/**
* @param string $Data
* @return array
*/
public function prepareFromTansport(string $Data): array
{
return (array)json_decode(base64_decode($Data));
}
}
$Connect = new connect();
$Connect->init();