Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Sale Order - Invoice workflow in a data module

By
Yann
on 11/29/14, 1:14 PM 843 views

Hi,

I'm creating a data module and i want to simulate a complete workflow from sale order in draft state to a paid invoice.

When i install the module i have 2 types of problems :
- if data noupdate=0 the invoice is paid and the worflow fulfilled but i can't update the module.  To my mind this is normal.
- if data noudpdate=1, the sale order is created but it stays in draft mode. 

I don't understant why the order_confirm action is not executed in this case. Have you got an idea ?

That's my sale_order_data.xml file :

 <data noupdate="0">    
     <record id="sale_order_1" model="sale.order">
        <field name="name">SO001</field>
        <field name="partner_id" ref="res_partner_6"/>
        <field name="partner_invoice_id" ref="res_partner_6"/>
        <field name="partner_shipping_id" ref="res_partner_6"/>
        <field name="date_order" eval="time.strftime('%Y-%m-%d %H:%M')"/>
        <field name="section_id" ref="website.salesteam_website_sales"/>
        <field name="user_id" ref="res_users_5"/>
        <field name="pricelist_id" ref="product.list0"/>        
        <field name="warehouse_id" ref="stock_warehouse_1"/>        
        <field name="picking_policy">direct</field>
        <field name="order_policy">prepaid</field>        
        </record>
     <record model="sale.order.line" id="sale_order_line_1">
              <field name="order_id" ref="sale_order_1"/>
              <field name="product_id" ref="product_product_10"/>
               <field name="name">[159] SUPERLEC</field>
               <field name="price_unit">851.2</field>
               <field name="product_uom_qty">1</field>
               <field name="product_uom" ref="product.product_uom_unit"/>
          </record>    

    <!-- confirmation devis => bon de commande + création facture brouillon : 1a8 13a22
    la facture ne se crée pas qd noupadte=1-->
    <workflow action="order_confirm" model="sale.order" ref="sale_order_1"/>

    <!-- création d'une référence pour la facture et les lignes dans ir.model.data 1a8 14a22-->
    <record model="ir.model.data" id="account_invoice_SO001">
        <field name="name">account_invoice_SO001</field>        
        <field name="module">account</field>
        <field name="model">account.invoice</field>
        <field name="res_id" model="account.invoice" search="[('reference', '=', 'SO001')]"/>
        </record>


    <record model="ir.model.data" id="account_invoice_SO001_line1">
        <field name="name">account_invoice_so001_line1</field>        
        <field name="module">account</field>
        <field name="model">account.invoice.line</field>
        <field name="res_id" model="account.invoice.line" search="[('origin', '=', 'SO001'),('name','=','[159] SUPERLEC')]"/>
    </record>
    
    <workflow action="invoice_open" model="account.invoice" ref="account.account_invoice_SO001"/>

    <function model="account.invoice" name="pay_and_reconcile">
        <value eval="[ref('account.account_invoice_SO001')]"/>
        <value eval="1021.44"/>
            <value eval="ref('l10n_fr.pcg_78161')"/>
            <value eval="ref('account.fiscalyear_1_period_'+time.strftime('%m'))"/>
            <value eval="ref('account.bank_journal')"/>
            <value eval="ref('l10n_fr.pcg_78161')"/>
            <value eval="ref('account.fiscalyear_1_period_'+time.strftime('%m'))"/>
            <value eval="ref('account.bank_journal')"/>
            <value eval="{}"/>
        <value eval="str('Paiement '+str(ref('account.account_invoice_SO001')))"/>
    </function>    

  </data>

   

2
Yann
On 12/2/14, 8:26 AM

Hi,

I found the problem and the solution : when we define an ir.model.data record we have to set the field noupdate to TRUE in this case (and in other places in the module).

At the end of the module installation, the program try to delete all records in ir.model.data where noupdate=0 and res_id is not null.

I hope it coult by helpfull to someone ...

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 11/29/14, 1:14 PM
Seen: 843 times
Last updated: 3/16/15, 8:10 AM