=== modified file 'account_invoice_cash_discount/account_invoice_cash_discount.py'
--- account_invoice_cash_discount/account_invoice_cash_discount.py 2010-09-22 14:21:33 +0000
+++ account_invoice_cash_discount/account_invoice_cash_discount.py 2010-09-23 16:52:44 +0000
@@ -645,6 +645,42 @@
class account_bank_statement(osv.osv):
_inherit="account.bank.statement"
+ def _end_balance(self, cursor, user, ids, name, attr, context=None):
+ res_currency_obj = self.pool.get('res.currency')
+ res_users_obj = self.pool.get('res.users')
+
+ res = {}
+
+ company_currency_id = res_users_obj.browse(cursor, user, user,
+ context=context).company_id.currency_id.id
+ statements = self.browse(cursor, user, ids, context=context)
+ for statement in statements:
+ res[statement.id] = statement.balance_start
+ currency_id = statement.currency.id
+ for line in statement.move_line_ids:
+ if line.debit > 0:
+ if line.account_id.id == \
+ statement.journal_id.default_debit_account_id.id:
+ res[statement.id] += res_currency_obj.compute(cursor,
+ user, company_currency_id, currency_id,
+ line.debit, context=context)
+ else:
+ if line.account_id.id == \
+ statement.journal_id.default_credit_account_id.id:
+ res[statement.id] -= res_currency_obj.compute(cursor,
+ user, company_currency_id, currency_id,
+ line.credit, context=context)
+ if statement.state == 'draft':
+ for line in statement.line_ids:
+ res[statement.id] += line.amount - line.cash_discount
+ for r in res:
+ res[r] = round(res[r], 2)
+ return res
+
+ _columns = {
+ 'balance_end': fields.function(_end_balance, method=True, string='Balance'),
+ }
+
def button_confirm(self, cr, uid, ids, context={}):
done = []
tax_obj = self.pool.get('account.tax')
@@ -961,6 +997,8 @@
'tax_type': fields.selection([('tax_included','Tax included'),
('tax_excluded','Tax excluded')],
'Tax method', required=True,),
+ 'cash_discount': fields.float('Cash Discount'),
+ 'transferred_amount': fields.float('Transferred'),
}
def onchange_account_id(self, cr, uid, ids, account_id, context=None):
@@ -986,6 +1024,12 @@
result['tax_id'] = False
return {'value': result}
+ def onchange_cash_discount(self, cr, uid, ids, amount, cash_discount, context=None):
+ return {'value': {'transferred_amount': amount - cash_discount}}
+
+ def onchange_transferred_amount(self, cr, uid, ids, amount, transferred_amount, context=None):
+ return {'value': {'cash_discount': amount - transferred_amount}}
+
_defaults = {
'tax_type':lambda *a :'tax_included',
}
=== modified file 'account_invoice_cash_discount/account_invoice_cash_discount_view.xml'
--- account_invoice_cash_discount/account_invoice_cash_discount_view.xml 2010-08-11 12:51:31 +0000
+++ account_invoice_cash_discount/account_invoice_cash_discount_view.xml 2010-09-23 16:29:25 +0000
@@ -237,5 +237,31 @@
+
+ account.bank.statement.tree1
+ account.bank.statement
+
+ form
+
+
+
+
+
+
+
+
+
+ account.bank.statement.form1
+ account.bank.statement
+
+ form
+
+
+
+
+
+
+
+
=== modified file 'account_invoice_cash_discount/wizard/invoice_statement_payment.py'
--- account_invoice_cash_discount/wizard/invoice_statement_payment.py 2010-09-21 12:22:46 +0000
+++ account_invoice_cash_discount/wizard/invoice_statement_payment.py 2010-09-23 14:19:46 +0000
@@ -116,6 +116,8 @@
tax_obj = pool.get('account.tax')
invoice_tax_obj = pool.get("account.invoice.tax")
+ discount = 0.0
+
statement = statement_obj.browse(cursor, user, data['id'], context=context)
# for each selected move lines
for line in line_obj.browse(cursor, user, line_ids, context=context):
@@ -230,6 +232,8 @@
'ref': line.ref,
'reconcile_id': reconcile_id,
'date':line_date, #time.strftime('%Y-%m-%d'), #line.date_maturity or,
+ 'cash_discount': discount,
+ 'transferred_amount': cal_invoice_amount - discount,
}, context=context)
return {}