{# Provides customer type, salutation, title, firstname, lastname and birthday fields for address forms (e.g. registering a user, creating or updating an address) #}{% block component_address_personal_fields %} {% block component_address_personal_account_type %} {% if onlyCompanyRegistration or (config('core.loginRegistration.showAccountTypeSelection') and not hideCustomerTypeSelect) %} <div class="{{ formRowClass }}"> <div class="form-group col-md-3 col-sm-6 contact-type"> {% block component_address_personal_account_type_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}accountType"> {{ "account.personalTypeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_account_type_select %} {% if onlyCompanyRegistration or config('core.loginRegistration.showAccountTypeSelection') %} <select name="{% if prefix %}{{ prefix }}[accountType]{% else %}accountType{% endif %}" id="{{ idPrefix ~ prefix }}accountType" {% if onlyCompanyRegistration %}disabled{% endif %} required="required" class="{{ formSelectClass }} contact-select" data-form-field-toggle="true" data-form-field-toggle-target=".js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}" data-form-field-toggle-value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}" data-form-field-toggle-scope="{% if scope == 'parent' %}parent{% else %}all{% endif %}" {% if scope == 'parent' %}data-form-field-toggle-parent-selector={{ parentSelector }}{% endif %} > {% endif %} {% set isCompany = false %} {% if page.address.company or data.company is not empty %} {% set isCompany = true %} {% endif %} {% if onlyCompanyRegistration or (accountType and accountType == constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS')) %} {% set isCompany = true %} {% endif %} {% set isLoginPage = false %} {% if activeRoute == 'frontend.account.login.page' %} {% set isLoginPage = true %} {% endif %} {% if isLoginPage %} <option disabled="disabled" selected="selected" value=""> {{ "account.personalTypeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </option> {% endif %} {% if not onlyCompanyRegistration %} <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_PRIVATE') }}" {% if isCompany == false and isLoginPage == false %} selected="selected"{% endif %}> {{ "account.personalTypePrivate"|trans|sw_sanitize }} </option> {% endif %} <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}" {% if isCompany == true and isLoginPage == false %} selected="selected"{% endif %}> {{ "account.personalTypeBusiness"|trans|sw_sanitize }} </option> </select> {% if onlyCompanyRegistration %}<input type="hidden" name="accountType" value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}">{% endif %} {% endblock %} {% block component_address_personal_account_type_error %} {% endblock %} </div> </div> {% elseif not hideCustomerTypeSelect %} <input type="hidden" name="accountType"> {% endif %} {% endblock %} {% block component_address_personal_fields_salutation_title %} <div class="{{ formRowClass }}"> {% block component_address_personal_fields_salutation %} <div class="form-group col-md-3 col-sm-6"> {% block component_address_personal_fields_salutation_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}personalSalutation"> {{ "account.personalSalutationLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_form_salutation_select %} <select id="{{ idPrefix ~ prefix }}personalSalutation" class="{{ formSelectClass }}{% if formViolations.getViolations('/salutationId') is not empty %} is-invalid{% endif %}" name="{% if prefix %}{{ prefix }}[salutationId]{% else %}salutationId{% endif %}" required="required"> {% if not data.get('salutationId') %} <option disabled="disabled" selected="selected" value=""> {{ "account.personalSalutationPlaceholder"|trans|sw_sanitize }} </option> {% endif %} {% for salutation in page.salutations %} <option {% if salutation.id == data.get('salutationId') %} selected="selected" {% endif %} value="{{ salutation.id }}"> {{ salutation.translated.displayName }} </option> {% endfor %} </select> {% endblock %} {% block component_address_form_salutation_select_error %} {% if formViolations.getViolations('/salutationId') is not empty %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with { violationPath: '/salutationId' } %} {% endif %} {% endblock %} </div> {% endblock %} {% block component_address_personal_fields_title %} {% if config('core.loginRegistration.showTitleField') %} <div class="form-group col-md-3 col-sm-6"> {% block component_address_personal_fields_title_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}personalTitle"> {{ "account.personalTitleLabel"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_fields_title_input %} <input type="text" class="form-control" autocomplete="section-personal title" id="{{ idPrefix ~ prefix }}personalTitle" placeholder="{{ "account.personalTitlePlaceholder"|trans|striptags }}" name="{% if prefix %}{{ prefix }}[title]{% else %}title{% endif %}" value="{{ data.get('title') }}"> {% endblock %} </div> {% endif %} {% endblock %} </div> {% endblock %} {% block component_address_personal_fields_name %} <div class="{{ formRowClass }}"> {% block component_address_personal_fields_first_name %} <div class="form-group col-sm-6"> {% if formViolations.getViolations("/firstName") is not empty %} {% set violationPath = "/firstName" %} {% else %} {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "account.personalFirstNameLabel"|trans|sw_sanitize }) %} {% endif %} {% block component_address_personal_fields_first_name_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}personalFirstName"> {{ "account.personalFirstNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_fields_first_name_input %} <input type="text" class="form-control{% if violationPath is not empty %} is-invalid{% endif %}" autocomplete="section-personal given-name" id="{{ idPrefix ~ prefix }}personalFirstName" placeholder="{{ "account.personalFirstNamePlaceholder"|trans|striptags }}" name="{% if prefix %}{{ prefix }}[firstName]{% else %}firstName{% endif %}" value="{{ data.get('firstName') }}" data-form-validation-required {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %} required="required"> {% endblock %} {% block component_address_personal_fields_first_name_input_error %} {% if violationPath %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %} {% endif %} {% endblock %} </div> {% endblock %} {% block component_address_personal_fields_last_name %} <div class="form-group col-sm-6"> {% if formViolations.getViolations("/lastName") is not empty %} {% set violationPath = "/lastName" %} {% else %} {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "account.personalLastNameLabel"|trans|sw_sanitize }) %} {% endif %} {% block component_address_personal_fields_last_name_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}personalLastName"> {{ "account.personalLastNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_fields_last_name_input %} <input type="text" class="form-control{% if violationPath %} is-invalid{% endif %}" autocomplete="section-personal family-name" id="{{ idPrefix ~ prefix }}personalLastName" placeholder="{{ "account.personalLastNamePlaceholder"|trans|striptags }}" name="{% if prefix %}{{ prefix }}[lastName]{% else %}lastName{% endif %}" value="{{ data.get('lastName') }}" data-form-validation-required {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %} required="required"> {% endblock %} {% block component_address_personal_fields_last_name_input_error %} {% if violationPath %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %} {% endif %} {% endblock %} </div> {% endblock %} </div> {% endblock %} {% block component_address_personal_company %} {% if (onlyCompanyRegistration or config('core.loginRegistration.showAccountTypeSelection')) and activeRoute == 'frontend.account.profile.page' %} <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}"> {% block component_address_personal_company_fields %} <div class="{{ formRowClass }}"> {% block component_address_personal_company_name %} <div class="form-group col-12"> {% if formViolations.getViolations("/company") is not empty %} {% set violationPath = "/company" %} {% else %} {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "address.companyNameLabel"|trans|sw_sanitize }) %} {% endif %} {% block component_address_personal_company_name_label %} <label class="form-label" for="{{ idPrefix ~ prefix }}company"> {{ "address.companyNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_company_name_input %} <input type="text" class="form-control{% if violationPath %} is-invalid{% endif %}" id="{{ idPrefix ~ prefix }}company" placeholder="{{ "address.companyNamePlaceholder"|trans|striptags }}" name="company" value="{{ data.get('company') }}" data-form-validation-required {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %} required="required"> {% endblock %} {% block component_address_personal_company_name_input_error %} {% if violationPath %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %} {% endif %} {% endblock %} </div> {% endblock %} </div> {% endblock %} </div> {% endif %} {% endblock %} {% block component_address_personal_vat_id %} {% if showVatIdField %} {% if config('core.loginRegistration.showAccountTypeSelection') or onlyCompanyRegistration %} <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %} js-field-toggle-contact-type-vat-id"> {% block component_address_personal_vat_id_fields %} <div class="{{ formRowClass }}"> <div class="form-group col-12"> {% sw_include '@Storefront/storefront/component/address/address-personal-vat-id.html.twig' with { 'vatIds': data.get('vatIds'), 'editMode': true } %} </div> </div> {% endblock %} </div> {% endif %} {% endif %} {% endblock %} {% block component_address_personal_fields_birthday %} {% if showBirthdayField %} {% block component_address_personal_fields_birthday_label %} <label for="{{ idPrefix ~ prefix }}personalBirthday"> {{ "account.personalBirthdayLabel"|trans|sw_sanitize }}{{ config('core.loginRegistration.birthdayFieldRequired') ? "general.required"|trans|sw_sanitize }} </label> {% endblock %} {% block component_address_personal_fields_birthday_selects %} <div class="{{ formRowClass }}"> {% block component_address_personal_fields_birthday_select_day %} <div class="form-group col-md-2 col-4"> <select id="{{ idPrefix ~ prefix }}personalBirthday" name="{% if prefix %}{{ prefix }}[birthdayDay]{% else %}birthdayDay{% endif %}" class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayDay') is not empty %} is-invalid{% endif %}" {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}> {% if not data.get('birthdayDay') %} <option selected="selected" value=""> {{ "account.personalBirthdaySelectDay"|trans|sw_sanitize }} </option> {% endif %} {% for day in range(1, 31) %} <option value="{{ day }}" {% if day == data.get('birthdayDay') %} selected="selected"{% endif %}> {{ day }} </option> {% endfor %} </select> {% block component_address_personal_fields_birthday_select_day_error %} {% if formViolations.getViolations('/birthdayDay') is not empty %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with { violationPath: '/birthdayDay' } %} {% endif %} {% endblock %} </div> {% endblock %} {% block component_address_personal_fields_birthday_select_month %} <div class="form-group col-md-2 col-4"> <select name="{% if prefix %}{{ prefix }}[birthdayMonth]{% else %}birthdayMonth{% endif %}" class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayMonth') is not empty %} is-invalid{% endif %}" {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}> {% if not data.get('birthdayMonth') %} <option selected="selected" value=""> {{ "account.personalBirthdaySelectMonth"|trans|sw_sanitize }} </option> {% endif %} {% for month in range(1, 12) %} <option value="{{ month }}" {% if month == data.get('birthdayMonth') %} selected="selected"{% endif %}> {{ month }} </option> {% endfor %} </select> {% block component_address_personal_fields_birthday_select_month_error %} {% if formViolations.getViolations('/birthdayMonth') is not empty %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with { violationPath: '/birthdayMonth' } %} {% endif %} {% endblock %} </div> {% endblock %} {% block component_address_personal_fields_birthday_select_year %} <div class="form-group col-md-2 col-4"> {% set currentYear = "now"|date('Y') %} {% set startYear = currentYear - 120 %} <select name="{% if prefix %}{{ prefix }}[birthdayYear]{% else %}birthdayYear{% endif %}" class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayYear') is not empty %} is-invalid{% endif %}" {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}> {% if not data.get('birthdayYear') %} <option selected="selected" value=""> {{ "account.personalBirthdaySelectYear"|trans|sw_sanitize }} </option> {% endif %} {% for year in range(currentYear, startYear) %} <option value="{{ year }}" {% if year == data.get('birthdayYear') %} selected="selected"{% endif %}> {{ year }} </option> {% endfor %} </select> {% block component_address_personal_fields_birthday_select_year_error %} {% if formViolations.getViolations('/birthdayYear') is not empty %} {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with { violationPath: '/birthdayYear' } %} {% endif %} {% endblock %} </div> {% endblock %} </div> {% endblock %} {% endif %} {% endblock %}{% endblock %}