initial commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<form name="app-business-project-config-form" title="App business project" model="com.axelor.apps.base.db.AppBusinessProject" canDelete="false" canNew="false" width="large">
|
||||
<panel name="mainPanel">
|
||||
<field name="generateProjectOrder" widget="boolean-switch"/>
|
||||
<field name="automaticProject" widget="boolean-switch"/>
|
||||
<field name="generatedElementTypeSelect"/>
|
||||
<field name="projectSaleOrderLines" widget="boolean-switch"/>
|
||||
<field name="projectPurchaseOrderLines" widget="boolean-switch"/>
|
||||
<field name="projectInvoiceLines" widget="boolean-switch"/>
|
||||
<field name="productInvoicingProject" canEdit="false"/>
|
||||
<field name="showPurchaseOrderLineRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="showSaleOrderLineRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="showProductionOrderRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="showExpenseLineRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="showPurchaseInvoiceLineRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="showSaleInvoiceLineRelatedToProject" widget="boolean-switch"/>
|
||||
<field name="enableToInvoiceTimesheet" widget="boolean-switch" />
|
||||
<field name="enableToInvoiceExpense" widget="boolean-switch" />
|
||||
<field name="enableTaskTemplatesByProduct" widget="boolean-switch"/>
|
||||
<field name="preTaskStatusSet" widget="MultiSelect"/>
|
||||
<field name="postTaskStatusSet" widget="MultiSelect"/>
|
||||
<field name="exculdeTaskInvoicing"/>
|
||||
</panel>
|
||||
|
||||
<panel-mail name="mailPanel">
|
||||
<mail-messages limit="4"/>
|
||||
<mail-followers/>
|
||||
</panel-mail>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<form id="business-project-batch-form" name="batch-form" title="Batch" model="com.axelor.apps.base.db.Batch" extension="true">
|
||||
|
||||
<extend target="//field[@name='comments']">
|
||||
<insert position="after">
|
||||
<field name="projectInvoicingAssistantBatch" hidden="true"/>
|
||||
<field name="projectInvoicingAssistantBatch.actionSelect" hidden="true"/>
|
||||
</insert>
|
||||
</extend>
|
||||
|
||||
</form>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="expense-line-project-grid" title="Expense lines" model="com.axelor.apps.hr.db.ExpenseLine">
|
||||
<hilite if="$get('expense.statusSelect') < 3 && toInvoice && !invoiced" color="info"/>
|
||||
<hilite if="invoiced" color="success"/>
|
||||
<field name="project" />
|
||||
<field name="expense.expenseSeq" title="Expense" width="120"/>
|
||||
<field name="user"/>
|
||||
<field name="expenseProduct" canView="false" readonly="true"/>
|
||||
<field name="expenseDate" readonly="true"/>
|
||||
<field name="totalAmount" aggregate="sum" readonly="true"/>
|
||||
<field name="toInvoice"/>
|
||||
<field name="invoiced"/>
|
||||
<button name="updateToInvoiceBtn" title="Update to invoice" readonlyIf="invoiced" icon="fa-check-circle" onClick="action-expense-line-method-update-to-invoice" />
|
||||
<field name="expense" hidden="true"/>
|
||||
<field name="expense.statusSelect" hidden="true"/>
|
||||
</grid>
|
||||
|
||||
<action-attrs name="action-expense-line-attrs-domain-project" id="business-project-action-expense-line-attrs-domain-project">
|
||||
<attribute name="domain" for="project" expr="eval: " self.imputable = true AND (${__user__.id} MEMBER OF self.membersUserSet OR self.assignedTo.id = ${__user__.id}) ""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-method name="action-expense-line-method-update-to-invoice" >
|
||||
<call class="com.axelor.apps.businessproject.web.ExpenseLineProjectController" method="updateToInvoice"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-expense-line-method-set-project">
|
||||
<call class="com.axelor.apps.businessproject.web.ExpenseLineProjectController" method="setProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-expense-line-method-unset-project">
|
||||
<call class="com.axelor.apps.businessproject.web.ExpenseLineProjectController" method="unsetProject"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<action-method name="action-invoice-business-project-method-print-annex">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceController" method="exportAnnex"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-invoice-business-project-method-update-lines">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceController" method="updateLines"/>
|
||||
</action-method>
|
||||
|
||||
<action-record name="action-invoice-record-printing-fields" model="com.axelor.apps.account.db.Invoice">
|
||||
<field name="displayTimesheetOnPrinting" expr="eval: __user__.activeCompany?.accountConfig?.displayTimesheetOnPrinting"/>
|
||||
<field name="displayExpenseOnPrinting" expr="eval: __user__.activeCompany?.accountConfig?.displayExpenseOnPrinting"/>
|
||||
</action-record>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="invoice-line-project-grid" title="Invoice lines" model="com.axelor.apps.account.db.InvoiceLine" >
|
||||
<field name="project"/>
|
||||
<field name="invoice" width="120"/>
|
||||
<field name="product.code" width="120"/>
|
||||
<field name="productName"/>
|
||||
<field name="qty" aggregate="sum"/>
|
||||
<field name="price" x-scale="2"/>
|
||||
<field name="unit" form-view="unit-form" grid-view="unit-grid"/>
|
||||
<field name="exTaxTotal" aggregate="sum"/>
|
||||
<field name="inTaxTotal" aggregate="sum"/>
|
||||
</grid>
|
||||
|
||||
<action-method name="action-invoice-line-method-set-customer-invoice-line-project">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceLineProjectController" method="setCustomerInvoiceLineProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-invoice-line-method-unset-customer-invoice-line-project">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceLineProjectController" method="unsetCustomerInvoiceLineProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-invoice-line-method-set-supplier-invoice-line-project">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceLineProjectController" method="setSupplierInvoiceLineProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-invoice-line-method-unset-supplier-invoice-line-project">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoiceLineProjectController" method="unsetSupplierInvoiceLineProject"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,135 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="invoicing-project-grid" title="Invoicing business projects" model="com.axelor.apps.businessproject.db.InvoicingProject">
|
||||
<field name="invoice" width="120"/>
|
||||
<field name="project" form-view="project-form" grid-view="project-grid"/>
|
||||
<field name="deadlineDate"/>
|
||||
<field name="createdOn"/>
|
||||
<field name="comments"/>
|
||||
</grid>
|
||||
|
||||
<form name="invoicing-project-form" title="Invoicing business project" model="com.axelor.apps.businessproject.db.InvoicingProject"
|
||||
onNew="action-invoicing-project-group-on-new" onLoad="action-invoicing-project-attrs-title-project" width="large">
|
||||
<toolbar>
|
||||
<button name="deleteBtn" hidden="true" showIf="invoice == null" title="Delete"/>
|
||||
</toolbar>
|
||||
|
||||
<panel name="mainPanel">
|
||||
<field name="statusSelect" widget="NavSelect" showTitle="false" colSpan="12" readonly="true"/>
|
||||
<field name="project" form-view="project-form" grid-view="project-grid" onChange="action-invoicing-project-method-fill-in"/>
|
||||
<field name="deadlineDate" readonlyIf="invoice" onChange="action-invoicing-project-method-fill-in"/>
|
||||
<field name="attachAnnexToInvoice" widget="boolean-switch" readonlyIf="invoice"/>
|
||||
<button name="generateInvoiceBtn" title="Generate Invoice" onClick="save,action-invoicing-project-method-generate-invoice" hideIf="invoice != null"/>
|
||||
<field name="invoice" readonly="true" form-view="invoice-form" grid-view="invoice-grid" edit-window="blank"/>
|
||||
<button name="seeLinkedTimesheetLinesBtn" title="See Linked Timesheet Lines" onClick="action-invoicing-project-show-timesheet-lines" hidden="true" showIf="invoice != null"/>
|
||||
</panel>
|
||||
|
||||
<panel name="commentsPanel">
|
||||
<field name="comments" colSpan="12" />
|
||||
</panel>
|
||||
|
||||
<panel-tabs name="mainPanelTab">
|
||||
<panel name="listPanel" title="Elements To Invoice">
|
||||
<panel-related title="Sale" field="saleOrderLineSet"
|
||||
colSpan="12" canNew="false" canEdit="false"
|
||||
canSelect="false"
|
||||
form-view="sale-order-line-form"
|
||||
grid-view="sale-order-line-grid"
|
||||
showIf="saleOrderLineSet && saleOrderLineSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="saleOrderLineSetPanel"/>
|
||||
<panel-related title="Purchase" field="purchaseOrderLineSet"
|
||||
colSpan="12" canNew="false" canEdit="false"
|
||||
canSelect="false"
|
||||
grid-view="purchase-order-line-invoicing-project-grid"
|
||||
form-view="purchase-order-line-form"
|
||||
showIf="purchaseOrderLineSet && purchaseOrderLineSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="purchaseOrderLineSetPanel"/>
|
||||
<panel-related title="Time spent" field="logTimesSet"
|
||||
colSpan="12" canNew="false" canEdit="false"
|
||||
canSelect="false"
|
||||
grid-view="timesheet-line-project-grid"
|
||||
form-view="timesheet-line-project-form"
|
||||
showIf="logTimesSet && logTimesSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="logTimesSetPanel"/>
|
||||
<panel-related title="Expenses" field="expenseLineSet"
|
||||
colSpan="12" canNew="false" canEdit="false"
|
||||
canSelect="false" form-view="expense-line-form"
|
||||
grid-view="expense-line-grid"
|
||||
showIf="expenseLineSet && expenseLineSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="expenseLineSetPanel"/>
|
||||
|
||||
<panel-related field="projectSet" colSpan="12" canNew="false"
|
||||
canEdit="false" canSelect="false"
|
||||
form-view="project-form" grid-view="project-grid"
|
||||
showIf="projectSet && projectSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="projectSetPanel"/>
|
||||
|
||||
<panel-related title="Production" field="manufOrderSet"
|
||||
colSpan="12" canNew="false" canEdit="false"
|
||||
canSelect="false"
|
||||
if-module="axelor-business-production"
|
||||
grid-view="manuf-order-invoicing-project-grid"
|
||||
form-view="manuf-order-form"
|
||||
showIf="manufOrderSet && manufOrderSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
if="__config__.app.isApp('production') && __config__.app.getApp('production').getManageBusinessProduction()"
|
||||
name="manufOrderSetPanel"/>
|
||||
|
||||
<panel-related field="teamTaskSet" colSpan="12" canNew="false"
|
||||
canEdit="false" canSelect="false"
|
||||
form-view="team-task-form" grid-view="business-project-team-task-grid"
|
||||
showIf="teamTaskSet && teamTaskSet.length > 0"
|
||||
readonlyIf="invoice"
|
||||
name="teamTaskSetPanel"/>
|
||||
</panel>
|
||||
|
||||
<panel name="configurationsPanel" title="Configurations" readonlyIf="invoice">
|
||||
<field name="saleOrderLineSetPrioritySelect"/>
|
||||
<field name="purchaseOrderLineSetPrioritySelect"/>
|
||||
<field name="logTimesSetPrioritySelect"/>
|
||||
<field name="expenseLineSetPrioritySelect"/>
|
||||
<field name="projectSetPrioritySelect"/>
|
||||
<field name="teamTaskSetPrioritySelect"/>
|
||||
</panel>
|
||||
</panel-tabs>
|
||||
|
||||
</form>
|
||||
|
||||
<action-group name="action-invoicing-project-group-on-new">
|
||||
<action name="action-invoicing-project-attrs-title-project"/>
|
||||
<action name="action-invoicing-project-record-default"/>
|
||||
<action name="action-invoicing-project-method-fill-in" if="project != null"/>
|
||||
</action-group>
|
||||
|
||||
<action-method name="action-invoicing-project-method-generate-invoice">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoicingProjectController" method="generateInvoice"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-invoicing-project-method-fill-in">
|
||||
<call class="com.axelor.apps.businessproject.web.InvoicingProjectController" method="fillIn"/>
|
||||
</action-method>
|
||||
|
||||
<action-attrs name="action-invoicing-project-attrs-title-project">
|
||||
<attribute name="title" for="project" expr="eval: __config__.app.getApp('project').getProjectLabel()" if="!com.google.common.base.Strings.isNullOrEmpty(__config__.app.getApp('project').getProjectLabel())"/>
|
||||
<attribute name="title" for="projectSet" expr="eval: __config__.app.getApp('project').getProjectLabel()" if="!com.google.common.base.Strings.isNullOrEmpty(__config__.app.getApp('project').getProjectLabel())"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-record name="action-invoicing-project-record-default" model="com.axelor.apps.businessproject.db.InvoicingProject">
|
||||
<field name="project" expr="eval: _project"/>
|
||||
</action-record>
|
||||
|
||||
<action-view name="action-invoicing-project-show-timesheet-lines" title="Timesheet lines" model="com.axelor.apps.hr.db.TimesheetLine">
|
||||
<view name="timesheet-line-project-grid" type="grid"/>
|
||||
<view name="timesheet-line-project-form" type="form"/>
|
||||
<domain>self.id IN (:list) </domain>
|
||||
<context name="list" expr="eval: logTimesSet.collect{it.id}"/>
|
||||
</action-view>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="manual-element-grid" title="Manual elements" model="com.axelor.apps.businessproject.db.ManualElement" editable="true">
|
||||
<field name="title"/>
|
||||
<field name="date"/>
|
||||
<field name="currency" form-view="currency-form" grid-view="currency-grid"/>
|
||||
<field name="turnover"/>
|
||||
<field name="cost"/>
|
||||
<field name="typeSelect"/>
|
||||
</grid>
|
||||
|
||||
<form name="manual-element-form" title="Manual element" model="com.axelor.apps.businessproject.db.ManualElement" width="large">
|
||||
<panel name="mainPanel">
|
||||
<field name="title"/>
|
||||
<field name="date"/>
|
||||
<field name="currency" form-view="currency-form" grid-view="currency-grid"/>
|
||||
<field name="typeSelect"/>
|
||||
<field name="turnover"/>
|
||||
<field name="cost"/>
|
||||
</panel>
|
||||
|
||||
<panel name="commentsPanel">
|
||||
<field name="comments" colSpan="12"/>
|
||||
</panel>
|
||||
</form>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<menuitem name="business-project-root" title="Job costing" order="-102" icon="fa-list-alt" icon-background="blue" if="__config__.app.isApp('business-project')"/>
|
||||
|
||||
<menuitem name="business-project-folder" parent="business-project-root" title="Project Folder" action="business.project.folder" order="5"/>
|
||||
|
||||
<action-view name="business.project.folder" title="Project Folder" model="com.axelor.apps.project.db.ProjectFolder">
|
||||
<view type="grid" name="project-folder-grid"/>
|
||||
<view type="form" name="project-folder-form"/>
|
||||
</action-view>
|
||||
|
||||
<menuitem name="business-project-all" parent="business-project-root" order="10" title="Business projects" action="business.project.all"/>
|
||||
|
||||
<action-view name="business.project.all" title="Business projects" model="com.axelor.apps.project.db.Project">
|
||||
<view type="grid" name="business-project-grid"/>
|
||||
<view type="form" name="project-form"/>
|
||||
<view type="calendar" name="project-calendar"/>
|
||||
<domain>self.isBusinessProject = true</domain>
|
||||
<context name="_fromBusinessProject" expr="eval:true"/>
|
||||
<context name="_fromProject" expr="eval:false"/>
|
||||
</action-view>
|
||||
|
||||
<menuitem name="business-project-root-invoicing-project" order="-102" title="Invoicing project" action="business.project.root.invoicing.project" icon="fa-tasks" icon-background="#3f6bb9" if="__config__.app.isApp('business-project')"/>
|
||||
|
||||
<action-view name="business.project.root.invoicing.project" title="Invoicing project" model="com.axelor.apps.businessproject.db.InvoicingProject">
|
||||
<view type="grid" name="invoicing-project-grid"/>
|
||||
<view type="form" name="invoicing-project-form"/>
|
||||
</action-view>
|
||||
|
||||
<!-- ADMINISTRATION -->
|
||||
|
||||
<menuitem name="admin-root-batch-project-invoicing-assistant" parent="admin-root-batch" if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
|
||||
title="Project invoicing assistant batches" action="admin.root.batch.project.invoicing.assistant" />
|
||||
|
||||
<action-view name="admin.root.batch.project.invoicing.assistant" title="Project invoicing assistant batches"
|
||||
model="com.axelor.apps.businessproject.db.ProjectInvoicingAssistantBatch" >
|
||||
<view type="grid" name="project-invoicing-assistant-batch-grid" />
|
||||
<view type="form" name="project-invoicing-assistant-batch-form" />
|
||||
</action-view>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,454 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="business-project-grid" title="Projects" model="com.axelor.apps.project.db.Project">
|
||||
<field name="fullName"/>
|
||||
<field name="company" form-view="company-form" grid-view="company-grid" if="__config__.app.getApp('base').getEnableMultiCompany()"/>
|
||||
<field name="clientPartner" form-view="partner-form" grid-view="partner-grid" />
|
||||
<field name="fromDate" />
|
||||
<field name="toDate" />
|
||||
</grid>
|
||||
|
||||
<action-method name="action-project-method-generate-quotation">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectController" method="generateQuotation"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-method-generate-purchase-quotation">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectController" method="generatePurchaseQuotation"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-method-print-project">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectController" method="printProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-method-print-planif-and-cost">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectController" method="printPlannifAndCost"/>
|
||||
</action-method>
|
||||
|
||||
<action-validate name="action-validate-unset-project">
|
||||
<alert message="Are you sure wants to unlink project from selected lines?."/>
|
||||
</action-validate>
|
||||
|
||||
<action-attrs id="business-project-action-project-project-default" name="action-project-project-default" model="com.axelor.apps.project.db.Project">
|
||||
<attribute name="value" for="typeSelect" expr="eval:'project'" />
|
||||
<attribute name="value" for="fromDate" expr="eval: __datetime__"/>
|
||||
<attribute name="value" for="company" expr="eval:__user__.activeCompany"/>
|
||||
<attribute name="value" for="assignedTo" expr="eval: __user__"/>
|
||||
<attribute name="value:add" for="membersUserSet" expr="eval: __user__"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-record id="business-project-action-project-default" name="action-project-default" model="com.axelor.apps.project.db.Project">
|
||||
<field name="typeSelect" expr="eval:'task'" />
|
||||
<field name="company" expr="eval:__user__.activeCompany"/>
|
||||
<field name="fromDate" expr="eval: __date__"/>
|
||||
<field name="assignedTo" expr="eval: __user__"/>
|
||||
</action-record>
|
||||
|
||||
<action-attrs name="action-project-attrs-set-invoicing-sequence">
|
||||
<attribute name="value" for="invoicingSequenceSelect" expr="eval: null"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-method name="action-project-method-get-partner-data">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectController" method="getPartnerData"/>
|
||||
</action-method>
|
||||
|
||||
<action-view name="action-dashlet-project-show-all-invoicing-task" title="Task Invoicing" model="com.axelor.team.db.TeamTask">
|
||||
<view type="grid" name="business-project-team-task-grid"/>
|
||||
<view type="form" name="team-task-form"/>
|
||||
<view-param name="show-toolbar" value="true" />
|
||||
<view-param name="popup" value="reload"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<!-- Sales -->
|
||||
|
||||
<action-view name="action-project-dashlet-sale-quotation" title="Quotation" model="com.axelor.apps.sale.db.SaleOrder">
|
||||
<view type="grid" name="sale-order-quotation-grid"/>
|
||||
<view type="form" name="sale-order-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.saleOrderLineList.project.id in (:_projectIds) AND self.statusSelect < 3</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-sale-order" title="Sale order" model="com.axelor.apps.sale.db.SaleOrder">
|
||||
<view type="grid" name="sale-order-grid"/>
|
||||
<view type="form" name="sale-order-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.saleOrderLineList.project.id in (:_projectIds) AND self.statusSelect in (3,4)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-sale-order-lines" title="Sale Order Lines" model="com.axelor.apps.sale.db.SaleOrderLine">
|
||||
<view type="grid" name="sale-order-line-project-grid"/>
|
||||
<view type="form" name="sale-order-line-project-form"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-confirmed-sale-order-lines" title="Sale Order Lines" model="com.axelor.apps.sale.db.SaleOrderLine">
|
||||
<view type="grid" name="sale-order-line-project-grid"/>
|
||||
<view type="form" name="sale-order-line-project-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.saleOrder.statusSelect in (3,4) AND self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-customer-deliveries" title="Customer deliveries" model="com.axelor.apps.stock.db.StockMove">
|
||||
<view type="grid" name="stock-move-out-grid"/>
|
||||
<view type="form" name="stock-move-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.stockMoveLineList.saleOrderLine.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-attrs name="action-project-attrs-sales-order-line-select-lines">
|
||||
<attribute name="readonly" for="selectNewSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$salesOrderLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$salesOrderLineSet" expr="eval:false"/>
|
||||
<attribute name="title" for="$salesOrderLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to add')"/>
|
||||
<attribute name="domain" for="$salesOrderLineSet" expr="eval:"self.saleOrder.clientPartner = :clientPartner AND self.saleOrder.statusSelect in (3,4) AND self.project is null""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-sales-order-line-manage-lines">
|
||||
<attribute name="readonly" for="selectNewSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$salesOrderLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$salesOrderLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$salesOrderLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to unlink')"/>
|
||||
<attribute name="domain" for="$salesOrderLineSet" expr="eval:"self.saleOrder.statusSelect in (3,4) AND self.project.id = :id"" if="!isShowPhasesElements"/>
|
||||
<attribute name="domain" for="$salesOrderLineSet" expr="eval:"self.saleOrder.statusSelect in (3,4) AND (self.project.id = :id OR self.project.parentProject.id = :id)"" if="isShowPhasesElements"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-sales-order-line-cancel-manage-lines">
|
||||
<attribute name="readonly" for="selectNewSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="readonly" for="manageSOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="unlinkSelectedSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="cancelManageSOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="$salesOrderLineSet" expr="eval:true"/>
|
||||
</action-attrs>
|
||||
|
||||
<!-- Purchase -->
|
||||
|
||||
<action-view name="action-project-project-purchase-quotation" title="PO.Quotation" model="com.axelor.apps.purchase.db.PurchaseOrder">
|
||||
<view type="grid" name="purchase-order-quotation-grid"/>
|
||||
<view type="form" name="purchase-order-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.purchaseOrderLineList.project.id in (:_projectIds) AND self.statusSelect < 3</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-purchase-order" title="Purchase order" model="com.axelor.apps.purchase.db.PurchaseOrder">
|
||||
<view type="grid" name="purchase-order-grid"/>
|
||||
<view type="form" name="purchase-order-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.purchaseOrderLineList.project.id in (:_projectIds) AND self.statusSelect in (3,4)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-supplier-arrivals" title="Supplier arrivals" model="com.axelor.apps.stock.db.StockMove">
|
||||
<view type="grid" name="stock-move-in-grid"/>
|
||||
<view type="form" name="stock-move-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.stockMoveLineList.purchaseOrderLine.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-purchase-order-lines" title="Purchase Order Lines" model="com.axelor.apps.purchase.db.PurchaseOrderLine">
|
||||
<view type="grid" name="purchase-order-line-project-grid"/>
|
||||
<view type="form" name="purchase-order-line-project-form"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-analytic-move-lines" model="com.axelor.apps.account.db.AnalyticMoveLine" title="Analytic move lines">
|
||||
<view name="analytic-move-line-grid" type="grid"/>
|
||||
<view name="analytic-move-line-form" type="form"/>
|
||||
<domain>self.project.id = :id</domain>
|
||||
<context name="id" expr="eval:id"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-confirmed-purchase-order-lines" title="Purchase Order Lines" model="com.axelor.apps.purchase.db.PurchaseOrderLine">
|
||||
<view type="grid" name="purchase-order-line-project-grid"/>
|
||||
<view type="form" name="purchase-order-line-project-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.purchaseOrder.statusSelect in (3,4) AND self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
|
||||
<action-attrs name="action-project-attrs-purchase-order-line-select-lines">
|
||||
<attribute name="readonly" for="selectNewPOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="managePOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedPOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManagePOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$purchaseOrderLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$purchaseOrderLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$purchaseOrderLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to add')"/>
|
||||
<attribute name="domain" for="$purchaseOrderLineSet" expr="eval:"self.purchaseOrder.statusSelect in (3,4) AND self.project is null""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-purchase-order-line-manage-lines">
|
||||
<attribute name="readonly" for="selectNewPOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="managePOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedPOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManagePOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$purchaseOrderLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$purchaseOrderLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$purchaseOrderLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to unlink')"/>
|
||||
<attribute name="domain" for="$purchaseOrderLineSet" expr="eval:"self.purchaseOrder.statusSelect in (3,4) AND self.project.id = :id"" if="!isShowPhasesElements"/>
|
||||
<attribute name="domain" for="$purchaseOrderLineSet" expr="eval:"self.purchaseOrder.statusSelect in (3,4) AND (self.project.id = :id OR self.project.parentProject.id = :id)"" if="isShowPhasesElements"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-purchase-order-line-cancel-manage-lines">
|
||||
<attribute name="readonly" for="selectNewPOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="readonly" for="managePOLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="addSelectedPOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedPOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="cancelManagePOLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="$purchaseOrderLineSet" expr="eval:true"/>
|
||||
</action-attrs>
|
||||
|
||||
<!-- Expense -->
|
||||
|
||||
<action-view name="action-project-dashlet-expense-waiting" title="Waiting expenses" model="com.axelor.apps.hr.db.Expense">
|
||||
<view type="grid" name="expense-grid"/>
|
||||
<view type="form" name="expense-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>(self.kilometricExpenseLineList.project.id in (:_projectIds) or self.generalExpenseLineList.project.id in (:_projectIds)) AND self.statusSelect < 3</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-expense-validated" title="Validated expenses" model="com.axelor.apps.hr.db.Expense">
|
||||
<view type="grid" name="expense-grid"/>
|
||||
<view type="form" name="expense-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>(self.kilometricExpenseLineList.project.id in (:_projectIds) or self.generalExpenseLineList.project.id in (:_projectIds)) AND self.statusSelect in (3,4)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-expense-lines" title="Expense lines" model="com.axelor.apps.hr.db.ExpenseLine">
|
||||
<view type="grid" name="expense-line-project-grid"/>
|
||||
<view type="form" name="expense-line-project-form"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-validated-expense-lines" title="Expense lines" model="com.axelor.apps.hr.db.ExpenseLine">
|
||||
<view type="grid" name="expense-line-project-grid"/>
|
||||
<view type="form" name="expense-line-project-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.expense.statusSelect in (3,4) AND self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-attrs name="action-project-attrs-expense-line-select-lines">
|
||||
<attribute name="readonly" for="selectNewExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$expenseLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$expenseLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$expenseLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to add')"/>
|
||||
<attribute name="domain" for="$expenseLineSet" expr="eval:"self.expense.statusSelect in (3,4) AND self.project is null""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-expense-line-manage-lines">
|
||||
<attribute name="readonly" for="selectNewExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$expenseLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$expenseLineSet" expr="eval:false"/>
|
||||
<attribute name="title" for="$expenseLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to unlink')"/>
|
||||
<attribute name="domain" for="$expenseLineSet" expr="eval:"self.expense.statusSelect in (3,4) AND self.project.id = :id"" if="!isShowPhasesElements"/>
|
||||
<attribute name="domain" for="$expenseLineSet" expr="eval:"self.expense.statusSelect in (3,4) AND (self.project.id = :id OR self.project.parentProject.id = :id)"" if="isShowPhasesElements"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-expense-line-cancel-manage-lines">
|
||||
<attribute name="readonly" for="selectNewExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="readonly" for="manageExpenseLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="unlinkSelectedExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="cancelManageExpenseLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="$expenseLineSet" expr="eval:true"/>
|
||||
</action-attrs>
|
||||
|
||||
<!-- Invoice -->
|
||||
|
||||
<action-view name="action-dashlet-project-show-all-invoicing-project" title="Invoicing projects" model="com.axelor.apps.businessproject.db.InvoicingProject">
|
||||
<view type="grid" name="invoicing-project-grid"/>
|
||||
<view type="form" name="invoicing-project-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-customer-invoices" title="Customer invoices" model="com.axelor.apps.account.db.Invoice">
|
||||
<view type="grid" name="invoice-grid"/>
|
||||
<view type="form" name="invoice-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.invoiceLineList.project.id in (:_projectIds) AND self.operationTypeSelect = 3 AND self.operationSubTypeSelect != 2</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-sale-invoice-lines" title="Customer invoice lines" model="com.axelor.apps.account.db.InvoiceLine">
|
||||
<view type="grid" name="invoice-line-project-grid"/>
|
||||
<view type="form" name="invoice-line-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.invoice.operationTypeSelect = 3 AND self.project.id in (:_projectIds) AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
<context name="$isReadOnly" expr="true"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-supplier-invoices" title="Supplier invoices" model="com.axelor.apps.account.db.Invoice">
|
||||
<view type="grid" name="invoice-supplier-grid"/>
|
||||
<view type="form" name="invoice-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.invoiceLineList.project.id in (:_projectIds) AND self.operationTypeSelect = 1 AND self.operationSubTypeSelect != 2</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-view-show-purchase-invoice-lines" title="Supplier invoice lines" model="com.axelor.apps.account.db.InvoiceLine">
|
||||
<view type="grid" name="invoice-line-project-grid"/>
|
||||
<view type="form" name="invoice-line-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.invoice.operationTypeSelect = 1 AND self.project.id in (:_projectIds) AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
<context name="$isReadOnly" expr="true"/>
|
||||
</action-view>
|
||||
|
||||
<action-view name="action-project-dashlet-advance-payment-invoices" title="Advance payment invoices" model="com.axelor.apps.account.db.Invoice">
|
||||
<view type="grid" name="invoice-grid"/>
|
||||
<view type="form" name="invoice-form"/>
|
||||
<view-param name="popup" value="true"/>
|
||||
<domain>self.invoiceLineList.project.id in (:_projectIds) AND self.operationSubTypeSelect = 2</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
<action-attrs name="action-project-attrs-customer-invoice-line-select-lines">
|
||||
<attribute name="readonly" for="selectNewCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$customerInvoiceLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$customerInvoiceLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$customerInvoiceLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to add')"/>
|
||||
<attribute name="domain" for="$customerInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 3 AND self.invoice.partner = :clientPartner AND self.project is null AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-customer-invoice-line-manage-lines">
|
||||
<attribute name="readonly" for="selectNewCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$customerInvoiceLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$customerInvoiceLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$customerInvoiceLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to unlink')"/>
|
||||
<attribute name="domain" for="$customerInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 3 AND self.project.id = :id AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2"" if="!isShowPhasesElements"/>
|
||||
<attribute name="domain" for="$customerInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 3 AND (self.project.id = :id OR self.project.parentProject.id = :id) AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2"" if="isShowPhasesElements"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-customer-invoice-line-cancel-manage-lines">
|
||||
<attribute name="readonly" for="selectNewCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="readonly" for="manageCustomerInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="unlinkSelectedCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="cancelManageCustomerInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="$customerInvoiceLineSet" expr="eval:true"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-supplier-invoice-line-select-lines">
|
||||
<attribute name="readonly" for="selectNewSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="addSelectedSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$supplierInvoiceLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$supplierInvoiceLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$supplierInvoiceLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to add')"/>
|
||||
<attribute name="domain" for="$supplierInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 1 AND self.project is null AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-supplier-invoice-line-manage-lines">
|
||||
<attribute name="readonly" for="selectNewSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="readonly" for="manageSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="cancelManageSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="$supplierInvoiceLineSet" expr="eval:false"/>
|
||||
<attribute name="value" for="$supplierInvoiceLineSet" expr="eval:null"/>
|
||||
<attribute name="title" for="$supplierInvoiceLineSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to unlink')"/>
|
||||
<attribute name="domain" for="$supplierInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 1 AND self.project.id = :id AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2"" if="!isShowPhasesElements"/>
|
||||
<attribute name="domain" for="$supplierInvoiceLineSet" expr="eval:"self.invoice.operationTypeSelect = 1 AND (self.project.id = :id OR self.project.parentProject.id = :id) AND self.invoice.statusSelect = 3 AND self.invoice.operationSubTypeSelect != 2"" if="isShowPhasesElements"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-attrs name="action-project-attrs-supplier-invoice-line-cancel-manage-lines">
|
||||
<attribute name="readonly" for="selectNewSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="readonly" for="manageSupplierInvoiceLinesBtn" expr="eval:false"/>
|
||||
<attribute name="hidden" for="addSelectedSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="unlinkSelectedSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="cancelManageSupplierInvoiceLinesBtn" expr="eval:true"/>
|
||||
<attribute name="hidden" for="$supplierInvoiceLineSet" expr="eval:true"/>
|
||||
</action-attrs>
|
||||
|
||||
|
||||
<!-- Production -->
|
||||
|
||||
<action-view name="action-project-view-show-production-orders" title="Production orders" model="com.axelor.apps.production.db.ProductionOrder">
|
||||
<view type="grid" name="production-order-grid"/>
|
||||
<view type="form" name="production-order-form"/>
|
||||
<domain>self.project.id in (:_projectIds)</domain>
|
||||
<context if="id == null" name="_projectIds" expr="eval:[0]" />
|
||||
<context if="id != null && !isShowPhasesElements" name="_projectIds" expr="eval:[id]"/>
|
||||
<context if="id != null && isShowPhasesElements" name="_projectIds" expr="eval:[id] + childProjectList.collect{it->it.id}"/>
|
||||
</action-view>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid name="project-invoicing-assistant-batch-grid" title="Project invoicing assistant batches" model="com.axelor.apps.businessproject.db.ProjectInvoicingAssistantBatch">
|
||||
<field name="actionSelect" />
|
||||
<field name="code" x-bind="{{code|unaccent|uppercase}}" />
|
||||
<field name="company" form-view="company-form" grid-view="company-grid" if="__config__.app.getApp('base').getEnableMultiCompany()"/>
|
||||
<field name="createdOn"/>
|
||||
<field name="createdBy" form-view="user-form" grid-view="user-grid"/>
|
||||
</grid>
|
||||
|
||||
<form name="project-invoicing-assistant-batch-form" title="Project invoicing assistant batch" model="com.axelor.apps.businessproject.db.ProjectInvoicingAssistantBatch"
|
||||
onNew="action-project-invoicing-assistant-batch-record-on-new">
|
||||
<panel name="mainPanel">
|
||||
<field name="actionSelect" onChange="action-base-batch-attrs-action-select"/>
|
||||
<field name="code" x-bind="{{code|unaccent|uppercase}}" onChange="action-base-batch-condition-check-unique-code"/>
|
||||
<field name="company" widget="SuggestBox" form-view="company-form" grid-view="company-grid"/>
|
||||
</panel>
|
||||
<panel name="informationPanel" title="Information">
|
||||
<field name="createdOn" title="Created on"/>
|
||||
<field name="createdBy" title="Created by" form-view="user-form" grid-view="user-grid"/>
|
||||
<field name="description" showTitle="false" colSpan="12"/>
|
||||
<panel-related name="batchListPanel" field="batchList" colSpan="12" form-view="batch-form" grid-view="batch-grid"/>
|
||||
</panel>
|
||||
<panel name="actionPanel" sidebar="true">
|
||||
<button name="updateTaskBtn" title="Update tasks" onClick="save,action-project-invoicing-assistant-batch-method-update-task" showIf="actionSelect == 1"/>
|
||||
<button name="generateInvoicingProjectBtn" title="Generate invoicing projects" onClick="save,action-project-invoicing-assistant-batch-method-generate-inv-project" showIf="actionSelect == 2"/>
|
||||
</panel>
|
||||
</form>
|
||||
|
||||
<action-record name="action-project-invoicing-assistant-batch-record-on-new" model="com.axelor.apps.businessproject.db.ProjectInvoicingAssistantBatch">
|
||||
<field name="createdOn" expr="eval:__config__.app.getTodayDate()"/>
|
||||
<field name="createdBy" expr="eval:__user__"/>
|
||||
<field name="company" expr="eval:__user__.activeCompany" if="__user__.activeCompany != null"/>
|
||||
<field name="company" expr="eval:__repo__(Company).all().fetchOne()" if="__user__.activeCompany == null && __repo__(Company).all().fetch().size == 1"/>
|
||||
</action-record>
|
||||
|
||||
<action-method name="action-project-invoicing-assistant-batch-method-update-task">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectInvoicingAssistantBatchController" method="actionUpdateTask"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-invoicing-assistant-batch-method-show-task">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectInvoicingAssistantBatchController" method="showUpdatedTask"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-invoicing-assistant-batch-method-show-timesheet-line">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectInvoicingAssistantBatchController" method="showUpdatedTimesheetLine"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-invoicing-assistant-batch-method-generate-inv-project">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectInvoicingAssistantBatchController" method="actionGenerateInvoicingProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-project-invoicing-assistant-batch-method-show-inv-project">
|
||||
<call class="com.axelor.apps.businessproject.web.ProjectInvoicingAssistantBatchController" method="showGeneratedInvoicingProject"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<action-method name="action-business-project-purchase-order-method-update-lines">
|
||||
<call class="com.axelor.apps.businessproject.web.PurchaseOrderProjectController" method="updateLines"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
|
||||
<grid name="purchase-order-line-project-grid" title="Purchase order lines" model="com.axelor.apps.purchase.db.PurchaseOrderLine">
|
||||
<hilite if="$get('purchaseOrder.statusSelect') < 3 && toInvoice && !invoiced" color="info"/>
|
||||
<hilite if="invoiced" color="success"/>
|
||||
<field name="project" />
|
||||
<field name="purchaseOrder" form-view="purchase-order-form" grid-view="purchase-order-grid" readonly="true"/>
|
||||
<field name="supplierPartner" form-view="partner-form" grid-view="partner-grid" readonly="true"/>
|
||||
<field name="productName" readonly="true"/>
|
||||
<field name="exTaxTotal" aggregate="sum" readonly="true"/>
|
||||
<field name="amountInvoiced"/>
|
||||
<field name="purchaseOrder.currency" />
|
||||
<field name="toInvoice"/>
|
||||
<field name="invoiced"/>
|
||||
<button name="updateToInvoiceBtn" title="Update to invoice" readonlyIf="invoiced" icon="fa-check-circle" onClick="action-purchase-order-line-method-update-to-invoice" />
|
||||
<field name="purchaseOrder.statusSelect" hidden="true"/>
|
||||
</grid>
|
||||
|
||||
<action-method name="action-purchase-order-line-method-set-project">
|
||||
<call class="com.axelor.apps.businessproject.web.PurchaseOrderLineProjectController" method="setProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-purchase-order-line-method-unset-project">
|
||||
<call class="com.axelor.apps.businessproject.web.PurchaseOrderLineProjectController" method="unsetProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-purchase-order-line-method-update-to-invoice">
|
||||
<call class="com.axelor.apps.businessproject.web.PurchaseOrderLineProjectController" method="updateToInvoice"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<form name="sale-order-form" title="Sale order" model="com.axelor.apps.sale.db.SaleOrder" id="business-project-sale-order-form" extension="true">
|
||||
<extend target="/">
|
||||
<attribute name="onLoad" value="action-group-business-project-saleorder-onload"/>
|
||||
</extend>
|
||||
</form>
|
||||
|
||||
<form name="sale-order-template-form" title="Template" model="com.axelor.apps.sale.db.SaleOrder" id="business-project-sale-order-template-form" extension="true">
|
||||
<extend target="/">
|
||||
<attribute name="onNew" value="action-group-sale-saleorder-onnew,action-saleorder-record-template,action-sale-order-method-create-template"/>
|
||||
</extend>
|
||||
</form>
|
||||
|
||||
<action-group name="action-group-business-project-saleorder-onload">
|
||||
<action name="action-group-supplychain-saleorder-onload"/>
|
||||
<action name="action-sale-order-attrs-project"/>
|
||||
</action-group>
|
||||
|
||||
<action-attrs name="action-sale-order-attrs-project">
|
||||
<attribute for="$genProjTypePerOrderLine" name="value" if="eval: __config__.app.getApp('business-project').getGeneratedElementTypeSelect() == 1" expr="eval: com.axelor.apps.project.db.GenProjTypePerOrderLine.TASK_BY_LINE"/>
|
||||
<attribute for="$genProjTypePerOrderLine" name="value" if="eval: __config__.app.getApp('business-project').getGeneratedElementTypeSelect() == 2" expr="eval: com.axelor.apps.project.db.GenProjTypePerOrderLine.PHASE_BY_LINE"/>
|
||||
<attribute for="$genProjTypePerOrderLine" name="readonly" expr="eval: __config__.app.getApp('business-project').getGeneratedElementTypeSelect() != 3"/>
|
||||
</action-attrs>
|
||||
|
||||
<action-method name="action-business-project-sale-order-method-generate-invoicing-project">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderProjectController" method="generateInvoicingProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-condition name="action-business-project-sale-order-condition-invoicing">
|
||||
<check error="A deadline is required" field="deadline" if="!deadline"/>
|
||||
</action-condition>
|
||||
|
||||
<action-method name="action-business-project-method-generate-project">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderProjectController" method="generateProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-business-project-method-fill-project">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderProjectController" method="fillProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-business-project-sale-order-method-update-lines">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderProjectController" method="updateLines"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
|
||||
<grid name="sale-order-line-project-grid" title="Sale order lines" model="com.axelor.apps.sale.db.SaleOrderLine" orderBy="-saleOrder.orderDate">
|
||||
<hilite if="$get('saleOrder.statusSelect') < 3 && toInvoice && !invoiced" color="info"/>
|
||||
<hilite if="invoiced" color="success"/>
|
||||
<field name="project" />
|
||||
<field name="saleOrder.saleOrderSeq" width="120" title="Reference"/>
|
||||
<field name="saleOrder.creationDate"/>
|
||||
<field name="product.code" width="120"/>
|
||||
<field name="productName" readonly="true"/>
|
||||
<field name="reservedQty" if="__config__.app.getApp('supplychain')?.manageStockReservation" aggregate="sum" readonly="true"/>
|
||||
<field name="exTaxTotal" aggregate="sum" readonly="true"/>
|
||||
<field name="amountInvoiced" />
|
||||
<field name="saleOrder.currency"/>
|
||||
<field name="toInvoice"/>
|
||||
<button name="updateToInvoiceBtn" title="Update to invoice" readonlyIf="amountInvoiced >= exTaxTotal" icon="fa-check-circle" onClick="action-sale-order-line-method-update-to-invoice" />
|
||||
<field name="saleOrder.statusSelect" hidden="true"/>
|
||||
<field name="invoiced" hidden="true" />
|
||||
</grid>
|
||||
|
||||
<action-method name="action-sale-order-line-method-set-project">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderLineProjectController" method="setProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-sale-order-line-method-unset-project">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderLineProjectController" method="unsetProject"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-sale-order-line-method-update-to-invoice">
|
||||
<call class="com.axelor.apps.businessproject.web.SaleOrderLineProjectController" method="updateToInvoice"/>
|
||||
</action-method>
|
||||
|
||||
<action-record name="action-sale-order-line-record-update-to-invoice" model="com.axelor.apps.sale.db.SaleOrderLine">
|
||||
<field name="toInvoice" expr="eval:!toInvoice" if="!invoiced"/>
|
||||
</action-record>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<selection name="business.team.task.invoicing.type.select">
|
||||
<option value="1">Time spent</option>
|
||||
<option value="2">Package</option>
|
||||
<option value="3">No invoicing</option>
|
||||
</selection>
|
||||
|
||||
<selection name="business.project.invoicing.sequence.select">
|
||||
<option value="0">Empty</option>
|
||||
<option value="1">Invoice pre task</option>
|
||||
<option value="2">Invoice post task</option>
|
||||
</selection>
|
||||
|
||||
<selection name="invoicing.project.priority.select">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
<option value="5">5</option>
|
||||
<option value="6">6</option>
|
||||
</selection>
|
||||
|
||||
<selection name="business.project.charging.back.purchases.select">
|
||||
<option value="1">Identically</option>
|
||||
<option value="2">With price list</option>
|
||||
<option value="3">With percentage</option>
|
||||
</selection>
|
||||
|
||||
<selection name="business.project.config.generated.element.type">
|
||||
<option value="1">Task</option>
|
||||
<option value="2">Project Phase</option>
|
||||
<option value="3">Free</option>
|
||||
</selection>
|
||||
|
||||
<selection name="business.project.manual.element.type.select">
|
||||
<option value="1">Remaining</option>
|
||||
<option value="2">Realised</option>
|
||||
</selection>
|
||||
|
||||
<selection name="business.project.invoicing.project.status.select">
|
||||
<option value="1">Draft</option>
|
||||
<option value="2">Generated</option>
|
||||
<option value="3">Validated</option>
|
||||
<option value="4">Ventilated</option>
|
||||
<option value="5">Canceled</option>
|
||||
</selection>
|
||||
|
||||
<selection name="project.invoicing.assistant.batch.action.select">
|
||||
<option value="1">Update Tasks</option>
|
||||
<option value="2">Generate invoicing projects</option>
|
||||
</selection>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<grid model="com.axelor.team.db.TeamTask" title="Tasks" name="business-project-team-task-grid" orderBy="-taskDate">
|
||||
<field name="project"/>
|
||||
<field name="name"/>
|
||||
<field name="taskDate"/>
|
||||
<field name="status"/>
|
||||
<field name="progressSelect" widget="SelectProgress"/>
|
||||
<field name="exTaxTotal"/>
|
||||
<field name="toInvoice"/>
|
||||
<field name="invoiced"/>
|
||||
<button name="updateToInvoiceBtn" title="Update to invoice" readonlyIf="invoiced" icon="fa-check-circle" onClick="action-team-task-method-update-to-invoice"/>
|
||||
</grid>
|
||||
|
||||
<action-method name="action-team-task-method-update-to-invoice">
|
||||
<call class="com.axelor.apps.businessproject.web.TeamTaskController" method="updateToInvoice"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-team-task-method-update-discount">
|
||||
<call class="com.axelor.apps.businessproject.web.TeamTaskController" method="updateDiscount"/>
|
||||
</action-method>
|
||||
|
||||
<action-method name="action-team-task-method-compute">
|
||||
<call class="com.axelor.apps.businessproject.web.TeamTaskController" method="compute"/>
|
||||
</action-method>
|
||||
|
||||
<action-attrs name="action-team-task-attrs-scale-and-precision">
|
||||
<attribute name="scale" for="priceDiscounted" expr="eval: __config__.app.getNbDecimalDigitForUnitPrice()"/>
|
||||
<attribute name="scale" for="discountAmount" expr="eval: __config__.app.getNbDecimalDigitForUnitPrice()"/>
|
||||
</action-attrs>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<action-attrs name="action-team-task-category-attrs-set-invoicing-type">
|
||||
<attribute name="value" for="invoicingType" expr="eval: null"/>
|
||||
</action-attrs>
|
||||
|
||||
</object-views>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?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.2.xsd">
|
||||
|
||||
<action-attrs name="action-timesheet-line-attrs-domain-project" id="business-project-action-timesheet-line-attrs-domain-project">
|
||||
<attribute name="domain" for="project" expr="eval: " self.imputable = true AND (${__user__.id} MEMBER OF self.membersUserSet OR self.assignedTo.id = ${__user__.id}) ""/>
|
||||
</action-attrs>
|
||||
|
||||
<action-method name="action-timesheet-line-method-set-default-to-invoice">
|
||||
<call class="com.axelor.apps.businessproject.web.TimesheetLineBusinessController" method="setDefaultToInvoice"/>
|
||||
</action-method>
|
||||
|
||||
</object-views>
|
||||
Reference in New Issue
Block a user