Skip to content
Code-Schnipsel Gruppen Projekte
Commit 7670719d erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

refactor: feat: consider frontend users address profile settings in order process

Übergeordneter 9e555bc9
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -43,6 +43,14 @@ function ($addressId, $data) {
$Address->editPhone(0, $data['tel']);
}
if (isset($data['mobile'])) {
$Address->editMobile($data['mobile']);
}
if (isset($data['fax'])) {
$Address->editFax($data['fax']);
}
// user data
$User = $Address->getUser();
......@@ -62,6 +70,17 @@ function ($addressId, $data) {
}
$User->save();
// check missing fields
$missing = QUI\FrontendUsers\Utils::getMissingAddressFields($Address);
if (\count($missing)) {
throw new QUI\Exception([
'quiqqer/frontend-users',
'exception.controls.profile.address.required_fields_empty'
]);
}
$Address->save();
try {
......
......@@ -170,9 +170,19 @@ define('package/quiqqer/order/bin/frontend/controls/orderProcess/CustomerData',
resolve();
}, {
'package': 'quiqqer/order',
onError : reject,
addressId: address.addressId,
data : JSON.encode(address)
data : JSON.encode(address),
onError : function (err) {
QUI.getMessageHandler().then(function (MH) {
MH.addError(err.getMessage());
});
if (Loader) {
Loader.hide();
}
reject();
}
});
});
},
......
......@@ -72,11 +72,17 @@
{if $isB2B}
<label class="quiqqer-order-customerData-edit-company">
<span>{locale group="quiqqer/order" var="company"}</span>
{assign var=r value=""}
{if $settings.company.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/order" var="company"}
{if $settings.company.required}*{/if}
</span>
<input type="text"
name="company"
autocomplete="organization"
value="{$Address->getAttribute('company')|escape:'html'}"
{$r}
/>
</label>
<label class="quiqqer-order-customerData-edit-vatId">
......@@ -95,7 +101,7 @@
</label>
{/if}
{if $isB2B}
{if $isOnlyB2B || $isOnlyB2C}
<style type="text/css">
.quiqqer-order-customerData-edit-businessType {
display: none;
......@@ -113,82 +119,174 @@
</style>
{/if}
{if $settings.salutation.show}
<label class="quiqqer-order-customerData-edit-salutation">
<span>{locale group="quiqqer/frontend-users" var="salutation"}</span>
{assign var=r value=""}
{if $settings.salutation.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="salutation"}
{if $settings.salutation.required}*{/if}
</span>
<input type="text"
name="salutation"
autocomplete
maxlength="10"
value="{$Address->getAttribute('salutation')|escape:'html'}"
{$r}
/>
</label>
{/if}
{if $settings.firstname.show}
<label class="quiqqer-order-customerData-edit-firstname">
<span>{locale group="quiqqer/frontend-users" var="firstname"}*</span>
{assign var=r value=""}
{if $settings.firstname.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="firstname"}
{if $settings.firstname.required}*{/if}
</span>
<input type="text"
name="firstname"
autocomplete="given-name"
value="{$Address->getAttribute('firstname')|escape:'html'}"
required
{$r}
/>
</label>
{/if}
{if $settings.lastname.show}
<label class="quiqqer-order-customerData-edit-lastname">
<span>{locale group="quiqqer/frontend-users" var="lastname"}*</span>
{assign var=r value=""}
{if $settings.lastname.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="lastname"}
{if $settings.lastname.required}*{/if}
</span>
<input type="text"
name="lastname"
autocomplete="family-name"
value="{$Address->getAttribute('lastname')|escape:'html'}"
required
{$r}
/>
</label>
{/if}
{if $settings.street_no.show}
<label class="quiqqer-order-customerData-edit-street_no">
<span>{locale group="quiqqer/frontend-users" var="street_no"}*</span>
{assign var=r value=""}
{if $settings.street_no.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="street_no"}
{if $settings.street_no.required}*{/if}
</span>
<input type="text"
name="street_no"
autocomplete="address-line1"
value="{$Address->getAttribute('street_no')|escape:'html'}"
required
{$r}
/>
</label>
{/if}
{if $settings.zip.show}
<label class="quiqqer-order-customerData-edit-zip">
<span>{locale group="quiqqer/frontend-users" var="zip"}</span>
{assign var=r value=""}
{if $settings.zip.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="zip"}
{if $settings.zip.required}*{/if}
</span>
<input type="text"
name="zip"
autocomplete="postal-code"
value="{$Address->getAttribute('zip')|escape:'html'}"
{$r}
/>
</label>
{/if}
{if $settings.city.show}
<label class="quiqqer-order-customerData-edit-city">
<span>{locale group="quiqqer/frontend-users" var="city"}*</span>
{assign var=r value=""}
{if $settings.city.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="city"}
{if $settings.city.required}*{/if}
</span>
<input type="text"
name="city"
autocomplete="city-name"
value="{$Address->getAttribute('city')|escape:'html'}"
required
{$r}
/>
</label>
{/if}
{if $settings.country.show}
<label class="quiqqer-order-customerData-edit-country">
<span>{locale group="quiqqer/frontend-users" var="country"}*</span>
<span>
{locale group="quiqqer/frontend-users" var="country"}
{if $settings.country.required}*{/if}
</span>
{control name="country" control="QUI\Countries\Controls\Select"
selected=$Address->getAttribute('country')
required="required"
required=$settings.country.required
use-geo-location=true
}
</label>
{/if}
{if $settings.phone.show}
<label class="quiqqer-order-customerData-edit-tel">
<span>{locale group="quiqqer/order" var="ordering.step.title.CustomerData.tel"}</span>
<input type="text"
{assign var=r value=""}
{if $settings.phone.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="phone"}
{if $settings.phone.required}*{/if}
</span>
<input type="tel"
name="tel"
autocomplete="tel"
value="{if $Address->getPhone()}{$Address->getPhone()}{/if}"
{$r}
/>
</label>
{/if}
{if $settings.mobile.show}
<label class="quiqqer-order-customerData-edit-tel">
{assign var=r value=""}
{if $settings.mobile.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="mobile"}
{if $settings.mobile.required}*{/if}
</span>
<input type="tel"
name="mobile"
autocomplete="mobile"
value="{if $Address->getMobile()}{$Address->getMobile()}{/if}"
{$r}
/>
</label>
{/if}
{if $settings.fax.show}
<label class="quiqqer-order-customerData-edit-tel">
{assign var=r value=""}
{if $settings.fax.required}{assign var=r value="required"}{/if}
<span>
{locale group="quiqqer/frontend-users" var="fax"}
{if $settings.fax.required}*{/if}
</span>
<input type="tel"
name="fax"
autocomplete="fax"
value="{if $Address->getFax()}{$Address->getFax()}{/if}"
{$r}
/>
</label>
{/if}
<input type="submit" name="save-edit-address"
value="{locale group='quiqqer/order' var='ordering.step.title.CustomerData.addressSave'}"
......
......@@ -84,7 +84,7 @@ public function getBody()
}
$isB2B = function () use ($User) {
$isUserB2B = function () use ($User) {
if (!$User) {
return '';
}
......@@ -128,17 +128,40 @@ public function getBody()
$this->setAttribute('data-validate', 0);
}
// frontend users address profile settings
try {
$Conf = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$settings = $Conf->getValue('profile', 'addressFields');
if (!empty($settings)) {
$settings = \json_decode($settings, true);
}
} catch (QUI\Exception $Exception) {
$settings = [];
}
$settings = QUI\FrontendUsers\Controls\Address\Address::checkSettingsArray($settings);
$businessTypeIsChangeable = !(QUI\ERP\Utils\Shop::isOnlyB2C() || QUI\ERP\Utils\Shop::isOnlyB2B());
$isB2B = QUI\ERP\Utils\Shop::isB2B();
$isB2C = QUI\ERP\Utils\Shop::isB2C();
$isOnlyB2B = QUI\ERP\Utils\Shop::isOnlyB2B();
$isOnlyB2C = QUI\ERP\Utils\Shop::isOnlyB2C();
$Engine->assign([
'User' => $User,
'Address' => $Address,
'Order' => $this->getOrder(),
'b2bSelected' => $isB2B(),
'b2bSelected' => $isUserB2B(),
'commentMessage' => $commentMessage,
'commentCustomer' => $commentCustomer,
'settings' => $settings,
'businessTypeIsChangeable' => !(QUI\ERP\Utils\Shop::isOnlyB2C() || QUI\ERP\Utils\Shop::isOnlyB2B()),
'isB2C' => QUI\ERP\Utils\Shop::isB2C(),
'isB2B' => QUI\ERP\Utils\Shop::isB2B(),
'businessTypeIsChangeable' => $businessTypeIsChangeable,
'isB2C' => $isB2C,
'isB2B' => $isB2B,
'isOnlyB2B' => $isOnlyB2B,
'isOnlyB2C' => $isOnlyB2C,
]);
return $Engine->fetch(\dirname(__FILE__).'/CustomerData.html');
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren