feat: temporary against account (#24086)
* feat: add temporaray against account nmber to datev settings
* feat: use temporary against account in datev report
* test: add temp against account number to test data
* test: include temp against aaccount in filters
diff --git a/erpnext/regional/doctype/datev_settings/datev_settings.json b/erpnext/regional/doctype/datev_settings/datev_settings.json
index 713e8e3..f60de4c 100644
--- a/erpnext/regional/doctype/datev_settings/datev_settings.json
+++ b/erpnext/regional/doctype/datev_settings/datev_settings.json
@@ -7,13 +7,14 @@
"engine": "InnoDB",
"field_order": [
"client",
- "account_number_length",
- "column_break_2",
"client_number",
- "section_break_4",
+ "column_break_2",
+ "consultant_number",
"consultant",
+ "section_break_4",
+ "account_number_length",
"column_break_6",
- "consultant_number"
+ "temporary_against_account_number"
],
"fields": [
{
@@ -66,10 +67,17 @@
"fieldtype": "Int",
"label": "Account Number Length",
"reqd": 1
+ },
+ {
+ "allow_in_quick_entry": 1,
+ "fieldname": "temporary_against_account_number",
+ "fieldtype": "Data",
+ "label": "Temporary Against Account Number",
+ "reqd": 1
}
],
"links": [],
- "modified": "2020-11-05 17:52:11.674329",
+ "modified": "2020-11-19 19:00:09.088816",
"modified_by": "Administrator",
"module": "Regional",
"name": "DATEV Settings",
diff --git a/erpnext/regional/report/datev/datev.py b/erpnext/regional/report/datev/datev.py
index 1e39c57..cbc9478 100644
--- a/erpnext/regional/report/datev/datev.py
+++ b/erpnext/regional/report/datev/datev.py
@@ -96,6 +96,8 @@
"""Entry point for frappe."""
data = []
if filters and validate(filters):
+ fn = 'temporary_against_account_number'
+ filters[fn] = frappe.get_value('DATEV Settings', filters.get('company'), fn)
data = get_transactions(filters, as_dict=0)
return COLUMNS, data
@@ -156,11 +158,11 @@
case gl.debit when 0 then 'H' else 'S' end as 'Soll/Haben-Kennzeichen',
/* account number or, if empty, party account number */
- coalesce(acc.account_number, acc_pa.account_number) as 'Konto',
+ acc.account_number as 'Konto',
/* against number or, if empty, party against number */
- coalesce(acc_against.account_number, acc_against_pa.account_number) as 'Gegenkonto (ohne BU-Schlüssel)',
-
+ %(temporary_against_account_number)s as 'Gegenkonto (ohne BU-Schlüssel)',
+
gl.posting_date as 'Belegdatum',
gl.voucher_no as 'Belegfeld 1',
LEFT(gl.remarks, 60) as 'Buchungstext',
@@ -171,27 +173,10 @@
FROM `tabGL Entry` gl
- /* Statistisches Konto (Debitoren/Kreditoren) */
- left join `tabParty Account` pa
- on gl.against = pa.parent
- and gl.company = pa.company
-
/* Kontonummer */
left join `tabAccount` acc
on gl.account = acc.name
- /* Gegenkonto-Nummer */
- left join `tabAccount` acc_against
- on gl.against = acc_against.name
-
- /* Statistische Kontonummer */
- left join `tabAccount` acc_pa
- on pa.account = acc_pa.name
-
- /* Statistische Gegenkonto-Nummer */
- left join `tabAccount` acc_against_pa
- on pa.account = acc_against_pa.name
-
WHERE gl.company = %(company)s
AND DATE(gl.posting_date) >= %(from_date)s
AND DATE(gl.posting_date) <= %(to_date)s
@@ -347,7 +332,9 @@
coa = frappe.get_value('Company', company, 'chart_of_accounts')
filters['skr'] = '04' if 'SKR04' in coa else ('03' if 'SKR03' in coa else '')
- filters['account_number_length'] = frappe.get_value('DATEV Settings', company, 'account_number_length')
+ datev_settings = frappe.get_doc('DATEV Settings', company)
+ filters['account_number_length'] = datev_settings.account_number_length
+ filters['temporary_against_account_number'] = datev_settings.temporary_against_account_number
transactions = get_transactions(filters)
account_names = get_account_names(filters)
diff --git a/erpnext/regional/report/datev/test_datev.py b/erpnext/regional/report/datev/test_datev.py
index 9529923..59b878e 100644
--- a/erpnext/regional/report/datev/test_datev.py
+++ b/erpnext/regional/report/datev/test_datev.py
@@ -126,7 +126,8 @@
"doctype": "DATEV Settings",
"client": company.name,
"client_number": "12345",
- "consultant_number": "67890"
+ "consultant_number": "67890",
+ "temporary_against_account_number": "9999"
}).insert()
@@ -137,7 +138,8 @@
self.filters = {
"company": self.company.name,
"from_date": today(),
- "to_date": today()
+ "to_date": today(),
+ "temporary_against_account_number": "9999"
}
make_datev_settings(self.company)