Changeset 52c3467 for treasury/finance_core
- Timestamp:
- Jan 22, 2010, 4:56:19 AM (16 years ago)
- Branches:
- master, client
- Children:
- 31bd056
- Parents:
- e64b195
- git-author:
- Alex Dehnert <adehnert@…> (01/22/10 04:56:19)
- git-committer:
- Alex Dehnert <adehnert@…> (01/22/10 04:56:19)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
treasury/finance_core/models.py
r169d7b5 r52c3467 85 85 86 86 87 class Transaction(models.Model): 88 name = models.CharField(max_length=40) 89 desc = models.TextField(blank=True) 90 91 def __unicode__(self,): 92 return self.name 93 94 def make_transfer(name, amount, 95 layer, budget_term, from_area, to_area, desc, ): 96 tx = Transaction( 97 name=name, 98 desc=desc, 99 ) 100 tx.save() 101 102 from_li = LineItem( 103 label='Send: %s' % (name, ), 104 amount=-amount, 105 budget_area=from_area, 106 budget_term=budget_term, 107 layer=layer, 108 tx=tx, 109 ) 110 from_li.save() 111 112 to_li = LineItem( 113 label='Receive: %s' % (name, ), 114 amount=amount, 115 budget_area=to_area, 116 budget_term=budget_term, 117 layer=layer, 118 tx=tx, 119 ) 120 to_li.save() 121 122 return tx 123 124 125 class LineItem(models.Model): 126 tx = models.ForeignKey(Transaction) 127 amount = models.DecimalField(max_digits=7, decimal_places=2, help_text='Do not include "$"') 128 label = models.CharField(max_length=40) 129 budget_area = models.ForeignKey(BudgetArea) 130 budget_term = models.ForeignKey(BudgetTerm) 131 layer = models.IntegerField() # this might actually be a Transaction property... 132 133 def layer_string(self,): 134 layer = self.layer 135 return layer_name(get_layer_by_num(layer)) 136 137 def __unicode__(self, ): 138 return "%s: %s: $%s (%s) in %s during %s" % ( 139 self.tx, self.label, self.amount, self.layer, 140 self.budget_area, self.budget_term, ) 141 142 143 layers=( 144 (10, 'budget'), 145 (20, 'allocation'), 146 (30, 'expenditure'), 147 (40, 'closeout'), 148 ) 149 def get_layer_by_name(name): 150 for layer in layers: 151 if name == layer[1]: 152 return layer 153 raise KeyError, "layer %s not found" % (name, ) 154 def get_layer_by_num(num): 155 for layer in layers: 156 if num == layer[0]: 157 return layer 158 raise KeyError, "layer %d not found" % (num, ) 159 def layer_name(layer): return layer[1] 160 def layer_num(layer): return layer[0] 161 162 87 163 def coerce_full_email(email): 88 164 if '@' in email: return email
Note: See TracChangeset
for help on using the changeset viewer.