Browse Source

[IMP] refactor the module to allow recomputation of operation register

number to avoid gap between number after correction
pull/1/head
houssine 7 years ago
parent
commit
31ce85ee60
  1. 46
      easy_my_coop_recompute_coop_number/wizard/cooperator_number_wizard.py
  2. 25
      easy_my_coop_recompute_coop_number/wizard/cooperator_number_wizard.xml

46
easy_my_coop_recompute_coop_number/wizard/cooperator_number_wizard.py

@ -1,49 +1,19 @@
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class AddRespondentsWizard(models.TransientModel):
_name = 'cooperator.number.wizard'
class RecomputeWizard(models.TransientModel):
_name = 'register.number.wizard'
from_number = fields.Integer(string="From number")
to_number = fields.Integer(string="To number")
reference = fields.Char(string="Reference", required=True, help='Enter your emails or references separeted by a semicolon')
on_reference = fields.Boolean('On reference')
on_email = fields.Boolean('On email', default=True)
@api.onchange('on_reference')
def onchange_reference(self):
if self.on_reference:
self.on_email = False
@api.onchange('on_email')
def onchange_email(self):
if self.on_email:
self.on_reference = False
@api.one
def compute_cooperator_number(self):
def compute_register_number(self):
obj_sequence = self.env['ir.sequence']
list = self.reference.split(',')
for ref in list:
coop = self.env['res.partner'].search([('cooperator','=',True),('member','=',True),('email','=',ref)])
sequence_operation = obj_sequence.search([('name','=','Register Operation')])[0]
subscription_registers = self.env['subscription.register'].search([('register_number_operation','>=',self.from_number)])
for subscription_register in subscription_registers:
sub_reg_operation = sequence_operation.next_by_id()
if coop:
sequence_id = obj_sequence.search([('name','=','Subscription Register')])[0]
sub_reg_num = sequence_id.next_by_id()
coop.write({'cooperator_register_number':int(sub_reg_num)})
subscription_register = self.env['subscription.register'].search([('partner_id','=',coop.id)])
if subscription_register:
sequence_operation = obj_sequence.search([('name','=','Register Operation')])[0]
sub_reg_operation = sequence_operation.next_by_id()
subscription_register.write({'name':sub_reg_operation,'register_number_operation':int(sub_reg_operation)})
else:
print "subscription register not found for " + coop.name
else:
print "cooperator not found for " + ref
subscription_register.write({'name':sub_reg_operation,'register_number_operation':int(sub_reg_operation)})

25
easy_my_coop_recompute_coop_number/wizard/cooperator_number_wizard.xml

@ -1,20 +1,17 @@
<openerp>
<data>
<record id="view_cooperator_number_wizard" model="ir.ui.view">
<field name="name">Cooperator number wizard</field>
<field name="model">cooperator.number.wizard</field>
<record id="view_register_number_wizard" model="ir.ui.view">
<field name="name">Register number wizard</field>
<field name="model">register.number.wizard</field>
<field name="arch" type="xml">
<form>
<group>
<field name="reference" default_focus="1" />
</group>
<group>
<field name="on_reference"/>
<field name="on_email"/>
<field name="from_number" default_focus="1" />
<field name="to_number"/>
</group>
<footer>
<button name="compute_cooperator_number" string="Compute" type="object" class="oe_highlight"/>
<button name="compute_register_number" string="Compute" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
@ -22,18 +19,18 @@
</field>
</record>
<record id="action_cooperator_number_wizard" model="ir.actions.act_window">
<field name="name">Cooperator number</field>
<record id="action_register_number_wizard" model="ir.actions.act_window">
<field name="name">Recompute register number</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">cooperator.number.wizard</field>
<field name="res_model">register.number.wizard</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_cooperator_number_wizard"/>
<field name="view_id" ref="view_register_number_wizard"/>
<field name="target">new</field>
<field name="multi">True</field>
</record>
<menuitem id="menu_cooperator_number_wizard" parent="menu_easy_my_coop_config" action="action_cooperator_number_wizard" sequence="30" groups="easy_my_coop.group_energiris_super_manager"/>
<menuitem id="menu_register_number_wizard" parent="easy_my_coop.menu_easy_my_coop_config" action="action_register_number_wizard" sequence="30" groups="easy_my_coop.group_energiris_super_manager"/>
</data>
</openerp>
Loading…
Cancel
Save