diff --git a/src/Application/views/admin/blocks/order_overview.tpl b/src/Application/views/admin/blocks/order_overview.tpl index fb22328..88f05b5 100644 --- a/src/Application/views/admin/blocks/order_overview.tpl +++ b/src/Application/views/admin/blocks/order_overview.tpl @@ -2,6 +2,61 @@ [{if $edit}]
+
+ [{$oViewConf->getHiddenSid()}] + + + +
+ xRechnung Daten speichern + + + + + + + +
+ [{oxmultilang ident= + + + + + + + [{foreach from=$edit->getBtFieldsXRechnung() item=value key=fields}] + + + + + [{/foreach}] + + + + +
+ + + +
+ + + +
+ + + +
+

+ +
+
+
[{$oViewConf->getHiddenSid()}] @@ -9,38 +64,17 @@
- xRechnung + xRechnung exportieren - - - - - - - [{* - - *}] - - @@ -48,4 +82,5 @@
- [{oxmultilang ident= - - :  + +
- - -
- - -

+ +

+ [{/if}] \ No newline at end of file diff --git a/src/Modules/Application/Controller/Admin/OrderOverview.php b/src/Modules/Application/Controller/Admin/OrderOverview.php index 29433ad..f11dd12 100644 --- a/src/Modules/Application/Controller/Admin/OrderOverview.php +++ b/src/Modules/Application/Controller/Admin/OrderOverview.php @@ -2,6 +2,7 @@ namespace D3\XRechnungForOxid\Modules\Application\Controller\Admin; +use OxidEsales\Eshop\Application\Model\Order; use OxidEsales\Eshop\Core\Registry; class OrderOverview extends OrderOverview_parent @@ -11,18 +12,8 @@ class OrderOverview extends OrderOverview_parent $soxId = $this->getEditObjectId(); if ($soxId != "-1" && isset($soxId)) { // load object - $oOrder = oxNew(\OxidEsales\Eshop\Application\Model\Order::class); + $oOrder = oxNew(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 = Registry::getUtils(); $sTrimmedBillName = trim($oOrder->oxorder__oxbilllname->getRawValue()); @@ -64,6 +55,54 @@ class OrderOverview extends OrderOverview_parent } } + public function saveXRechnung() + { + $oConfig = $this->getConfig(); + $aParams = $oConfig->getRequestParameter("editvalBT"); + $TmpBtFields = array(); + foreach ($aParams as $key => $value) + { + if(trim($value['VALUE']) != '') { + $key = strtoupper($value['FIELD']); + $TmpBtFields[$key] = $value['VALUE']; + } + } + $sBtField = serialize($TmpBtFields); + $soxId = $this->getEditObjectId(); + if ($soxId != "-1" && isset($soxId)) { + // load object + $oOrder = oxNew(Order::class); + if ($oOrder->load($soxId)) { + $oConfig = $this->getConfig(); + $aParams = $oConfig->getRequestParameter("editval"); + $oOrder->assign( + array( + 'd3leitwegid' => $aParams["oxorder__d3leitwegid"], + 'd3btfields' => $sBtField + ) + ); + $oOrder->save(); + } + } + } + + public function getBtFieldsXRechnung() + { + /** @var Order::class $oOrder */ + $oOrder = oxNew(Order::class); + $soxId = $this->getEditObjectId(); + $aFields = array(); + if (isset($soxId) && $soxId != "-1") { + $oOrder->load($soxId); + $sFields = $oOrder->oxorder__d3btfields->getRawValue(); + + $aFields = unserialize($sFields); + } + ksort($aFields, SORT_NATURAL); + //dumpvar($aFields); + return $aFields; + } + /** * @param string $Data * @return array diff --git a/src/Modules/Application/Model/Order.php b/src/Modules/Application/Model/Order.php index 27b78d5..3da3910 100644 --- a/src/Modules/Application/Model/Order.php +++ b/src/Modules/Application/Model/Order.php @@ -82,4 +82,17 @@ class Order extends Order_parent return true; } + public function getBtFieldsXRechnung() + { + $sFields = $this->oxorder__d3btfields->getRawValue(); + + $aFields = unserialize($sFields); + ksort($aFields, SORT_NATURAL); + if(is_array($aFields)) + { + return $aFields; + + } + return array(); + } } diff --git a/src/public/connect.php b/src/public/connect.php index f958931..4272058 100644 --- a/src/public/connect.php +++ b/src/public/connect.php @@ -103,7 +103,7 @@ MSQL; $sSqlAdd = $this->getAddOrderFieldsSql(); $sQuery = "SELECT * {$sSqlAdd} FROM ".$sTable." WHERE OXID= ?"; - return $Db->getRow($sQuery,[$OXID]); + return $this->addBtFieldsToArray($Db->getRow($sQuery,[$OXID])); } public function getAddOrderFieldsSql() @@ -119,6 +119,28 @@ MSQL; return $sFields; } + /** + * @param array $Order + * @return array + */ + public function addBtFieldsToArray(array $Order) + { + $sField = $Order['D3BTFIELDS']; + if(strlen($sField) > 0) + { + $aFields = unserialize($sField); + if(is_array($aFields) && count($aFields)) + { + foreach ($aFields as $Key => $Value) + { + $Order[$Key] =$Value; + } + } + } + dumpvar($Order,true); + return $Order; + } + /** * @param array $aParameter * @return array