<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">sales_rule_form.sales_rule_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">Cart Price Rule</item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
    </argument>
    <settings>
        <buttons>
            <button name="delete" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\DeleteButton"/>
            <button name="save_and_continue" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\SaveAndContinueButton"/>
            <button name="reset" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\ResetButton"/>
            <button name="save" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\SaveButton"/>
            <button name="back">
                <url path="*/*/"/>
                <class>back</class>
                <label translate="true">Back</label>
            </button>
        </buttons>
        <namespace>sales_rule_form</namespace>
        <dataScope>data</dataScope>
        <deps>
            <dep>sales_rule_form.sales_rule_form_data_source</dep>
        </deps>
    </settings>
    <dataSource name="sales_rule_form_data_source">
        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
            </item>
        </argument>
        <settings>
            <submitUrl path="sales_rule/promo_quote/save"/>
        </settings>
        <dataProvider class="Magento\SalesRule\Model\Rule\DataProvider" name="sales_rule_form_data_source">
            <settings>
                <requestFieldName>id</requestFieldName>
                <primaryFieldName>rule_id</primaryFieldName>
            </settings>
        </dataProvider>
    </dataSource>
    <fieldset name="rule_information" sortOrder="10">
        <settings>
            <collapsible>true</collapsible>
            <opened>true</opened>
            <label translate="true">Rule Information</label>
        </settings>
        <field name="name" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Rule Name</label>
                <visible>true</visible>
                <dataScope>name</dataScope>
            </settings>
        </field>
        <field name="description" formElement="textarea">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <label translate="true">Description</label>
                <visible>true</visible>
                <dataScope>description</dataScope>
            </settings>
        </field>
        <field name="is_active" formElement="checkbox">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                    <item name="default" xsi:type="number">1</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>boolean</dataType>
                <label translate="true">Active</label>
            </settings>
            <formElements>
                <checkbox>
                    <settings>
                        <valueMap>
                            <map name="false" xsi:type="number">0</map>
                            <map name="true" xsi:type="number">1</map>
                        </valueMap>
                        <prefer>toggle</prefer>
                    </settings>
                </checkbox>
            </formElements>
        </field>
        <field name="website_ids" formElement="multiselect">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>number</dataType>
                <tooltip>
                    <link>https://experienceleague.adobe.com/docs/commerce-admin/start/setup/websites-stores-views.html#scope-settings</link>
                    <description>What is this?</description>
                </tooltip>
                <label translate="true">Websites</label>
                <dataScope>website_ids</dataScope>
            </settings>
        </field>
        <field name="customer_group_ids" formElement="multiselect">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>number</dataType>
                <label translate="true">Customer Groups</label>
                <dataScope>customer_group_ids</dataScope>
            </settings>
        </field>
        <field name="coupon_type" component="Magento_SalesRule/js/form/element/coupon-type" formElement="select">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                    <item name="displayOnlyForCouponType" xsi:type="string">2</item>
                </item>
            </argument>
            <settings>
                <switcherConfig>
                    <rules>
                        <rule name="0">
                            <value>1</value>
                            <actions>
                                <action name="0">
                                    <target>sales_rule_form.sales_rule_form.rule_information.coupon_code</target>
                                    <callback>hide</callback>
                                </action>
                                <action name="1">
                                    <target>sales_rule_form.sales_rule_form.rule_information.use_auto_generation</target>
                                    <callback>hide</callback>
                                </action>
                                <action name="2">
                                    <target>sales_rule_form.sales_rule_form.rule_information.uses_per_coupon</target>
                                    <callback>hide</callback>
                                </action>
                            </actions>
                        </rule>
                        <rule name="1">
                            <value>2</value>
                            <actions>
                                <action name="0">
                                    <target>sales_rule_form.sales_rule_form.rule_information.coupon_code</target>
                                    <callback>show</callback>
                                </action>
                                <action name="1">
                                    <target>sales_rule_form.sales_rule_form.rule_information.use_auto_generation</target>
                                    <callback>show</callback>
                                </action>
                                <action name="2">
                                    <target>sales_rule_form.sales_rule_form.rule_information.uses_per_coupon</target>
                                    <callback>show</callback>
                                </action>
                            </actions>
                        </rule>
                        <rule name="2">
                            <value>3</value>
                            <actions>
                                <action name="0">
                                    <target>sales_rule_form.sales_rule_form.rule_information.coupon_code</target>
                                    <callback>hide</callback>
                                </action>
                                <action name="1">
                                    <target>sales_rule_form.sales_rule_form.rule_information.use_auto_generation</target>
                                    <callback>hide</callback>
                                </action>
                                <action name="2">
                                    <target>sales_rule_form.sales_rule_form.rule_information.uses_per_coupon</target>
                                    <callback>show</callback>
                                </action>
                            </actions>
                        </rule>
                    </rules>
                    <enabled>true</enabled>
                </switcherConfig>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>number</dataType>
                <label translate="true">Coupon</label>
                <visible>true</visible>
                <dataScope>coupon_type</dataScope>
            </settings>
        </field>
        <field name="coupon_code" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Coupon Code</label>
                <visible>true</visible>
                <dataScope>coupon_code</dataScope>
            </settings>
        </field>
        <field name="use_auto_generation" formElement="checkbox">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                    <item name="default" xsi:type="number">0</item>
                </item>
            </argument>
            <settings>
                <switcherConfig>
                    <rules>
                        <rule name="0">
                            <value>0</value>
                            <actions>
                                <action name="0">
                                    <target>sales_rule_form.sales_rule_form.rule_information.coupon_code</target>
                                    <callback>enable</callback>
                                </action>
                            </actions>
                        </rule>
                        <rule name="1">
                            <value>1</value>
                            <actions>
                                <action name="0">
                                    <target>sales_rule_form.sales_rule_form.rule_information.coupon_code</target>
                                    <callback>disable</callback>
                                </action>
                            </actions>
                        </rule>
                    </rules>
                    <enabled>true</enabled>
                </switcherConfig>
                <notice translate="true">
                    If you select and save the rule you will be able to generate multiple coupon codes.
                </notice>
                <dataType>boolean</dataType>
                <label> </label>
                <visible>true</visible>
                <dataScope>use_auto_generation</dataScope>
            </settings>
            <formElements>
                <checkbox>
                    <settings>
                        <description translate="true">Use Auto Generation</description>
                        <valueMap>
                            <map name="false" xsi:type="number">0</map>
                            <map name="true" xsi:type="number">1</map>
                        </valueMap>
                    </settings>
                </checkbox>
            </formElements>
        </field>
        <field name="uses_per_coupon" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-digits" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Uses per Coupon</label>
                <dataScope>uses_per_coupon</dataScope>
            </settings>
        </field>
        <field name="uses_per_customer" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-digits" xsi:type="boolean">true</rule>
                </validation>
                <notice translate="true">
                    Usage limit enforced for logged in customers only.
                </notice>
                <dataType>text</dataType>
                <label translate="true">Uses per Customer</label>
                <dataScope>uses_per_customer</dataScope>
            </settings>
        </field>
        <field name="from_date" formElement="date">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-date" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">From</label>
                <visible>true</visible>
                <dataScope>from_date</dataScope>
            </settings>
        </field>
        <field name="to_date" formElement="date">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-date" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">To</label>
                <visible>true</visible>
                <dataScope>to_date</dataScope>
            </settings>
        </field>
        <field name="sort_order" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-digits" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Priority</label>
                <dataScope>sort_order</dataScope>
            </settings>
        </field>
        <field name="is_rss" formElement="checkbox">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                    <item name="default" xsi:type="number">1</item>
                </item>
            </argument>
            <settings>
                <dataType>boolean</dataType>
                <label translate="true">Public In RSS Feed</label>
            </settings>
            <formElements>
                <checkbox>
                    <settings>
                        <valueMap>
                            <map name="false" xsi:type="number">0</map>
                            <map name="true" xsi:type="number">1</map>
                        </valueMap>
                        <prefer>toggle</prefer>
                    </settings>
                </checkbox>
            </formElements>
        </field>
    </fieldset>
    <fieldset name="conditions" sortOrder="20">
        <settings>
            <collapsible>true</collapsible>
            <label translate="true">Conditions</label>
        </settings>
        <container name="conditions_apply_to" sortOrder="10">
            <htmlContent name="html_content">
                <block name="conditions_apply_to" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Conditions" />
            </htmlContent>
        </container>
    </fieldset>
    <fieldset name="actions" sortOrder="30">
        <settings>
            <collapsible>true</collapsible>
            <label translate="true">Actions</label>
        </settings>
        <field name="simple_action" formElement="select">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <dataType>number</dataType>
                <label translate="true">Apply</label>
                <dataScope>simple_action</dataScope>
            </settings>
        </field>
        <field name="discount_amount" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                    <rule name="validate-number" xsi:type="boolean">true</rule>
                    <rule name="validate-zero-or-greater" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Discount Amount</label>
                <dataScope>discount_amount</dataScope>
            </settings>
        </field>
        <field name="discount_qty" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-number" xsi:type="boolean">true</rule>
                    <rule name="validate-zero-or-greater" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Maximum Qty Discount is Applied To</label>
                <dataScope>discount_qty</dataScope>
            </settings>
        </field>
        <field name="discount_step" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-number" xsi:type="boolean">true</rule>
                    <rule name="validate-zero-or-greater" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <label translate="true">Discount Qty Step (Buy X)</label>
                <dataScope>discount_step</dataScope>
            </settings>
        </field>
        <field name="apply_to_shipping" component="Magento_SalesRule/js/form/element/apply_to_shipping" formElement="checkbox">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                    <item name="default" xsi:type="number">0</item>
                    <item name="notices" xsi:type="array">
                        <item name="0" xsi:type="string" translate="true">Discount amount is applied to subtotal only</item>
                        <item name="1" xsi:type="string" translate="true">Discount amount is applied to subtotal and shipping amount separately</item>
                    </item>
                    <item name="noticePerSimpleAction" xsi:type="array">
                        <item name="cart_fixed" xsi:type="string" translate="true">Discount amount is distributed among subtotal and shipping amount. Cases when multiple discounts applied to shipping amount are not supported. The option is going to be removed in future releases.</item>
                    </item>
                </item>
            </argument>
            <settings>
                <dataType>boolean</dataType>
                <label translate="true">Apply to Shipping Amount</label>
            </settings>
            <formElements>
                <checkbox>
                    <settings>
                        <valueMap>
                            <map name="false" xsi:type="number">0</map>
                            <map name="true" xsi:type="number">1</map>
                        </valueMap>
                        <prefer>toggle</prefer>
                    </settings>
                </checkbox>
            </formElements>
        </field>
        <field name="stop_rules_processing" formElement="checkbox">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="default" xsi:type="number">1</item>
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <dataType>boolean</dataType>
                <label translate="true">Discard subsequent rules</label>
            </settings>
            <formElements>
                <checkbox>
                    <settings>
                        <valueMap>
                            <map name="false" xsi:type="number">0</map>
                            <map name="true" xsi:type="number">1</map>
                        </valueMap>
                        <prefer>toggle</prefer>
                    </settings>
                </checkbox>
            </formElements>
        </field>
        <container name="actions_apply_to" sortOrder="40">
            <htmlContent name="html_content">
                <block name="actions_apply_to" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Actions"/>
            </htmlContent>
        </container>
    </fieldset>
    <fieldset name="labels" sortOrder="40">
        <settings>
            <collapsible>true</collapsible>
            <label translate="true">Labels</label>
        </settings>
        <field name="store_labels[0]" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">sales_rule</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <label translate="true">Default Rule Label for All Store Views</label>
                <dataScope>store_labels[0]</dataScope>
            </settings>
        </field>
        <container name="store_view_labels" sortOrder="40">
            <htmlContent name="html_content">
                <block name="store_view_labels" class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Labels">
                    <arguments>
                        <argument name="target_form" xsi:type="string">sales_rule_form</argument>
                    </arguments>
                </block>
            </htmlContent>
        </container>
    </fieldset>
    <fieldset name="manage_coupon_codes" sortOrder="50" component="Magento_SalesRule/js/form/element/manage-coupon-codes">
        <settings>
            <collapsible>true</collapsible>
            <label translate="true">Manage Coupon Codes</label>
        </settings>
        <htmlContent name="html_content">
            <block class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons" name="promo_sales_rule_edit_tab_coupons" as="promo_sales_rule_edit_tab_coupons" template="Magento_SalesRule::tab/coupons.phtml">
                <block class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Form" name="promo_quote_edit_tab_coupons_form"/>
                <block class="Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid" name="promo_quote_edit_tab_coupons_grid"/>
            </block>
        </htmlContent>
    </fieldset>
</form>
