From 8a1f8dcc4848c35644e9bc388eaeedb3bc8f0164 Mon Sep 17 00:00:00 2001 From: Fabien Bourgeois Date: Wed, 14 Jun 2017 23:50:35 +0200 Subject: [PATCH] [ADD][WIP]Registration state : wizrd to create invoice and payments, according to selected schedule --- golem_activity_registration_state/__init__.py | 4 +- .../__manifest__.py | 5 +- .../models/golem_activity_registration.py | 26 +++++++-- .../views/golem_member_views.xml | 30 +++++------ .../wizard/__init__.py | 18 +++++++ .../golem_activity_registration_invoicing.py | 53 +++++++++++++++++++ .../golem_activity_registration_invoicing.xml | 51 ++++++++++++++++++ 7 files changed, 162 insertions(+), 25 deletions(-) create mode 100644 golem_activity_registration_state/wizard/__init__.py create mode 100644 golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py create mode 100644 golem_activity_registration_state/wizard/golem_activity_registration_invoicing.xml diff --git a/golem_activity_registration_state/__init__.py b/golem_activity_registration_state/__init__.py index 2fca3d29..30c07204 100644 --- a/golem_activity_registration_state/__init__.py +++ b/golem_activity_registration_state/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2016 Fabien Bourgeois +# Copyright 2017 Fabien Bourgeois # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -15,4 +15,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from . import models +from . import models, wizard diff --git a/golem_activity_registration_state/__manifest__.py b/golem_activity_registration_state/__manifest__.py index 8d9802f8..e8f02db2 100644 --- a/golem_activity_registration_state/__manifest__.py +++ b/golem_activity_registration_state/__manifest__.py @@ -24,7 +24,8 @@ 'license': 'AGPL-3', 'application': False, 'installable': True, - 'depends': ['golem_activity_registration'], + 'depends': ['golem_activity_registration', 'golem_payment'], 'data': ['views/golem_activity_registration_views.xml', - 'views/golem_member_views.xml', 'views/golem_activity_views.xml'] + 'views/golem_member_views.xml', 'views/golem_activity_views.xml', + 'wizard/golem_activity_registration_invoicing.xml'] } diff --git a/golem_activity_registration_state/models/golem_activity_registration.py b/golem_activity_registration_state/models/golem_activity_registration.py index 3b6fac34..c0b0205b 100644 --- a/golem_activity_registration_state/models/golem_activity_registration.py +++ b/golem_activity_registration_state/models/golem_activity_registration.py @@ -17,7 +17,7 @@ """ GOLEM Activity Registration State """ -from odoo import models, fields, api +from odoo import models, fields, api, _ class GolemMember(models.Model): """ GOLEM Member adaptations """ @@ -40,10 +40,26 @@ class GolemMember(models.Model): @api.multi def do_validate_registrations(self): """ Validate all draft registrations """ - for member in self: - draft_registrations = member.activity_registration_ids.filtered( - lambda r: r.state == 'draft') - draft_registrations.write({'state': 'confirmed'}) + self.ensure_one() + member = self[0] + draft_registrations = member.activity_registration_ids.filtered( + lambda r: r.state == 'draft') + if draft_registrations: + invoicing = self.env['golem.activity.registration.invoicing'].create({ + 'member_id' : member.id, + 'season_id': draft_registrations[0].activity_id.season_id.id + }) + line_obj = self.env['golem.activity.registration.invoicing.line'] + for reg in draft_registrations: + line_obj.create({'invoicing_id': invoicing.id, + 'activity_id': reg.activity_id.id, + 'price': reg.activity_id.list_price}) + return {'name': _('Registration invoicing'), + 'type': 'ir.actions.act_window', + 'res_model': 'golem.activity.registration.invoicing', + 'view_mode': 'form', + 'res_id': invoicing.id, + 'target': 'new'} @api.multi def write(self, values): diff --git a/golem_activity_registration_state/views/golem_member_views.xml b/golem_activity_registration_state/views/golem_member_views.xml index b750c751..3be0eaae 100644 --- a/golem_activity_registration_state/views/golem_member_views.xml +++ b/golem_activity_registration_state/views/golem_member_views.xml @@ -25,19 +25,20 @@ along with this program. If not, see . -

-

- Note that you can't register activities if the member is new and not yet saved into the database. -

-

- -