[FIX] contract_sale_generation: it doesn't create sales (#141)

* Change the method called in the view
* Complete the create_invoice method
* Bump version + authoring
* Correct bad call of method
  Small Documentation
* Add super call in python test
* FIX bad field names causing bad quantities in sale.order.line
This commit is contained in:
Florent THOMAS
2018-04-01 19:21:52 +02:00
committed by Pedro M. Baeza
parent 71319733e8
commit 02ce7120bd
5 changed files with 18 additions and 5 deletions

View File

@@ -40,6 +40,7 @@ Contributors
------------ ------------
* Angel Moya <angel.moya@pesol.es> * Angel Moya <angel.moya@pesol.es>
* Florent THOMAS <florent.thomas@mind-and-go.com>
Maintainer Maintainer
---------- ----------

View File

@@ -6,7 +6,7 @@
{ {
'name': 'Contracts Management - Recurring Sales', 'name': 'Contracts Management - Recurring Sales',
'version': '10.0.2.0.0', 'version': '10.0.3.0.0',
'category': 'Contract Management', 'category': 'Contract Management',
'license': 'AGPL-3', 'license': 'AGPL-3',
'author': "PESOL, " 'author': "PESOL, "

View File

@@ -21,10 +21,11 @@ class AccountAnalyticAccount(models.Model):
sale_line = self.env['sale.order.line'].new({ sale_line = self.env['sale.order.line'].new({
'order_id': order_id, 'order_id': order_id,
'product_id': line.product_id.id, 'product_id': line.product_id.id,
'proudct_uom_qty': line.quantity, 'product_qty': line.quantity,
'proudct_uom_id': line.uom_id.id, 'product_uom_qty': line.quantity,
'product_uom': line.uom_id.id,
}) })
# Get other invoice line values from product onchange # Get other sale line values from product onchange
sale_line.product_id_change() sale_line.product_id_change()
sale_line_vals = sale_line._convert_to_write(sale_line._cache) sale_line_vals = sale_line._convert_to_write(sale_line._cache)
# Insert markers # Insert markers
@@ -66,6 +67,11 @@ class AccountAnalyticAccount(models.Model):
@api.multi @api.multi
def _create_invoice(self): def _create_invoice(self):
"""
Create invoices
@param self: single record of account.invoice
@return: MUST return an invoice recordset
"""
self.ensure_one() self.ensure_one()
if self.type == 'invoice': if self.type == 'invoice':
return super(AccountAnalyticAccount, self)._create_invoice() return super(AccountAnalyticAccount, self)._create_invoice()
@@ -74,6 +80,11 @@ class AccountAnalyticAccount(models.Model):
@api.multi @api.multi
def _create_sale(self): def _create_sale(self):
"""
Create Sale orders
@param self: single record of sale.order
@return: MUST return a sale.order recordset
"""
self.ensure_one() self.ensure_one()
if self.type == 'sale': if self.type == 'sale':
sale_vals = self._prepare_sale() sale_vals = self._prepare_sale()

View File

@@ -14,7 +14,7 @@
<attribute name="attrs">{'invisible': ['|',('recurring_invoices','!=',True),('type','!=','invoice')]}</attribute> <attribute name="attrs">{'invisible': ['|',('recurring_invoices','!=',True),('type','!=','invoice')]}</attribute>
</xpath> </xpath>
<xpath expr="//button[@name='recurring_create_invoice']" position="before"> <xpath expr="//button[@name='recurring_create_invoice']" position="before">
<button name="recurring_create_invoice" <button name="recurring_create_sale"
type="object" type="object"
attrs="{'invisible': ['|',('recurring_invoices','!=',True),('type','!=','sale')]}" attrs="{'invisible': ['|',('recurring_invoices','!=',True),('type','!=','sale')]}"
string="Create sales" string="Create sales"

View File

@@ -24,6 +24,7 @@ class TestSaleOrder(TransactionCase):
self.env['account.analytic.account']._revert_method( self.env['account.analytic.account']._revert_method(
'create', 'create',
) )
super(TestSaleOrder, self).tearDown()
def test_action_done(self): def test_action_done(self):
""" It should create a contract when the sale for a contract is set """ It should create a contract when the sale for a contract is set