0

I have an module that I need to load some informations when the user clicks at the sync button (backend). The problem is, how to retrieve the values from the js file and put them in the form.

view/adminhtml/ui_component/addfat_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">addfat_form.addfat_form_data_source</item>
            <item name="deps" xsi:type="string">addfat_form.addfat_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">Nova fatura</item>
        <item name="config" xsi:type="array">
            <item name="dataScope" xsi:type="string">data</item>
            <item name="namespace" xsi:type="string">addfat_form</item>
        </item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
        <item name="buttons" xsi:type="array">
            <item name="btn_load_client" xsi:type="string">PereiraTech\Faturamento\Block\Adminhtml\Buttons\Edit\Button\CustomButton</item>
        </item>        
    </argument>
    <dataSource name="addfat_form_data_source">
        <argument name="dataProvider" xsi:type="configurableObject">
            <argument name="class" xsi:type="string">PereiraTech\Faturamento\Model\DataProvider</argument>
            <argument name="name" xsi:type="string">addfat_form_data_source</argument>
            <argument name="primaryFieldName" xsi:type="string">fat_id</argument>
            <argument name="requestFieldName" xsi:type="string">fat_id</argument>
        </argument>
        <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>
    </dataSource>
    <fieldset name="title">        
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="collapsible" xsi:type="boolean">false</item>
                <item name="label" xsi:type="string" translate="true">Nova fatura</item>
                <item name="sortOrder" xsi:type="number">20</item>
            </item>
        </argument>
        <field name="fat_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">ID da fatura</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">fat_id</item>
                    <item name="disabled" xsi:type="boolean">true</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>        
        <field name="cliente_mail">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">column</item>
                    <item name="label" xsi:type="string" translate="true">Email do cliente</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">employee</item>
                    <item name="dataScope" xsi:type="string">employee_id</item>                    
                </item>              
            </argument>                        
        </field>             
        <field name="cliente">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Cliente</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">cliente</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="cliente_cpf_cnpj">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">CPF/CNPJ</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">cliente_cpf_cnpj</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="data_inicio">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="label" xsi:type="string" translate="true">De</item>
                    <item name="formElement" xsi:type="string">date</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="sortOrder" xsi:type="number">20</item>
                    <item name="dataScope" xsi:type="string">data_inicio</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                    <item name="options" xsi:type="array">
                        <item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>                        
                        <item name="showsTime" xsi:type="boolean">false</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="data_fim">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="label" xsi:type="string" translate="true">Até</item>
                    <item name="formElement" xsi:type="string">date</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="sortOrder" xsi:type="number">21</item>
                    <item name="dataScope" xsi:type="string">data_fim</item>                    
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                    <item name="options" xsi:type="array">
                        <item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>                        
                        <item name="showsTime" xsi:type="boolean">false</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="vendas_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Compras</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">multiselect</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">vendas_id</item>
                </item>
                <item name="options" xsi:type="object">PereiraTech\Faturamento\Model\DataProvider</item>
            </argument>
        </field>        
        <field name="subtotal">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">number</item>
                    <item name="label" xsi:type="string" translate="true">Subtotal:</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">subtotal</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>        
        <field name="desconto">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">number</item>
                    <item name="label" xsi:type="string" translate="true">Desconto</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">desconto</item>
                </item>
            </argument>
        </field>
        <field name="total">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">number</item>
                    <item name="label" xsi:type="string" translate="true">Total</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">total</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="pago">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">boolean</item>
                    <item name="label" xsi:type="string" translate="true">Pago</item>
                    <item name="formElement" xsi:type="string">checkbox</item>
                    <item name="source" xsi:type="string">fatura</item>
                    <item name="dataScope" xsi:type="string">pago</item>
                    <item name="prefer" xsi:type="string">toggle</item>                    
                    <item name="valueMap" xsi:type="array">
                        <item name="true" xsi:type="number">1</item>
                        <item name="false" xsi:type="number">2</item>
                    </item>
                    <item name="default" xsi:type="number">1</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="sync" sortOrder="40" formElement="button">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="title" xsi:type="string">Sync</item>
                    <item name="align" xsi:type="string">center</item>  
                    <item name="component" xsi:type="string">PereiraTech_Faturamento/js/form/element/options</item>                                      
                </item>
            </argument>
        </field>      
    </fieldset>
</form>

view/web/js/form/element/options.js

define([      
    'uiRegistry',  
    'Magento_Ui/js/form/components/button',
    'Magento_Ui/js/modal/modal'
], function (uiRegistry, select, modal) {
    'use strict';

    return select.extend({


    action: function(){            
            alert('ok');
            return this._super();
        },
    });
});

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.