| Home | Trees | Indices | Help |
|
|---|
|
|
1 # -*- coding: utf8 -*-
2 """Billing code.
3
4 license: GPL v2 or later
5 """
6 #============================================================
7 __author__ = "K.Hilbert <Karsten.Hilbert@gmx.net>"
8
9 import sys
10 import logging
11 #import codecs
12
13
14 if __name__ == '__main__':
15 sys.path.insert(0, '../../')
16 from Gnumed.pycommon import gmPG2
17 from Gnumed.pycommon import gmBusinessDBObject
18 from Gnumed.pycommon import gmTools
19
20
21 _log = logging.getLogger('gm.bill')
22
23 #============================================================
24 #class cChargeItemGroup(gmBusinessDBObject.cBusinessDBObject):
25 # """An Charge Item Group
26 # """
27 # _cmd_fetch_payload = u"select *, xmin from bill.ci_category where pk=%s"
28 # _cmds_store_payload = [
29 # u"""update bill.ci_category set
30 # description=%(description)s
31 # where
32 # pk=%(pk)s and
33 # xmin=%(xmin)s""",
34 # ]
35 #
36 # _updatable_fields = [
37 # 'description',
38 # ]
39 #
40 #============================================================
41 _SQL_get_billable_fields = u"""SELECT * FROM ref.v_billables WHERE %s"""
42
44 """Items which can be billed to patients."""
45
46 _cmd_fetch_payload = _SQL_get_billable_fields % u"""pk_billable = %s"""
47 _cmds_store_payload = [
48 u"""UPDATE ref.billable SET
49 code = %(billable_code)s,
50 term = %(billable_description)s,
51 amount = %(raw_amount)s,
52 currency = %(currency)s,
53 vat_multiplier = %(vat_multiplier)s
54 WHERE
55 pk = %(pk_billabs)s
56 AND
57 xmin = %(xmin_billable)s"""
58 ]
59
60 _updatable_fields = [
61 'billable_description',
62 'raw_amount',
63 'vat_multiplier',
64 ]
65
66 #------------------------------------------------------------
68
69 if order_by is None:
70 order_by = u' ORDER BY catalog_long, catalog_version, billable_code'
71 else:
72 order_by = u' ORDER BY %s' % order_by
73
74 if active_only:
75 where = u'active IS true'
76 else:
77 where = u'true'
78
79 cmd = (_SQL_get_billable_fields % where) + order_by
80 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
81 return [ cBillable(row = {'data': r, 'idx': idx, 'pk_field': 'pk_billable'}) for r in rows ]
82
83 #============================================================
84 #def create_charge_item_group(description=None):
85 # """Creates a new charge_item_group
86 #
87 # description
88 # """
89 # queries = [
90 # {'cmd': u"insert into bill.ci_category (description) values (%s) returning pk",
91 # 'args': [description or u'' ]
92 # },
93 # ]
94 # rows, idx = gmPG2.run_rw_queries(queries = queries, return_data=True)
95 #
96 # new = cChargeItemGroup(aPK_obj = rows[0][0])
97 # return (True, new)
98 #
99 #
100 #def create_charge_item(description=None):
101 # """Creates a new charge_item
102 #
103 # description
104 # category - category
105 # """
106 # queries = [
107 # {'cmd': u"insert into ref.billable (description) values (%s) returning pk",
108 # 'args': [description or u'' ]
109 # },
110 # ]
111 # rows, idx = gmPG2.run_rw_queries(queries = queries, return_data=True)
112 #
113 # new = cBillable(aPK_obj = rows[0][0])
114 # return (True, new)
115
116 #============================================================
117 # main
118 #------------------------------------------------------------
119 if __name__ == "__main__":
120
121 if len(sys.argv) < 2:
122 sys.exit()
123
124 if sys.argv[1] != 'test':
125 sys.exit()
126
127 # from Gnumed.pycommon import gmLog2
128 # from Gnumed.pycommon import gmI18N
129 # from Gnumed.business import gmPerson
130
131 # gmI18N.activate_locale()
132 ## gmDateTime.init()
133
135 print "\test"
136 print "--------------"
137 me = cBillable(aPK_obj=1)
138 fields = me.get_fields()
139 for field in fields:
140 print field, ':', me[field]
141 print "updatable:", me.get_updatable_fields()
142 #me['vat']=4; me.store_payload()
143
144 test_me()
145
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Thu Feb 9 04:01:02 2012 | http://epydoc.sourceforge.net |