django-ledger 0.7.1__py3-none-any.whl → 0.7.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.
- django_ledger/__init__.py +1 -1
- django_ledger/forms/account.py +4 -1
- django_ledger/io/io_core.py +3 -1
- django_ledger/models/customer.py +1 -1
- django_ledger/models/data_import.py +22 -3
- django_ledger/models/invoice.py +1 -1
- django_ledger/models/mixins.py +5 -5
- django_ledger/static/django_ledger/bundle/djetler.bundle.js +1 -1
- django_ledger/static/django_ledger/bundle/styles.bundle.js +1 -1
- django_ledger/templates/django_ledger/account/tags/account_txs_table.html +1 -1
- django_ledger/templates/django_ledger/bills/bill_update.html +1 -1
- django_ledger/templates/django_ledger/components/icon.html +1 -1
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html +8 -0
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +8 -1
- django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +1 -0
- django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +4 -4
- django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +118 -0
- django_ledger/templates/django_ledger/includes/nav.html +9 -5
- django_ledger/templates/django_ledger/invoice/includes/card_invoice.html +69 -69
- django_ledger/templatetags/django_ledger.py +11 -3
- django_ledger/views/account.py +1 -1
- django_ledger/views/mixins.py +6 -18
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/METADATA +1 -1
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/RECORD +28 -78
- assets/node_modules/node-gyp/gyp/gyp_main.py +0 -45
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -367
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1270
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
- assets/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -666
- assets/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -654
- assets/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -78
- assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -165
- assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -109
- assets/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -808
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1321
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -120
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -464
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -58
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2518
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3978
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2936
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -55
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1394
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
- assets/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3137
- assets/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
- assets/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
- assets/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1271
- assets/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
- assets/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
- assets/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -374
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1939
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3197
- assets/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
- assets/node_modules/node-gyp/gyp/setup.py +0 -42
- assets/node_modules/node-gyp/gyp/test_gyp.py +0 -260
- assets/node_modules/node-gyp/gyp/tools/graphviz.py +0 -102
- assets/node_modules/node-gyp/gyp/tools/pretty_gyp.py +0 -156
- assets/node_modules/node-gyp/gyp/tools/pretty_sln.py +0 -181
- assets/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +0 -339
- assets/node_modules/node-gyp/test/fixtures/test-charmap.py +0 -31
- assets/node_modules/node-gyp/update-gyp.py +0 -46
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/AUTHORS.md +0 -0
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/LICENSE +0 -0
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/WHEEL +0 -0
- {django_ledger-0.7.1.dist-info → django_ledger-0.7.3.dist-info}/top_level.txt +0 -0
django_ledger/__init__.py
CHANGED
django_ledger/forms/account.py
CHANGED
|
@@ -145,13 +145,16 @@ class AccountModelUpdateForm(MoveNodeForm):
|
|
|
145
145
|
|
|
146
146
|
class Meta:
|
|
147
147
|
model = AccountModel
|
|
148
|
-
exclude = ('depth', 'numchild', 'path'
|
|
148
|
+
exclude = ('depth', 'numchild', 'path')
|
|
149
149
|
widgets = {
|
|
150
150
|
'role': HiddenInput(),
|
|
151
151
|
'coa_model': HiddenInput(),
|
|
152
152
|
'parent': Select(attrs={
|
|
153
153
|
'class': DJANGO_LEDGER_FORM_INPUT_CLASSES
|
|
154
154
|
}),
|
|
155
|
+
'balance_type': Select(attrs={
|
|
156
|
+
'class': DJANGO_LEDGER_FORM_INPUT_CLASSES
|
|
157
|
+
}),
|
|
155
158
|
'code': TextInput(attrs={
|
|
156
159
|
'class': DJANGO_LEDGER_FORM_INPUT_CLASSES
|
|
157
160
|
}),
|
django_ledger/io/io_core.py
CHANGED
|
@@ -499,10 +499,11 @@ class IODatabaseMixIn:
|
|
|
499
499
|
VALUES = [
|
|
500
500
|
'account__uuid',
|
|
501
501
|
'account__balance_type',
|
|
502
|
-
'tx_type',
|
|
503
502
|
'account__code',
|
|
504
503
|
'account__name',
|
|
505
504
|
'account__role',
|
|
505
|
+
'account__coa_model__slug',
|
|
506
|
+
'tx_type',
|
|
506
507
|
]
|
|
507
508
|
|
|
508
509
|
ANNOTATE = {'balance': Sum('amount')}
|
|
@@ -663,6 +664,7 @@ class IODatabaseMixIn:
|
|
|
663
664
|
gl = list(g)
|
|
664
665
|
return {
|
|
665
666
|
'account_uuid': k[0],
|
|
667
|
+
'coa_slug': gl[0]['account__coa_model__slug'],
|
|
666
668
|
'unit_uuid': k[1],
|
|
667
669
|
'unit_name': gl[0].get('journal_entry__entity_unit__name'),
|
|
668
670
|
'activity': gl[0].get('journal_entry__activity'),
|
django_ledger/models/customer.py
CHANGED
|
@@ -32,7 +32,25 @@ class ImportJobModelManager(Manager):
|
|
|
32
32
|
|
|
33
33
|
def get_queryset(self):
|
|
34
34
|
qs = super().get_queryset()
|
|
35
|
-
return qs.
|
|
35
|
+
return qs.annotate(
|
|
36
|
+
txs_count=Count('stagedtransactionmodel',
|
|
37
|
+
filter=Q(stagedtransactionmodel__parent__isnull=False)),
|
|
38
|
+
txs_mapped_count=Count(
|
|
39
|
+
'stagedtransactionmodel__account_model_id',
|
|
40
|
+
filter=Q(stagedtransactionmodel__parent__isnull=False) | Q(
|
|
41
|
+
stagedtransactionmodel__parent__parent__isnull=False)
|
|
42
|
+
|
|
43
|
+
),
|
|
44
|
+
).annotate(
|
|
45
|
+
txs_pending=F('txs_count') - F('txs_mapped_count')
|
|
46
|
+
).annotate(
|
|
47
|
+
is_complete=Case(
|
|
48
|
+
When(txs_count__exact=0, then=False),
|
|
49
|
+
When(txs_pending__exact=0, then=True),
|
|
50
|
+
default=False,
|
|
51
|
+
output_field=BooleanField()
|
|
52
|
+
),
|
|
53
|
+
).select_related(
|
|
36
54
|
'bank_account_model',
|
|
37
55
|
'bank_account_model__cash_account',
|
|
38
56
|
'ledger_model'
|
|
@@ -101,7 +119,7 @@ class ImportJobModelAbstract(CreateUpdateMixIn):
|
|
|
101
119
|
return _(f'Are you sure you want to delete Import Job {self.description}?')
|
|
102
120
|
|
|
103
121
|
|
|
104
|
-
class StagedTransactionModelQuerySet(
|
|
122
|
+
class StagedTransactionModelQuerySet(QuerySet):
|
|
105
123
|
|
|
106
124
|
def is_pending(self):
|
|
107
125
|
return self.filter(transaction_model__isnull=True)
|
|
@@ -116,7 +134,7 @@ class StagedTransactionModelQuerySet(models.QuerySet):
|
|
|
116
134
|
return self.filter(ready_to_import=True)
|
|
117
135
|
|
|
118
136
|
|
|
119
|
-
class StagedTransactionModelManager(
|
|
137
|
+
class StagedTransactionModelManager(Manager):
|
|
120
138
|
|
|
121
139
|
def get_queryset(self):
|
|
122
140
|
qs = super().get_queryset()
|
|
@@ -138,6 +156,7 @@ class StagedTransactionModelManager(models.Manager):
|
|
|
138
156
|
When(parent_id__isnull=False, then=F('parent_id'))
|
|
139
157
|
),
|
|
140
158
|
).annotate(
|
|
159
|
+
entity_unit=F('transaction_model__journal_entry__entity_unit__name'),
|
|
141
160
|
ready_to_import=Case(
|
|
142
161
|
# is mapped singleton...
|
|
143
162
|
When(
|
django_ledger/models/invoice.py
CHANGED
django_ledger/models/mixins.py
CHANGED
|
@@ -898,11 +898,11 @@ class AccrualMixIn(models.Model):
|
|
|
898
898
|
]):
|
|
899
899
|
raise ValidationError('Must provide all accounts Cash, Prepaid, UnEarned.')
|
|
900
900
|
|
|
901
|
-
if self.accrue:
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
901
|
+
# if self.accrue:
|
|
902
|
+
# if self.is_approved():
|
|
903
|
+
# self.progress = Decimal.from_float(1.00)
|
|
904
|
+
# else:
|
|
905
|
+
# self.progress = Decimal.from_float(0.00)
|
|
906
906
|
|
|
907
907
|
if self.amount_paid > self.amount_due:
|
|
908
908
|
raise ValidationError(f'Amount paid {self.amount_paid} cannot exceed amount due {self.amount_due}')
|