From: Ludovic CHEVALIER Date: Fri, 5 Oct 2012 15:03:06 +0000 (+0200) Subject: [Identifiant] -numerotation depuis partenaire X-Git-Url: https://git.heureux-cyclage.org/?p=burette%2Fremembership.git;a=commitdiff_plain;h=949a540145c18b4e4b9ac9e709c5085c64b2e8f2;hp=b119144251ed7a52ca9c1eb9ee2fe04e5a984dbc [Identifiant] -numerotation depuis partenaire --- diff --git a/remembership.py b/remembership.py index 6dde317..fa16f56 100644 --- a/remembership.py +++ b/remembership.py @@ -21,8 +21,6 @@ # ############################################################################## -import time - from osv import osv from osv import fields @@ -33,64 +31,6 @@ class Partner(osv.osv): 'member_ident': fields.char('Member identifier', size=64, readonly=True), } - def create_membership_invoice(self, cr, uid, ids, product_id=None, datas=None, context=None): - """ Create Customer Invoice of Membership for partners. - @param datas: datas has dictionary value which consist Id of Membership product and Cost Amount of Membership. - datas = {'membership_product_id': None, 'amount': None} - """ - invoice_obj = self.pool.get('account.invoice') - invoice_line_obj = self.pool.get('account.invoice.line') - invoice_tax_obj = self.pool.get('account.invoice.tax') - product_id = product_id or datas.get('membership_product_id', False) - amount = datas.get('amount', 0.0) - invoice_list = [] - if type(ids) in (int, long,): - ids = [ids] - for partner in self.browse(cr, uid, ids, context=context): - account_id = partner.property_account_receivable and partner.property_account_receivable.id or False - fpos_id = partner.property_account_position and partner.property_account_position.id or False - addr = self.address_get(cr, uid, [partner.id], ['invoice']) - if partner.free_member: - raise osv.except_osv(_('Error !'), - _("Partner is a free Member.")) - if not addr.get('invoice', False): - raise osv.except_osv(_('Error !'), - _("Partner doesn't have an address to make the invoice.")) - quantity = 1 - line_value = { - 'product_id': product_id, - } - - line_dict = invoice_line_obj.product_id_change(cr, uid, {}, - product_id, False, quantity, '', 'out_invoice', partner.id, fpos_id, price_unit=amount, context=context) - line_value.update(line_dict['value']) - line_value['price_unit'] = amount - if line_value.get('invoice_line_tax_id', False): - tax_tab = [(6, 0, line_value['invoice_line_tax_id'])] - line_value['invoice_line_tax_id'] = tax_tab - - invoice_id = invoice_obj.create(cr, uid, { - 'partner_id': partner.id, - 'address_invoice_id': addr.get('invoice', False), - 'account_id': account_id, - 'fiscal_position': fpos_id or False - }, context=context) - line_value['invoice_id'] = invoice_id - invoice_line_id = invoice_line_obj.create(cr, uid, line_value, context=context) - invoice_obj.write(cr, uid, invoice_id, {'invoice_line': [(6, 0, [invoice_line_id])]}, context=context) - invoice_list.append(invoice_id) - if line_value['invoice_line_tax_id']: - tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values() - for tax in tax_value: - invoice_tax_obj.create(cr, uid, tax, context=context) - if partner.member_ident: - mbr_id = partner.member_ident - else: - mbr_id = self.pool.get('ir.sequence').get(cr, uid, 'member_ident') - #recompute the membership_state of those partners - self.pool.get('res.partner').write(cr, uid, ids, {'member_ident': mbr_id}) - return invoice_list - Partner()