Skip to content
Extraits de code Groupes Projets

12.0 refactor cotiz

Affichage du commit d76a66f0
Suivant
Afficher la dernière version
1 file
+ 72
0
Comparer les modifications
  • Côte à côte
  • En ligne
+ 72
0
@@ -308,6 +308,78 @@ class ScopCotisationAura(models.Model):
# ------------------------------------------------------
# Global functions
# ------------------------------------------------------
def create_contribution(
self, product, partner, type_contribution, liasse=None,
amount=0, date=False, journal_id=False, account_id=False,
type_invoice='out_invoice'):
"""
Create invoice from Contribution Base
:param product: product_id
:param partner: partner_id
:param type_contribution: type_contribution (CG, UR, Fédé)
:param liasse: liasse_fiscale_id (reference)
:param amount: contribution amount (float)
:param date: date invoice
:param journal_id: journal
:param account_id: customer_account_id
:param type_invoice: invoice or refund
:return: invoice
"""
Invoice = self.env['account.invoice']
InvoiceLine = self.env['account.invoice.line']
domain = [
('partner_id', '=', partner.id),
('year', '=', self.year),
('type_contribution_id', '=', type_contribution),
]
exisiting_invoice = Invoice.search(domain)
if not exisiting_invoice:
date_invoice = date if date else self.date_cotisation
journal_id = self.company_id.contribution_journal_id \
if not journal_id else journal_id
account_id = partner.property_account_receivable_id \
if not account_id else account_id
member_invoice = Invoice.create({
'partner_id': partner.id,
'liasse_fiscale_id': liasse.id,
'type': type_invoice,
'year': self.year,
'is_contribution': True,
'type_contribution_id': type_contribution,
'journal_id': journal_id.id,
'state': 'draft',
'account_id': account_id.id,
'payment_term_id': self.payment_term_id.id,
'payment_mode_id': partner.customer_payment_mode_id.id,
'date_invoice': date_invoice,
})
else:
member_invoice = exisiting_invoice
# Création de la ligne CG Scop
exisiting_invoice_line_ids = InvoiceLine.search([
('invoice_id', '=', member_invoice.id),
('product_id', '=', product.id)
])
if not exisiting_invoice_line_ids:
InvoiceLine.create({
'invoice_id': member_invoice.id,
'product_id': product.id,
'account_id': product.property_account_income_id.id,
'invoice_line_tax_ids': [(6, 0, product.taxes_id.ids)],
'name': product.name,
'price_unit': amount
})
else:
exisiting_invoice_line_ids[0].write({
'price_unit': amount
})
return member_invoice
@api.multi
def get_members(self):
self.ensure_one()
Chargement en cours