add new Inputs für BT-Fields

Cette révision appartient à :
Markus Gärtner 2024-12-20 14:30:52 +01:00
Parent 74de7857b7
révision 15d6d4258b
4 fichiers modifiés avec 147 ajouts et 38 suppressions

Voir le fichier

@ -2,6 +2,61 @@
[{if $edit}]
<br>
<form name="d3CreateXml" id="d3SaveXml" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="order_overview">
<input type="hidden" name="fnc" value="saveXRechnung">
<input type="hidden" name="oxid" value="[{$oxid}]">
<fieldset style="padding: 5px">
<legend>xRechnung Daten speichern</legend>
<table style="width: 100%">
<tr>
<td>
<img src="[{$oViewConf->getModuleUrl('d3xrechnung4oxid', 'out/img/xrechnung.png')}]" style="height:4em;width:4em" alt="[{oxmultilang ident="D3_PDFDOCUMENTS"}]">
</td>
<td>
<table style="width: 100%">
<tr>
<td style="" class="edittext">
<label for="xmllanguage">Leitweg-ID:</label>
</td>
<td>
<input type="text" class="editinput" size="15" maxlength="[{$edit->oxorder__d3leitwegid->fldmax_length}]" name="editval[oxorder__d3leitwegid]"
value="[{$edit->oxorder__d3leitwegid->value}]" [{$readonly}]>
</td>
</tr>
[{foreach from=$edit->getBtFieldsXRechnung() item=value key=fields}]
<tr>
<td style="" class="edittext">
<input type="text" class="editinput" size="10" maxlength="10" name="editvalBT[[{$fields}]][FIELD]"
value="[{$fields}]" [{$readonly}]>
</td>
<td>
<input type="text" class="editinput" size="40" maxlength="100" name="editvalBT[[{$fields}]][VALUE]"
value="[{$value}]" [{$readonly}]>
</td>
</tr>
[{/foreach}]
<tr>
<td style="" class="edittext">
<input type="text" class="editinput" size="10" maxlength="10" name="editvalBT[NEW][FIELD]"
placeholder="BT100" [{$readonly}]>
</td>
<td>
<input type="text" class="editinput" size="40" maxlength="100" name="editvalBT[NEW][VALUE]"
placeholder="Vorgang ABC" [{$readonly}]>
</td>
</tr>
</table>
</td>
<tr>
<td colspan="2" style="text-align: right" class="edittext"><br/>
<input type="submit" class="edittext" name="save" value="speichern">
</td>
</tr>
</table>
</fieldset>
</form>
<form name="d3CreateXml" id="d3CreateXml" action="[{$oViewConf->getSelfLink()}]" method="post" target="expXML">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="order_overview">
@ -9,38 +64,17 @@
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="xmllanguage" value="0">
<fieldset style="padding: 5px">
<legend>xRechnung</legend>
<legend>xRechnung exportieren</legend>
<table style="width: 100%">
<tr>
<td rowspan="3">
<img src="[{$oViewConf->getModuleUrl('d3xrechnung4oxid', 'out/img/xrechnung.png')}]" style="height:4em;width:4em" alt="[{oxmultilang ident="D3_PDFDOCUMENTS"}]">
</td>
<td style="vertical-align: top; text-align: right" class="edittext">
<label for="exporttype">xRechnung</label>:&nbsp;
<td style="text-align: left" class="edittext">
<label for="exporttype">Format</label>
<select id="exporttype" name="pdftype" class="editinput" style="width:80px;">
<option value="xml" SELECTED>XML
</select>
</td>
</tr>
<tr>
<td style="text-align: right" class="edittext">
<label for="xmllanguage">Leitweg-ID:</label>
<input type="text" class="editinput" size="15" maxlength="[{$edit->oxorder__d3leitwegid->fldmax_length}]" name="editval[oxorder__d3leitwegid]"
value="[{$edit->oxorder__d3leitwegid->value}]" [{$readonly}]>
</td>
</tr>
[{*<tr>
<td style="text-align: right" class="edittext">
<label for="xmllanguage">Sprache</label>
<select id="xmllanguage" name="pdflanguage" class="saveinnewlanginput" style="width:80px;">
[{foreach from=$alangs key=lang item=slang}]
<option value="[{$lang}]" [{if $lang == "0"}]SELECTED[{/if}]>[{$slang}]</option>
[{/foreach}]
</select>
</td>
</tr>*}]
<tr>
<td style="text-align: right" class="edittext"><br/>
<td style="text-align: right" class="edittext"><br/>
<input type="submit" class="edittext" name="save" value="Export">
<iframe name="expXML" style="width: 0; height: 0; border: none; display:none;"></iframe>
</td>
@ -48,4 +82,5 @@
</table>
</fieldset>
</form>
[{/if}]

Voir le fichier

@ -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

Voir le fichier

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

Voir le fichier

@ -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