~openerp-community/openerp-china/trunk

« back to all changes in this revision

Viewing changes to l10n_cn/account_cn/report/report_move.py

  • Committer: wjfonhand at gmail
  • Date: 2010-11-07 20:33:40 UTC
  • Revision ID: svn-v4:a3a0cb34-e908-b5d8-2e62-3c3749468b4b:trunk:33
unit test OK, ready for review

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- encoding: utf-8 -*-
 
2
##############################################################################
 
3
#
 
4
#    OpenERP, Open Source Management Solution
 
5
#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
 
6
#    $Id$
 
7
#
 
8
#    This program is free software: you can redistribute it and/or modify
 
9
#    it under the terms of the GNU General Public License as published by
 
10
#    the Free Software Foundation, either version 3 of the License, or
 
11
#    (at your option) any later version.
 
12
#
 
13
#    This program is distributed in the hope that it will be useful,
 
14
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
#    GNU General Public License for more details.
 
17
#
 
18
#    You should have received a copy of the GNU General Public License
 
19
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
20
#
 
21
##############################################################################
 
22
 
 
23
import time
 
24
from report import report_sxw
 
25
from osv import osv
 
26
 
 
27
import rml_parse
 
28
 
 
29
class AccountMoveReportParser(rml_parse.rml_parse):
 
30
    """
 
31
    凭证报表解析器
 
32
    """
 
33
    def __init__(self, cr, uid, name, context):
 
34
        super(AccountMoveReportParser, self).__init__(cr, uid, name, context)
 
35
        self.localcontext.update({
 
36
            'time': time,
 
37
            'exchange_rate': self._get_exchange_rate,
 
38
            'unit_price':self._get_unit_price,
 
39
        })
 
40
    
 
41
    def _get_exchange_rate(self, line):
 
42
        """
 
43
        计算汇率 公式:借or贷/外币价值
 
44
        """
 
45
        exchange_rate = False 
 
46
        if line.amount_currency: 
 
47
             if line.debit > 0: 
 
48
                 exchange_rate = line.debit/line.amount_currency 
 
49
             if line.credit > 0: 
 
50
                 exchange_rate = line.credit/line.amount_currency 
 
51
        return exchange_rate 
 
52
 
 
53
    def _get_unit_price(self, line):
 
54
        """
 
55
        计算单价 公式:借or贷/数量
 
56
        """
 
57
        unit_price = False
 
58
        if line.quantity:
 
59
            if line.debit > 0:
 
60
                unit_price = line.debit/line.quantity
 
61
            if line.credit > 0:
 
62
                unit_price = line.credit/line.quantity
 
63
        return unit_price
 
64
 
 
65
# 注册凭证报表
 
66
report_sxw.report_sxw('report.account.move.odt', 'account.move', 'addons/l10n_cn/account_cn/report/report_move.odt', parser=AccountMoveReportParser)
 
67
 
 
68
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
69