Merge branch 'julm' into membership_grouped
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 11 Jan 2013 17:27:27 +0000 (18:27 +0100)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 11 Jan 2013 17:27:27 +0000 (18:27 +0100)
Conflicts:
remembership.py

__init__.py
__openerp__.py
i18n/fr.po
i18n/remembership.pot
remembership.py
view/partner.xml
wizard/__init__.py [new file with mode: 0644]
wizard/remembership_invoice.py [new file with mode: 0644]
wizard/remembership_invoice_view.xml [new file with mode: 0644]

index a7284a9..0c00d91 100644 (file)
@@ -22,5 +22,6 @@
 ##############################################################################
 
 import remembership
+import wizard
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index d71b1ac..fcef0d0 100644 (file)
@@ -37,6 +37,7 @@
         'view/partner.xml',
         'view/point_of_sale.xml',
         'view/membership.xml',
+        'wizard/remembership_invoice_view.xml',
     ],
     'update_xml': [],
     'demo_xml': [],
index 7e7d90d..066e84e 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: OpenERP Server 6.2dev-20121129-000101\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-20 15:21+0000\n"
-"PO-Revision-Date: 2012-12-20 16:23+0100\n"
+"POT-Creation-Date: 2012-12-20 16:17+0000\n"
+"PO-Revision-Date: 2012-12-20 17:50+0100\n"
 "Last-Translator: Ludovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>\n"
 "Language-Team: \n"
 "Language: \n"
@@ -16,6 +16,16 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: \n"
 
+#. module: remembership
+#: help:res.partner,associate_members:0
+msgid "Members who are associated to this partner. If this member buy a membership, the associates members will be members too."
+msgstr "Membres qui sont associé-e-s à ce partenaire. Si ce partenaire adhère, ses membres associé-e-s adhèreront également."
+
+#. module: remembership
+#: view:res.partner:0
+msgid "Members"
+msgstr "Membres"
+
 #. module: remembership
 #: model:ir.model,name:remembership.model_pos_make_payment
 msgid "Point of Sale Payment"
@@ -31,11 +41,6 @@ msgstr "L'identifiant de l'adhérent-e doit être unique !"
 msgid "Invoice Line"
 msgstr "Ligne de facture"
 
-#. module: remembership
-#: help:res.partner,associate_members:0
-msgid "Members who are associated to this partner."
-msgstr "Membres qui sont associé-e-s à ce-tte partenaire."
-
 #. module: remembership
 #: field:res.partner,member_ident:0
 msgid "Member identifier"
@@ -51,6 +56,9 @@ msgstr "Partenaire"
 msgid "Associate members"
 msgstr "Membres associé-e-s"
 
+#~ msgid "Members who are associated to this partner."
+#~ msgstr "Membres qui sont associé-e-s à ce-tte partenaire."
+
 #~ msgid "Product"
 #~ msgstr "Produit"
 
index 14db989..81af371 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: OpenERP Server 7.0alpha-20121206-000102\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-20 15:21+0000\n"
-"PO-Revision-Date: 2012-12-20 15:21+0000\n"
+"POT-Creation-Date: 2012-12-20 16:17+0000\n"
+"PO-Revision-Date: 2012-12-20 16:17+0000\n"
 "Last-Translator: <>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -15,6 +15,16 @@ msgstr ""
 "Content-Transfer-Encoding: \n"
 "Plural-Forms: \n"
 
+#. module: remembership
+#: help:res.partner,associate_members:0
+msgid "Members who are associated to this partner. If this member buy a membership, the associates members will be members too."
+msgstr ""
+
+#. module: remembership
+#: view:res.partner:0
+msgid "Members"
+msgstr ""
+
 #. module: remembership
 #: model:ir.model,name:remembership.model_pos_make_payment
 msgid "Point of Sale Payment"
@@ -30,11 +40,6 @@ msgstr ""
 msgid "Invoice Line"
 msgstr ""
 
-#. module: remembership
-#: help:res.partner,associate_members:0
-msgid "Members who are associated to this partner."
-msgstr ""
-
 #. module: remembership
 #: field:res.partner,member_ident:0
 msgid "Member identifier"
index 849afcf..999f8c8 100644 (file)
@@ -26,6 +26,7 @@ from osv import fields
 import time
 from datetime import datetime, date
 from dateutil.relativedelta import relativedelta
+from openerp.tools.translate import _
 
 
 class Partner(osv.osv):
@@ -60,7 +61,7 @@ class Partner(osv.osv):
                         print ("DEV: [_membership_date] [associate] date_from: %s" % str(res[partner.id]['membership_start']))
                     else:
                         print ("DEV: [_membership_date] date_from: %s" % str(res[partner.id]['membership_start']))
-            
+
             if name == 'membership_stop':
                 line_id1 = member_line_obj.search(cr, uid, [('partner', '=', partner_id),('date_cancel','=',False)],
                             limit=1, order='date_to desc', context=context)
@@ -71,7 +72,7 @@ class Partner(osv.osv):
                         print ("DEV: [_membership_date] [associate] date_to: %s" % str(res[partner.id]['membership_stop']))
                     else:
                         print ("DEV: [_membership_date] date_to: %s" % str(res[partner.id]['membership_stop']))
-            
+
             if name == 'membership_cancel':
                 if partner.membership_state == 'canceled':
                     line_id2 = member_line_obj.search(cr, uid, [('partner', '=', partner.id)], limit=1, order='date_cancel', context=context)
@@ -279,6 +280,8 @@ class account_invoice_line(osv.osv):
                         'date_to': date_to,
                         'account_invoice_line': line.id,
                     }, context=context)
+            elif line.product_id.membership_grouped and not line.invoice_id.partner_id.associate_members:
+                raise osv.except_osv(_('Error!!!'), _('You try to invoice grouped membership product to a partner who hasn\'t associated partners.'))
             #Define member ident if it's necessary
             for i in partners:
                 if not i.member_ident:
index a9d909e..09344b6 100644 (file)
                     <field name="member_ident" readonly="1"/>
                     <newline/>
                 </xpath>
+                <xpath expr="//field[@name='associate_member']" position="replace">
+                    <field name="associate_members" widget="many2many"/>
+                </xpath>
+            </field>
+        </record>
+        <record id="view_remembership_members_simple_tree" model="ir.ui.view">
+            <field name="name">res.partner.tree</field>
+            <field name="model">res.partner</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="1"/>
+            <field name="arch" type="xml">
+            <tree string="Members">
+                <field name="member_ident"/>
+                <field name="name"/>
+            </tree>
             </field>
         </record>
         <record id="view_remembership_members_tree" model="ir.ui.view">
diff --git a/wizard/__init__.py b/wizard/__init__.py
new file mode 100644 (file)
index 0000000..995bfd9
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+import remembership_invoice
diff --git a/wizard/remembership_invoice.py b/wizard/remembership_invoice.py
new file mode 100644 (file)
index 0000000..99fab8b
--- /dev/null
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+
+from openerp.osv import osv
+from openerp.osv import fields
+from datetime import datetime
+
+
+class membership_invoice(osv.osv):
+    _inherit = 'membership.invoice'
+
+    _columns = {
+        'date_from': fields.date('This membership start date'),
+        'is_date2date': fields.boolean('This membership product is date to date.', readonly=True),
+    }
+
+    _defaults = {
+        'date_from': datetime.today().strftime('%Y-%m-%d'),
+    }
+
+    def onchange_product(self, cr, uid, ids, product_id=False):
+        res = super(membership_invoice, self).onchange_product(cr, uid, ids, product_id)
+        if product_id:
+            res['value']['is_date2date'] = self.pool.get('product.product').browse(cr, uid, [product_id], context=None)[0].membership_date2date
+        else:
+            res['value']['is_date2date'] = False
+
+        return res
+
+    def membership_invoice(self, cr, uid, ids, context=None):
+        """NOTE:  Copy of orginial function for overwrite it by adding
+        date_from value for date to date membership products. Keep an eye of it
+        for taking advantage of its enhancements (2013-01-11)"""
+        mod_obj = self.pool.get('ir.model.data')
+        partner_obj = self.pool.get('res.partner')
+        datas = {}
+        if context is None:
+            context = {}
+        data = self.browse(cr, uid, ids, context=context)
+        if data:
+            data = data[0]
+            datas = {
+                'membership_product_id': data.product_id.id,
+                'amount': data.member_price,
+                'date_from': data.date_from
+            }
+        invoice_list = partner_obj.create_membership_invoice(cr, uid, context.get('active_ids', []), datas=datas, context=context)
+
+        res = mod_obj.get_object_reference(cr, uid, 'account', 'view_account_invoice_filter')
+
+        return {
+            'domain': [('id', 'in', invoice_list)],
+            'name': 'Membership Invoices',
+            'view_type': 'form',
+            'view_mode': 'tree,form',
+            'res_model': 'account.invoice',
+            'type': 'ir.actions.act_window',
+            'search_view_id': res and res[1] or False
+        }
+
+membership_invoice()
diff --git a/wizard/remembership_invoice_view.xml b/wizard/remembership_invoice_view.xml
new file mode 100644 (file)
index 0000000..5fdb3d2
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="view_membership_invoice_view" model="ir.ui.view">
+            <field name="name">membership.invoice.view.form</field>
+            <field name="model">membership.invoice</field>
+            <field name="inherit_id" ref="membership.view_membership_invoice_view"/>
+            <field name="arch" type="xml">
+                <xpath expr="//field[@name='product_id']" position="after">
+                    <field name="is_date2date" on_change="onchange_product(product_id)"/>
+                    <field name="date_from" attrs="{'invisible': [('is_date2date','=', False)]}"/>
+                </xpath>
+            </field>
+        </record>
+    </data>
+</openerp>