← Back to team overview

openobject-italia-core-devs team mailing list archive

[Merge] lp:~nicolariolini/openobject-italia/save_fiscalcode_data into lp:openobject-italia/7.0

 

Nicola Riolini - Micronaet has proposed merging lp:~nicolariolini/openobject-italia/save_fiscalcode_data into lp:openobject-italia/7.0.

Requested reviews:
  OpenERP Italia core devs (openobject-italia-core-devs)

For more details, see:
https://code.launchpad.net/~nicolariolini/openobject-italia/save_fiscalcode_data/+merge/194457

Modificato l10n_it_fiscalcode:
Creato in res.partner i campi che accolgono i dati per il calcolo del CF, non li faccio vedere però nelle viste, vengono solamente caricati come default se apro il wizard per il calcolo.
Alla chiusura del wizard, con il "calcola", vengono salvati assieme al valore del CF

La modifica è fatta nel caso avessi sbagliato dei dati: cancello il CF, richiamo il wizard e non devo riscriverli per forza tutti
-- 
https://code.launchpad.net/~nicolariolini/openobject-italia/save_fiscalcode_data/+merge/194457
Your team OpenERP Italia core devs is requested to review the proposed merge of lp:~nicolariolini/openobject-italia/save_fiscalcode_data into lp:openobject-italia/7.0.
=== modified file 'l10n_it_fiscalcode/fiscalcode.py'
--- l10n_it_fiscalcode/fiscalcode.py	2013-02-05 16:15:05 +0000
+++ l10n_it_fiscalcode/fiscalcode.py	2013-11-08 07:45:17 +0000
@@ -41,7 +41,17 @@
     _columns = {
         'fiscalcode': fields.char('Fiscal Code', size=16, help="Italian Fiscal Code"),
         'individual': fields.boolean('Individual', help="If checked the C.F. is referred to a Individual Person"),
+        
+        # Field for save fiscalcode calculation data:
+        'fiscalcode_surname': fields.char('Surname', size=64),
+        'fiscalcode_firstname': fields.char('First name', size=64),
+        'birth_date': fields.date('Date of birth'),
+        'birth_city': fields.many2one('res.city', 'City of birth'),
+        'sex': fields.selection([('M','Male'),
+                                 ('F', 'Female'),
+                                ], "Sex"),
     }
+
     _defaults = {
         'individual': False,
     }

=== modified file 'l10n_it_fiscalcode/wizard/compute_fc.py'
--- l10n_it_fiscalcode/wizard/compute_fc.py	2013-03-01 11:07:49 +0000
+++ l10n_it_fiscalcode/wizard/compute_fc.py	2013-11-08 07:45:17 +0000
@@ -39,7 +39,35 @@
                                  ('F', 'Female'),
                                 ], "Sex"),
     }
+    
+    _defaults = {
+        # Leggo da res.partner i dati se presenti per impostarli come default:
+        'fiscalcode_surname': lambda s, cr, uid, c: s.get_default_from_partner(cr, uid, 'fiscalcode_surname', context=c),
+        'fiscalcode_firstname': lambda s, cr, uid, c: s.get_default_from_partner(cr, uid, 'fiscalcode_firstname', context=c),
+        'birth_date': lambda s, cr, uid, c: s.get_default_from_partner(cr, uid, 'birth_date', context=c),
+        'birth_city': lambda s, cr, uid, c: s.get_default_from_partner(cr, uid, 'birth_city', context=c),
+        'sex': lambda s, cr, uid, c: s.get_default_from_partner(cr, uid, 'sex', context=c),
+    }
 
+    def get_default_from_partner(self, cr, uid, field, context = None):
+        ''' Legge il valore del campo richiesto da res_partner per proporre
+            il valore di default nel wizard
+        '''
+        if context is None:
+            context = {}
+            
+        try: 
+            partner_id = context.get('partner_id', 0)
+            if not partner_id:
+                return False
+            partner_proxy = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+            res = partner_proxy.__getattr__(field)
+            
+            if field == 'birth_city': # many2one
+                return res.id                
+            return res 
+        except: # In caso di errore non ritorna valori di default
+            return False
 
     def _codicefiscale(self, cognome, nome, giornonascita, mesenascita, annonascita, sesso, cittanascita):
 
@@ -125,5 +153,13 @@
                 fields.birth_city.cadaster_code)
             if partner.fiscalcode and partner.fiscalcode != CF:
                 raise osv.except_osv(_('Error'), _('Existing fiscal code %s is different from the computed one (%s). If you want to use the computed one, remove the existing one') % (partner.fiscalcode, CF))
-            self.pool.get('res.partner').write(cr, uid, active_id, {'fiscalcode': CF, 'individual': True})
+            self.pool.get('res.partner').write(cr, uid, active_id, {'fiscalcode': CF, 
+                                                                    'individual': True,
+                                                                    # Storicizzo in res.partner i dati usati dal wizard
+                                                                    'fiscalcode_surname': fields.fiscalcode_surname,
+                                                                    'fiscalcode_firstname': fields.fiscalcode_firstname,
+                                                                    'birth_date': fields.birth_date,
+                                                                    'birth_city': fields.birth_city.id if fields.birth_city else False, 
+                                                                    'sex': fields.sex, 
+                                                                    })
         return {}

=== modified file 'l10n_it_fiscalcode/wizard/compute_fc_view.xml'
--- l10n_it_fiscalcode/wizard/compute_fc_view.xml	2013-02-05 16:15:05 +0000
+++ l10n_it_fiscalcode/wizard/compute_fc_view.xml	2013-11-08 07:45:17 +0000
@@ -41,7 +41,7 @@
             <field name="inherit_id" ref="l10n_it_fiscalcode.view_partner_form_fiscalcode_data"/>
             <field name="arch" type="xml">
                 <field name="fiscalcode" position="after">
-                    <button name="%(l10n_it_fiscalcode.action_compute_fc)d" string="Compute F.C." type="action" icon="gtk-execute" colspan="2"/>
+                    <button name="%(l10n_it_fiscalcode.action_compute_fc)d" string="Compute F.C." type="action" icon="gtk-execute" colspan="2" context="{'partner_id':active_id,}"/>
                 </field>
             </field>
         </record>


Follow ups