diff --git a/account_spread_cost_revenue/models/account_spread.py b/account_spread_cost_revenue/models/account_spread.py index 42dcba1bf..53208d9cd 100644 --- a/account_spread_cost_revenue/models/account_spread.py +++ b/account_spread_cost_revenue/models/account_spread.py @@ -58,16 +58,16 @@ class AccountSpread(models.Model): compute='_compute_deprecated_accounts') unspread_amount = fields.Float( digits=dp.get_precision('Account'), - compute='_compute_spread_amount') + compute='_compute_amounts') unposted_amount = fields.Float( digits=dp.get_precision('Account'), - compute='_compute_spread_amount') + compute='_compute_amounts') posted_amount = fields.Float( digits=dp.get_precision('Account'), - compute='_compute_spread_amount') + compute='_compute_amounts') total_amount = fields.Float( digits=dp.get_precision('Account'), - compute='_compute_spread_amount') + compute='_compute_amounts') line_ids = fields.One2many( 'account.spread.line', 'spread_id', @@ -88,8 +88,8 @@ class AccountSpread(models.Model): invoice_line_id = fields.Many2one( 'account.invoice.line', string='Invoice line', - compute='_compute_invoice', - inverse='_inverse_invoice', + compute='_compute_invoice_line', + inverse='_inverse_invoice_line', store=True) invoice_id = fields.Many2one( related='invoice_line_id.invoice_id', @@ -124,8 +124,8 @@ class AccountSpread(models.Model): company_id = res['company_id'] default_journal = self.env['account.journal'].search([ ('type', '=', 'general'), - ('company_id', '=', company_id)], - limit=1) + ('company_id', '=', company_id) + ], limit=1) if 'journal_id' not in res and default_journal: res['journal_id'] = default_journal.id return res @@ -139,14 +139,14 @@ class AccountSpread(models.Model): spread.spread_type = 'purchase' @api.depends('invoice_line_ids', 'invoice_line_ids.invoice_id') - def _compute_invoice(self): + def _compute_invoice_line(self): for spread in self: invoice_lines = spread.invoice_line_ids line = invoice_lines and invoice_lines[0] or False spread.invoice_line_id = line @api.multi - def _inverse_invoice(self): + def _inverse_invoice_line(self): for spread in self: invoice_line = spread.invoice_line_id spread.write({ @@ -154,7 +154,7 @@ class AccountSpread(models.Model): }) @api.multi - def _compute_spread_amount(self): + def _compute_amounts(self): for spread in self: moves_amount = 0.0 posted_amount = 0.0 @@ -249,7 +249,7 @@ class AccountSpread(models.Model): return 1 @api.multi - def _init_spread_line_date(self, posted_line_ids): + def _init_line_date(self, posted_line_ids): """Calculates the initial spread date. This method is used by "def _compute_spread_board()" method. """ @@ -265,22 +265,18 @@ class AccountSpread(models.Model): return spread_date @api.multi - def _next_line_date(self, month_day, spread_date): + def _next_line_date(self, month_day, date): """Calculates the next spread date. This method is used by "def _compute_spread_board()" method. """ self.ensure_one() months = self._compute_spread_period_duration() - spread_date = spread_date + relativedelta(months=months) + date = date + relativedelta(months=months) # get the last day of the month if month_day > 28: - max_day_in_month = calendar.monthrange( - spread_date.year, spread_date.month - )[1] - spread_date = spread_date.replace( - day=min(max_day_in_month, month_day) - ) - return spread_date + max_day_in_month = calendar.monthrange(date.year, date.month)[1] + date = date.replace(day=min(max_day_in_month, month_day)) + return date @api.multi def _compute_spread_board(self): @@ -302,7 +298,7 @@ class AccountSpread(models.Model): if self.unposted_amount != 0.0: unposted_amount = self.unposted_amount - spread_date = self._init_spread_line_date(posted_line_ids) + spread_date = self._init_line_date(posted_line_ids) month_day = spread_date.day number_of_periods = self._get_number_of_periods(month_day) @@ -343,13 +339,11 @@ class AccountSpread(models.Model): return fields.Date.to_string(spread_date + relativedelta(day=31)) @api.multi - def _compute_board_amount(self, sequence, unposted_amount, - undone_dotation_number): + def _compute_board_amount(self, sequence, amount, number_of_periods): """Calculates the amount for the spread lines.""" self.ensure_one() - amount = unposted_amount amount_to_spread = self.total_amount - if sequence != undone_dotation_number: + if sequence != number_of_periods: amount = amount_to_spread / self.period_number if sequence == 1: date = fields.Datetime.from_string(self.spread_date) diff --git a/account_spread_cost_revenue/models/account_spread_line.py b/account_spread_cost_revenue/models/account_spread_line.py index 31d5b3843..47ba06560 100644 --- a/account_spread_cost_revenue/models/account_spread_line.py +++ b/account_spread_cost_revenue/models/account_spread_line.py @@ -15,9 +15,9 @@ class AccountInvoiceSpreadLine(models.Model): amount = fields.Float(digits=dp.get_precision('Account'), required=True) date = fields.Date(required=True) spread_id = fields.Many2one( - 'account.spread', string='Spread', ondelete='cascade') + 'account.spread', string='Spread Board', ondelete='cascade') move_id = fields.Many2one( - 'account.move', string='Spread Entry', readonly=True) + 'account.move', string='Journal Entry', readonly=True) @api.multi def create_and_reconcile_moves(self): diff --git a/account_spread_cost_revenue/readme/HISTORY.rst b/account_spread_cost_revenue/readme/HISTORY.rst new file mode 100644 index 000000000..07877aaf4 --- /dev/null +++ b/account_spread_cost_revenue/readme/HISTORY.rst @@ -0,0 +1,5 @@ +11.0.1.0.0 +~~~~~~~~~~ + +* [ADD] Module account_spread_cost_revenue. + (`#715 `_) diff --git a/account_spread_cost_revenue/readme/ROADMAP.rst b/account_spread_cost_revenue/readme/ROADMAP.rst index 82177b55c..2999cff1d 100644 --- a/account_spread_cost_revenue/readme/ROADMAP.rst +++ b/account_spread_cost_revenue/readme/ROADMAP.rst @@ -1 +1,2 @@ * Verify last day of month +* Add help in fields definition diff --git a/account_spread_cost_revenue/security/ir.model.access.csv b/account_spread_cost_revenue/security/ir.model.access.csv index 380f429b4..a4e7d04ac 100644 --- a/account_spread_cost_revenue/security/ir.model.access.csv +++ b/account_spread_cost_revenue/security/ir.model.access.csv @@ -1,6 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_account_spread_cost_revenue_full,Full access on account.spread,model_account_spread,account.group_account_manager,1,1,1,1 -access_account_spread_cost_revenue_read,Read access on account.spread,model_account_spread,base.group_user,1,0,0,0 +access_account_spread_cost_revenue_read,Read access on account.spread,model_account_spread,account.group_account_user,1,0,0,0 access_account_spread_cost_revenue_line_full,Full access on account.spread.line,model_account_spread_line,account.group_account_manager,1,1,1,1 access_account_spread_cost_revenue_line_read,Read access on account.spread.line,model_account_spread_line,account.group_account_user,1,0,0,0 access_account_spread_cost_revenue_template_full,Full access on account.spread.template,model_account_spread_template,account.group_account_manager,1,1,1,1 diff --git a/account_spread_cost_revenue/views/account_invoice.xml b/account_spread_cost_revenue/views/account_invoice.xml index 134bad442..9a86f04a4 100644 --- a/account_spread_cost_revenue/views/account_invoice.xml +++ b/account_spread_cost_revenue/views/account_invoice.xml @@ -6,7 +6,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/account_spread_cost_revenue/views/account_spread.xml b/account_spread_cost_revenue/views/account_spread.xml index 40428882d..f40e65c9d 100644 --- a/account_spread_cost_revenue/views/account_spread.xml +++ b/account_spread_cost_revenue/views/account_spread.xml @@ -7,9 +7,9 @@
@@ -95,11 +95,11 @@ -