Add option to force the posting of accounting move
This commit is contained in:
parent
b60c1ab8e4
commit
1e66c61563
@ -120,6 +120,9 @@ class AccountSpread(models.Model):
|
||||
display_recompute_buttons = fields.Boolean(
|
||||
compute='_compute_display_recompute_buttons',
|
||||
string='Display Buttons Recompute')
|
||||
display_move_line_auto_post = fields.Boolean(
|
||||
compute='_compute_display_move_line_auto_post',
|
||||
string='Display Button Auto-post lines')
|
||||
|
||||
@api.model
|
||||
def default_get(self, fields):
|
||||
@ -195,6 +198,13 @@ class AccountSpread(models.Model):
|
||||
if spread.invoice_id.state == 'draft':
|
||||
spread.display_recompute_buttons = False
|
||||
|
||||
@api.multi
|
||||
def _compute_display_move_line_auto_post(self):
|
||||
for spread in self:
|
||||
spread.display_move_line_auto_post = True
|
||||
if spread.company_id.force_move_auto_post:
|
||||
spread.display_move_line_auto_post = False
|
||||
|
||||
@api.multi
|
||||
def _get_spread_entry_name(self, seq):
|
||||
"""Use this method to customise the name of the accounting entry."""
|
||||
|
@ -41,8 +41,16 @@ class AccountInvoiceSpreadLine(models.Model):
|
||||
spread.message_post(body=post_msg)
|
||||
|
||||
spread._reconcile_spread_moves(created_moves)
|
||||
if created_moves and spread.move_line_auto_post:
|
||||
created_moves.post()
|
||||
self._post_spread_moves(spread, created_moves)
|
||||
|
||||
@api.model
|
||||
def _post_spread_moves(self, spread, moves):
|
||||
if not moves:
|
||||
return
|
||||
if spread.company_id.force_move_auto_post:
|
||||
moves.post()
|
||||
elif spread.move_line_auto_post:
|
||||
moves.post()
|
||||
|
||||
@api.multi
|
||||
def create_move(self):
|
||||
@ -151,3 +159,8 @@ class AccountInvoiceSpreadLine(models.Model):
|
||||
('move_id', '=', False)
|
||||
])
|
||||
lines.create_and_reconcile_moves()
|
||||
|
||||
unposted_moves = self.search([('move_id', '!=', False)]).mapped(
|
||||
'move_id').filtered(lambda m: m.state != 'posted')
|
||||
unposted_moves.filtered(
|
||||
lambda m: m.company_id.force_move_auto_post).post()
|
||||
|
@ -22,5 +22,8 @@ class ResCompany(models.Model):
|
||||
allow_spread_planning = fields.Boolean(
|
||||
default=True,
|
||||
help="Disable this option if you do not want to allow the "
|
||||
"spreading before the invoice is validated.",
|
||||
)
|
||||
"spreading before the invoice is validated.")
|
||||
force_move_auto_post = fields.Boolean(
|
||||
'Auto-post spread lines',
|
||||
help="Enable this option if you want to post automatically the "
|
||||
"accounting moves of all the spreads.")
|
||||
|
@ -11,7 +11,10 @@ In the same *Account Spread* tab, you can also configure the Spread Balance Shee
|
||||
* the *Default Spread Account for Revenues*,
|
||||
* the *Default Spread Account for Expenses*.
|
||||
|
||||
|
||||
This module by default allows the spreading even before the receipt of the invoice or when the invoice is still draft,
|
||||
so that it is possible to work on the plan of the cost/revenue spreading. To disable this feature, on the form view of
|
||||
the company disable the *Allow Spread Planning* option.
|
||||
|
||||
On the form view of the company, the *Auto-post spread lines* option forces the account moves created
|
||||
during the cost/revenue spreading to be automatically posted. When this option is false, the user can
|
||||
enable/disable the automatic posting by the flag *Auto-post lines* present in the spread board.
|
||||
|
@ -28,6 +28,7 @@ A cron job will automatically create the accounting moves for all the lines havi
|
||||
|
||||
By default, the status of the created accounting moves is posted.
|
||||
To disable the automatic posting of the accounting moves, set the flag *Auto-post lines* to False.
|
||||
This flag is only available when the *Auto-post spread lines* option, present on the form view of the company, is disabled.
|
||||
|
||||
Click on button *Recalculate entire spread* button in the spread board to force the recalculation of the spread lines:
|
||||
this will also reset all the journal entries previously created.
|
||||
|
@ -29,6 +29,7 @@
|
||||
<field name="template_id"/>
|
||||
<field name="invoice_type" attrs="{'readonly':[('invoice_line_id','!=',False)]}"/>
|
||||
<field name="display_recompute_buttons" invisible="1"/>
|
||||
<field name="display_move_line_auto_post" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="accounts">
|
||||
@ -79,7 +80,7 @@
|
||||
<field name="invoice_line_id" readonly="1" attrs="{'invisible':[('invoice_line_id','=',False)]}"/>
|
||||
<field name="estimated_amount" attrs="{'readonly':[('invoice_line_id','!=',False)],'invisible':[('estimated_amount','=',0.0),('invoice_line_id','!=',False)]}"/>
|
||||
<field name="total_amount" attrs="{'invisible':[('invoice_line_id','=',False)]}"/>
|
||||
<field name="move_line_auto_post" />
|
||||
<field name="move_line_auto_post" attrs="{'invisible':[('display_move_line_auto_post','=',False)]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="period_number"/>
|
||||
|
@ -18,9 +18,12 @@
|
||||
</group>
|
||||
</group>
|
||||
<group name="spreading_options">
|
||||
<group>
|
||||
<group name="spreading_options_left">
|
||||
<field name="allow_spread_planning"/>
|
||||
</group>
|
||||
<group name="spreading_options_right">
|
||||
<field name="force_move_auto_post"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
|
Loading…
Reference in New Issue
Block a user