django-ledger 0.6.1__py3-none-any.whl → 0.6.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of django-ledger might be problematic. Click here for more details.

Files changed (29) hide show
  1. django_ledger/__init__.py +1 -1
  2. django_ledger/admin/ledger.py +1 -0
  3. django_ledger/forms/data_import.py +2 -1
  4. django_ledger/io/io_core.py +2 -2
  5. django_ledger/io/ofx.py +3 -2
  6. django_ledger/models/bill.py +28 -14
  7. django_ledger/models/closing_entry.py +8 -0
  8. django_ledger/models/estimate.py +93 -21
  9. django_ledger/models/invoice.py +44 -14
  10. django_ledger/models/journal_entry.py +112 -49
  11. django_ledger/models/ledger.py +32 -0
  12. django_ledger/models/purchase_order.py +34 -3
  13. django_ledger/models/signals.py +58 -0
  14. django_ledger/report/core.py +1 -1
  15. django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +2 -2
  16. django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +0 -1
  17. django_ledger/templatetags/django_ledger.py +1 -1
  18. django_ledger/tests/test_io_ofx/__init__.py +0 -0
  19. django_ledger/tests/test_io_ofx/tests.py +52 -0
  20. django_ledger/views/account.py +1 -1
  21. django_ledger/views/bill.py +1 -1
  22. django_ledger/views/entity.py +2 -2
  23. django_ledger/views/mixins.py +40 -19
  24. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/METADATA +1 -1
  25. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/RECORD +29 -26
  26. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/AUTHORS.md +0 -0
  27. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/LICENSE +0 -0
  28. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/WHEEL +0 -0
  29. {django_ledger-0.6.1.dist-info → django_ledger-0.6.3.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,18 @@ from django_ledger.models.entity import EntityModelFiscalPeriodMixIn
24
24
  from django_ledger.settings import DJANGO_LEDGER_PDF_SUPPORT_ENABLED, DJANGO_LEDGER_AUTHORIZED_SUPERUSER
25
25
 
26
26
 
27
- class YearlyReportMixIn(YearMixin, EntityModelFiscalPeriodMixIn):
27
+ class ContextFromToDateMixin:
28
+ FROM_DATE_CONTEXT_NAME = 'from_date'
29
+ TO_DATE_CONTEXT_NAME = 'to_date'
30
+
31
+ def get_from_date_context_name(self) -> str:
32
+ return self.FROM_DATE_CONTEXT_NAME
33
+
34
+ def get_to_date_context_name(self) -> str:
35
+ return self.TO_DATE_CONTEXT_NAME
36
+
37
+
38
+ class YearlyReportMixIn(YearMixin, ContextFromToDateMixin, EntityModelFiscalPeriodMixIn):
28
39
 
29
40
  def get_from_date(self, year: int = None, fy_start: int = None, **kwargs) -> date:
30
41
  return self.get_year_start_date(year, fy_start)
@@ -58,16 +69,16 @@ class YearlyReportMixIn(YearMixin, EntityModelFiscalPeriodMixIn):
58
69
  context['year_start'] = year_start
59
70
  context['year_end'] = year_end
60
71
 
61
- if 'from_date' not in context:
62
- context['from_date'] = year_start
63
- if 'to_date' not in context:
64
- context['to_date'] = year_end
72
+ if self.get_from_date_context_name() not in context:
73
+ context[self.get_from_date_context_name()] = year_start
74
+ if self.get_to_date_context_name() not in context:
75
+ context[self.get_to_date_context_name()] = year_end
65
76
 
66
77
  context['has_year'] = True
67
78
  return context
68
79
 
69
80
 
70
- class QuarterlyReportMixIn(YearMixin, EntityModelFiscalPeriodMixIn):
81
+ class QuarterlyReportMixIn(YearMixin, ContextFromToDateMixin, EntityModelFiscalPeriodMixIn):
71
82
  quarter = None
72
83
  quarter_url_kwarg = 'quarter'
73
84
 
@@ -137,10 +148,10 @@ class QuarterlyReportMixIn(YearMixin, EntityModelFiscalPeriodMixIn):
137
148
  context['quarter_start'] = quarter_start
138
149
  context['quarter_end'] = quarter_end
139
150
 
140
- if 'from_date' not in context:
141
- context['from_date'] = quarter_start
142
- if 'to_date' not in context:
143
- context['to_date'] = quarter_end
151
+ if self.get_from_date_context_name() not in context:
152
+ context[self.get_from_date_context_name()] = quarter_start
153
+ if self.get_to_date_context_name() not in context:
154
+ context[self.get_to_date_context_name()] = quarter_end
144
155
 
145
156
  context['has_quarter'] = True
146
157
  return context
@@ -154,7 +165,7 @@ class QuarterlyReportMixIn(YearMixin, EntityModelFiscalPeriodMixIn):
154
165
  return quarter - 1
155
166
 
156
167
 
157
- class MonthlyReportMixIn(YearlyReportMixIn, MonthMixin):
168
+ class MonthlyReportMixIn(YearlyReportMixIn, ContextFromToDateMixin, MonthMixin):
158
169
 
159
170
  def get_from_date(self, month: int = None, year: int = None, **kwargs) -> date:
160
171
  return self.get_month_start_date(month=month, year=year)
@@ -206,13 +217,17 @@ class MonthlyReportMixIn(YearlyReportMixIn, MonthMixin):
206
217
  month_end = self.get_month_end_date(year=year, month=month)
207
218
  context['month_start'] = month_start
208
219
  context['month_end'] = month_end
209
- context['from_date'] = month_start
210
- context['to_date'] = month_end
220
+
221
+ if self.get_from_date_context_name() not in context:
222
+ context[self.get_from_date_context_name()] = month_start
223
+ if self.get_to_date_context_name() not in context:
224
+ context[self.get_to_date_context_name()] = month_end
225
+
211
226
  context['has_month'] = True
212
227
  return context
213
228
 
214
229
 
215
- class DateReportMixIn(MonthlyReportMixIn, DayMixin):
230
+ class DateReportMixIn(MonthlyReportMixIn, ContextFromToDateMixin, DayMixin):
216
231
 
217
232
  def get_context_data(self, **kwargs):
218
233
  context = super(MonthlyReportMixIn, self).get_context_data(**kwargs)
@@ -221,8 +236,12 @@ class DateReportMixIn(MonthlyReportMixIn, DayMixin):
221
236
  context['next_day'] = view_date + timedelta(days=1)
222
237
  context['previous_day'] = view_date - timedelta(days=1)
223
238
  context['view_date'] = view_date
224
- context['from_date'] = view_date
225
- context['to_date'] = view_date
239
+
240
+ if self.get_from_date_context_name() not in context:
241
+ context[self.get_from_date_context_name()] = view_date
242
+ if self.get_to_date_context_name() not in context:
243
+ context[self.get_to_date_context_name()] = view_date
244
+
226
245
  return context
227
246
 
228
247
  def get_date(self) -> date:
@@ -243,7 +262,8 @@ class DateReportMixIn(MonthlyReportMixIn, DayMixin):
243
262
  return dt, dt
244
263
 
245
264
 
246
- class FromToDatesMixIn:
265
+ # todo: need to incorporate in base view...
266
+ class FromToDatesParseMixIn:
247
267
  DJL_FROM_DATE_PARAM: str = 'from_date'
248
268
  DJL_TO_DATE_PARAM: str = 'to_date'
249
269
  DJL_NO_FROM_DATE_RAISE_404: bool = True
@@ -369,6 +389,7 @@ class EntityUnitMixIn:
369
389
 
370
390
 
371
391
  class DigestContextMixIn:
392
+
372
393
  IO_DIGEST_UNBOUNDED = False
373
394
  IO_DIGEST_BOUNDED = False
374
395
 
@@ -435,8 +456,8 @@ class DigestContextMixIn:
435
456
  from_date=from_date,
436
457
  unit_slug=unit_slug,
437
458
  by_period=True if by_period else False,
438
- process_ratios=False,
439
- process_roles=False,
459
+ process_ratios=True,
460
+ process_roles=True,
440
461
  process_groups=True)
441
462
 
442
463
  context[self.get_io_manager_bounded_context_name()] = io_digest_equity
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-ledger
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Double entry accounting system built on the Django Web Framework.
5
5
  Author-email: Miguel Sanda <msanda@arrobalytics.com>
6
6
  Maintainer-email: Miguel Sanda <msanda@arrobalytics.com>
@@ -48,7 +48,7 @@ assets/node_modules/node-gyp/gyp/tools/pretty_gyp.py,sha256=2ZCRPW-MZfK7gdnCIaqh
48
48
  assets/node_modules/node-gyp/gyp/tools/pretty_sln.py,sha256=b_Fxm-SXUCPL3Tix4EyNwZNmQ-zkeRIFFmuL0R5wFhw,5482
49
49
  assets/node_modules/node-gyp/gyp/tools/pretty_vcproj.py,sha256=AwQrxK1F-jhjsbbT35XQjrvWNbc3IBFaKXoJogqMh_o,10633
50
50
  assets/node_modules/node-gyp/test/fixtures/test-charmap.py,sha256=5raXzaQnO2eJnrlFtlDtWftryhZX7Fj0amFW3hdSnhE,547
51
- django_ledger/__init__.py,sha256=zjhbT65sw3hTpJoAXAnUS_CQxh530bsWRh9Lcro2CeQ,456
51
+ django_ledger/__init__.py,sha256=YIkeEEOhmF8tF2yAy5LrIeaNAzkX8i-oaFluYzjuH9I,456
52
52
  django_ledger/apps.py,sha256=H-zEWUjKGakgSDSZmLIoXChZ2h6e0dth0ZO5SpoT-8U,163
53
53
  django_ledger/exceptions.py,sha256=rML8sQQ0Hq-DYMLZ76dfw2RYSAsXWUoyHuyC_yP9o1o,491
54
54
  django_ledger/settings.py,sha256=bZyPKgjmRcO_Rj7hDi4gGlW0VFr_LP2yKeUVIkmWgQM,6321
@@ -56,7 +56,7 @@ django_ledger/utils.py,sha256=l8xq-uSvUdJNpyDjC_0UrsSfjeEpwf7B-tavbnt40a8,4305
56
56
  django_ledger/admin/__init__.py,sha256=MipzxmBhXswpx63uf3Ai2amyBMAP5fZL7mKXKxjNRIY,458
57
57
  django_ledger/admin/coa.py,sha256=BcBsvNs4Z1hOyZy4YqCtIfk1aw8DejrI1bAEH93Tkjc,3542
58
58
  django_ledger/admin/entity.py,sha256=DhH-6o3kjUdkhVPHzwOSF3crtvf5MCzcc1vPCk9O2Bk,6287
59
- django_ledger/admin/ledger.py,sha256=z33FYDT50ahrK4AGs-bZhnrvdIt-imG0QJpZ_KRGUWw,7914
59
+ django_ledger/admin/ledger.py,sha256=WKJCKDT54B_OWtAGlPKKAOBRZAqJ-SPNYiuvV-Wa9y8,7936
60
60
  django_ledger/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  django_ledger/contrib/django_ledger_graphene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  django_ledger/contrib/django_ledger_graphene/api.py,sha256=exrsmMcX21-Vhpe2_9X0eRLcdlnoE2ut0KUxBLu-TM8,871
@@ -101,7 +101,7 @@ django_ledger/forms/bill.py,sha256=aTAlMWtVA3eI-w0e9Vuxk2GSVey7pmAropPzrQ4OzcI,1
101
101
  django_ledger/forms/closing_entry.py,sha256=AwEEhphjQ-D4pQ6lRk2zGSmMSMkoamIVICnUY8rgqKU,1494
102
102
  django_ledger/forms/coa.py,sha256=-w0GbVde1ve0lEgWCc7kAIfDDVP_nBYgrxykfC301Gw,1312
103
103
  django_ledger/forms/customer.py,sha256=4Ce0J2d3hH5vfT1kdJbspUveIPEsRX_JktzIIu4rNks,2502
104
- django_ledger/forms/data_import.py,sha256=6fAS-_kDm3wMgTyQx0SlrU8Cw_hLTsFrdJ76_thlUxY,5635
104
+ django_ledger/forms/data_import.py,sha256=VF4oJNcWNVW3r0VEGT6MFAC5jN5Aqff5qU35NdO9Wj0,5674
105
105
  django_ledger/forms/entity.py,sha256=b0QirmsFSnaM8YWDO4V6GQXfFgR_MLmdq27I2q2sGQ0,6880
106
106
  django_ledger/forms/estimate.py,sha256=AotWILz-XYiDHEIpey-KQTFfqcLr_CubtzCoaDm3SL4,5171
107
107
  django_ledger/forms/feedback.py,sha256=WUT-kI4uT6q5aqEYaDYwyIFfhXpmtwMv6qf9BFSYsDo,1850
@@ -116,11 +116,11 @@ django_ledger/forms/utils.py,sha256=sgkwBZs15_rZ5NT7h-8Z7wi3-ItM1E1sqoVDo3NQ5Jc,
116
116
  django_ledger/forms/vendor.py,sha256=Nuh8MmSpz4ycMZwiVe--U9Ec6ezIsfACHDkhA2SyiZ4,2215
117
117
  django_ledger/io/__init__.py,sha256=8m5AoBRiG2ymrX0Y4LVjq0275i7I5Sk7YRa1BTzVofI,369
118
118
  django_ledger/io/io_context.py,sha256=xgykRoB6hVSN2q20f62j_4zbOeAHU5ZgbZaSwRaSkOU,4444
119
- django_ledger/io/io_core.py,sha256=ktyTd_r6fZBSvGsXR-6J-vzwsdzAAyu3lnMWsVaFInk,46924
119
+ django_ledger/io/io_core.py,sha256=b_-je0NNPkMOglkJwObxfKA6eWa0YvEod9LODm5RRIg,46922
120
120
  django_ledger/io/io_generator.py,sha256=JF4plsABUkCIrtI2X-YD7o5eNghRIgLUseNcBIGOj3U,34613
121
121
  django_ledger/io/io_library.py,sha256=vvQm3IQRLFdH7HS_DYX46Xe-U9IvgZ6MQnHjy0-fyjk,22480
122
122
  django_ledger/io/io_middleware.py,sha256=c-vwpcjg2HbYbb4O36fdf6011dFOnoNsDHOAQXmJgB8,20052
123
- django_ledger/io/ofx.py,sha256=JnmDjhIpLySoixK1WVe6DivRuu02rYsBjqI8yi5Opzs,1488
123
+ django_ledger/io/ofx.py,sha256=tsggMXfAz9rslCTUcxlandPapcHXbGqLO9Diel5z_jE,1677
124
124
  django_ledger/io/ratios.py,sha256=dsuCv9-r73SMLv3OrxeoT5JebfRmrDsRKG_YzHggWFw,3542
125
125
  django_ledger/io/roles.py,sha256=J9Z8WtunOQShKORCY97HpFtlAHG4N4hPfBkpUtRQDIY,20223
126
126
  django_ledger/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -146,20 +146,21 @@ django_ledger/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
146
146
  django_ledger/models/__init__.py,sha256=8mn-OGhAVgLs8YASEBwo8dpX6tHyGtMxRHVPGDGECVU,793
147
147
  django_ledger/models/accounts.py,sha256=0OWMrv89fUdec7RF1EiWE6xZdJMOdEpgYPWechAJYrM,28881
148
148
  django_ledger/models/bank_account.py,sha256=0-eTBxxRyvUKOVVNcGqWV1kiOKcXA2KPQIdiVHDUDCY,7678
149
- django_ledger/models/bill.py,sha256=ZC6PmPYeSFMUBSUqTqebQOZrWEpo59PH6Y4evTO5uy8,63717
150
- django_ledger/models/closing_entry.py,sha256=557vVKhrRZOdzqmmvtVlU48VbzJk8tTV018b0dTfpek,17746
149
+ django_ledger/models/bill.py,sha256=0JaSDu6pA07VVMRjPRiZnMldn50QkPFDbj5MbzDNuXk,64569
150
+ django_ledger/models/closing_entry.py,sha256=s5DvvWnv5SogWtlUdtpdDgKce80FBSjJ6YWQnQxqwV0,17959
151
151
  django_ledger/models/coa.py,sha256=o-VM2XK64djM3px6pJlGrUVTXu5qNb4ENESS70I___0,27154
152
152
  django_ledger/models/coa_default.py,sha256=4Zj8OMhgBiYuREjM82cFfyGWd8uCAeqggVkeNhg4SLU,27338
153
153
  django_ledger/models/customer.py,sha256=JQOktcYKUlENJv4frek9rAW6sRerrQ0xXHlC5KPmhWk,11807
154
154
  django_ledger/models/data_import.py,sha256=2H-4oTVLa7qXq03m9fd7T5zSQLkZKOAn2OAeOQBzMPA,19477
155
155
  django_ledger/models/entity.py,sha256=VFknz-7FQZu_gVDb5RWqPoCb3eXVzIMgmr4hatUlzBI,121876
156
- django_ledger/models/estimate.py,sha256=-qB5t2cEdyYpFUq7tOUQnFqvE6EDUiVdTtzjEbESwEQ,55829
157
- django_ledger/models/invoice.py,sha256=h5Jh5KOfYr31Eu9gFW1mdoGoVzx7nW8qBdx7vyiXnZU,61568
156
+ django_ledger/models/estimate.py,sha256=i88GtPqJ4k_Nzgyj7uzbI3tWgALkCuHLaV_Cjg-_mE0,58304
157
+ django_ledger/models/invoice.py,sha256=bdyeyngKuaJ0nA9N0L25-m7QbB7AEK43v1TKJkFWsOY,62896
158
158
  django_ledger/models/items.py,sha256=Wh_zPBnYCdI393nHafT6xd4aSutKBQPwKSjDtXTTPNQ,55042
159
- django_ledger/models/journal_entry.py,sha256=VfXXvm3tUFuy2Z6j3PLlDk9ndHqsZgn_PuhrxTNqaiY,50918
160
- django_ledger/models/ledger.py,sha256=kPxyKo5u0-2viifCY87Ms3xglmgrfiDAg0oJgsOrDwc,23603
159
+ django_ledger/models/journal_entry.py,sha256=2MwSAYjlSn8YVNM0riVBQWALD2lukGyf_gEHAIrn5UU,52788
160
+ django_ledger/models/ledger.py,sha256=CjUVi_KufNsSYKo_ZC5T3j8rioRQXhEl16zf_ipzcLg,24997
161
161
  django_ledger/models/mixins.py,sha256=s8ZjEjYQfmU88cLyFNKoiFi79_g1rTe1knEccV2WUXw,52122
162
- django_ledger/models/purchase_order.py,sha256=CDibi90e7Yhpv_UiyP32mMcsQ0EUElXJ2r8pLzuS7yE,42729
162
+ django_ledger/models/purchase_order.py,sha256=Se62XFyrbDbQzFH_almroIaSZ3y27QcsI2xkYXvPIGc,44184
163
+ django_ledger/models/signals.py,sha256=YfGwq-DUC0dtJEru2Q7MJH5zvPkhmPEb3vQoRJiYc34,1639
163
164
  django_ledger/models/transactions.py,sha256=kOL7s-hiRc6iqS7J62bVJY6ikja9Q8WdkRq0FT0zO2U,22722
164
165
  django_ledger/models/unit.py,sha256=x5FFJXgOi1OdajQejIakW6wGY4DjrJhL3S0Pm5OimMk,8074
165
166
  django_ledger/models/utils.py,sha256=3gkdCrfJp9qwN3Sf8R96AliilzwcKBm31UEao4WJO9o,8436
@@ -172,7 +173,7 @@ django_ledger/models/schemas/pnl.py,sha256=_M5qZtgXca4LQLsjS0weUAzLX98M4-5HCCGM0
172
173
  django_ledger/report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
174
  django_ledger/report/balance_sheet.py,sha256=iw8VOcJfJJHcKwFmdR9p2uYj5iKyX6avUjVSBrT0nZc,8436
174
175
  django_ledger/report/cash_flow_statement.py,sha256=GosnBzMZWlqNGitOlxvDiHxkT4JrNm0FH3uXfjmXPG8,8717
175
- django_ledger/report/core.py,sha256=tpVdAOXTx4DGEcTeG-SWRO9af7ZTXdmW0-vhwJDY8hQ,7435
176
+ django_ledger/report/core.py,sha256=MSWOHvYrAfAJJtm1_vXv7vZxgAja6ycKxknoaIvJT_g,7436
176
177
  django_ledger/report/income_statement.py,sha256=m4pG0Yjpl7SELx3-yYKT4dCluKt6nT2bkD9gay9tNKI,11156
177
178
  django_ledger/static/django_ledger/bundle/djetler.bundle.js,sha256=1UzHryjoKN43wUa5b6N2ia2yoE-TCrtfNMnuPIf9Im8,547613
178
179
  django_ledger/static/django_ledger/bundle/styles.bundle.js,sha256=myDLVMYHwKTxypheUretM6MZ4HhK8Yn0BqB_OGUW3KU,506543
@@ -272,10 +273,10 @@ django_ledger/templates/django_ledger/expense/expense_create.html,sha256=ozRliR0
272
273
  django_ledger/templates/django_ledger/expense/expense_list.html,sha256=d7IwuA2qrDPYKmg8a0b4T2CIzIfHB6ximk8Ak4VR4xY,867
273
274
  django_ledger/templates/django_ledger/expense/expense_update.html,sha256=7YTGqytGb1KFAiP7x3jZ-ljkXziqir6KnMiFrl_s8Kk,1439
274
275
  django_ledger/templates/django_ledger/expense/tags/expense_item_table.html,sha256=uKUB-1eIvA5KWKZ7kwu0hGf-64ly_onjWgKokQ0S9dI,1962
275
- django_ledger/templates/django_ledger/financial_statements/balance_sheet.html,sha256=rFzmK2-AjV_11fp7b6ou-KtMSwm7jN3vfpd4Ki_9-s0,2793
276
+ django_ledger/templates/django_ledger/financial_statements/balance_sheet.html,sha256=_trd5e282eMsC5VfzP9tL7zPJ_kTGMxlrh77RWwLlY4,2793
276
277
  django_ledger/templates/django_ledger/financial_statements/cash_flow.html,sha256=zeu7OcXl2T_vDoFyJvb0htFIjQz0IfyJBiOcck2skus,3031
277
278
  django_ledger/templates/django_ledger/financial_statements/income_statement.html,sha256=pfrv12Bu_PmU-MrL7JXYX7Wv4PZ06fKvOdydzzgeEnw,2731
278
- django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html,sha256=76H_MfmbT2If1ycH4k6Zzn_OxpbgmdCOVUqs6unBNys,6431
279
+ django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html,sha256=u2o3krlo_I7w-erXI9DO4gNChbYn0KpdeLRZs7UckOQ,6430
279
280
  django_ledger/templates/django_ledger/financial_statements/tags/cash_flow_statement.html,sha256=elJsMVmVJHZbZVhuo-bSykrrLoSZrN0JpUYm0LukY80,8961
280
281
  django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html,sha256=kLmnxHN5G9H7xYKFANLbfM0jAtNsmfhIrdltW-bhoPY,10442
281
282
  django_ledger/templates/django_ledger/includes/breadcrumbs.html,sha256=mSzAPpn7uCx33oXuNhbM-MQdam3QFOxl9TRH93hrS4w,183
@@ -353,7 +354,7 @@ django_ledger/templates/django_ledger/vendor/vendor_update.html,sha256=4kBUlGgrg
353
354
  django_ledger/templates/django_ledger/vendor/includes/card_vendor.html,sha256=oCXyuqyF7CnJnDQdK0G0jdYLqtPWYSzwlv8oddyGJg8,1290
354
355
  django_ledger/templates/django_ledger/vendor/tags/vendor_table.html,sha256=YC-3T5x4oua3VBg1q690CRzoogKL8qFgQRp5jTKLFgk,3400
355
356
  django_ledger/templatetags/__init__.py,sha256=N7iaeMO5xTU-q7RXTVYUy-fu8nMZbiIJ9QEtDCjsTdI,205
356
- django_ledger/templatetags/django_ledger.py,sha256=9lIsihiSJeu7zhdmbgwEaMfQ3c735CYmOv2Rpy-ELno,31693
357
+ django_ledger/templatetags/django_ledger.py,sha256=2fzaHJVc3O9t0UuQICx7YAwAPzsP2lv4rOYFPiRAlfA,31676
357
358
  django_ledger/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
359
  django_ledger/tests/base.py,sha256=Be7BS_bc_m-hCTkBRnvHYfvAfgCcVOsU-He9ON6rOCc,10279
359
360
  django_ledger/tests/test_accounts.py,sha256=WznTiYkxGcmeZ0W75ATpMsZGWrtmNV4voe4oLMCpveo,717
@@ -367,6 +368,8 @@ django_ledger/tests/test_purchase_order.py,sha256=vPjPthS6nS8Q1KmZW5zUFogqQKR1MZ
367
368
  django_ledger/tests/test_transactions.py,sha256=qeIJr0q43IpI_9YrzjVcnltnk_7puGvdhmH-hDePgEc,11721
368
369
  django_ledger/tests/bdd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
369
370
  django_ledger/tests/bdd/features/steps/README.py,sha256=4HMdVjjflcKQBf0LeZbc5i3TXbe5qGxYBcGmHn4i3jU,599
371
+ django_ledger/tests/test_io_ofx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
372
+ django_ledger/tests/test_io_ofx/tests.py,sha256=v-2xY410a6Tr2TwG5oqc_UkFzXBIAFxWYasZkeiXAfE,1993
370
373
  django_ledger/urls/__init__.py,sha256=98Dk0iQPeK2chSTY8H-7yuk9OycoUoZJdbpuR0Wv2rw,1994
371
374
  django_ledger/urls/account.py,sha256=9G6m2mkki8sNtC_mlNIHcn2SCSoG7ienbQ5qg2kHWg0,2399
372
375
  django_ledger/urls/auth.py,sha256=8dY2h6PQkMayUL81guu9JCxm--Tj0rglvvxg9Qh03aY,230
@@ -392,16 +395,16 @@ django_ledger/urls/transactions.py,sha256=e_x_z5qbkR6i7o8OWWdXshDiY_WVmu9WVhR9A9
392
395
  django_ledger/urls/unit.py,sha256=QEVKrgcw2dqMaaXsUHfqYecTa5-iaPlS9smrYJ1QsgM,1506
393
396
  django_ledger/urls/vendor.py,sha256=ODHpAwe5lomluj8ZCqbMtugTeeRsv0Yo9SqkZEmfYaw,393
394
397
  django_ledger/views/__init__.py,sha256=l5Pm2_oAW6Q_jJbXf-BiHA3ilCbiGb6gkXCm73K5DGY,1158
395
- django_ledger/views/account.py,sha256=d2pzYXKPOF74hCD4ehsQ_WNFsgqyGXXekCh22gDawAM,10523
398
+ django_ledger/views/account.py,sha256=cz9bgEyTY05lN997Zln7M4xwBzh45CXo0OTgqnXtdEY,10529
396
399
  django_ledger/views/auth.py,sha256=-zTjMlLpyxHGPlY9EXFQyeVHMmyeJ2H9RptcW7PDeDg,771
397
400
  django_ledger/views/bank_account.py,sha256=bMgqrDydz6WuXina4L27uV-cmQicW0_JoPaXxlO7uN4,5176
398
- django_ledger/views/bill.py,sha256=-WWAPF6PKqfaApAJBFwNMmIveDajXD-5a12d-LbcqFA,23087
401
+ django_ledger/views/bill.py,sha256=AaDdb1RLJDbHhuRdWXaYAIkCOVMtW2U3KcNgDKJKm8Y,23093
399
402
  django_ledger/views/closing_entry.py,sha256=y78azZesVgdUoQmaSEYiP7MBaPRE45qAAHPDlcThlUs,8103
400
403
  django_ledger/views/coa.py,sha256=WnWQVz-4Ik9v28KHzD_WiKcgix7l6bBj1A60p4k-eos,4934
401
404
  django_ledger/views/customer.py,sha256=RoBsXBxZC9b79DSNNHaoSZtQ2AoXf7DJAGmZEO3xdxs,3672
402
405
  django_ledger/views/data_import.py,sha256=_H8gjGRIE2Jm97ivvEQn0uEWrM3VvKkYQeXQ1GbKn3g,11950
403
406
  django_ledger/views/djl_api.py,sha256=6ADX9fBK8DroTeg8UIeCf2x4wt6-AF5xLlDQnqXBfsM,4411
404
- django_ledger/views/entity.py,sha256=egJoB4-HAyzKd_5tZ8gOh8nxMKA09_Ds2H7elGt5_DE,9457
407
+ django_ledger/views/entity.py,sha256=f6Fd5YsGbym5Jf3XvbhYCQVm4o5odNLrqVmch8vpGsg,9468
405
408
  django_ledger/views/estimate.py,sha256=ZFG0k2_nAV10EjO-p8yp7EVMa4x2qOcFSHl2xFpNDaM,12811
406
409
  django_ledger/views/feedback.py,sha256=qoIN44fJnblPx-pJFe5yYeO-dMqp-FReFZiyw0qQb_s,2460
407
410
  django_ledger/views/financial_statement.py,sha256=B4FE9qyBYs8tJvBJ1n9-7kR-pH2EJWn6SnjBdtbRfuE,7335
@@ -411,14 +414,14 @@ django_ledger/views/invoice.py,sha256=iUzTG-EbdYqNX-eYwHBnQRUD_1wTOGutw0BfDMKcI6
411
414
  django_ledger/views/item.py,sha256=FY53vk_giTRgvJ47FRqChQ8vyDYPDp4DGTvVhGAb36E,21347
412
415
  django_ledger/views/journal_entry.py,sha256=21kuiRBlhlkgv8xZKM4mj9djv0Fu0BhB80QOEOHCa-w,12135
413
416
  django_ledger/views/ledger.py,sha256=Yk6uDoYhJs5vf5JRqsy8n0nUNDEHk7NzjR1PglyqaAM,12647
414
- django_ledger/views/mixins.py,sha256=0hbpYeXAXQd1PoHetJjBcpie2AYkS_8eteVLfszQFT4,22410
417
+ django_ledger/views/mixins.py,sha256=SgsR9XWKgsJoQ2pCKkdHlNt93XiUa8bkTKTD0fjj8NI,23370
415
418
  django_ledger/views/purchase_order.py,sha256=1J3u4QnCkM7z1Y6DePijVdM67x4CQgfmQJcs3Y4kclU,21082
416
419
  django_ledger/views/transactions.py,sha256=5taQRGLSMkM_N8paQJ07HMspI_Nl7PawF8OohCiRmao,206
417
420
  django_ledger/views/unit.py,sha256=_RgPJO9mR6v5ohBXlnL3T8nTWgS1lwlCvERQcHk0wHE,10232
418
421
  django_ledger/views/vendor.py,sha256=gUdBPTFLeSwlNfdHSA1KFdE_y3QpwpkFhEB0r3-UYdI,3461
419
- django_ledger-0.6.1.dist-info/AUTHORS.md,sha256=SRM2cynD89ZfEsL09zrbUVeO17r9zE2ZM7y6ReMqVRo,713
420
- django_ledger-0.6.1.dist-info/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
421
- django_ledger-0.6.1.dist-info/METADATA,sha256=eHzjHHjGze0fWBZszdinvMyE4tx-9EcYrzrGuDL2Yhg,9641
422
- django_ledger-0.6.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
423
- django_ledger-0.6.1.dist-info/top_level.txt,sha256=0U3SjF63ND36grQNWDONVe-T9-T07lFl5e6QkG7bR2E,44
424
- django_ledger-0.6.1.dist-info/RECORD,,
422
+ django_ledger-0.6.3.dist-info/AUTHORS.md,sha256=SRM2cynD89ZfEsL09zrbUVeO17r9zE2ZM7y6ReMqVRo,713
423
+ django_ledger-0.6.3.dist-info/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
424
+ django_ledger-0.6.3.dist-info/METADATA,sha256=hSjmos-2S46tN0421i8xYk_7M6zhPmQBMlYyCTfTL1s,9641
425
+ django_ledger-0.6.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
426
+ django_ledger-0.6.3.dist-info/top_level.txt,sha256=0U3SjF63ND36grQNWDONVe-T9-T07lFl5e6QkG7bR2E,44
427
+ django_ledger-0.6.3.dist-info/RECORD,,