bzr revid: fp@tinyerp.com-20081008111205-kdkpnfzelxsodx0c
This commit is contained in:
Fabien Pinckaers
2008-10-08 13:12:05 +02:00
46 changed files with 1998 additions and 279 deletions
-17
View File
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>addons</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
-17
View File
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>new-report-apa</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?>
<pydev_project>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.4</pydev_property>
</pydev_project>
+3 -1
View File
@@ -29,7 +29,7 @@
{
"name" : "Accounting and financial management",
"version" : "1.0",
"depends" : ["product", "base"],
"depends" : ["product", "base", "process"],
"author" : "Tiny",
"description": """Financial and accounting module that covers:
General accounting
@@ -66,6 +66,8 @@
"project/project_report.xml",
"product_view.xml",
"account_assert_test.xml",
"process/invoice_process.xml",
"process/statement_process.xml"
],
"translations" : {
"fr": "i18n/french_fr.csv"
+13 -1
View File
@@ -141,7 +141,7 @@
<field name="name">List of Accounts</field>
<field name="res_model">account.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">tree,form,graph</field>
</record>
<menuitem id="account_account_menu" name="Financial Accounts" parent="account.menu_finance_accounting"/>
<menuitem action="action_account_form" id="menu_action_account_form" parent="account_account_menu"/>
@@ -166,6 +166,7 @@
<field name="name">Chart of Accounts</field>
<field name="res_model">account.account</field>
<field name="view_type">tree</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_account_tree"/>
<field name="domain">[('parent_id','=',False)]</field>
</record>
@@ -1629,6 +1630,17 @@
<menuitem parent="account.account_account_menu" action="action_wizard_multi_chart" id="menu_wizard"/>
<record id="account_account_graph" model="ir.ui.view">
<field name="name">account.account.graph</field>
<field name="model">account.account</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Account Statistics" type="bar">
<field name="name"/>
<field name="balance" operator="+"/>
</graph>
</field>
</record>
</data>
</openerp>
+174
View File
@@ -0,0 +1,174 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_invoiceworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Invoice flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Invoice Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_analytic0" model="process.node">
<field name="menu_id" ref="account.account_analytic_def_account"/>
<field name="model_id" ref="account.model_account_analytic_account"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Analytic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From analytic accounts, It creates invoice.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'close')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_draftinvoices0" model="process.node">
<field name="menu_id" ref="account.menu_invoice_draft"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft Invoices&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Proposed invoice to be checked, validated and printed&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoiceinvoice0" model="process.node">
<field name="menu_id" ref="account.menu_finance_invoice"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice_invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Have a number and entries are generated&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_accountingentries0" model="process.node">
<field name="menu_id" ref="account.menu_action_move_line_form"/>
<field name="model_id" ref="account.model_account_move"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Accounting Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Validated accounting entries.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_bankstatement0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree2"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Bank Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Statement encoding produces payment entries&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_paymententries0" model="process.node">
<field name="menu_id" ref="account.menu_action_move_line_form"/>
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Payment Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Can be draft or validated&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'valid')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_reconciliation0" model="process.node">
<field name="menu_id" ref="account.menu_action_move_line_search"/>
<field name="model_id" ref="account.model_account_move_reconcile"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Reconciliation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconciliation of entries from end of the payment &quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='valid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_paidinvoice0" model="process.node">
<field name="menu_id" ref="account.menu_action_invoice_tree1"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Paid invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='paid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_analyticinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;analytic Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From analytic accounts, Create invoice.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_analytic0"/>
</record>
<record id="process_transition_customerinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Customer Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Number of entries are generated&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoiceinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_draftinvoices0"/>
</record>
<record id="process_transition_validentries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Valid Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Valid entries from invoice&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_accountingentries0"/>
<field model="process.node" name="source_node_id" ref="process_node_invoiceinvoice0"/>
</record>
<record id="process_transition_entriesreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Entries Reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcile Entries.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_accountingentries0"/>
</record>
<record id="process_transition_statemententries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Statement Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From statement, create entries&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_paymententries0"/>
<field model="process.node" name="source_node_id" ref="process_node_bankstatement0"/>
</record>
<record id="process_transition_paymentreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Payment Reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcilate the entries from payment&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_paymententries0"/>
</record>
<record id="process_transition_reconcilepaid0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Reconcile Paid&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_paidinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_reconciliation0"/>
</record>
</data>
</openerp>
@@ -0,0 +1,135 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_statementworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Statement flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Statement workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_electronicfile0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree2"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Electronic File&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import from your bank statements&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_importinvoice0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree2"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Import invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import from invoices or payments&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_draftstatement0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree2"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Set starting and ending balance if bank statement&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_confirmedstatement0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Confirmed statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirmed with/with out Reconciliation and Real balance=Computed balance&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='confirm'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_accountingstatemententries0" model="process.node">
<field name="menu_id" ref="account.menu_action_move_line_search"/>
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Accounting Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries can be draft or validated&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'valid')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_reconciliationofentries0" model="process.node">
<field name="menu_id" ref="account.menu_action_move_line_search"/>
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Reconciliation of Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcilation of the entries with invoice.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='valid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_filestatement0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;File statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import file from your bank statement&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_electronicfile0"/>
</record>
<record id="process_transition_invoiceimport0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice import&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import invoice from statement&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_importinvoice0"/>
</record>
<record id="process_transition_confirmstatementfromdraft0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm statement from draft&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirm statement with/without reconciliation from draft statement&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_confirmedstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_draftstatement0"/>
</record>
<record id="process_transition_confirmaccountingentries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm Accounting entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After confirming statement, it creates Entries and its entry lines&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_accountingstatemententries0"/>
<field model="process.node" name="source_node_id" ref="process_node_confirmedstatement0"/>
</record>
<record id="process_transition_accountentryreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Account entry reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconciliation of entries of accounting entries&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_reconciliationofentries0"/>
<field model="process.node" name="source_node_id" ref="process_node_accountingstatemententries0"/>
</record>
</data>
</openerp>
+15 -1
View File
@@ -73,6 +73,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="view_account_analytic_account_tree"/>
</record>
<!--<menuitem id="menu_analytic_account" name="Analytic Accounts" parent="account.menu_analytic_accounting"/>-->
@@ -84,6 +85,7 @@
<field name="res_model">account.analytic.account</field>
<field name="domain">[('parent_id','=',False)]</field>
<field name="view_type">tree</field>
<field name="view_mode">form,graph</field>
<field name="view_id" ref="view_account_analytic_account_tree"/>
</record>
<menuitem
@@ -96,7 +98,7 @@
<field name="name">New Analytic Account</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_mode">form,tree,graph</field>
<field eval="view_account_analytic_account_form" name="view_id"/>
</record>
<menuitem action="analytic_account_form" id="account_analytic_form" parent="account.account_analytic_def_account"/>
@@ -356,5 +358,17 @@
</field>
</record>
<record id="analytic_accounts_graph" model="ir.ui.view">
<field name="name">analytic.accounts.graph</field>
<field name="model">account.analytic.account</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Analytic Account Statistics" type="bar">
<field name="complete_name"/>
<field name="balance" operator="+"/>
</graph>
</field>
</record>
</data>
</openerp>
@@ -128,16 +128,16 @@
</td>
<td></td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_debit(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_tblheader_General_Right"><u>[[ sum_debit(objects,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_credit(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_tblheader_General_Right"><u>[[ sum_credit(objects,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_balance(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_tblheader_General_Right"><u>[[ sum_balance(objects,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_quantity(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_tblheader_General_Right"><u>[[ sum_quantity(objects,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
</tr>
@@ -153,16 +153,16 @@
<para style="terp_default_8_bold">[[ o.complete_name ]]</para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_debit(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_default_8_right_bold"><u>[[ move_sum_debit(o.id,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_credit(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_default_8_right_bold"><u>[[ move_sum_credit(o.id,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_balance(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_default_8_right_bold"><u>[[ move_sum_balance(o.id,data['form']['date1'],data['form']['date2']) or '0.0' ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_quantity(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
<para style="terp_default_8_right_bold"><u>[[ move_sum_quantity(o.id,data['form']['date1'],data['form']['date2']) or '0.0']]</u></para>
</td>
</tr>
<tr>
@@ -174,16 +174,16 @@
<para style="terp_default_8">[[ move_g['name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['debit'] ]]</para>
<para style="terp_default_Right_8">[[ move_g['debit'] or '0.0']]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['credit'] ]]</para>
<para style="terp_default_Right_8">[[ move_g['credit'] or '0.0']]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['balance'] ]]</para>
<para style="terp_default_Right_8">[[ move_g['balance'] or '0.0']]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ (move_g['quantity'] or 0.0) ]]</para>
<para style="terp_default_Right_8">[[ (move_g['quantity'] or '0.0') ]]</para>
</td>
</tr>
</blockTable>
@@ -49,11 +49,12 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
'delta_debit': self._delta_deb,
'delta_credit': self._delta_cred,
})
def _lines_p(self, date1, date2):
res = []
acc_obj = self.pool.get('account.account')
for a in acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code', 'sign']):
# print"3333333acc_obj3333333",acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code','user_type'])
for a in acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code']):
self.cr.execute("SELECT sum(debit), sum(credit) \
FROM account_move_line \
WHERE date>=%s AND date<=%s AND state<>'draft' AND account_id = %d", (date1, date2, a['id']))
@@ -63,12 +64,12 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
self.cr.execute("SELECT abs(sum(amount)) AS balance \
FROM account_analytic_line \
WHERE date>=%s AND date<=%s AND amount*%d>0 AND general_account_id = %d", (date1, date2, a['sign'], a['id']))
WHERE date>=%s AND date<=%s AND amount>0 AND general_account_id = %d", (date1, date2, a['id']))
(ad,) = self.cr.fetchone()
ad = ad or 0.0
self.cr.execute("SELECT abs(sum(amount)) AS balance \
FROM account_analytic_line \
WHERE date>=%s AND date<=%s AND amount*%d<0 AND general_account_id = %d", (date1, date2, a['sign'], a['id']))
WHERE date>=%s AND date<=%s AND amount<0 AND general_account_id = %d", (date1, date2, a['id']))
(ac,) = self.cr.fetchone()
ac = ac or 0.0
@@ -83,8 +84,44 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
self.sum_gen_cred += gc
self.sum_ana_deb += ad
self.sum_ana_cred += ac
return res
# def _lines_p(self, date1, date2):
# res = []
# acc_obj = self.pool.get('account.account')
# for a in acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code','sign']):
# self.cr.execute("SELECT sum(debit), sum(credit) \
# FROM account_move_line \
# WHERE date>=%s AND date<=%s AND state<>'draft' AND account_id = %d", (date1, date2, a['id']))
# (gd, gc) = self.cr.fetchone()
# gd = gd or 0.0
# gc = gc or 0.0
#
# self.cr.execute("SELECT abs(sum(amount)) AS balance \
# FROM account_analytic_line \
# WHERE date>=%s AND date<=%s AND amount*%d>0 AND general_account_id = %d", (date1, date2, a['sign'], a['id']))
# (ad,) = self.cr.fetchone()
# ad = ad or 0.0
# self.cr.execute("SELECT abs(sum(amount)) AS balance \
# FROM account_analytic_line \
# WHERE date>=%s AND date<=%s AND amount*%d<0 AND general_account_id = %d", (date1, date2, a['sign'], a['id']))
# (ac,) = self.cr.fetchone()
# ac = ac or 0.0
#
# res.append({'code': a['code'], 'name': a['name'],
# 'gen_debit': gd,
# 'gen_credit': gc,
# 'ana_debit': ad,
# 'ana_credit': ac,
# 'delta_debit': gd - ad,
# 'delta_credit': gc - ac,})
# self.sum_gen_deb += gd
# self.sum_gen_cred += gc
# self.sum_ana_deb += ad
# self.sum_ana_cred += ac
# return res
def _gen_deb(self, date1, date2):
return self.sum_gen_deb
@@ -99,7 +136,7 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
def _delta_deb(self, date1, date2):
return (self._gen_deb(date1,date2)-self._ana_deb(date1,date2))
def _delta_cred(self, date1, date2):
return (self._gen_cred(date1,date2)-self._ana_cred(date1,date2))
@@ -107,4 +144,3 @@ report_sxw.report_sxw('report.account.analytic.account.analytic.check', 'account
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+137 -153
View File
@@ -3,6 +3,36 @@
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
<header>
<pageGraphics>
<!--logo-->
<!--<fill color="darkblue"/>-->
<!--<stroke color="darkblue"/>-->
<!--TITLE COMPANY-->
<!-- <drawString x="4.6cm" y="28.7cm">[[ company.partner_id.name ]]</drawString> -->
<setFont name="Helvetica-Bold" size="9"/>
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Analytic Check</drawRightString>
<!-- Header -->
<setFont name="Helvetica" size="9"/>
<drawString x="1.0cm" y="1cm"> [[ time.strftime("%Y-%m-%d %H:%M", time.localtime()) ]]</drawString>
<drawString x="19.0cm" y="1cm">Page <pageNumber/></drawString>
<!--<drawRightString x="19.8cm" y="28cm">[[ company.rml_header1 ]]</drawRightString>-->
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</header>
</pageTemplate>
</template>
<stylesheet>
@@ -10,45 +40,36 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau1">
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,2" stop="1,2"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,1" stop="-1,1"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau4">
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBELOW" colorName="#777777" start="0,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Times-Bold" fontSize="20.0" leading="25" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P8" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P12" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P1" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
@@ -58,149 +79,112 @@
<paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="Preformatted Text" fontName="Courier" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_R" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<blockTable colWidths="161.0,161.0,161.0" repeatRows="1" style="Tableau1">
<blockTable colWidths="46.0,135.0,60.0,59.0,60.0,59.0,59.0,60.0" style="Table4" repeatRows="1">
<tr>
<td>
<para style="P1">
<font color="white"> </font>
</para>
<para style="terp_tblheader_General">Code</para>
</td>
<td>
<para style="P2">Analytic Check</para>
<para style="terp_tblheader_General">Account Name</para>
</td>
<td>
<para style="P10">
<font color="white"> </font>
</para>
<para style="terp_tblheader_General_R">General Debit</para>
</td>
<td>
<para style="terp_tblheader_General_R">General Credit</para>
</td>
<td>
<para style="terp_tblheader_General_R">Analytic Debit</para>
</td>
<td>
<para style="terp_tblheader_General_R">Analytic Credit</para>
</td>
<td>
<para style="terp_tblheader_General_R">Delta Debit</para>
</td>
<td>
<para style="terp_tblheader_General_R">Delta Credit</para>
</td>
</tr>
<tr>
<td>
<para style="P1">[[ company.name ]]</para>
<para style="terp_tblheader_Details">[[ (lines_p(data['form']['date1'],data['form']['date2']),'acc') == False or removeParentNode('para') ]]</para>
<para style="terp_tblheader_Details">Total</para>
</td>
<td></td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % general_debit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
<td>
<para style="P9">Periods from [[ data['form']['date1'] ]]</para>
<para style="P9">to [[ data['form']['date2'] ]]</para>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % general_credit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
<td>
<para style="P10">Currency: [[ company.currency_id.name ]]</para>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % analytic_debit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % analytic_credit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % delta_debit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ '%.2f' % delta_credit(data['form']['date1'],data['form']['date2']) ]]</u></para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_8"><font face="Times-Roman">[[ repeatIn(lines_p(data['form']['date1'],data['form']['date2']),'acc') ]] </font>[[ acc['code'] ]]</para>
</td>
<td>
<para style="terp_default_8">[[ acc['name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['gen_debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['gen_credit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['ana_debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['ana_credit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['delta_debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ '%.2f' % acc['delta_credit'] ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="P6">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="P6">
<font color="white"> </font>
</para>
<blockTable colWidths="28.0,96.0,60.0,59.0,60.0,59.0,59.0,59.0" style="Tableau2">
<tr>
<td>
<para style="P3">Code</para>
</td>
<td>
<para style="P3">Account Name</para>
</td>
<td>
<para style="P3">
<font face="Times-Roman" size="10.0">General</font>
</para>
<para style="P3">Debit</para>
</td>
<td>
<para style="P3">
<font face="Times-Roman" size="10.0">General</font>
</para>
<para style="P3">Credit</para>
</td>
<td>
<para style="P3">
<font face="Times-Roman" size="10.0">Analytic</font>
</para>
<para style="P3">Debit</para>
</td>
<td>
<para style="P3">
<font face="Times-Roman" size="10.0">Analytic</font>
</para>
<para style="P3">Credit</para>
</td>
<td>
<para style="P3">Delta</para>
<para style="P3">Debit</para>
</td>
<td>
<para style="P3">Delta</para>
<para style="P3">Credit</para>
</td>
</tr>
</blockTable>
<para style="P7">
<font color="white"> </font>
</para>
<blockTable colWidths="28.0,96.0,59.0,59.0,59.0,59.0,59.0,59.0" style="Tableau3">
<tr>
<td>
<para style="P4">[[ repeatIn(lines_p(data['form']['date1'],data['form']['date2']),'acc') ]]</para>
<para style="P4">[[ acc['code'] ]]</para>
</td>
<td>
<para style="P4">[[ acc['name'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['gen_debit'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['gen_credit'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['ana_debit'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['ana_credit'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['delta_debit'] ]]</para>
</td>
<td>
<para style="P4">[[ '%.2f' % acc['delta_credit'] ]]</para>
</td>
</tr>
</blockTable>
<para style="P7">
<font color="white"> </font>
</para>
<blockTable colWidths="125.0,59.0,59.0,59.0,59.0,59.0,59.0" style="Tableau4">
<tr>
<td>
<para style="P5">Total</para>
</td>
<td>
<para style="P5">[[ '%.2f' % general_debit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
<td>
<para style="P5">[[ '%.2f' % general_credit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
<td>
<para style="P5">[[ '%.2f' % analytic_debit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
<td>
<para style="P5">[[ '%.2f' % analytic_credit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
<td>
<para style="P5">[[ '%.2f' % delta_debit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
<td>
<para style="P5">[[ '%.2f' % delta_credit(data['form']['date1'],data['form']['date2']) ]]</para>
</td>
</tr>
</blockTable>
<para style="P7">
<font color="white"> </font>
</para>
</story>
</document>
</document>
@@ -1,18 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-project" id="menu_main" name="Project Management"/>
<record id="action_account_analytic_managed" model="ir.actions.act_window">
<field name="name">My managed accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('user_id','=',uid)]</field>
</record>
<menuitem id="next_id_71" name="Analytic Accounts" parent="account_analytic_analysis.menu_main"/><menuitem action="action_account_analytic_managed" id="menu_analytic_account_managed" parent="next_id_71"/>
<record id="action_hr_tree_invoiced_my" model="ir.actions.act_window">
<field name="name">Uninvoiced entries of my accounts</field>
<field name="res_model">account.analytic.line</field>
@@ -20,85 +21,93 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('invoice_id','=',False),('to_invoice','!=',False),('account_id.user_id','=',uid)]</field>
</record>
<menuitem action="action_hr_tree_invoiced_my" id="menu_action_hr_tree_invoiced_my" parent="account_analytic_analysis.next_id_71"/>
<record id="action_account_analytic_managed_open" model="ir.actions.act_window">
<field name="name">My Open Managed Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('user_id','=',uid),('state','=','open')]</field>
</record>
<menuitem action="action_account_analytic_managed_open" id="menu_analytic_account_to_valid_open" parent="account_analytic_analysis.menu_analytic_account_managed"/>
<record id="action_account_analytic_managed_pending" model="ir.actions.act_window">
<field name="name">My Pending Managed Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('user_id','=',uid),('state','=','pending')]</field>
</record>
<menuitem action="action_account_analytic_managed_pending" id="menu_analytic_account_to_valid_pending" parent="account_analytic_analysis.menu_analytic_account_managed"/>
<record id="action_account_analytic_managed_overpassed" model="ir.actions.act_window">
<record id="action_account_analytic_managed_overpassed" model="ir.actions.act_window">
<field name="name">Overpassed accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('date','&lt;=',time.strftime('%Y-%m-%d')),('state','=','open')]</field>
</record>
<menuitem action="action_account_analytic_managed_overpassed" id="menu_action_account_analytic_managed_overpassed" parent="account_analytic_analysis.next_id_71"/>
<record id="action_account_analytic_all" model="ir.actions.act_window">
<field name="name">All Analytic Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="account.view_account_analytic_account_list"/>
<field name="domain">[]</field>
</record>
<menuitem action="action_account_analytic_all" id="menu_action_account_analytic_all" parent="account_analytic_analysis.next_id_71"/>
<record id="action_account_analytic_all_draft" model="ir.actions.act_window">
<field name="name">Draft Analytic Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="account.view_account_analytic_account_list"/>
<field name="domain">[('state','=','draft')]</field>
</record>
<menuitem id="next_id_72" name="All Analytic Accounts" parent="account_analytic_analysis.next_id_71"/><menuitem action="action_account_analytic_all_draft" id="menu_action_account_analytic_all_draft" parent="next_id_72"/>
<record id="action_account_analytic_all_open" model="ir.actions.act_window">
<field name="name">Open Analytic Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="account.view_account_analytic_account_list"/>
<field name="domain">[('state','=','open')]</field>
</record>
<menuitem action="action_account_analytic_all_open" id="menu_action_account_analytic_all_open" parent="account_analytic_analysis.next_id_72"/>
<record id="action_account_analytic_all_pending" model="ir.actions.act_window">
<field name="name">Pending Analytic Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="account.view_account_analytic_account_list"/>
<field name="domain">[('state','=','pending')]</field>
</record>
<menuitem action="action_account_analytic_all_pending" id="menu_action_account_analytic_all_pending" parent="account_analytic_analysis.next_id_72"/>
<record id="action_account_analytic_all_simplified" model="ir.actions.act_window">
<field name="name">Simplified View Analytic Accounts</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="view_account_analytic_simplified"/>
<field name="domain">[]</field>
</record>
<menuitem action="action_account_analytic_all_simplified" id="menu_action_account_analytic_all_simplified" parent="account_analytic_analysis.next_id_72"/>
</data>
</openerp>
+2 -2
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" ?>
<terp>
<openerp>
<data>
<!-- Create the functions -->
<record id="res_partner_function_privateaddress0" model="res.partner.function">
@@ -323,4 +323,4 @@
<field name="sequence_contact">1</field>
</record>
</data>
</terp>
</openerp>
@@ -172,7 +172,7 @@ class base_module_record(osv.osv):
# Create the minidom document
self.ids = {}
doc = minidom.Document()
terp = doc.createElement("terp")
terp = doc.createElement("openerp")
doc.appendChild(terp)
for rec in self.recording_data:
if rec[0]=='workflow':
@@ -199,8 +199,7 @@ class base_module_record(osv.osv):
data.appendChild(res)
elif rec[0]=='assert':
pass
res = doc.toprettyxml(indent="\t")
return doc.toprettyxml(indent="\t").encode('utf8')
return doc.toprettyxml(indent=" ").encode('utf8')
base_module_record()
def fnct_call(fnct):
+7 -3
View File
@@ -9,7 +9,7 @@
people to intelligently and efficiently manage tasks, issues,
and requests. It manages key tasks such as communication,
identification, prioritization, assignment, resolution and notification.""",
"depends" : ["crm","report_crm"],
"depends" : ["crm","report_crm", "process"],
"init_xml" : [
"crm_config_view.xml",
"crm_bugs_view.xml",
@@ -34,8 +34,12 @@
"crm_jobs_data.xml",
"crm_meeting_data.xml",
"crm_lead_data.xml",
"crm_opportunity_data.xml",
"crm_opportunity_data.xml",
"crm_bugs_menu.xml", "crm_fund_menu.xml",
"crm_jobs_menu.xml", "crm_opportunity_menu.xml",
"crm_helpdesk_menu.xml", "crm_lead_menu.xml",
"crm_meeting_menu.xml",
"process/crm_configuration_process.xml"
],
"active": False,
"installable": True
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<terp>
<openerp>
<data>
</data>
</terp>
</openerp>
+2 -2
View File
@@ -1,4 +1,4 @@
<terp>
<openerp>
<data>
<record model="res.groups" id="group_compta_user">
<field name="name">grcompta</field>
@@ -8,5 +8,5 @@
</record>
<menuitem name="Administration" groups="admin,grcomptaadmin" icon="terp-stock" id="menu_admin_compta"/>
</data>
</terp>
</openerp>
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<terp>
<openerp>
<data noupdate="1">
</data>
</terp>
</openerp>
+2 -2
View File
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<terp>
<openerp>
<data noupdate="1">
<record model="document.directory" id="dir_root">
@@ -90,4 +90,4 @@
</record>
</data>
</terp>
</openerp>
+2 -2
View File
@@ -1,4 +1,4 @@
<terp>
<openerp>
<data>
<menuitem name="Document Management" icon="terp-stock" id="menu_document"/>
@@ -237,5 +237,5 @@
</record>
</data>
</terp>
</openerp>
+4 -3
View File
@@ -137,7 +137,7 @@ class event(osv.osv):
#change the description of the registration linked to this event
if 'mail_auto_confirm' in vals:
if vals['mail_auto_confirm']:
if 'mail_confirm' not in vals:
if 'mail_confirm' not in vals:
for eve in self.browse(cr, uid, ids):
vals['mail_confirm'] = eve.mail_confirm
else:
@@ -288,8 +288,9 @@ class event_registration(osv.osv):
data['badge_title'] = contact_id.title
if partner:
partner_addresses = self.pool.get('res.partner.address').search(cr, uid, [('partner_id','=',partner)])
job_id = self.pool.get('res.partner.job').search(cr, uid, [('contact_id','=',contact),('address_id','in',partner_addresses)])[0]
data['email_from'] = self.pool.get('res.partner.job').browse(cr, uid, job_id).email
job_ids = self.pool.get('res.partner.job').search(cr, uid, [('contact_id','=',contact),('address_id','in',partner_addresses)])
if job_ids:
data['email_from'] = self.pool.get('res.partner.job').browse(cr, uid, job_ids[0]).email
d = self.onchange_badge_name(cr, uid, ids,data['badge_name'])
data.update(d['value'])
+1 -1
View File
@@ -40,7 +40,7 @@
Different reports are also provided, mainly for attendance statistics.
""",
"depends" : ["base"],
"depends" : ["base", "process"],
"init_xml" : [],
"demo_xml" : [
"hr_demo.xml",
+1 -1
View File
@@ -46,7 +46,7 @@
"demo_xml" : [],
"update_xml" : [
"security/hr_contract_security.xml",
"security/ir.model.access.csv",
# "security/ir.model.access.csv",
"hr_contract_view.xml",
],
"active": False,
+2 -1
View File
@@ -24,7 +24,7 @@
Administration \ Users \ Users
for example, you maybe will do it for the user 'admin'.
""",
"depends" : ["hr","crm_configuration"],
"depends" : ["hr","crm_configuration", "process"],
"init_xml" : [],
"update_xml" : [
"security/ir.model.access.csv",
@@ -32,6 +32,7 @@
"hr_view.xml",
"hr_holidays_report.xml",
"hr_holidays_wizard.xml",
# "process/hr_holidays_process.xml"
],
# "demo_xml" : ["hr_bel_holidays_2008.xml",],
"demo_xml" : [],
+2 -1
View File
@@ -43,7 +43,7 @@ Lots of reporting on time and employee tracking are provided.
It is completly integrated with the cost accounting module. It allows you
to set up a management by affair.
""",
"depends" : ["account", "hr", "base", "hr_attendance"],
"depends" : ["account", "hr", "base", "hr_attendance", "process"],
"init_xml" : ["hr_timesheet_data.xml"],
"demo_xml" : ["hr_timesheet_demo.xml",],
"update_xml" : [
@@ -51,6 +51,7 @@ to set up a management by affair.
"hr_timesheet_view.xml",
"hr_timesheet_report.xml",
"hr_timesheet_wizard.xml",
"process/hr_timesheet_process.xml"
],
"active": False,
"installable": True
@@ -0,0 +1,16 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_timesheetworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Timesheet Lines flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Timesheet Workflow&quot;&quot;&quot;" name="name"/>
</record>
</data>
</openerp>
+2 -2
View File
@@ -33,8 +33,8 @@
"category" : "Generic Modules/Human Resources",
"description": """Auto-complete timesheet based on tasks made on the project management module.""",
"website" : "http://tinyerp.com/module_hr.html",
"depends" : ["project", "hr_timesheet"],
"update_xml" : ["hr_timesheet_project_view.xml"],
"depends" : ["project", "hr_timesheet_sheet"],
"update_xml" : ["hr_timesheet_project_view.xml", "process/hr_timesheet_project_process.xml"],
"active": False,
"installable": True
}
@@ -0,0 +1,75 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process Node
-->
<record id="process_node_timesheettask0" model="process.node">
<field name="menu_id" ref="hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form"/>
<field name="model_id" ref="hr.model_hr_timesheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Timesheet_task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Complete Your Timesheet.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="project.process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_workontask0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Work on Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines the work summary of task&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet_sheet.process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('open', pending', 'done', 'cancelled')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_taskwork0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task6"/>
<field name="model_id" ref="project.model_project_task_work"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Task Work&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Work on task&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='open'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_filltimesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Fill Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Task summary is comes into the timesheet line&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_timesheettask0"/>
<field model="process.node" name="source_node_id" ref="project.process_node_opentask0"/>
</record>
<record id="process_transition_taskencoding0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Task encoding&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode how much time u spent on your task&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="hr_timesheet_sheet.process_node_timesheetline0"/>
<field model="process.node" name="source_node_id" ref="project.process_node_taskwork0"/>
</record>
<record id="process_transition_tasktimesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Task timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Moves task entry into the timesheet line&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_timesheettask0"/>
<field model="process.node" name="source_node_id" ref="process_node_workontask0"/>
</record>
</data>
</openerp>
+3 -2
View File
@@ -51,13 +51,14 @@ The validation can be configured in te company:
* Period size (day, week, month, year)
* Maximal difference between timesheet and attendances
""",
"depends" : ["hr_timesheet", "hr_timesheet_invoice"],
"depends" : ["hr_timesheet", "hr_timesheet_invoice", "process"],
"init_xml" : [],
"demo_xml" : ["hr_timesheet_sheet_demo.xml",],
"update_xml" : [
"security/ir.model.access.csv",
"hr_timesheet_sheet_view.xml",
"hr_timesheet_workflow.xml"
"hr_timesheet_workflow.xml",
"process/hr_timesheet_sheet_process.xml",
],
"active": False,
"installable": True
@@ -0,0 +1,226 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_hrtimesheetworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Hr Timesheet flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Hr Timesheet Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_analyticcost0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Analytic cost&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic cost is created&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_review0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Review&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Review end of day check day is complete&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_timesheetconfirming0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Timesheet Confirming&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Timesheet sheet confirm at the end of the period&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='confirm'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_timesheetline0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Timesheet Line&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode your timesheet line&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_phonecall0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Phone call&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Whatever time u spent for phone call&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="hr_timesheet.process_process_timesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_attendance0" model="process.node">
<field name="menu_id" ref="hr_attendance.menu_si_so"/>
<field name="model_id" ref="hr.model_hr_employee"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Attendance&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines employee's timesheet entry&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_timesheet0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines the task work entry into timesheet line&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_drafttimesheetsheet0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft Timesheet sheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode Your hours and Sign in / out&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_confirmedtimesheet0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Confirmed Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;At the end of the period (week/month)&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='confirm'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_validatedtimesheet0" model="process.node">
<field name="menu_id" ref="hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current"/>
<field name="model_id" ref="hr_timesheet_sheet.model_hr_timesheet_sheet_sheet"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Validated Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Control by the project manager&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='done'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoiceonwork0" model="process.node">
<field name="menu_id" ref="account.menu_finance_invoice"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice on Work&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Invoice based on timesheet&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_hrtimesheetworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_attendance0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Attendance&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Attendance entry moves into the timesheet&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_drafttimesheetsheet0"/>
<field model="process.node" name="source_node_id" ref="process_node_attendance0"/>
</record>
<record id="process_transition_timesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;timesheet entry is into draft state.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_drafttimesheetsheet0"/>
<field model="process.node" name="source_node_id" ref="process_node_timesheet0"/>
</record>
<record id="process_transition_confirmtimesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;timesheet is confirmed at the end of the week / month&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_confirmedtimesheet0"/>
<field model="process.node" name="source_node_id" ref="process_node_drafttimesheetsheet0"/>
</record>
<record id="process_transition_validatetimesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Validate Timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Timesheet is validate by project manager.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_validatedtimesheet0"/>
<field model="process.node" name="source_node_id" ref="process_node_confirmedtimesheet0"/>
</record>
<record id="process_transition_invoiceontimesheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice on timesheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Creates invoice based on timesheet&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoiceonwork0"/>
<field model="process.node" name="source_node_id" ref="process_node_confirmedtimesheet0"/>
</record>
<record id="process_transition_phonecallencoding0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Phone call encoding&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode how much time u spent on phone call&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_timesheetline0"/>
<field model="process.node" name="source_node_id" ref="process_node_phonecall0"/>
</record>
<record id="process_transition_createanalyticcose0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Create Analytic cost&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Creates your analytic cost accoording to quantity&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_analyticcost0"/>
<field model="process.node" name="source_node_id" ref="process_node_timesheetline0"/>
</record>
<record id="process_transition_reviewofwork0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Review of work&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Review of your work at the end of the day&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_review0"/>
<field model="process.node" name="source_node_id" ref="process_node_timesheetline0"/>
</record>
<record id="process_transition_confirmtimesheetsheet0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm timesheet sheet&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirm timesheet at the end of the period&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_timesheetconfirming0"/>
<field model="process.node" name="source_node_id" ref="process_node_review0"/>
</record>
</data>
</openerp>
+1
View File
@@ -1,4 +1,5 @@
# -*- encoding: utf-8 -*-
{
"name" : "Idea Manager",
"version" : "0.1",
+2 -1
View File
@@ -32,7 +32,7 @@
"author" : "Tiny",
"website" : "http://tinyerp.com/module_mrp.html",
"category" : "Generic Modules/Production",
"depends" : ["stock", "hr", "purchase", "product"],
"depends" : ["stock", "hr", "purchase", "product", "process"],
"description": """
This is the base module to manage the manufacturing process in Tiny ERP.
@@ -70,6 +70,7 @@
"mrp_wizard.xml",
"mrp_report.xml",
"company_view.xml",
"process/procurement_process.xml",
],
"active": False,
"installable": True
+302
View File
@@ -0,0 +1,302 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_procurementworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Procurements flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Procurement Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_minimumstockrule0" model="process.node">
<field name="menu_id" ref="mrp.menu_action_orderpoint_form"/>
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Minimum stock rule&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Create minimum stock rules&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="product.process_process_productworkflow0"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_billofmaterial0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_bom_form_action"/>
<field name="model_id" ref="mrp.model_mrp_bom"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Bill of Material&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines Bill of materials&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="product.process_process_productworkflow0"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_procurements0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Procurements&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Procurement Orders&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="purchase.process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_productionorder0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
<field name="model_id" ref="mrp.model_mrp_production"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Production order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Procurement for raw materials&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'picking_except', 'confirmed', 'ready', 'in_production', 'cancel', 'done')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_procureproducts0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Procure Products&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Central document to procure products&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_serviceproduct0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Service Product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Product type is service&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_maketoorder0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Make to order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procurement is make to order&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_maketostock0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Make to stock&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procurement is make to stock&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_subcontracting0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_order_draft"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Subcontracting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Procure method is purchase&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_stockableproduct0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Stockable product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;For stockable and consumable&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_stockablemaketostock0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Stockable make to stock&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Wait for available products for reservation&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_stockablemaketoorder0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
<field name="model_id" ref="mrp.model_mrp_procurement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Stockable make to order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procurement is make to order&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting') &quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_stockablerequest0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_order_draft"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Stockable request&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If procure method is purchase&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_stockableproduction0" model="process.node">
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
<field name="model_id" ref="mrp.model_mrp_production"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Stockable production&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If procure method is produce&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='confirmed'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_productionprocurement0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Production Procurement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When any procuere products, it comes into the prpcurement orders&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
<field model="process.node" name="source_node_id" ref="process_node_productionorder0"/>
</record>
<record id="process_transition_procurementservice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Procurement Service&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In procurement order, if product type is service&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_serviceproduct0"/>
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
</record>
<record id="process_transition_servicemaketoorder0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Service make to order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If product type is service and procure method is Make to order&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_maketoorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct0"/>
</record>
<record id="process_transition_servicemaketostock0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Service make to stock&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Product type is service and procure method is Make to stock&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_maketostock0"/>
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct0"/>
</record>
<record id="process_transition_ordersubcontracting0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Order Subcontracting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If procure method is Make to order and supply method is buy&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_subcontracting0"/>
<field model="process.node" name="source_node_id" ref="process_node_maketoorder0"/>
</record>
<record id="process_transition_procurementstockable0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Procurement Stockable&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;if Product type is Stockable in procurement order&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_stockableproduct0"/>
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
</record>
<record id="process_transition_stockablemaketostock0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Stockable make to stock&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Product type is Stockable and procure method is make to stock&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_stockablemaketostock0"/>
<field model="process.node" name="source_node_id" ref="process_node_stockableproduct0"/>
</record>
<record id="process_transition_stockablemaketoorder0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Stockable make to order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Product type is Stockable and procure method is Make to order&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_stockablemaketoorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_stockableproduct0"/>
</record>
<record id="process_transition_stockableorderrequest0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Stockable Order Request&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procure method is Make to order and supply method is buy&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_stockablerequest0"/>
<field model="process.node" name="source_node_id" ref="process_node_stockablemaketoorder0"/>
</record>
<record id="process_transition_stockableorderproduction0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Stockable Order Production&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procure method is Make to order and supply method is produce&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_stockableproduction0"/>
<field model="process.node" name="source_node_id" ref="process_node_stockablemaketoorder0"/>
</record>
<record id="process_transition_procurementtopurchase0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;procurement to purchase&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After procurementing order , it comes into the Draft Purchase Order&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="purchase.process_node_draftpurchaseorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_procurements0"/>
</record>
<record id="process_transition_producttostockrules0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Product to stock rules&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;you can see the minimum stock rules from product&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_minimumstockrule0"/>
<field model="process.node" name="source_node_id" ref="product.process_node_product0"/>
</record>
<record id="process_transition_bom0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;BOM&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;You can see its bill of material which are used to make product&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_billofmaterial0"/>
<field model="process.node" name="source_node_id" ref="product.process_node_product0"/>
</record>
<record id="process_transition_bomtook0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Bom to Ok&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Set status of Bill of material to ok&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="product.process_node_statusok0"/>
<field model="process.node" name="source_node_id" ref="process_node_billofmaterial0"/>
</record>
</data>
</openerp>
+3 -3
View File
@@ -8,13 +8,13 @@
"description": """
This module allows you to manage your process for the end-users.
""",
"depends" : ["base", "sale"],
"depends" : ["base"],
"init_xml" : [],
"demo_xml" : ['process_demo.xml'],
"demo_xml" : [],
"update_xml" : [
"security/ir.model.access.csv",
'process_view.xml',
],
],
"active": False,
"installable": True
}
+4 -2
View File
@@ -31,7 +31,7 @@
"version" : "1.0",
"author" : "Tiny",
"category" : "Generic Modules/Inventory Control",
"depends" : ["base"],
"depends" : ["base", "process"],
"init_xml" : [],
"demo_xml" : ["product_demo.xml"],
"description": """
@@ -57,7 +57,9 @@
"security/ir.model.access.csv",
"product_data.xml","product_report.xml",
"product_view.xml", "pricelist_view.xml",
"partner_view.xml", "product_wizard.xml"],
"partner_view.xml", "product_wizard.xml",
"process/product_process.xml"
],
"active": False,
"installable": True
}
@@ -0,0 +1,94 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_productworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Products flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Product Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_product0" model="process.node">
<field name="menu_id" ref="product.menu_products"/>
<field name="model_id" ref="product.model_product_product"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Create new Product&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_productworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('', 'sellable', 'draft', 'obsolete', 'end') &quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_supplier0" model="process.node">
<field name="menu_id" ref="product.menu_products"/>
<field name="model_id" ref="product.model_product_product"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Supplier&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines the list of supplier&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_productworkflow0"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_statusok0" model="process.node">
<field name="menu_id" ref="product.menu_products"/>
<field name="model_id" ref="product.model_product_product"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Status ok&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Set Status OK&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_productworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='sellable'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_endlifecycle0" model="process.node">
<field name="menu_id" ref="product.menu_products"/>
<field name="model_id" ref="product.model_product_product"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;End lifecycle&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;End Of lifecycle&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_productworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='end'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_supplierofproduct0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Supplier of Product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;You can see the list of supplier for that product.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplier0"/>
<field model="process.node" name="source_node_id" ref="process_node_product0"/>
</record>
<record id="process_transition_suppliertook0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Supplier to ok&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Set the status of list of supplier to ok&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_statusok0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplier0"/>
</record>
<record id="process_transition_oktoend0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Ok to End&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;End of lifecycle after Ok&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_endlifecycle0"/>
<field model="process.node" name="source_node_id" ref="process_node_statusok0"/>
</record>
</data>
</openerp>
+2 -1
View File
@@ -32,7 +32,7 @@
"author" : "Tiny",
"website" : "http://tinyerp.com/module_project.html",
"category" : "Generic Modules/Projects & Services",
"depends" : ["product", "account", "hr"],
"depends" : ["product", "account", "hr", "process"],
"description": "Project management module that track multi-level projects, tasks, works done on tasks, eso. It is able to render planning, order tasks, eso.",
"init_xml" : [],
"demo_xml" : ["project_demo.xml"],
@@ -43,6 +43,7 @@
"project_wizard.xml",
"project_view.xml",
"project_report.xml",
"process/task_process.xml"
],
"active": False,
"installable": True
+116
View File
@@ -0,0 +1,116 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_tasksworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Tasks flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Tasks workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_taskbydelegate0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Task by delegate&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Delegate your task to the other user&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('open', 'pending')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_drafttask0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Define the Requirements and Set Planned Hours.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_opentask0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task6"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Open task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode your working hours.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='open'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_donetask0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Done task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Task is Completed&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='done'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_triggerinvoice0" model="process.node">
<field name="menu_id" ref="account.menu_finance_invoice"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Trigger Invoice&quot;&quot;&quot;" name="name"/>
<field name="subflow_id" search="[('name','=','sale.order.basic')]"/>
<field eval="&quot;&quot;&quot;Trigger invoices from sale order lines (sale subflow)&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='paid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_delegate0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Delegate&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Delegates tasks to the other user&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_drafttask0"/>
<field model="process.node" name="source_node_id" ref="process_node_taskbydelegate0"/>
</record>
<record id="process_transition_draftopentask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Draft Open task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From draft state, it will come into the open state.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_opentask0"/>
<field model="process.node" name="source_node_id" ref="process_node_drafttask0"/>
</record>
<record id="process_transition_opendonetask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Open Done Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When task is completed, it will come into the done state.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_donetask0"/>
<field model="process.node" name="source_node_id" ref="process_node_opentask0"/>
</record>
<record id="process_transition_taskinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Task invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After task is completed, Create its invoice.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_triggerinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_donetask0"/>
</record>
</data>
</openerp>
+4 -2
View File
@@ -5,7 +5,7 @@
"author" : "Tiny",
"website" : "http://tinyerp.com/module_project.html",
"category" : "Generic Modules/Projects & Services",
"depends" : ["project", 'mrp'],
"depends" : ["project", 'mrp', "sale"],
"description": """
This module is used to automatically create tasks base on different
procurements: sales order, manufacturing order, ...
@@ -15,7 +15,9 @@ order on services products.
""",
"init_xml" : [],
"demo_xml" : [],
"update_xml": ["project_workflow.xml"],
"update_xml": ["project_workflow.xml",
"process/project_mrp_process.xml"
],
"active": False,
"installable": True
}
@@ -0,0 +1,84 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process Node
-->
<record id="process_node_tasks0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Tasks&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you sell services on sale order (task subflow)&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="sale.process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_saleordertask0" model="process.node">
<field name="menu_id" ref="sale.menu_sale_order"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Sale_Order_Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you sell services on sale order (task subflow)&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="project.process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_procuretask0" model="process.node">
<field name="menu_id" ref="project.menu_action_view_task"/>
<field name="model_id" ref="project.model_project_task"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Procure task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If Procure method is produce&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="mrp.process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Condition
-->
<record id="process_condition_conditiontask0" model="process.condition">
<field name="model_id" ref="product.model_product_template"/>
<field name="node_id" ref="process_node_tasks0"/>
<field eval="&quot;&quot;&quot;object.type=='service'&quot;&quot;&quot;" name="model_states"/>
<field eval="&quot;&quot;&quot;condition_task&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_task0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When you select any product's type as a 'service' after confiming sale order, it will create a task of product.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_tasks0"/>
<field model="process.node" name="source_node_id" ref="sale.process_node_saleorder0"/>
</record>
<record id="process_transition_createtask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Create Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Product type is service, then its creates the task.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="project.process_node_drafttask0"/>
<field model="process.node" name="source_node_id" ref="process_node_saleordertask0"/>
</record>
<record id="process_transition_ordertask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Order Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;If procure method is Make to order and supply method is produce&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_procuretask0"/>
<field model="process.node" name="source_node_id" ref="mrp.process_node_maketoorder0"/>
</record>
</data>
</openerp>
+3 -2
View File
@@ -31,7 +31,7 @@
"version" : "1.0",
"author" : "Tiny",
"website" : "http://tinyerp.com/module_purchase.html",
"depends" : ["base", "account", "stock"],
"depends" : ["base", "account", "stock", "process"],
"category" : "Generic Modules/Sales & Purchases",
"init_xml" : [],
"demo_xml" : ["purchase_demo.xml",
@@ -47,7 +47,8 @@
"purchase_report.xml",
"purchase_wizard.xml",
"stock_view.xml",
"partner_view.xml"
"partner_view.xml",
"process/purchase_process.xml"
],
"active": False,
"installable": True
@@ -0,0 +1,155 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_purchaseworkflow0" model="process.process">
<field eval="&quot;&quot;&quot;Purchase flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Purchase Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_purchaseorder0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_form_action"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After confirming purchase order, it is approved by supplier.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="account.process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_draftpurchaseorder0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_order_draft"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Proposed by the system or manually&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_confirmpurchaseorder0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_form_action3"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Confirm Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The user confirm he wants to purchase&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='confirmed'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_approvepurchaseorder0" model="process.node">
<field name="menu_id" ref="purchase.menu_purchase_form_action4"/>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Approve Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The supplier confirms he can deliver&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='approved'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoicecontrol0" model="process.node">
<field name="menu_id" ref="account.menu_action_invoice_tree8"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice Control&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Draft invoices are pre-generated for control.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_packinglist0" model="process.node">
<field name="menu_id" ref="stock.menu_action_picking_tree4"/>
<field name="model_id" ref="stock.model_stock_picking"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Packing list&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Pre-generated in draft for control&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='assigned'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoiceafterpacking0" model="process.node">
<field name="menu_id" ref="account.menu_finance_invoice"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice after packing&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you control based on delivery&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_purchaseworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_confirmingpurchaseorder0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirming Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirm Purchase order from Request for quotation&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_confirmpurchaseorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_draftpurchaseorder0"/>
</record>
<record id="process_transition_approvingpurchaseorder0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Approving Purchase Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Approve Purchase order after Confirming&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_approvepurchaseorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_confirmpurchaseorder0" />
</record>
<record id="process_transition_invoicefrompurchase0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice from Purchase&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After approved purchase order , it comes into the supplier invoice&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoicecontrol0"/>
<field model="process.node" name="source_node_id" ref="process_node_approvepurchaseorder0"/>
</record>
<record id="process_transition_createpackinglist0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Create Packing list&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When purchase order is approved , it creates its packing list.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_packinglist0"/>
<field model="process.node" name="source_node_id" ref="process_node_approvepurchaseorder0"/>
</record>
<record id="process_transition_invoicefrompackinglist0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice from Packing list&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Creates invoice from packin list&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoiceafterpacking0"/>
<field model="process.node" name="source_node_id" ref="process_node_packinglist0"/>
</record>
<record id="process_transition_purchaseinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Purchase Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After Purchase order , Create invoice.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="account.process_node_draftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_purchaseorder0"/>
</record>
</data>
</openerp>
+2 -1
View File
@@ -31,7 +31,7 @@
"version" : "1.0",
"author" : "Tiny",
"website" : "http://tinyerp.com/module_sale.html",
"depends" : ["product", "stock", "mrp"],
"depends" : ["product", "stock", "mrp", "process"],
"category" : "Generic Modules/Sales & Purchases",
"init_xml" : [],
"demo_xml" : ["sale_demo.xml"],
@@ -62,6 +62,7 @@
"sale_report.xml",
"sale_wizard.xml",
"stock_view.xml",
"process/sale_process.xml",
"product_view.xml",
],
"active": False,
+274
View File
@@ -0,0 +1,274 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_salesworkflow0" model="process.process">
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Sales flow for services companies.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Sales Workflow&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_order0" model="process.node">
<field name="menu_id" ref="sale.menu_sale_order"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;After confirming order, Create the invoice.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="account.process_process_invoiceworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_saleorderprocurement0" model="process.node">
<field name="menu_id" ref="sale.menu_sale_order"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Sale Order Procurement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Procurement for each line&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="mrp.process_process_procurementworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'waiting_date', 'manual', 'progress', 'shipping_except', 'invoice_except', 'done', 'cancel')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_quotation0" model="process.node">
<field name="menu_id" ref="sale.menu_action_order_tree10"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Quotation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Quotations are sale order in draft state.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_saleorder0" model="process.node">
<field name="menu_id" ref="sale.menu_action_order_tree9"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Sale Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Manages the delivery and invoicing progress.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='manual'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_packinglist0" model="process.node">
<field name="menu_id" ref="stock.menu_picking_waiting"/>
<field name="model_id" ref="stock.model_stock_picking"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Packing List&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The worker packs the requested items.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('assigned', 'confirmed')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_deliveryorder0" model="process.node">
<field name="menu_id" ref="stock.menu_picking_waiting_delivery"/>
<field name="model_id" ref="stock.model_stock_picking"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Delivery Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The transporter take the box and deliver it.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state in ('done', 'assigned')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoice0" model="process.node">
<field name="menu_id" ref="account.menu_invoice_draft"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you invoice based on sale order.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_invoiceafterdelivery0" model="process.node">
<field name="menu_id" ref="account.menu_invoice_draft"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Invoice after delivery&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you invoice based on deliveries (subflow)&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_salesworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<!--
Process Condition
-->
<record id="process_condition_conditionafterdelivery0" model="process.condition">
<field name="model_id" ref="sale.model_sale_order"/>
<field name="node_id" ref="process_node_invoiceafterdelivery0"/>
<field eval="&quot;&quot;&quot;object.order_policy=='postpaid'&quot;&quot;&quot;" name="model_states"/>
<field eval="&quot;&quot;&quot;condition_after_delivery&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_confirmquotation0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm Quotation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Whenever confirm button is clicked, the draft state is moved to manual. that is, quotation is moved to sale order.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_saleorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_quotation0"/>
</record>
<record id="process_transition_action_confirm0" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_wait&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Confirm&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_confirmquotation0"/>
</record>
<record id="process_transition_action_cancel0" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_cancel&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Cancel&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_confirmquotation0"/>
</record>
<record id="process_transition_packing0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Packing&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Packing list is created when 'Assign' is being clicked after confirming the sale order. This transaction moves the sale order to packing list.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_packinglist0"/>
<field model="process.node" name="source_node_id" ref="process_node_saleorder0"/>
</record>
<record id="process_transition_action_assign0" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_assign&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Assign&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_packing0"/>
</record>
<record id="process_transition_action_forceassignation0" model="process.transition.action">
<field eval="&quot;&quot;&quot;force_assign&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Force Assignation&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_packing0"/>
</record>
<record id="process_transition_action_cancel1" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_cancel&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Cancel&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_packing0"/>
</record>
<record id="process_transition_deliver0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Deliver&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirming the packing list moves them to delivery order. This can be done by clicking on 'Validate' button.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_deliveryorder0"/>
<field model="process.node" name="source_node_id" ref="process_node_packinglist0"/>
</record>
<record id="process_transition_action_cancelassignation0" model="process.transition.action">
<field eval="&quot;&quot;&quot;cancel_assign&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Cancel Assignation&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_deliver0"/>
</record>
<record id="process_transition_action_validate0" model="process.transition.action">
<field eval="&quot;&quot;&quot;test_finnished&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Validate&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_deliver0"/>
</record>
<record id="process_transition_action_cancel2" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_cancel&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Cancel&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_deliver0"/>
</record>
<record id="process_transition_invoice0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice&quot;&quot;&quot;" name="name"/>
<field model="process.node" name="target_node_id" ref="process_node_invoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_saleorder0"/>
</record>
<record id="process_transition_action_createinvoice0" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_invoice_create&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Create Invoice&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_invoice0"/>
</record>
<record id="process_transition_action_cancelorder0" model="process.transition.action">
<field eval="&quot;&quot;&quot;action_cancel&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Cancel Order&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_invoice0"/>
</record>
<record id="process_transition_invoice0" model="process.transition">
<field eval="&quot;&quot;&quot;Invoice is created when 'Create Invoice' is being clicked after confirming the sale order. This transaction moves the sale order to invoices.&quot;&quot;&quot;" name="note"/>
</record>
<record id="process_transition_invoiceafterdelivery0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice after delivery&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When you select Shipping Ploicy = 'Automatic Invoice after delivery' , it will automatic create after delivery.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoiceafterdelivery0"/>
<field model="process.node" name="source_node_id" ref="process_node_deliveryorder0"/>
</record>
<record id="process_transition_saleprocurement0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Sale Procurement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In sale order , procuerement for each line and it comes into the procurement order&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="mrp.process_node_procureproducts0"/>
<field model="process.node" name="source_node_id" ref="process_node_saleorderprocurement0"/>
</record>
<record id="process_transition_saleinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Sale Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirm sale order and Create invoice.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="account.process_node_draftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_order0"/>
</record>
<record id="res_roles_salesman0" model="res.roles">
<field eval="&quot;&quot;&quot;Salesman&quot;&quot;&quot;" name="name"/>
</record>
<record id="sale.trans_draft_router" model="workflow.transition">
<field name="role_id" ref="res_roles_salesman0"/>
</record>
<record id="process_transition_confirmquotation0" model="process.transition">
<field eval="[(6,0,[ref('sale.trans_draft_router')])]" name="transition_ids"/>
</record>
<record id="sale.trans_wait_invoice_invoice_manual" model="workflow.transition">
<field name="role_id" ref="res_roles_salesman0"/>
</record>
<record id="process_transition_invoice0" model="process.transition">
<field eval="[(6,0,[ref('sale.trans_wait_invoice_invoice_manual')])]" name="transition_ids"/>
</record>
</data>
</openerp>
+2 -1
View File
@@ -30,7 +30,7 @@
"name" : "Scrum, Agile Development Method",
"version": "1.0",
"author" : "Tiny",
"depends" : ["project"],
"depends" : ["project", "process"],
"category" : "Enterprise Specific Modules/Information Technology",
"init_xml" : [],
"description": """
@@ -61,6 +61,7 @@
"scrum_view.xml",
"scrum_report.xml",
"scrum_wizard.xml",
"process/scrum_process.xml",
],
"active": False,
"installable": True
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process Node
-->
<record id="process_node_productbacklog0" model="process.node">
<field name="menu_id" ref="scrum.menu_action_product_backlog_form"/>
<field name="model_id" ref="scrum.model_scrum_product_backlog"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Product backlog&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Create task from backlogs&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="project.process_process_tasksworkflow0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<!--
Process Transition
-->
<record id="process_transition_backlogtask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Backlog Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From backlog create task.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="project.process_node_drafttask0"/>
<field model="process.node" name="source_node_id" ref="process_node_productbacklog0"/>
</record>
</data>
</openerp>