Merge lp:~a-camilli/openobject-italia/6.1-fix-bugs-ricevute-bancarie into lp:~openobject-italia-core-devs/openobject-italia/italian-addons-6.1

Proposed by Alessandro Camilli
Status: Needs review
Proposed branch: lp:~a-camilli/openobject-italia/6.1-fix-bugs-ricevute-bancarie
Merge into: lp:~openobject-italia-core-devs/openobject-italia/italian-addons-6.1
Diff against target: 204 lines (+86/-4)
6 files modified
l10n_it_ricevute_bancarie/account/account.py (+4/-0)
l10n_it_ricevute_bancarie/account/account_view.xml (+5/-1)
l10n_it_ricevute_bancarie/riba.py (+64/-2)
l10n_it_ricevute_bancarie/riba_view.xml (+7/-1)
l10n_it_ricevute_bancarie/security/ir.model.access.csv (+4/-0)
l10n_it_ricevute_bancarie/wizard/wizard_emissione_riba.py (+2/-0)
To merge this branch: bzr merge lp:~a-camilli/openobject-italia/6.1-fix-bugs-ricevute-bancarie
Reviewer Review Type Date Requested Status
Lorenzo Battistini Disapprove
Leonardo Pistone (community) Needs Fixing
Review via email: mp+156935@code.launchpad.net

Description of the change

Correzioni per:
- Errore nella creazione della distinta
- Modifica importo ricevuta bancaria

To post a comment you must log in.
Revision history for this message
Lorenzo Battistini (elbati) wrote :

Sembrano le stesse modifiche prensenti nel merge proposal 152919
https://code.launchpad.net/~a-camilli/openobject-italia/6.1-fix-Divisione-importo-riba/+merge/152919

Se ci sono differenze, ti invito a modificare il branch lp:~a-camilli/openobject-italia/6.1-fix-Divisione-importo-riba
oppure ad annullare il precedente MP

review: Disapprove
Revision history for this message
Alessandro Camilli (a-camilli) wrote :

Delle modifiche aggiuntive ci sono. Allora cancello il branch precedente e rifaccio il merge proposal. E' ok per te?

Revision history for this message
Leonardo Pistone (lepistone) wrote :

Ciao Alessandro.
Lorenzo sta dicendo che ci sono due possibilità:

1. vai un commit e push sul branch vecchio, mantenendo la vecchia merge proposal, e cancella questa
2. cancella la vecchia merge proposal e teniamo questa

ciao

review: Needs Fixing
Revision history for this message
Alessandro Camilli (a-camilli) wrote :

OK allora seguo il punto 2

Revision history for this message
Lorenzo Battistini (elbati) wrote :

On 04/04/2013 11:34 AM, Alessandro Camilli wrote:
> OK allora seguo il punto 2

Ok grazie.
Ricordati solo di collegare a questa proposta eventuali bachi che
verrebbero risolti da queste modifiche.

Revision history for this message
Alessandro Camilli (a-camilli) wrote :

Fatto

Revision history for this message
Lorenzo Battistini (elbati) wrote :

On 04/04/2013 03:14 PM, Alessandro Camilli wrote:
> Fatto

Dovresti andare nel baco che verrebbe risolto da questo branch (credo
sia il bug 1101122 ), cliccare su ' Link a related branch' e inserire il
branch lp:~a-camilli/openobject-italia/6.1-fix-bugs-ricevute-bancarie

Grazie

234. By Alessandro Camilli

errore accettazione distinta con riba riemessa dopo insoluto

235. By Alessandro Camilli

Corretti errori su calcolo valore residuo riba e su filtro riba da emettere

236. By Alessandro Camilli

errore filtro riba da emettere

237. By Alessandro Camilli

No riba da emettere legate a righe riconciliate

Revision history for this message
Lorenzo Battistini (elbati) wrote :

Ciao Alessandro,

il problema descritto qua
http://www.openerp-italia.org/index.php/kunena/8-contabilita-e-finanza/11309-riemissione-ricevuta-bancaria-insoluta?limitstart=0#13080
dovrebbe essere risolto dalla seguente MP
https://code.launchpad.net/~scigghia/openobject-italia/openobject-italia-6.1-imp-riba-filtri/+merge/163501

Le proposte di merge dovrebbero contenere modifiche atte a risolvere uno specifico baco o ad aggiungere una specifica funzionalità.

Se questa MP ha lo scopo di risolvere il bug 1101122 (che è poi una nuova funzionalità) ti invito a includere solamente le modifiche relative a quel bug.

Grazie

review: Disapprove
Revision history for this message
Lorenzo Battistini (elbati) wrote :

This project is now hosted on https://github.com/OCA/l10n-italy. Please move your proposal there. This guide may help you https://github.com/OCA/maintainers-tools/wiki/How-to-move-a-Merge-Proposal-to-GitHub

Unmerged revisions

237. By Alessandro Camilli

No riba da emettere legate a righe riconciliate

236. By Alessandro Camilli

errore filtro riba da emettere

235. By Alessandro Camilli

Corretti errori su calcolo valore residuo riba e su filtro riba da emettere

234. By Alessandro Camilli

errore accettazione distinta con riba riemessa dopo insoluto

233. By Alessandro Camilli

Fix same bugs

232. By Alessandro Camilli

bug on modify riba amount

231. By Alessandro Camilli

comma security

230. By Alessandro Camilli

comma security

229. By Alessandro Camilli

divisione importo riba

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_it_ricevute_bancarie/account/account.py'
2--- l10n_it_ricevute_bancarie/account/account.py 2013-03-09 11:48:05 +0000
3+++ l10n_it_ricevute_bancarie/account/account.py 2013-08-29 13:06:41 +0000
4@@ -25,6 +25,7 @@
5 ##############################################################################
6
7 from osv import fields, osv
8+import decimal_precision as dp
9
10 class account_payment_term(osv.osv):
11 # flag riba utile a distinguere la modalità di pagamento
12@@ -54,6 +55,7 @@
13
14 # se distinta_line_ids == None allora non è stata emessa
15 class account_move_line(osv.osv):
16+
17 _inherit = "account.move.line"
18
19 _columns = {
20@@ -61,6 +63,8 @@
21 'riba': fields.related('invoice', 'payment_term', 'riba',
22 type='boolean', string='RiBa', store=False),
23 'unsolved_invoice_ids': fields.many2many('account.invoice', 'invoice_unsolved_line_rel', 'line_id', 'invoice_id', 'Unsolved Invoices'),
24+ 'riba_move_unriconcile': fields.one2many('riba.move.line.unreconcile', 'move_line_id', "Riba to reconcile"),
25+ 'riba_amount_residual': fields.float('Residuo', digits_compute=dp.get_precision('Account')),
26 'iban' : fields.related('partner_id', 'bank_ids', 'iban', type='char', string='IBAN', store=False),
27 }
28 _defaults = {
29
30=== modified file 'l10n_it_ricevute_bancarie/account/account_view.xml'
31--- l10n_it_ricevute_bancarie/account/account_view.xml 2013-03-09 11:48:05 +0000
32+++ l10n_it_ricevute_bancarie/account/account_view.xml 2013-08-29 13:06:41 +0000
33@@ -59,6 +59,8 @@
34 <field name="date_maturity"/>
35 <field name="riba" />
36 <field name="distinta_line_ids" invisible="1" />
37+ <field name="riba_move_unriconcile" invisible="1" />
38+ <field name="riba_amount_residual" invisible="0" />
39 </tree>
40 </field>
41 </record>
42@@ -71,8 +73,10 @@
43 <field name="type">search</field>
44 <field name="arch" type="xml">
45 <search string="Search Journal Items">
46+ <!-- <filter icon="terp-go-today" string="To Issue"
47+ domain="[('distinta_line_ids', '=', False)]" name="da_emettere"/> -->
48 <filter icon="terp-go-today" string="To Issue"
49- domain="[('distinta_line_ids', '=', False)]" name="da_emettere"/>
50+ domain="[('reconcile_id', '=', False),'|',('distinta_line_ids', '=', False),('riba_amount_residual', '!=', 0)]" name="da_emettere"/>
51 <field name="account_id"/>
52 <field name="partner_id"/>
53 <field name="invoice"/>
54
55=== modified file 'l10n_it_ricevute_bancarie/riba.py'
56--- l10n_it_ricevute_bancarie/riba.py 2013-03-07 19:58:33 +0000
57+++ l10n_it_ricevute_bancarie/riba.py 2013-08-29 13:06:41 +0000
58@@ -358,13 +358,29 @@
59 for riba_move_line in line.move_line_ids:
60 total_credit += riba_move_line.amount
61 move_line_id = move_line_pool.create(cr, uid, {
62- 'name': riba_move_line.move_line_id.invoice.number,
63+ 'name': riba_move_line.move_line_id.invoice.number or riba_move_line.move_line_id.ref,
64 'account_id': riba_move_line.move_line_id.account_id.id,
65 'credit': riba_move_line.amount,
66 'debit': 0.0,
67 'move_id': move_id,
68 }, context=context)
69 to_be_reconciled.append([move_line_id, riba_move_line.move_line_id.id])
70+ # with saldo < 0 : error
71+ # saldo > 0 : save move_line_id unreconciled
72+ # saldo = 0 : unlink move unriconciled saved
73+ saldo = riba_move_line.amount_residual
74+ move_line_pool.write(cr, uid, [riba_move_line.move_line_id.id], {'riba_amount_residual': saldo})
75+ if saldo < 0:
76+ raise osv.except_osv(_('Error'),_('%s - Aomunt Riba of %s exceeds value residual (%s) ') % (line.partner_id.name, str(riba_move_line.amount), str(saldo + riba_move_line.amount)))
77+ if saldo > 0:
78+ move_line_unreconcile_id = self.pool.get('riba.move.line.unreconcile').create(cr, uid, {
79+ 'payment_move_id': move_line_id,
80+ 'move_line_id': riba_move_line.move_line_id.id,
81+ 'amount': riba_move_line.amount,
82+ }, context=context)
83+ if saldo == 0 and riba_move_line.amount != riba_move_line.amount_origin:
84+ payments_to_reconcile_ids = self.pool.get('riba.move.line.unreconcile').search(cr, uid, [('move_line_id','=', riba_move_line.move_line_id.id)], context=context)
85+ self.pool.get('riba.move.line.unreconcile').unlink(cr, uid, payments_to_reconcile_ids)
86 move_line_pool.create(cr, uid, {
87 'name': 'Ri.Ba. %s - line %s' % (line.distinta_id.name, line.sequence),
88 'account_id': line.acceptance_account_id.id,
89@@ -384,9 +400,42 @@
90 wf_service.trg_validate(
91 uid, 'riba.distinta', line.distinta_id.id, 'accepted', cr)
92 return True
93-
94+ # Variazione importo riba su riga distinta in bozza
95+ def onchange_riba_amount(self, cr, uid, ids, amount, context=None):
96+
97+ for riba_line in self.browse(cr, uid, ids, context=context):
98+ move_amount = riba_line.move_line_ids[0].move_line_id.debit
99+ move_amount_residual = riba_line.move_line_ids[0].move_line_id.debit
100+ # amount in other lines
101+ distinta_move_line_ids = self.pool.get('riba.distinta.move.line').search(
102+ cr, uid, [('move_line_id','=', riba_line.move_line_ids[0].move_line_id.id),('riba_line_id','!=', riba_line.id)], context=context)
103+ if len(distinta_move_line_ids) > 0 :
104+ for distinta_move_line in self.pool.get('riba.distinta.move.line').browse(cr, uid, distinta_move_line_ids, context=context):
105+ move_amount_residual -= distinta_move_line.amount
106+ # Control amounts
107+ if ( round(move_amount_residual, 2) - amount) < 0:
108+ raise osv.except_osv(_('Error'),_('Residual is %s :Amount Riba exceeds value of move (%s) ') % (str(move_amount_residual), str(move_amount)))
109+ values = {'amount': amount}
110+ self.pool.get('riba.distinta.move.line').write(cr, uid, riba_line.move_line_ids[0].id, values)
111+
112+ return {}
113
114 class riba_distinta_move_line(osv.osv):
115+
116+ def _get_riba_amount_residual(self, cr, uid, ids, name, arg, context):
117+ res = {}
118+ amount_residual = 0
119+ for line in self.browse(cr, uid, ids, context=context):
120+ amount_residual = line.move_line_id.debit - line.amount
121+ if len(line.move_line_id.distinta_line_ids) > 0:
122+ if len(line.move_line_id.riba_move_unriconcile) > 0 :
123+ for riba_unreconcile in line.move_line_id.riba_move_unriconcile:
124+ amount_residual = round(amount_residual - riba_unreconcile.amount, 2)
125+ else:
126+ amount_residual = line.amount_origin - line.amount
127+ res[line.id] = {}
128+ res[line.id]['amount_residual'] = amount_residual
129+ return res
130
131 _name = 'riba.distinta.move.line'
132 _description = 'Riba details'
133@@ -396,5 +445,18 @@
134 'amount' : fields.float('Amount', digits_compute=dp.get_precision('Account')),
135 'move_line_id': fields.many2one('account.move.line', 'Credit move line'),
136 'riba_line_id': fields.many2one('riba.distinta.line', 'Distinta line', ondelete='cascade'),
137+ 'amount_origin' : fields.float('Amount', digits_compute=dp.get_precision('Account')),
138+ 'amount_residual': fields.function(_get_riba_amount_residual, method=True, string="Residuo", multi="line"),
139 }
140
141+class riba_move_line_unreconcile(osv.osv):
142+
143+ _name = 'riba.move.line.unreconcile'
144+ _description = 'Riba move line unreconcile'
145+ _rec_name = 'amount'
146+
147+ _columns = {
148+ 'payment_move_id': fields.many2one('account.move.line', 'Move line to reconcile'),
149+ 'move_line_id': fields.many2one('account.move.line', 'Credit move line'),
150+ 'amount' : fields.float('Amount', digits_compute=dp.get_precision('Account')),
151+ }
152
153=== modified file 'l10n_it_ricevute_bancarie/riba_view.xml'
154--- l10n_it_ricevute_bancarie/riba_view.xml 2013-03-07 19:58:33 +0000
155+++ l10n_it_ricevute_bancarie/riba_view.xml 2013-08-29 13:06:41 +0000
156@@ -76,10 +76,16 @@
157 <field name="invoice_number"/>
158 <field name="invoice_date"/>
159 <field name="partner_id"/>
160- <field name="amount" />
161+ <!-- <field name="amount" /> -->
162+ <field name="amount" readonly="0" on_change="onchange_riba_amount(amount)"/>
163 <field name="due_date"/>
164 <field name="state"/>
165 <field name="reconciled" />
166+ <field name="move_line_ids">
167+ <form>
168+ <field name="amount_residual" />
169+ </form>
170+ </field>
171 </page>
172 <page string="Accounting">
173 <separator string="Invoice entries" colspan="4"/>
174
175=== modified file 'l10n_it_ricevute_bancarie/security/ir.model.access.csv'
176--- l10n_it_ricevute_bancarie/security/ir.model.access.csv 2012-06-16 10:45:58 +0000
177+++ l10n_it_ricevute_bancarie/security/ir.model.access.csv 2013-08-29 13:06:41 +0000
178@@ -13,3 +13,7 @@
179 access_riba_distinta_move_line_accountant,riba_distinta_move_line accountant,model_riba_distinta_move_line,account.group_account_user,1,0,0,0
180 access_riba_configurazione_manager,riba_configurazione,model_riba_configurazione,account.group_account_manager,1,1,1,1
181 access_riba_configurazione_invoice,riba_configurazione invoice,model_riba_configurazione,account.group_account_invoice,1,0,0,0
182+access_riba_move_line_unreconcile_uinvoice,riba_move_line_unreconcile,model_riba_move_line_unreconcile,account.group_account_invoice,1,1,1,1
183+access_riba_move_line_unreconcile_group_invoice,riba_move_line_unreconcile group invoice,model_riba_move_line_unreconcile,account.group_account_invoice,1,1,1,1
184+access_riba_move_line_unreconcile_user,riba_move_line_unreconcile user,model_riba_move_line_unreconcile,base.group_user,1,0,0,0
185+access_riba_move_line_unreconcile_accountant,riba_move_line_unreconcile accountant,model_riba_move_line_unreconcile,account.group_account_user,1,0,0,0
186
187=== modified file 'l10n_it_ricevute_bancarie/wizard/wizard_emissione_riba.py'
188--- l10n_it_ricevute_bancarie/wizard/wizard_emissione_riba.py 2013-01-04 14:02:10 +0000
189+++ l10n_it_ricevute_bancarie/wizard/wizard_emissione_riba.py 2013-08-29 13:06:41 +0000
190@@ -100,6 +100,7 @@
191 riba_distinta_move_line.create(cr, uid, {
192 'riba_line_id': rdl_id,
193 'amount': grouped_line.debit,
194+ 'amount_origin': grouped_line.debit,
195 'move_line_id': grouped_line.id,
196 }, context=context)
197 del grouped_lines[key]
198@@ -109,6 +110,7 @@
199 riba_distinta_move_line.create(cr, uid, {
200 'riba_line_id': rdl_id,
201 'amount': move_line.debit,
202+ 'amount_origin': move_line.debit,
203 'move_line_id': move_line.id,
204 }, context=context)
205

Subscribers

People subscribed via source and target branches