<commit_before><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.0.xsd">
    
    <grid name="stock-move-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="fromStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="toStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <field name="toAddressStr" hidden="true" form-view="address-form" grid-view="address-grid"/>
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>
    
     <grid name="stock-move-out-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
			<button name="printPickingStockMoveGrid" title="Print Picking StockMove(s)" onClick="action-print-picking-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="fromStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="fromAddressStr" hidden="true"/>
        <field name="toAddressStr"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="partner" form-view="partner-form" grid-view="partner-grid"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>
    
    <grid name="stock-move-in-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="toStockLocation"  form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="fromAddressStr"/>
        <field name="toAddressStr" hidden="true"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="partner"  form-view="partner-form" grid-view="partner-grid"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>

    <calendar name="stock-move-calendar" model="com.axelor.apps.stock.db.StockMove" eventStart="estimatedDate"
        eventLength="24" mode="month" colorBy="statusSelect" editable="false" title="Stock moves">
        <field name="name" />
    </calendar>

    <form name="stock-move-form" title="Stock move" model="com.axelor.apps.stock.db.StockMove" width="large" onLoad="action-group-stock-stockmove-onload" onNew="action-group-stock-stockmove-onnew">
        <menubar>
            <menu title="Reports" icon="fa-files-o">
                <item title="Print" action="save,action-print-stock-move" readonlyIf="statusSelect == 1"/>
                <item title="Print picking order" action="save,action-print-picking-stock-move" showIf="statusSelect != 1 &amp;&amp; typeSelect == 2"/>
            </menu>

            <menu title="Tools" icon="fa-wrench">
                <item title="View Direction" showIf="typeSelect == 2 &amp;&amp; statusSelect!=4" action="action-stock-move-validate-address,action-stock-move-method-view-direction"/>
                <item title="Split into 2" action="save,action-stock-move-split-into-2" showIf="statusSelect &lt;= 2"/>
                <item title="Split by unit" action="save,action-stock-move-method-split-stock-move-lines-unit" showIf="statusSelect &lt;= 2"/>
                <item title="Special split" action="save,action-stock-move-wizard-special-split" showIf="statusSelect &lt;= 2"/>
                <item title="Ship/Receive all products" action="save,action-stock-move-ship-recieve-all-products"/>
            </menu>
        </menubar>

        <panel>
            <panel colSpan="9">
                <panel itemSpan="12">
                    <field name="statusSelect" widget="NavSelect" showTitle="false"/>
                    <field name="stockMoveSeq" css="label-bold bold large" showTitle="false"/>
                </panel>

                <panel>
                    <field name="$tags" showTitle="false" colSpan="12" readonly="true" showIf="$readonly()">
                        <viewer depends="typeSelect,conformitySelect">
                            <![CDATA[
                                <h4 class="text-right">
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 1" x-translate>Internal move</span>
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 2" x-translate>Outgoing move</span>
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 3" x-translate>Incoming move</span>

                                    <span class="label label-success" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.conformitySelect == 2" x-translate>Compliant</span>
                                    <span class="label label-important" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.conformitySelect == 3" x-translate>Non-compliant</span>
                                </h4>
                            ]]>
                        </viewer>
                    </field>

                    <field name="typeSelect" title="Type" showIf="!$readonly()" onChange="action-stock-move-set-default-stock-locations,action-stock-move-attrs-typeselect-change" readonlyIf="statusSelect != 1"/>
                    <field name="conformitySelect" showIf="!$readonly()" onChange="action-stock-move-method-change-conformity" readonlyIf="statusSelect &gt; 2"/>

                    <field name="cancelReason" colOffset="6" canView="false" showIf="cancelReason != null" readonly="true"/>
                    <field name="isReversion" hidden="true" />
                </panel>
            </panel>

            <panel colSpan="3" itemSpan="12">
                <button name="plan" title="Plan" icon="fa-calendar" showIf="statusSelect == 1" onClick="action-group-stock-stockmove-plan-click"/>
                <button name="realize" title="Realize" icon="fa-check" showIf="statusSelect == 2" prompt="Are you sure you want to realize this stock move?" onClick="action-group-stock-stockmove-realize-click"/>
                <button name="generateInvoice" title="Generate invoice" icon="fa-file-o" onClick="save,action-supplychain-stock-move-method-generate-invoice" if-module="axelor-supplychain" showIf="statusSelect == 3" if="__config__.app.isApp('supplychain') &amp;&amp; __config__.app.getApp('supplychain').getGenerateInvoiceFromStockMove()"/>
                <button name="generateReversion" title="Generate reversion" icon="fa-undo" onClick="save,action-stock-move-method-generate-reversion" showIf="statusSelect == 3 &amp;&amp; !isReversion"/>
                <button name="cancel" title="Cancel" icon="fa-times-circle" css="btn-danger" showIf="id != null &amp;&amp; statusSelect &gt; 1 &amp;&amp; statusSelect &lt; 4" onClick="action.stock.move.view.cancel"/>
                <button name="draft" title="Draft" showIf="statusSelect == 4" onClick="action-group-stock-stockmove-draft-click"/>
            </panel>
        </panel>

        <panel name="stockMoveInformation" title="Stock move information">
            <field name="partner" domain="self.isContact = false" readonlyIf="statusSelect != 1" onChange="action-stock-move-group-partner-onchange" grid-view="partner-grid" form-view="partner-form"/>
            <field name="company" readonlyIf="statusSelect != 1" onChange="action-stock-move-record-update-info-company" canEdit="false" grid-view="company-grid" form-view="company-form"/>
            <field name="name" readonlyIf="statusSelect == 3 || statusSelect == 4"/>
            <field name="tradingName" readonlyIf="statusSelect != 1" domain=":company MEMBER OF self.companySet" onChange="action-stock-move-method-printing-settings-default-value" canEdit="false" if="__config__.app.getApp('base').enableTradingNamesManagement" grid-view="trading-name-grid" form-view="trading-name-form"/>
            <spacer if="!__config__.app.getApp('base').enableTradingNamesManagement"/>

            <field name="fromStockLocation" domain="self.company = :company" onChange="action-stock-move-group-from-location-onchange" readonlyIf="statusSelect != 1" grid-view="stock-location-grid" form-view="stock-location-form"/>
            <field name="toStockLocation" domain="self.company = :company" onChange="action-stock-move-group-to-location-onchange" readonlyIf="statusSelect != 1" grid-view="stock-location-grid" form-view="stock-location-form"/>

            <field name="estimatedDate" readonlyIf="statusSelect != 1" colSpan="3"/>
            <field name="realDate" colSpan="3"/>

            <field name="isWithReturnSurplus" showIf="typeSelect == 3" colSpan="3"/>
            <field name="isWithBackorder" colSpan="3"/>

            <panel stacked="true">
                <field name="fromAddress" showIf="!$readonly() &amp;&amp; statusSelect == 1 &amp;&amp; typeSelect == 3" onSelect="action-stock-move-attrs-domain-address" onChange="action-stock-move-method-set-addresses-str" readonlyIf="statusSelect == 3 || statusSelect == 4" form-view="address-partner-address-form"/>
                <field name="fromAddressStr" showIf="typeSelect == 3" readonlyIf="statusSelect &gt; 1" height="3">
                    <viewer>{{record.fromAddressStr}}</viewer>
                </field>

                <field name="toAddress" showIf="!$readonly() &amp;&amp; statusSelect == 1 &amp;&amp; typeSelect == 2" onSelect="action-stock-move-attrs-domain-address" onChange="action-stock-move-method-set-addresses-str,action-stock-move-record-ispm-field" readonlyIf="statusSelect == 3 || statusSelect == 4" form-view="address-partner-address-form"/>
                <field name="toAddressStr" showIf="typeSelect == 2" readonlyIf="statusSelect &gt; 1" height="3">
                    <viewer>{{record.toAddressStr}}</viewer>
                </field>
            </panel>

            <field name="exTaxTotal" css="order-subtotal" showIf="id" readonly="true" showTitle="false">
                <viewer>
                    <![CDATA[
                        <dl class="dl-horizontal" style="float: none;">
                            <br>
                            <dt class="order-subtotal-total" style="border-top: none; text-align: left;" x-translate>Total W.T.</dt>
                            <dd class="order-subtotal-total" style="border-top: none; text-align: left;">{{record.exTaxTotal}}</dd>
                        </dl>
                    ]]>
                </viewer>
            </field>
        </panel>

        <panel-related field="stockMoveLineList" onChange="action-stock-move-method-compute,action-stock-move-line-method-change-conformity" readonlyIf="statusSelect == 3" grid-view="stock-move-line-grid" form-view="stock-move-line-form"/>

        <panel-tabs>
            <panel title="Freight Carrier" readonlyIf="statusSelect == 3 || statusSelect == 4" >
                <field name="shipmentMode" form-view="shipment-mode-grid" grid-view="shipment-mode-grid" />
				<field name="freightCarrierMode" domain="self.shipmentMode = :shipmentMode"  form-view="freight-carrier-mode-form" grid-view="freight-carrier-mode-grid" onChange="action-stock-move-record-freight-carrier" />
                <field name="carrierPartner" domain="self.isCarrier = TRUE AND (self.companySet IS EMPTY OR :company MEMBER OF self.companySet)" form-view="partner-form" grid-view="partner-grid" canEdit="false"/>
            	<field name="forwarderPartner" domain=":company MEMBER OF self.companySet" form-view="partner-form" grid-view="partner-grid" canEdit="false" />
            	<field name="incoterm" form-view="incoterm-form" grid-view="incoterm-grid" canEdit="false" />
                
                <field name="trackingNumber" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>

                <field name="numOfPackages" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>
                <field name="numOfPalettes" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>
                <field name="grossWeight" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>

                <field name="saleOrder.specificPackage" readonly="true" colSpan="4"/>
                <panel stacked="true" colSpan="8">
                    <field name="isIspmRequired" showIf="!$readonly()"/>
                    <field name="$IspmTag" showTitle="false" showIf="$readonly()">
                        <viewer>
                            <![CDATA[
                                <h4 class="text-left">
                                    <span class="label label-important" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.isIspmRequired" x-translate>ISPM standard required</span>
                                </h4>
                            ]]>
                        </viewer>
                    </field>
                </panel>
            </panel>

            <panel-dashlet action="action-stock-move-view-logistical-forms" showIf="id &amp;&amp; typeSelect == 2" title="Logistical forms"/>

            <panel title="Automatic mail" showIf="typeSelect == 2">
                <field name="stockMoveAutomaticMail"/>
                <field name="stockMoveMessageTemplate" requiredIf="stockMoveAutomaticMail" showIf="stockMoveAutomaticMail" grid-view="template-grid" form-view="template-form"/>
            </panel>

            <panel title="Configuration" if-module="axelor-supplychain" if="__config__.app.isApp('supplychain')">
                <field name="saleOrder" onChange="action-stock-move-attrs-typeselect-change" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="sale-order-grid" form-view="sale-order-form"/>
                <field name="purchaseOrder" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="purchase-order-grid" form-view="purchase-order-form"/>
                <field name="invoice" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="invoice-grid" form-view="invoice-form"/>
                <field name="printingSettings" onSelect="action-stock-move-method-filter-printing-settings" canEdit="false"/>
            </panel>
        </panel-tabs>
    </form>
    
    <form name="stock-move-wizard-special-split-form" title="Special split" model="com.axelor.apps.base.db.Wizard">
    	<panel name="main" colSpan="12">
	        <field name="splitQty" type="decimal" widget="Decimal" title="Split in Qty of" x-scale="2" x-precision="18" colSpan="6"/>
	        <button name="split" title="Split" onClick="action-stock-move-method-split-stock-move-lines-special" colSpan="6"/>
        </panel>
    </form>
    
    <form name="stock-move-wizard-stock-per-day" title="Stock Availability" model="com.axelor.apps.base.db.Wizard" 
    	 canSave="false" canDelete="false" canCopy="false" canAttach="false" canNew="false"
    	 onNew="action-stock-move-wizard-stock-per-day-defaults">
    	<toolbar>
    		<button icon="img/16px/create_16px.png" name="runWizard" title="Run" onClick="action-stock-move-method-open-stock-per-day" readonlyIf="stockFromDate == null || stockToDate == null || stockLocation == null" />
    	</toolbar>
    	<panel name="main">
    		<field name="stockFromDate" title="From Date" type="date" required="true"/>
    		<field name="stockToDate" title="To Date" type="date" required="true"/>
	        <field name="stockLocation" title="Stock location" type="many-to-one" target="com.axelor.apps.stock.db.StockLocation" required="true" />
	        <field name="productSet" title="Products" type="many-to-many" target="com.axelor.apps.base.db.Product" colSpan="12" />
        </panel>
    </form>
    
    <action-view title="Special split" model="com.axelor.apps.base.db.Wizard" name="action-stock-move-wizard-special-split">
	    <view type="form" name="stock-move-wizard-special-split-form"/>
	    <view-param name="popup" value="reload"/>
        <view-param name="forceEdit" value="true"/>
        <view-param name="show-toolbar" value="false"/>
	    <view-param name="show-confirm" value="false" />
   	  	<view-param name="popup-save" value="false"/>
	    <view-param name="width" value="800" />
	    <context name="stockMoveLineList" expr="eval:stockMoveLineList.findAll{ it.selected }" if="stockMoveLineList != null" />
	    <context name="stockMove" expr="eval: __this__"/>
	</action-view>
	
	<form name="stock-move-split-into-2-form" title="Split into 2" model="com.axelor.apps.stock.db.StockMove" width="large">
    	<panel name="main">
	        <panel-related field="stockMoveLineList" colSpan="12" grid-view="stock-move-line-split-grid" canEdit="true" form-view="stock-move-line-form"/>
	        <button name="split" title="Split" onClick="action-stock-move-method-split-into-2"/>
        </panel>
    </form>
    
    
    <action-method name="action-stock-move-method-compute">
    	<call class="com.axelor.apps.stock.web.StockMoveController" method="compute"/>
    </action-method>
    
    <action-view title="Split into 2" model="com.axelor.apps.stock.db.StockMove" name="action-stock-move-split-into-2">
	    <view type="form" name="stock-move-split-into-2-form"/>
	    <view-param name="popup" value="reload"/>
	    <view-param name="forceEdit" value="true"/> 
	    <view-param name="show-toolbar" value="false"/>
	    <view-param name="show-confirm" value="false" />
   	  	<view-param name="popup-save" value="false"/>
	    <view-param name="width" value="200" />
	    <context name="_showRecord" expr="eval: __this__.id" />
	</action-view>
	
    <!-- <action-attrs name="action-stock-move-attrs-title-realize-button">
    	<attribute name="title" for="realize" expr="eval: (fromStockLocation) ? ((fromStockLocation?.typeSelect != 1 &amp;&amp; toStockLocation?.typeSelect == 1) ? 'Receive' : 'Send') : ((toStockLocation?.typeSelect == 1) ? 'Receive' : 'Send')"/>
    </action-attrs> -->
    
    <action-group name="action-group-stock-stockmove-onnew">
    	<action name="action-stock-move-record-new"/>
    	<action name="action-stock-move-attrs-typeselect-change"/>
        <action name="action-stock-move-generate-invoice-button"/>
		<action name="action-stock-move-hide-reserved-qty"/>
    </action-group>

    <action-group name="action-group-stock-stockmove-onload">
        <action name="action-stock-move-attrs-typeselect-change"/>
        <action name="action-stock-move-generate-invoice-button"/>
        <action name="action-stock-move-hide-reserved-qty"/>
    </action-group>
    
	<action-group name="action-group-stock-stockmove-plan-click">
	 	<action name="save"/>
	  	<action name="action-stock-move-method-plan"/>
	  	<action name="save"/>
	</action-group>
    
	<action-group name="action-group-stock-stockmove-realize-click">
	  	<action name="save"/>
    	<action name="action-stock-move-check-stock-move-line-real-qty"/>
    	<action name="action-stock-move-method-realize"/>
    	<action name="save"/>
	</action-group>

  	<action-group name="action-group-stock-stockmove-draft-click">
	  	<action name="save"/>
    	<action name="action-stock-move-record-draft"/>
    	<action name="save"/>
  	</action-group>

	<action-group name="action-stock-move-group-to-location-onchange">
		<action name="action-stock-move-set-to-address"/>
        <action name="action-stock-move-method-set-addresses-str"/>
	</action-group>

	<action-group name="action-stock-move-group-from-location-onchange">
		<action name="action-stock-move-set-from-address"/>
		<action name="action-stock-move-method-set-addresses-str"/>
	</action-group>

	<action-group name="action-stock-move-group-partner-onchange">
		<action name="action-stock-move-record-partner-delivery-informations"/>
        <action name="action-stock-move-record-auto-mail"/>
		<action name="action-stock-move-record-ispm-field"/>
	   	<action name="action-stock-move-record-partner-shipment-informations"/>
	</action-group>

     <action-attrs name="action-stock-move-attrs-typeselect-change">
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Internal move information')" if="typeSelect == 1"/>
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Outgoing move information')" if="typeSelect == 2"/>
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Incoming move information')" if="typeSelect == 3"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Internal move lines')" if="typeSelect == 1"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Outgoing move lines')" if="typeSelect == 2"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Incoming move lines')" if="typeSelect == 3"/>
    	<attribute name="hidden" for="stockMoveLineList.unitPriceUntaxed" expr="eval: saleOrder?.inAti"/>
    	<attribute name="hidden" for="stockMoveLineList.unitPriceTaxed" expr="eval: !saleOrder?.inAti"/>
    </action-attrs>

    <action-attrs name="action-stock-move-generate-invoice-button">
        <attribute name="title" for="generateInvoice" expr="eval: com.axelor.i18n.I18n.get('Generate refund')"
            if="isReversion" />
    </action-attrs>

    <action-attrs name="action-stock-move-attrs-domain-address">
		<attribute name="domain" for="fromAddress" expr="eval: &quot;self.id IN (${(partner?.partnerAddressList?.findAll{it.isDeliveryAddr}.collect{it.address.id}+[null]).join(',')})&quot;" />
		<attribute name="domain" for="toAddress" expr="eval: &quot;self.id IN (${(partner?.partnerAddressList?.findAll{it.isDeliveryAddr}.collect{it.address.id}+[null]).join(',')})&quot;" />
    </action-attrs>
    
    <action-attrs name="action-stock-move-wizard-stock-per-day-defaults">
    	<attribute name="value" for="stockFromDate" expr="eval:__date__"/>
    	<attribute name="value" for="stockToDate" expr="eval:__date__"/>
    </action-attrs>
	
	<action-attrs name="action-stock-move-hide-reserved-qty">
        <attribute for="stockMoveLineList.reservedQty" name="hidden" expr="eval: typeSelect != 2"/>
	</action-attrs>
    
    <action-record name="action-stock-move-record-draft" model="com.axelor.apps.stock.db.StockMove">
    	<field name="statusSelect" expr="eval: 1"/>
    </action-record>
    
    <action-record name="action-stock-move-record-new" model="com.axelor.apps.stock.db.StockMove">
        <field name="company"  expr="eval:__user__.activeCompany" if="__user__.activeCompany != null"/>
    	<field name="company"  expr="eval:__repo__(Company).all().fetchOne()" if="__user__.activeCompany == null &amp;&amp; __repo__(Company).all().fetch().size == 1"/>
	    <field name="statusSelect" expr="eval: 1"/>
	    <field name="isWithBackorder" expr="eval:true" />
	    <field name="estimatedDate" expr="eval:__config__.app.getTodayDate()"/>
	    <field name="typeSelect" expr="eval: _typeSelect"/>
	    <field if="_typeSelect == '3'" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
		<field if="_typeSelect == '3'" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.supplierVirtualStockLocation"/>
		<field if="_typeSelect == '2'" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
		<field if="_typeSelect == '2'" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.customerVirtualStockLocation"/>
		<field name="printingSettings" expr="eval: __user__.activeCompany?.printingSettings" if="__user__.activeCompany != null"/>
	</action-record>

	<action-record name="action-stock-move-record-auto-mail" model="com.axelor.apps.stock.db.StockMove">
		<field name="stockMoveAutomaticMail" if="_typeSelect == '2'"
			   expr="eval: partner?.partnerStockSettingsList?.find{it.company == company}?.stockMoveAutomaticMail"/>
		<field name="stockMoveMessageTemplate" if="_typeSelect == '2'"
			   expr="eval: partner?.partnerStockSettingsList?.find{it.company == company}?.stockMoveMessageTemplate"/>
	</action-record>
	
	<action-record name="action-stock-move-record-ispm-field" model="com.axelor.apps.stock.db.StockMove">
		<field name="isIspmRequired" expr="eval: println(toAddress?.addressL7Country); partner?.isIspmRequired || toAddress?.addressL7Country?.isIspmRequired"/>
	</action-record>

	<action-record name="action-stock-move-set-from-address" model="com.axelor.apps.stock.db.StockMove">
		<field name="fromAddress" expr="eval:fromStockLocation?.address" />
	</action-record>
	
	<action-record name="action-stock-move-set-to-address" model="com.axelor.apps.stock.db.StockMove">
		<field name="toAddress" expr="eval:toStockLocation?.address" />
	</action-record>
	
	<action-record name="action-stock-move-set-default-stock-locations" model="com.axelor.apps.stock.db.StockMove">
	    <field if="typeSelect == 2" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
  		<field if="typeSelect == 2" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.customerVirtualStockLocation"/>
  		<field if="typeSelect == 3" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
  		<field if="typeSelect == 3" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.supplierVirtualStockLocation"/>
	</action-record>
	
	<action-record name="action-stock-move-record-partner-delivery-informations" model="com.axelor.apps.stock.db.StockMove">
    	<field name="shipmentMode" expr="eval: partner?.shipmentMode"/>	
    	<field name="freightCarrierMode" expr="eval: partner?.freightCarrierMode"/>
	</action-record>
	
	<action-method name="action-stock-move-method-plan">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="plan"/>
	</action-method>
	
	<action-method name="action-stock-move-method-realize">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="realize"/>
	</action-method>
	
	<action-method name="action-stock-move-method-cancel">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="cancel"/>
	</action-method>
	
	<action-method name="action-supply-chain-method-update-so-on-cancel" if-module="axelor-supplychain">
		<call class="com.axelor.apps.supplychain.web.SaleOrderController" method="updateSaleOrderOnCancel"/>
	</action-method>
	
	<action-method name="action-supply-chain-method-update-po-on-cancel" if-module="axelor-supplychain">
		<call class="com.axelor.apps.supplychain.web.PurchaseOrderController" method="updatePurchaseOrderOnCancel"/>
	</action-method>
	
	<action-method name="action-print-stock-move">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="printStockMove"/>
	</action-method>

	<action-method name="action-print-picking-stock-move">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="printPickingStockMove"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-into-2">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitInto2"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-stock-move-lines-special">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitStockMoveLinesSpecial"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-stock-move-lines-unit">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitStockMoveLinesUnit"/>
	</action-method>
	
	<action-method name="action-stock-move-ship-recieve-all-products">
	    <call class="com.axelor.apps.stock.web.StockMoveController" method="shipReciveAllProducts"/>
	</action-method>
	
	<action-method name="action-stock-move-method-generate-reversion">
	    <call class="com.axelor.apps.stock.web.StockMoveController" method="generateReversion"/>
	</action-method>
	
	<action-method name="action-stock-move-method-view-direction">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="viewDirection"/>
	</action-method>
	
	<action-method name="action-stock-move-method-change-conformity">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="changeConformityStockMove"/>
	</action-method>
	
	<action-method name="action-stock-move-line-method-change-conformity">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="changeConformityStockMoveLine"/>
	</action-method>
	
	<action-method name="action-stock-move-method-open-stock-per-day">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="openStockPerDay"/>
	</action-method>

	<action-method name="action-stock-move-method-set-addresses-str">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="fillAddressesStr"/>
	</action-method>

	<action-validate name="action-stock-move-check-stock-move-line-real-qty">
		<alert message="The move doesn't contain any product, do you wish to continue ?" if="stockMoveLineList != null &amp;&amp; stockMoveLineList.sum{it->it.realQty} == 0"/>
	</action-validate>
	
	<action-validate name="action-stock-move-validate-address">
	    <error message="Both source location address and delivery (to) address are required to define the delivery itinerary" if="fromStockLocation?.address == null &amp;&amp; toAddress == null"/>
	    <error message="Please fill in the source (from) location address to get the delivery itinerary." if="fromStockLocation?.address == null"/>
	    <error message="Please fill in the delivery (to) address to get the delivery itinerary." if="toAddress == null"/>
	</action-validate>

    <action-view name="action-stock-move-view-logistical-forms" title="Logistical forms"
        model="com.axelor.apps.stock.db.LogisticalForm">
        <view type="grid" name="logistical-form-stock-move-grid" />
        <view type="form" name="logistical-form-form" />
        <domain>self.id IN (:logisticalFormIdList)</domain>
        <context name="logisticalFormIdList" expr="call: com.axelor.apps.stock.service.LogisticalFormService:getIdList(__this__)" />
    </action-view>

	<search-filters name="customer-deliveries-filters" model="com.axelor.apps.stock.db.StockMove" title="Customer deliveries filters">
		<filter title="Deliveries to prepare">
			<domain>self.statusSelect = 2</domain>
		</filter>
		<filter title="Late Deliveries">
			<domain>self.estimatedDate &lt; CURRENT_DATE</domain>
		</filter>
		<filter title="Deliveries History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Deliveries Cancelled">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>
	
	<search-filters name="supplier-arrivals-filters" model="com.axelor.apps.stock.db.StockMove" title="Supplier arrivals filters">
		<filter title="Today Arrivals">
			<domain>self.estimatedDate = CURRENT_DATE</domain>
		</filter>
		<filter title="Upcoming arrivals">
			<domain>self.estimatedDate &lt; :_newDate</domain>
		</filter>
		<filter title="Arrivals History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Cancelled Arrivals">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>
	
	<search-filters name="internal-stock-move-filters" model="com.axelor.apps.stock.db.StockMove" title="Internal Stock Move filters">
		<filter title="Moves To Prepare">
			<domain>self.statusSelect = 2</domain>
		</filter>
		<filter title="Moves History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Moves Cancelled">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>

	<action-view name="action.stock.move.view.cancel" title="Cancellation" model="com.axelor.apps.stock.db.StockMove">
		<view type="form" name="stock-move-cancel-wizard-form"/>
		<view-param name="popup" value="reload"/>
		<view-param name="show-toolbar" value="false"/>
		<view-param name="show-confirm" value="false" />
		<view-param name="popup-save" value="false"/>
		<view-param name="forceEdit" value="true" />
		<context name="_showRecord" expr="eval: __this__.id" />
		<context name="_xApplicationType" expr="eval: _model"/>
	</action-view>

	<form name="stock-move-cancel-wizard-form" model="com.axelor.apps.stock.db.StockMove" title="Cancellation confirmation" >
		<panel name="main">
			<field name="cancelReason" domain="self.applicationType = :_xApplicationType" colOffset="4" colSpan="4" widget="SuggestBox" canNew="false" canEdit="false"/>
			<button readonlyIf="cancelReason == null" name="cancelConfirm" title="Confirm cancellation" onClick="action-stock-move-method-cancel" colOffset="4" colSpan="4"/>
		</panel>
	</form>

	<action-record name="action-stock-move-record-update-info-company" model="com.axelor.apps.stock.db.StockMove">
		<field name="tradingName" expr="eval: null" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
		<field name="printingSettings" expr="eval: company?.printingSettings"/>
	</action-record>

	<action-method name="action-stock-move-method-printing-settings-default-value">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="fillDefaultPrintingSettings"/>
	</action-method>

	<action-method name="action-stock-move-method-filter-printing-settings">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="filterPrintingSettings"/>
	</action-method>
	
	<action-record name="action-stock-move-record-freight-carrier" model="com.axelor.apps.stock.db.StockMove">
		<field name="carrierPartner" expr="eval:freightCarrierMode?.carrierPartner"/>
	</action-record>
	
	<action-record name="action-stock-move-record-partner-shipment-informations" model="com.axelor.apps.stock.db.StockMove">
		<field name="shipmentMode" expr="eval: clientPartner?.shipmentMode"/>
    	<field name="freightCarrierMode" expr="eval: clientPartner?.freightCarrierMode"/>
		<field name="carrierPartner" expr="eval: clientPartner?.freightCarrierMode?.carrierPartner"/>
	</action-record>
		

</object-views>
<commit_msg>RM1187: Change StockMove UI, fix translation typo.<commit_after><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.0.xsd">
    
    <grid name="stock-move-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="fromStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="toStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <field name="toAddressStr" hidden="true" form-view="address-form" grid-view="address-grid"/>
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>
    
     <grid name="stock-move-out-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
			<button name="printPickingStockMoveGrid" title="Print Picking StockMove(s)" onClick="action-print-picking-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="fromStockLocation" form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="fromAddressStr" hidden="true"/>
        <field name="toAddressStr"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="partner" form-view="partner-form" grid-view="partner-grid"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>
    
    <grid name="stock-move-in-grid" title="Stock moves" model="com.axelor.apps.stock.db.StockMove" orderBy="-estimatedDate">
    	<toolbar>
			<button name="printStockMoveGrid" title="Print StockMove(s)" onClick="action-print-stock-move" icon="fa-print"/>
    	</toolbar>
        <field name="stockMoveSeq"/>
        <field name="toStockLocation"  form-view="stock-location-form" grid-view="stock-location-grid"/>
        <field name="estimatedDate"/>
        <field name="realDate"/>
        <field name="fromAddressStr"/>
        <field name="toAddressStr" hidden="true"/>
        <field name="company" form-view="company-form" grid-view="company-grid"/>
		<field name="tradingName" form-view="trading-name-form" grid-view="trading-name-grid" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
        <field name="partner"  form-view="partner-form" grid-view="partner-grid"/>
        <field name="statusSelect"/>
        <field name="typeSelect" hidden="true" />
        <button name="printStockMove" title="Print" icon="fa-print" onClick="action-print-stock-move" readonlyIf="statusSelect == 1"/>
        <button name="viewDirection" icon="fa-location-arrow" onClick="action-stock-move-validate-address,action-stock-move-method-view-direction" readonlyIf="typeSelect != 2 || statusSelect == 1"/>
    </grid>

    <calendar name="stock-move-calendar" model="com.axelor.apps.stock.db.StockMove" eventStart="estimatedDate"
        eventLength="24" mode="month" colorBy="statusSelect" editable="false" title="Stock moves">
        <field name="name" />
    </calendar>

    <form name="stock-move-form" title="Stock move" model="com.axelor.apps.stock.db.StockMove" width="large" onLoad="action-group-stock-stockmove-onload" onNew="action-group-stock-stockmove-onnew">
        <menubar>
            <menu title="Reports" icon="fa-files-o">
                <item title="Print" action="save,action-print-stock-move" readonlyIf="statusSelect == 1"/>
                <item title="Print picking order" action="save,action-print-picking-stock-move" showIf="statusSelect != 1 &amp;&amp; typeSelect == 2"/>
            </menu>

            <menu title="Tools" icon="fa-wrench">
                <item title="View Direction" showIf="typeSelect == 2 &amp;&amp; statusSelect!=4" action="action-stock-move-validate-address,action-stock-move-method-view-direction"/>
                <item title="Split into 2" action="save,action-stock-move-split-into-2" showIf="statusSelect &lt;= 2"/>
                <item title="Split by unit" action="save,action-stock-move-method-split-stock-move-lines-unit" showIf="statusSelect &lt;= 2"/>
                <item title="Special split" action="save,action-stock-move-wizard-special-split" showIf="statusSelect &lt;= 2"/>
                <item title="Ship/Receive all products" action="save,action-stock-move-ship-recieve-all-products"/>
            </menu>
        </menubar>

        <panel>
            <panel colSpan="9">
                <panel itemSpan="12">
                    <field name="statusSelect" widget="NavSelect" showTitle="false"/>
                    <field name="stockMoveSeq" css="label-bold bold large" showTitle="false"/>
                </panel>

                <panel>
                    <field name="$tags" showTitle="false" colSpan="12" readonly="true" showIf="$readonly()">
                        <viewer depends="typeSelect,conformitySelect">
                            <![CDATA[
                                <h4 class="text-right">
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 1" x-translate>Internal move</span>
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 2" x-translate>Outgoing move</span>
                                    <span class="label label-info" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.typeSelect == 3" x-translate>Incoming move</span>

                                    <span class="label label-success" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.conformitySelect == 2" x-translate>Compliant</span>
                                    <span class="label label-important" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.conformitySelect == 3" x-translate>Non-compliant</span>
                                </h4>
                            ]]>
                        </viewer>
                    </field>

                    <field name="typeSelect" title="Type" showIf="!$readonly()" onChange="action-stock-move-set-default-stock-locations,action-stock-move-attrs-typeselect-change" readonlyIf="statusSelect != 1"/>
                    <field name="conformitySelect" showIf="!$readonly()" onChange="action-stock-move-method-change-conformity" readonlyIf="statusSelect &gt; 2"/>

                    <field name="cancelReason" colOffset="6" canView="false" showIf="cancelReason != null" readonly="true"/>
                    <field name="isReversion" hidden="true" />
                </panel>
            </panel>

            <panel colSpan="3" itemSpan="12">
                <button name="plan" title="Plan" icon="fa-calendar" showIf="statusSelect == 1" onClick="action-group-stock-stockmove-plan-click"/>
                <button name="realize" title="Realize" icon="fa-check" showIf="statusSelect == 2" prompt="Are you sure you want to realize this stock move?" onClick="action-group-stock-stockmove-realize-click"/>
                <button name="generateInvoice" title="Generate invoice" icon="fa-file-o" onClick="save,action-supplychain-stock-move-method-generate-invoice" if-module="axelor-supplychain" showIf="statusSelect == 3" if="__config__.app.isApp('supplychain') &amp;&amp; __config__.app.getApp('supplychain').getGenerateInvoiceFromStockMove()"/>
                <button name="generateReversion" title="Generate reversion" icon="fa-undo" onClick="save,action-stock-move-method-generate-reversion" showIf="statusSelect == 3 &amp;&amp; !isReversion"/>
                <button name="cancel" title="Cancel" icon="fa-times-circle" css="btn-danger" showIf="id != null &amp;&amp; statusSelect &gt; 1 &amp;&amp; statusSelect &lt; 4" onClick="action.stock.move.view.cancel"/>
                <button name="draft" title="Draft" showIf="statusSelect == 4" onClick="action-group-stock-stockmove-draft-click"/>
            </panel>
        </panel>

        <panel name="stockMoveInformation" title="Stock move information">
            <field name="partner" domain="self.isContact = false" readonlyIf="statusSelect != 1" onChange="action-stock-move-group-partner-onchange" grid-view="partner-grid" form-view="partner-form"/>
            <field name="company" readonlyIf="statusSelect != 1" onChange="action-stock-move-record-update-info-company" canEdit="false" grid-view="company-grid" form-view="company-form"/>
            <field name="name" readonlyIf="statusSelect == 3 || statusSelect == 4"/>
            <field name="tradingName" readonlyIf="statusSelect != 1" domain=":company MEMBER OF self.companySet" onChange="action-stock-move-method-printing-settings-default-value" canEdit="false" if="__config__.app.getApp('base').enableTradingNamesManagement" grid-view="trading-name-grid" form-view="trading-name-form"/>
            <spacer if="!__config__.app.getApp('base').enableTradingNamesManagement"/>

            <field name="fromStockLocation" domain="self.company = :company" onChange="action-stock-move-group-from-location-onchange" readonlyIf="statusSelect != 1" grid-view="stock-location-grid" form-view="stock-location-form"/>
            <field name="toStockLocation" domain="self.company = :company" onChange="action-stock-move-group-to-location-onchange" readonlyIf="statusSelect != 1" grid-view="stock-location-grid" form-view="stock-location-form"/>

            <field name="estimatedDate" readonlyIf="statusSelect != 1" colSpan="3"/>
            <field name="realDate" colSpan="3"/>

            <field name="isWithReturnSurplus" showIf="typeSelect == 3" colSpan="3"/>
            <field name="isWithBackorder" colSpan="3"/>

            <panel stacked="true">
                <field name="fromAddress" showIf="!$readonly() &amp;&amp; statusSelect == 1 &amp;&amp; typeSelect == 3" onSelect="action-stock-move-attrs-domain-address" onChange="action-stock-move-method-set-addresses-str" readonlyIf="statusSelect == 3 || statusSelect == 4" form-view="address-partner-address-form"/>
                <field name="fromAddressStr" showIf="typeSelect == 3" readonlyIf="statusSelect &gt; 1" height="3">
                    <viewer>{{record.fromAddressStr}}</viewer>
                </field>

                <field name="toAddress" showIf="!$readonly() &amp;&amp; statusSelect == 1 &amp;&amp; typeSelect == 2" onSelect="action-stock-move-attrs-domain-address" onChange="action-stock-move-method-set-addresses-str,action-stock-move-record-ispm-field" readonlyIf="statusSelect == 3 || statusSelect == 4" form-view="address-partner-address-form"/>
                <field name="toAddressStr" showIf="typeSelect == 2" readonlyIf="statusSelect &gt; 1" height="3">
                    <viewer>{{record.toAddressStr}}</viewer>
                </field>
            </panel>

            <field name="exTaxTotal" css="order-subtotal" showIf="id" readonly="true" showTitle="false">
                <viewer>
                    <![CDATA[
                        <dl class="dl-horizontal" style="float: none;">
                            <br>
                            <dt class="order-subtotal-total" style="border-top: none; text-align: left;" x-translate>Total W.T.</dt>
                            <dd class="order-subtotal-total" style="border-top: none; text-align: left;">{{record.exTaxTotal}}</dd>
                        </dl>
                    ]]>
                </viewer>
            </field>
        </panel>

        <panel-tabs>
            <panel-related field="stockMoveLineList" onChange="action-stock-move-method-compute,action-stock-move-line-method-change-conformity" readonlyIf="statusSelect == 3" grid-view="stock-move-line-grid" form-view="stock-move-line-form"/>
            <panel title="Freight Carrier" readonlyIf="statusSelect == 3 || statusSelect == 4" >
                <field name="shipmentMode" form-view="shipment-mode-grid" grid-view="shipment-mode-grid" />
				<field name="freightCarrierMode" domain="self.shipmentMode = :shipmentMode"  form-view="freight-carrier-mode-form" grid-view="freight-carrier-mode-grid" onChange="action-stock-move-record-freight-carrier" />
                <field name="carrierPartner" domain="self.isCarrier = TRUE AND (self.companySet IS EMPTY OR :company MEMBER OF self.companySet)" form-view="partner-form" grid-view="partner-grid" canEdit="false"/>
            	<field name="forwarderPartner" domain=":company MEMBER OF self.companySet" form-view="partner-form" grid-view="partner-grid" canEdit="false" />
            	<field name="incoterm" form-view="incoterm-form" grid-view="incoterm-grid" canEdit="false" />
                
                <field name="trackingNumber" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>

                <field name="numOfPackages" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>
                <field name="numOfPalettes" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>
                <field name="grossWeight" readonlyIf="statusSelect == 3 || statusSelect == 4" colSpan="4"/>

                <field name="saleOrder.specificPackage" readonly="true" colSpan="4"/>
                <panel stacked="true" colSpan="8">
                    <field name="isIspmRequired" showIf="!$readonly()"/>
                    <field name="$IspmTag" showTitle="false" showIf="$readonly()">
                        <viewer>
                            <![CDATA[
                                <h4 class="text-left">
                                    <span class="label label-important" style="margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.isIspmRequired" x-translate>ISPM standard required</span>
                                </h4>
                            ]]>
                        </viewer>
                    </field>
                </panel>
            </panel>

            <panel-dashlet action="action-stock-move-view-logistical-forms" showIf="id &amp;&amp; typeSelect == 2" title="Logistical forms"/>

            <panel title="Automatic mail" showIf="typeSelect == 2">
                <field name="stockMoveAutomaticMail"/>
                <field name="stockMoveMessageTemplate" requiredIf="stockMoveAutomaticMail" showIf="stockMoveAutomaticMail" grid-view="template-grid" form-view="template-form"/>
            </panel>

            <panel title="Configuration" if-module="axelor-supplychain" if="__config__.app.isApp('supplychain')">
                <field name="saleOrder" onChange="action-stock-move-attrs-typeselect-change" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="sale-order-grid" form-view="sale-order-form"/>
                <field name="purchaseOrder" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="purchase-order-grid" form-view="purchase-order-form"/>
                <field name="invoice" readonlyIf="statusSelect == 3 || statusSelect == 4" grid-view="invoice-grid" form-view="invoice-form"/>
                <field name="printingSettings" onSelect="action-stock-move-method-filter-printing-settings" canEdit="false"/>
            </panel>
        </panel-tabs>
    </form>
    
    <form name="stock-move-wizard-special-split-form" title="Special split" model="com.axelor.apps.base.db.Wizard">
    	<panel name="main" colSpan="12">
	        <field name="splitQty" type="decimal" widget="Decimal" title="Split in Qty of" x-scale="2" x-precision="18" colSpan="6"/>
	        <button name="split" title="Split" onClick="action-stock-move-method-split-stock-move-lines-special" colSpan="6"/>
        </panel>
    </form>
    
    <form name="stock-move-wizard-stock-per-day" title="Stock Availability" model="com.axelor.apps.base.db.Wizard" 
    	 canSave="false" canDelete="false" canCopy="false" canAttach="false" canNew="false"
    	 onNew="action-stock-move-wizard-stock-per-day-defaults">
    	<toolbar>
    		<button icon="img/16px/create_16px.png" name="runWizard" title="Run" onClick="action-stock-move-method-open-stock-per-day" readonlyIf="stockFromDate == null || stockToDate == null || stockLocation == null" />
    	</toolbar>
    	<panel name="main">
    		<field name="stockFromDate" title="From Date" type="date" required="true"/>
    		<field name="stockToDate" title="To Date" type="date" required="true"/>
	        <field name="stockLocation" title="Stock location" type="many-to-one" target="com.axelor.apps.stock.db.StockLocation" required="true" />
	        <field name="productSet" title="Products" type="many-to-many" target="com.axelor.apps.base.db.Product" colSpan="12" />
        </panel>
    </form>
    
    <action-view title="Special split" model="com.axelor.apps.base.db.Wizard" name="action-stock-move-wizard-special-split">
	    <view type="form" name="stock-move-wizard-special-split-form"/>
	    <view-param name="popup" value="reload"/>
        <view-param name="forceEdit" value="true"/>
        <view-param name="show-toolbar" value="false"/>
	    <view-param name="show-confirm" value="false" />
   	  	<view-param name="popup-save" value="false"/>
	    <view-param name="width" value="800" />
	    <context name="stockMoveLineList" expr="eval:stockMoveLineList.findAll{ it.selected }" if="stockMoveLineList != null" />
	    <context name="stockMove" expr="eval: __this__"/>
	</action-view>
	
	<form name="stock-move-split-into-2-form" title="Split into 2" model="com.axelor.apps.stock.db.StockMove" width="large">
    	<panel name="main">
	        <panel-related field="stockMoveLineList" colSpan="12" grid-view="stock-move-line-split-grid" canEdit="true" form-view="stock-move-line-form"/>
	        <button name="split" title="Split" onClick="action-stock-move-method-split-into-2"/>
        </panel>
    </form>
    
    
    <action-method name="action-stock-move-method-compute">
    	<call class="com.axelor.apps.stock.web.StockMoveController" method="compute"/>
    </action-method>
    
    <action-view title="Split into 2" model="com.axelor.apps.stock.db.StockMove" name="action-stock-move-split-into-2">
	    <view type="form" name="stock-move-split-into-2-form"/>
	    <view-param name="popup" value="reload"/>
	    <view-param name="forceEdit" value="true"/> 
	    <view-param name="show-toolbar" value="false"/>
	    <view-param name="show-confirm" value="false" />
   	  	<view-param name="popup-save" value="false"/>
	    <view-param name="width" value="200" />
	    <context name="_showRecord" expr="eval: __this__.id" />
	</action-view>
	
    <!-- <action-attrs name="action-stock-move-attrs-title-realize-button">
    	<attribute name="title" for="realize" expr="eval: (fromStockLocation) ? ((fromStockLocation?.typeSelect != 1 &amp;&amp; toStockLocation?.typeSelect == 1) ? 'Receive' : 'Send') : ((toStockLocation?.typeSelect == 1) ? 'Receive' : 'Send')"/>
    </action-attrs> -->
    
    <action-group name="action-group-stock-stockmove-onnew">
    	<action name="action-stock-move-record-new"/>
    	<action name="action-stock-move-attrs-typeselect-change"/>
        <action name="action-stock-move-generate-invoice-button"/>
		<action name="action-stock-move-hide-reserved-qty"/>
    </action-group>

    <action-group name="action-group-stock-stockmove-onload">
        <action name="action-stock-move-attrs-typeselect-change"/>
        <action name="action-stock-move-generate-invoice-button"/>
        <action name="action-stock-move-hide-reserved-qty"/>
    </action-group>
    
	<action-group name="action-group-stock-stockmove-plan-click">
	 	<action name="save"/>
	  	<action name="action-stock-move-method-plan"/>
	  	<action name="save"/>
	</action-group>
    
	<action-group name="action-group-stock-stockmove-realize-click">
	  	<action name="save"/>
    	<action name="action-stock-move-check-stock-move-line-real-qty"/>
    	<action name="action-stock-move-method-realize"/>
    	<action name="save"/>
	</action-group>

  	<action-group name="action-group-stock-stockmove-draft-click">
	  	<action name="save"/>
    	<action name="action-stock-move-record-draft"/>
    	<action name="save"/>
  	</action-group>

	<action-group name="action-stock-move-group-to-location-onchange">
		<action name="action-stock-move-set-to-address"/>
        <action name="action-stock-move-method-set-addresses-str"/>
	</action-group>

	<action-group name="action-stock-move-group-from-location-onchange">
		<action name="action-stock-move-set-from-address"/>
		<action name="action-stock-move-method-set-addresses-str"/>
	</action-group>

	<action-group name="action-stock-move-group-partner-onchange">
		<action name="action-stock-move-record-partner-delivery-informations"/>
        <action name="action-stock-move-record-auto-mail"/>
		<action name="action-stock-move-record-ispm-field"/>
	   	<action name="action-stock-move-record-partner-shipment-informations"/>
	</action-group>

     <action-attrs name="action-stock-move-attrs-typeselect-change">
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Internal move information')" if="typeSelect == 1"/>
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Outgoing move information')" if="typeSelect == 2"/>
    	<attribute name="title" for="stockMoveInformation" expr="eval: com.axelor.i18n.I18n.get('Incoming move information')" if="typeSelect == 3"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Internal move lines')" if="typeSelect == 1"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Outgoing move lines')" if="typeSelect == 2"/>
    	<attribute name="title" for="stockMoveLineList" expr="eval: com.axelor.i18n.I18n.get('Incoming move lines')" if="typeSelect == 3"/>
    	<attribute name="hidden" for="stockMoveLineList.unitPriceUntaxed" expr="eval: saleOrder?.inAti"/>
    	<attribute name="hidden" for="stockMoveLineList.unitPriceTaxed" expr="eval: !saleOrder?.inAti"/>
    </action-attrs>

    <action-attrs name="action-stock-move-generate-invoice-button">
        <attribute name="title" for="generateInvoice" expr="eval: com.axelor.i18n.I18n.get('Generate refund')"
            if="isReversion" />
    </action-attrs>

    <action-attrs name="action-stock-move-attrs-domain-address">
		<attribute name="domain" for="fromAddress" expr="eval: &quot;self.id IN (${(partner?.partnerAddressList?.findAll{it.isDeliveryAddr}.collect{it.address.id}+[null]).join(',')})&quot;" />
		<attribute name="domain" for="toAddress" expr="eval: &quot;self.id IN (${(partner?.partnerAddressList?.findAll{it.isDeliveryAddr}.collect{it.address.id}+[null]).join(',')})&quot;" />
    </action-attrs>
    
    <action-attrs name="action-stock-move-wizard-stock-per-day-defaults">
    	<attribute name="value" for="stockFromDate" expr="eval:__date__"/>
    	<attribute name="value" for="stockToDate" expr="eval:__date__"/>
    </action-attrs>
	
	<action-attrs name="action-stock-move-hide-reserved-qty">
        <attribute for="stockMoveLineList.reservedQty" name="hidden" expr="eval: typeSelect != 2"/>
	</action-attrs>
    
    <action-record name="action-stock-move-record-draft" model="com.axelor.apps.stock.db.StockMove">
    	<field name="statusSelect" expr="eval: 1"/>
    </action-record>
    
    <action-record name="action-stock-move-record-new" model="com.axelor.apps.stock.db.StockMove">
        <field name="company"  expr="eval:__user__.activeCompany" if="__user__.activeCompany != null"/>
    	<field name="company"  expr="eval:__repo__(Company).all().fetchOne()" if="__user__.activeCompany == null &amp;&amp; __repo__(Company).all().fetch().size == 1"/>
	    <field name="statusSelect" expr="eval: 1"/>
	    <field name="isWithBackorder" expr="eval:true" />
	    <field name="estimatedDate" expr="eval:__config__.app.getTodayDate()"/>
	    <field name="typeSelect" expr="eval: _typeSelect"/>
	    <field if="_typeSelect == '3'" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
		<field if="_typeSelect == '3'" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.supplierVirtualStockLocation"/>
		<field if="_typeSelect == '2'" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
		<field if="_typeSelect == '2'" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',__user__.activeCompany?.id).fetchOne()?.customerVirtualStockLocation"/>
		<field name="printingSettings" expr="eval: __user__.activeCompany?.printingSettings" if="__user__.activeCompany != null"/>
	</action-record>

	<action-record name="action-stock-move-record-auto-mail" model="com.axelor.apps.stock.db.StockMove">
		<field name="stockMoveAutomaticMail" if="_typeSelect == '2'"
			   expr="eval: partner?.partnerStockSettingsList?.find{it.company == company}?.stockMoveAutomaticMail"/>
		<field name="stockMoveMessageTemplate" if="_typeSelect == '2'"
			   expr="eval: partner?.partnerStockSettingsList?.find{it.company == company}?.stockMoveMessageTemplate"/>
	</action-record>
	
	<action-record name="action-stock-move-record-ispm-field" model="com.axelor.apps.stock.db.StockMove">
		<field name="isIspmRequired" expr="eval: println(toAddress?.addressL7Country); partner?.isIspmRequired || toAddress?.addressL7Country?.isIspmRequired"/>
	</action-record>

	<action-record name="action-stock-move-set-from-address" model="com.axelor.apps.stock.db.StockMove">
		<field name="fromAddress" expr="eval:fromStockLocation?.address" />
	</action-record>
	
	<action-record name="action-stock-move-set-to-address" model="com.axelor.apps.stock.db.StockMove">
		<field name="toAddress" expr="eval:toStockLocation?.address" />
	</action-record>
	
	<action-record name="action-stock-move-set-default-stock-locations" model="com.axelor.apps.stock.db.StockMove">
	    <field if="typeSelect == 2" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
  		<field if="typeSelect == 2" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.customerVirtualStockLocation"/>
  		<field if="typeSelect == 3" name="toStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.defaultStockLocation"/>
  		<field if="typeSelect == 3" name="fromStockLocation" expr="eval:__repo__(StockConfig).all().filter('company.id = ?',company != null ? company.id : __user__.activeCompany?.id).fetchOne()?.supplierVirtualStockLocation"/>
	</action-record>
	
	<action-record name="action-stock-move-record-partner-delivery-informations" model="com.axelor.apps.stock.db.StockMove">
    	<field name="shipmentMode" expr="eval: partner?.shipmentMode"/>	
    	<field name="freightCarrierMode" expr="eval: partner?.freightCarrierMode"/>
	</action-record>
	
	<action-method name="action-stock-move-method-plan">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="plan"/>
	</action-method>
	
	<action-method name="action-stock-move-method-realize">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="realize"/>
	</action-method>
	
	<action-method name="action-stock-move-method-cancel">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="cancel"/>
	</action-method>
	
	<action-method name="action-supply-chain-method-update-so-on-cancel" if-module="axelor-supplychain">
		<call class="com.axelor.apps.supplychain.web.SaleOrderController" method="updateSaleOrderOnCancel"/>
	</action-method>
	
	<action-method name="action-supply-chain-method-update-po-on-cancel" if-module="axelor-supplychain">
		<call class="com.axelor.apps.supplychain.web.PurchaseOrderController" method="updatePurchaseOrderOnCancel"/>
	</action-method>
	
	<action-method name="action-print-stock-move">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="printStockMove"/>
	</action-method>

	<action-method name="action-print-picking-stock-move">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="printPickingStockMove"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-into-2">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitInto2"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-stock-move-lines-special">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitStockMoveLinesSpecial"/>
	</action-method>
	
	<action-method name="action-stock-move-method-split-stock-move-lines-unit">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="splitStockMoveLinesUnit"/>
	</action-method>
	
	<action-method name="action-stock-move-ship-recieve-all-products">
	    <call class="com.axelor.apps.stock.web.StockMoveController" method="shipReciveAllProducts"/>
	</action-method>
	
	<action-method name="action-stock-move-method-generate-reversion">
	    <call class="com.axelor.apps.stock.web.StockMoveController" method="generateReversion"/>
	</action-method>
	
	<action-method name="action-stock-move-method-view-direction">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="viewDirection"/>
	</action-method>
	
	<action-method name="action-stock-move-method-change-conformity">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="changeConformityStockMove"/>
	</action-method>
	
	<action-method name="action-stock-move-line-method-change-conformity">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="changeConformityStockMoveLine"/>
	</action-method>
	
	<action-method name="action-stock-move-method-open-stock-per-day">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="openStockPerDay"/>
	</action-method>

	<action-method name="action-stock-move-method-set-addresses-str">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="fillAddressesStr"/>
	</action-method>

	<action-validate name="action-stock-move-check-stock-move-line-real-qty">
		<alert message="The move doesn't contain any product, do you wish to continue ?" if="stockMoveLineList != null &amp;&amp; stockMoveLineList.sum{it->it.realQty} == 0"/>
	</action-validate>
	
	<action-validate name="action-stock-move-validate-address">
	    <error message="Both source location address and delivery (to) address are required to define the delivery itinerary" if="fromStockLocation?.address == null &amp;&amp; toAddress == null"/>
	    <error message="Please fill in the source (from) location address to get the delivery itinerary." if="fromStockLocation?.address == null"/>
	    <error message="Please fill in the delivery (to) address to get the delivery itinerary." if="toAddress == null"/>
	</action-validate>

    <action-view name="action-stock-move-view-logistical-forms" title="Logistical forms"
        model="com.axelor.apps.stock.db.LogisticalForm">
        <view type="grid" name="logistical-form-stock-move-grid" />
        <view type="form" name="logistical-form-form" />
        <domain>self.id IN (:logisticalFormIdList)</domain>
        <context name="logisticalFormIdList" expr="call: com.axelor.apps.stock.service.LogisticalFormService:getIdList(__this__)" />
    </action-view>

	<search-filters name="customer-deliveries-filters" model="com.axelor.apps.stock.db.StockMove" title="Customer deliveries filters">
		<filter title="Deliveries to prepare">
			<domain>self.statusSelect = 2</domain>
		</filter>
		<filter title="Late Deliveries">
			<domain>self.estimatedDate &lt; CURRENT_DATE</domain>
		</filter>
		<filter title="Deliveries History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Deliveries Cancelled">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>
	
	<search-filters name="supplier-arrivals-filters" model="com.axelor.apps.stock.db.StockMove" title="Supplier arrivals filters">
		<filter title="Today Arrivals">
			<domain>self.estimatedDate = CURRENT_DATE</domain>
		</filter>
		<filter title="Upcoming arrivals">
			<domain>self.estimatedDate &lt; :_newDate</domain>
		</filter>
		<filter title="Arrivals History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Cancelled Arrivals">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>
	
	<search-filters name="internal-stock-move-filters" model="com.axelor.apps.stock.db.StockMove" title="Internal Stock Move filters">
		<filter title="Moves To Prepare">
			<domain>self.statusSelect = 2</domain>
		</filter>
		<filter title="Moves History">
			<domain>self.statusSelect = 3</domain>
		</filter>
		<filter title="Moves Cancelled">
			<domain>self.statusSelect = 4</domain>
		</filter>
	</search-filters>

	<action-view name="action.stock.move.view.cancel" title="Cancellation" model="com.axelor.apps.stock.db.StockMove">
		<view type="form" name="stock-move-cancel-wizard-form"/>
		<view-param name="popup" value="reload"/>
		<view-param name="show-toolbar" value="false"/>
		<view-param name="show-confirm" value="false" />
		<view-param name="popup-save" value="false"/>
		<view-param name="forceEdit" value="true" />
		<context name="_showRecord" expr="eval: __this__.id" />
		<context name="_xApplicationType" expr="eval: _model"/>
	</action-view>

	<form name="stock-move-cancel-wizard-form" model="com.axelor.apps.stock.db.StockMove" title="Cancellation confirmation" >
		<panel name="main">
			<field name="cancelReason" domain="self.applicationType = :_xApplicationType" colOffset="4" colSpan="4" widget="SuggestBox" canNew="false" canEdit="false"/>
			<button readonlyIf="cancelReason == null" name="cancelConfirm" title="Confirm cancellation" onClick="action-stock-move-method-cancel" colOffset="4" colSpan="4"/>
		</panel>
	</form>

	<action-record name="action-stock-move-record-update-info-company" model="com.axelor.apps.stock.db.StockMove">
		<field name="tradingName" expr="eval: null" if="__config__.app.getApp('base').enableTradingNamesManagement"/>
		<field name="printingSettings" expr="eval: company?.printingSettings"/>
	</action-record>

	<action-method name="action-stock-move-method-printing-settings-default-value">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="fillDefaultPrintingSettings"/>
	</action-method>

	<action-method name="action-stock-move-method-filter-printing-settings">
		<call class="com.axelor.apps.stock.web.StockMoveController" method="filterPrintingSettings"/>
	</action-method>
	
	<action-record name="action-stock-move-record-freight-carrier" model="com.axelor.apps.stock.db.StockMove">
		<field name="carrierPartner" expr="eval:freightCarrierMode?.carrierPartner"/>
	</action-record>
	
	<action-record name="action-stock-move-record-partner-shipment-informations" model="com.axelor.apps.stock.db.StockMove">
		<field name="shipmentMode" expr="eval: clientPartner?.shipmentMode"/>
    	<field name="freightCarrierMode" expr="eval: clientPartner?.freightCarrierMode"/>
		<field name="carrierPartner" expr="eval: clientPartner?.freightCarrierMode?.carrierPartner"/>
	</action-record>
		

</object-views>

{'fraction_non_alphanumeric': 0.1702512805384966, 'fraction_numerical': 0.005873045670304916, 'mean_word_length': 3.930191049117472, 'pattern_counts': {'":': 4, '<': 991, '<?xml version=': 2, '>': 993, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 16, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1365043', 'n_tokens_mistral': 23926, 'n_tokens_neox': 22490, 'n_words': 3556}