[TMP] state last payment on member form and tree viwes

This commit is contained in:
michel 2018-02-12 16:00:06 +01:00
parent c296a75bb4
commit e4ea0a3187
2 changed files with 36 additions and 12 deletions

View File

@ -39,17 +39,30 @@ class GolemMember(models.Model):
'context': {'search_default_partner_id': self.partner_id.id, 'context': {'search_default_partner_id': self.partner_id.id,
'default_partner_id': self.partner_id.id}} 'default_partner_id': self.partner_id.id}}
state_last_invoice = fields.Selection([('draft', 'Draft'),
state_last_invoice = fields.Integer(compute='_compute_state_of_last_invoice') ('posted', 'Posted'),
# account_payment_ids = fields.One2many('account.payment', 'partner_id') ('checked', 'Checked'),
('reconciled', 'Reconciled')],
compute='_compute_state_of_last_invoice')
@api.depends('invoice_ids') @api.depends('invoice_ids')
def _compute_state_of_last_invoice(self): def _compute_state_of_last_invoice(self):
""" Computes last invoice payment state : check last invoice, then more
recent payment and retrieve its state """
for member in self: for member in self:
state_invoice = member.invoice_ids.filtered(lambda inv: inv.state in ('open', 'paid')) if member.invoice_ids:
date_state_invoice = state_invoice.sorted(key=lambda r: r.date_invoice, reverse=True) invoice_ids = member.invoice_ids.filtered(lambda inv: inv.state in ('open', 'paid'))
invoice_ids = invoice_ids.sorted(key=lambda r: r.date_invoice, reverse=True)
# state_payment = payment.payment_ids.filtered(lambda inv: inv.state in ('open', 'paid')) payment_ids = invoice_ids[0].payment_ids if invoice_ids else False
# date_state_payment = state_payment.sorted(key=lambda r: r.date, reverse=True) if payment_ids:
payment_ids = payment_ids.sorted(lambda r: r.payment_date, reverse=True)
member.state_last_invoice = date_state_invoice[0] today = fields.Date.today()
for payment in payment_ids:
if payment.payment_date < today:
last_payment_id = None
last_payment_id = payment
break
if last_payment_id:
member.state_last_invoice = last_payment_id.state
return
member.state_last_invoice = False

View File

@ -35,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<span class="o_stat_value"> <span class="o_stat_value">
<field name="total_invoiced" widget='monetary' options="{'currency_field': 'currency_id'}"/></span> <field name="total_invoiced" widget='monetary' options="{'currency_field': 'currency_id'}"/></span>
<span class="o_stat_text">Invoiced</span> <span class="o_stat_text">Invoiced</span>
</div> </div>
</button> </button>
</div> </div>
@ -43,9 +42,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="season_ids" position="before"> <field name="season_ids" position="before">
<field name="state_last_invoice" /> <field name="state_last_invoice" />
</field> </field>
</field> </field>
</record> </record>
<!-- Trees -->
<record model="ir.ui.view" id="golem_member_account_tree_inherit_golem_member">
<field name="name">GOLEM Member account tree</field>
<field name="model">golem.member</field>
<field name="inherit_id" ref="golem_member.golem_member_tree" />
<field name="arch" type="xml">
<field name="contact_address" position="after">
<field name="state_last_invoice" />
</field>
</field>
</record>
</data> </data>
</odoo> </odoo>