diff --git a/gn_cash/README.md b/gn_cash/README.md index d5ca5e8..95335ac 100644 --- a/gn_cash/README.md +++ b/gn_cash/README.md @@ -26,6 +26,10 @@ It is based on modules: - [x] sequencing on statement gen - [x] add button on payment to access statement if is_matched - [x] add orphan statement lines in the next gen statement +- [x] add partner in deposit and move +- [x] use suspense account +- [] choose beetween bank and cash journal for a deposit +- [] add a button to put directly the cash order from bank to cash - [] add cash deposits / cash outs to statement - [] check all reconciled before closing loss/profit - [] What to do when statement line generated has no label diff --git a/gn_cash/__manifest__.py b/gn_cash/__manifest__.py index 5026bac..c649c9f 100644 --- a/gn_cash/__manifest__.py +++ b/gn_cash/__manifest__.py @@ -1,6 +1,6 @@ { 'name': "Gn Cash", - 'version': '16.0.0.0.6', + 'version': '16.0.0.0.7', 'author': 'Garage Numérique', 'category': 'Accounting', 'description': """ diff --git a/gn_cash/models/account_cash_deposit.py b/gn_cash/models/account_cash_deposit.py index d9c5542..ca79b46 100644 --- a/gn_cash/models/account_cash_deposit.py +++ b/gn_cash/models/account_cash_deposit.py @@ -7,6 +7,7 @@ class AccountCashDeposit(models.Model): partner_id = fields.Many2one( comodel_name='res.partner', + domain=[('is_company','=', False), '|', ('parent_id', '=', False), ('parent_id.is_company', '=', True)], string='Partner', compute='_compute_partner_id', store=True, readonly=False, precompute=True, ondelete='restrict', @@ -17,11 +18,36 @@ class AccountCashDeposit(models.Model): for deposit in self: deposit.ensure_one() if not deposit.partner_id: - deposit.write({'partner_id': self.env.user.id}) + deposit.write({'partner_id': self.env.user.partner_id.id}) + + + def _prepare_account_move(self, vals): + move_vals = super()._prepare_account_move(vals) + if move_vals['line_ids']: + ''' + change move if deposit partner is defined + ''' + if self.partner_id: + for line_tuple in move_vals["line_ids"]: + ''' + change transfer_account_id to partner_account_payable_id + ''' + if line_tuple[2]['account_id'] == self.company_id.transfer_account_id.id: + line_tuple[2]['account_id'] = self.partner_id.property_account_payable_id.id + line_tuple[2]['partner_id'] = self.partner_id.id + break + ''' + Use suspense account for reconciliation with statement + ''' + journal = self.env['account.journal'].browse(move_vals['journal_id']) + if not journal.suspense_account_id: + raise UserError(_("Suspense Account for Journal is not defined")) + for line_tuple in move_vals['line_ids']: + if line_tuple[2]['account_id'] == journal.default_account_id.id: + line_tuple[2]['account_id'] = journal.suspense_account_id.id + break + + return move_vals + - # def _prepare_account_move(self, vals): - # move_vals = self.super()._prepare_account_move(vals) - # if move_vals['line_ids'] and self.partner_id and self.partner_id.: - # for line_values in move_vals['lines_ids']: - # if