{% extends '@SyliusShop/layout.html.twig' %}
{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
{% block content %}
<script>
window.crfqTranslations = {
categoryRequired: '{{ 'open_marketplace.crfq.validation.category_required'|trans }}',
categoryRequiredHeader: '{{ 'open_marketplace.crfq.validation.category_required_header'|trans }}',
firstNameRequired: '{{ 'open_marketplace.crfq.validation.first_name_required'|trans }}',
firstNameRequiredHeader: '{{ 'open_marketplace.crfq.validation.first_name_required_header'|trans }}',
lastNameRequired: '{{ 'open_marketplace.crfq.validation.last_name_required'|trans }}',
lastNameRequiredHeader: '{{ 'open_marketplace.crfq.validation.last_name_required_header'|trans }}',
emailRequired: '{{ 'open_marketplace.crfq.validation.email_required'|trans }}',
emailRequiredHeader: '{{ 'open_marketplace.crfq.validation.email_required_header'|trans }}',
emailInvalid: '{{ 'open_marketplace.crfq.validation.email_invalid'|trans }}',
emailInvalidHeader: '{{ 'open_marketplace.crfq.validation.email_invalid_header'|trans }}',
companyRequired: '{{ 'open_marketplace.crfq.validation.company_required'|trans }}',
companyRequiredHeader: '{{ 'open_marketplace.crfq.validation.company_required_header'|trans }}',
agreeTermsRequired: '{{ 'open_marketplace.crfq.validation.agree_terms_required'|trans }}',
agreeTermsRequiredHeader: '{{ 'open_marketplace.crfq.validation.agree_terms_required_header'|trans }}',
registrationSuccess: '{{ 'open_marketplace.crfq.validation.registration_success'|trans }}',
registrationSuccessHeader: '{{ 'open_marketplace.crfq.validation.registration_success_header'|trans }}',
registrationFailed: '{{ 'open_marketplace.crfq.validation.registration_failed'|trans }}',
registrationFailedHeader: '{{ 'open_marketplace.crfq.validation.registration_failed_header'|trans }}',
registrationError: '{{ 'open_marketplace.crfq.validation.registration_error'|trans }}',
registrationErrorHeader: '{{ 'open_marketplace.crfq.validation.registration_error_header'|trans }}',
verificationCodeRequired: '{{ 'open_marketplace.crfq.validation.verification_code_required'|trans }}',
verificationCodeRequiredHeader: '{{ 'open_marketplace.crfq.validation.verification_code_required_header'|trans }}',
emailNotFound: '{{ 'open_marketplace.crfq.validation.email_not_found'|trans }}',
emailNotFoundHeader: '{{ 'open_marketplace.crfq.validation.email_not_found_header'|trans }}',
verificationFailed: '{{ 'open_marketplace.crfq.validation.verification_failed'|trans }}',
verificationFailedHeader: '{{ 'open_marketplace.crfq.validation.verification_failed_header'|trans }}',
verificationError: '{{ 'open_marketplace.crfq.validation.verification_error'|trans }}',
verificationErrorHeader: '{{ 'open_marketplace.crfq.validation.verification_error_header'|trans }}',
requiredField: '{{ 'open_marketplace.crfq.validation.required_field'|trans }}',
sellersRequired: '{{ 'open_marketplace.crfq.validation.sellers_required'|trans }}',
detailsMinCharacters: '{{ 'open_marketplace.crfq.validation.details_min_characters'|trans }}',
selectCategoryFirst: '{{ 'open_marketplace.crfq.dropdown.select_category_first'|trans }}',
selectSubcategory: '{{ 'open_marketplace.crfq.dropdown.select_subcategory'|trans }}',
noSubcategories: '{{ 'open_marketplace.crfq.dropdown.no_subcategories'|trans }}',
errorLoading: '{{ 'open_marketplace.crfq.dropdown.error_loading'|trans }}',
suppliers: '{{ 'app.ui.header.suppliers'|trans }}'
};
</script>
{% if not is_granted('IS_AUTHENTICATED_FULLY') %}
<div class="ui grid stackable">
<div
class="eight wide computer sixteen wide mobile column crfq-intro-column">
<!-- Top badge -->
<div class="ui blue basic label crfq-badge">
<i class="check circle icon"></i>
{{ 'open_marketplace.crfq.wizard.verified_suppliers_badge'|trans }}
</div>
<!-- Main heading -->
<h1 class="ui huge header crfq-main-heading">
{{ 'open_marketplace.crfq.wizard.main_heading'|trans|raw }}
</h1>
<!-- Description text -->
<p class="crfq-description">
{{ 'open_marketplace.crfq.wizard.description'|trans|raw }}
</p>
<!-- Checkmark feature -->
<div class="ui basic segment crfq-feature">
<i class="big shield icon blue"></i>
<strong>{{ 'open_marketplace.crfq.wizard.feature_verified'|trans }}</strong>
</div>
</div>
<div class="one wide computer only column"></div>
<div
class="seven wide computer floated right column">
<!-- Placeholder for world map image -->
<div class="ui fluid image">
<img src="{{ asset('build/shop/images/suppliers_map.svg', 'shop') }}" alt="{{ 'open_marketplace.crfq.wizard.map_alt'|trans }}" class="logo"/>
</div>
</div>
</div>
<!-- Steps section -->
<div class="ui hidden divider"></div>
<div class="ui hidden divider"></div>
<!-- Message container for displaying errors/success messages -->
<div id="message-container" style="display: none;">
<div class="ui message" id="notification-message">
<i class="close icon"></i>
<div class="header" id="message-header"></div>
<p id="message-content"></p>
</div>
</div>
<div
class="ui basic segment steps-wrapper" data-authenticated="{{ is_granted('IS_AUTHENTICATED_FULLY') ? 'true' : 'false' }}">
<!-- Step 1: Category Selection -->
<div class="step step-1 active" data-step="1">
<div class="ui equal width stackable grid">
<div class="stretched row">
<div class="twelve wide column">
<h2>{{ 'open_marketplace.crfq.wizard.step1_title'|trans }}</h2>
</div>
<div class="middle aligned column">
<h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step1of3'|trans }}</h5>
</div>
</div>
<div class="stretched row">
<div class="column">
<div class="ui segment center aligned taxon taxon-selector active" data-taxon-code="components">{{ 'open_marketplace.crfq.wizard.machine_components'|trans }}</div>
</div>
<div class="column">
<div class="ui segment center aligned taxon taxon-selector" data-taxon-code="equipment">{{ 'open_marketplace.crfq.wizard.equipment_production'|trans }}</div>
</div>
<div class="column">
<div class="ui segment center aligned taxon taxon-selector" data-taxon-code="systems">{{ 'open_marketplace.crfq.wizard.complete_systems'|trans }}</div>
</div>
<div class="column">
<div class="ui segment center aligned taxon taxon-selector" data-taxon-code="materials">{{ 'open_marketplace.crfq.wizard.materials'|trans }}</div>
</div>
</div>
</div>
<div class="ui hidden divider"></div>
<div id="taxon-dropdown-wrapper" data-taxon-leafs-url="{{ path('app_crfq_taxon_leafs') }}">
<div class="ui fluid search selection dropdown" id="taxon-child-dropdown">
<input type="hidden" name="taxon" id="selected-taxon">
<i class="dropdown icon"></i>
<div class="default text">{{ 'open_marketplace.crfq.wizard.select_category_first'|trans }}</div>
<div class="menu"></div>
</div>
</div>
<div class="ui hidden divider computer only"></div>
<div class="step-navigation">
{% if not is_mobile() %}
<button type="button" class="ui labeled icon button primary next-step" data-next="2">
<i class="arrow right icon"></i>
{{ 'open_marketplace.crfq.wizard.next'|trans }}
</button>
{% else %}
<button type="button" class="ui button primary next-step" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}" data-next="2">
{{ 'open_marketplace.crfq.wizard.next'|trans }}
</button>
{% endif %}
</div>
</div>
<!-- Step 2: Contact Details -->
<div class="step step-2" data-step="2" style="display: none;">
<div class="ui equal width stackable grid">
<div class="stretched row">
<div class="twelve wide column">
<h2 class="step-info">{{ 'open_marketplace.crfq.wizard.step2_info'|trans({'%count%': '<span class="suppliers-count"></span>'})|raw }}</h2>
</div>
<div class="middle aligned column">
<h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step2of3'|trans }}</h5>
</div>
</div>
</div>
<p class="step-title">{{ 'open_marketplace.crfq.wizard.step2_title'|trans }}</p>
<div class="ui form large contact-form">
<div class="two fields">
<div class="field">
<input type="text" name="firstName" id="contact-first-name" placeholder="{{ 'open_marketplace.crfq.wizard.first_name'|trans }}" required>
</div>
<div class="field">
<input type="text" name="lastName" id="contact-last-name" placeholder="{{ 'open_marketplace.crfq.wizard.last_name'|trans }}" required>
</div>
</div>
<div class="two fields">
<div class="field">
<input type="email" name="email" id="contact-email" placeholder="{{ 'open_marketplace.crfq.wizard.email'|trans }}" required>
</div>
<div class="field">
<input type="text" name="companyName" id="contact-company" placeholder="{{ 'open_marketplace.crfq.wizard.company_name'|trans }}" required>
</div>
</div>
<div class="ui equal width stackable grid middle aligned">
<div class="row">
<div class="column">
<div class="ui checkbox">
<input type="checkbox" name="agreeTerms" id="agree-terms" required>
<label>{{ 'open_marketplace.crfq.wizard.agree_terms'|trans({'%privacy_policy%': '<a href="#" target="_blank">' ~ 'open_marketplace.crfq.wizard.privacy_policy'|trans ~ '</a>', '%terms_of_use%': '<a href="#" target="_blank">' ~ 'open_marketplace.crfq.wizard.terms_of_use'|trans ~ '</a>'})|raw }}</label>
</div>
</div>
<div class="right aligned column">
<a href="{{ path('sylius_shop_login') }}">{{ 'open_marketplace.crfq.wizard.sign_in'|trans }}</a>
{{ 'open_marketplace.crfq.wizard.sign_in_details'|trans }}
</div>
</div>
</div>
</div>
<div class="ui hidden divider"></div>
<div class="step-navigation">
<button type="button" class="ui button back-step" data-prev="1">
{{ 'open_marketplace.crfq.wizard.back'|trans }}
</button>
{% if not is_mobile() %}
<button type="button" class="ui labeled icon button primary right floated next-step" data-next="3">
<i class="arrow right icon"></i>
{{ 'open_marketplace.crfq.wizard.next'|trans }}
</button>
{% else %}
<button type="button" class="ui button primary right floated next-step" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}" data-next="3">
{{ 'open_marketplace.crfq.wizard.next'|trans }}
</button>
{% endif %}
</div>
</div>
<!-- Step 3: Placeholder for future implementation -->
<div class="step step-3" data-step="3" style="display: none;">
<div class="ui equal width stackable grid">
<div class="stretched row">
<div class="twelve wide column">
<h2 class="step-info">{{ 'open_marketplace.crfq.wizard.step3_title'|trans }}</h2>
</div>
<div class="middle aligned column">
<h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step3of3'|trans }}</h5>
</div>
</div>
</div>
<div class="ui hidden divider"></div>
<div class="ui large form">
<div class="six wide field">
<input type="text" id="verification-code" name="app_crfq[verificationCode]" placeholder="{{ 'open_marketplace.crfq.wizard.code_placeholder'|trans }}" maxlength="20" required>
</div>
</div>
<div class="ui hidden divider"></div>
<div class="step-navigation">
<button type="button" class="ui button back-step" data-prev="2">
{{ 'open_marketplace.crfq.wizard.back'|trans }}
</button>
{% if not is_mobile() %}
<button type="submit" class="ui labeled icon button primary right floated">
<i class="arrow right icon"></i>
{{ 'open_marketplace.crfq.wizard.show_suppliers'|trans }}
</button>
{% else %}
<button type="submit" class="ui button primary right floated" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}">
{{ 'open_marketplace.crfq.wizard.next'|trans }}
</button>
{% endif %}
</div>
</div>
</div>
<div class="ui hidden divider"></div>
<div class="ui hidden divider"></div>
{% else %}
<div class="suppliers">
{% set organization = app.user.customer.organization|default(null) %}
{% if organization %}
{% set buyerConfiguration = buyer_crfq_configuration(organization) %}
{% if not buyerConfiguration.hasSubscription %}
{% if buyerConfiguration.hasFreeQuota %}
<div class="ui message info">
{{ 'app.ui.crfq.free_quota_available_to_create'|trans({
'%freeQuotaUsed%': buyerConfiguration.freeQuotaUsed,
'%freeQuotaMaxQuantity%': buyerConfiguration.freeQuotaMaxQuantity,
'%url%': path('open_marketplace_vendor_seller_plan_index')
})|raw }}
</div>
{% else %}
<div class="ui message warning">
{{ 'app.ui.crfq.free_quota_reached_to_create'|trans({
'%freeQuotaUsed%': buyerConfiguration.freeQuotaUsed,
'%freeQuotaMaxQuantity%': buyerConfiguration.freeQuotaMaxQuantity,
'%url%': path('open_marketplace_vendor_seller_plan_index')
})|raw }}
</div>
{% endif %}
{% endif %}
{% endif %}
{% if not buyerConfiguration is defined or (buyerConfiguration is defined and buyerConfiguration.canCRFQ) %}
{{ form_start(form, {
'action': path('app_crfq_create'),
'attr': {
'class': 'ui loadable crfq-create hyfindr-form form',
'novalidate': 'novalidate',
'data-get-organization-list-url': path('app_crfq_create_organization_list')
}
}) }}
{% include 'Context/Shop/RFQCategory/_form.html.twig' %}
{{ form_end(form, {'render_rest': false}) }}
{% endif %}
</div>
{% endif %}
{% endblock %}