Reviewers: ,
Please review this at http://codereview.tryton.org/340004/
Affected files:
M purchase.py
M purchase.xml
Index: purchase.py
===================================================================
--- a/purchase.py
+++ b/purchase.py
@@ -146,16 +146,16 @@
('draft', 'cancel'),
('quotation', 'cancel'),
('quotation', 'draft'),
+ ('cancel', 'draft'),
))
self._buttons.update({
'cancel': {
- 'invisible': ((Eval('state') == 'cancel')
- | (~Eval('state').in_(['draft', 'quotation'])
- & (Eval('invoice_state') != 'exception')
- & (Eval('shipment_state') != 'exception'))),
+ 'invisible':
~Eval('state').in_(['draft', 'quotation']),
},
'draft': {
- 'invisible': Eval('state') != 'quotation',
+ 'invisible':
~Eval('state').in_(['cancel', 'quotation']),
+ 'icon': If(Eval('state') == 'cancel', 'tryton-clear',
+ 'tryton-go-previous'),
},
'quote': {
'invisible': Eval('state') != 'draft',
@@ -697,6 +697,9 @@
invoice_line_obj = pool.get('account.invoice.line')
purchase_line_obj = pool.get('purchase.line')
+ if purchase.invoice_method == 'manual':
+ return
+
if not purchase.party.account_payable:
self.raise_user_error('missing_account_payable',
error_args=(purchase.party.rec_name,))
@@ -738,7 +741,8 @@
line_obj.create_move(line)
def is_done(self, purchase):
- return (purchase.invoice_state == 'paid'
+ return ((purchase.invoice_state == 'paid'
+ or purchase.invoice_method == 'manual')
and purchase.shipment_state == 'received')
def delete(self, ids):
Index: purchase.xml
===================================================================
--- a/purchase.xml
+++ b/purchase.xml
@@ -101,8 +101,7 @@
<group col="6" colspan="2" id="buttons">
<button name="cancel" type="object"
string="Cancel"
icon="tryton-cancel"/>
- <button name="draft" type="object"
string="Draft"
- icon="tryton-go-previous"/>
+ <button name="draft" type="object"
string="Draft"/>
<button name="quote" type="object"
string="Quote"
icon="tryton-go-next"/>
<button
name="%(wizard_invoice_handle_exception)d"
--
[email protected] mailing list