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
This commit is contained in:
Raffael Meyer 2021-01-25 16:52:10 +01:00 committed by GitHub
parent fa3ec3c346
commit 1991ba7910
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 28 deletions

View File

@ -7,13 +7,14 @@
"engine": "InnoDB", "engine": "InnoDB",
"field_order": [ "field_order": [
"client", "client",
"account_number_length",
"column_break_2",
"client_number", "client_number",
"section_break_4", "column_break_2",
"consultant_number",
"consultant", "consultant",
"section_break_4",
"account_number_length",
"column_break_6", "column_break_6",
"consultant_number" "temporary_against_account_number"
], ],
"fields": [ "fields": [
{ {
@ -66,10 +67,17 @@
"fieldtype": "Int", "fieldtype": "Int",
"label": "Account Number Length", "label": "Account Number Length",
"reqd": 1 "reqd": 1
},
{
"allow_in_quick_entry": 1,
"fieldname": "temporary_against_account_number",
"fieldtype": "Data",
"label": "Temporary Against Account Number",
"reqd": 1
} }
], ],
"links": [], "links": [],
"modified": "2020-11-05 17:52:11.674329", "modified": "2020-11-19 19:00:09.088816",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Regional", "module": "Regional",
"name": "DATEV Settings", "name": "DATEV Settings",

View File

@ -96,6 +96,8 @@ def execute(filters=None):
"""Entry point for frappe.""" """Entry point for frappe."""
data = [] data = []
if filters and validate(filters): 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) data = get_transactions(filters, as_dict=0)
return COLUMNS, data return COLUMNS, data
@ -156,11 +158,11 @@ def get_transactions(filters, as_dict=1):
case gl.debit when 0 then 'H' else 'S' end as 'Soll/Haben-Kennzeichen', case gl.debit when 0 then 'H' else 'S' end as 'Soll/Haben-Kennzeichen',
/* account number or, if empty, party account number */ /* 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 */ /* 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.posting_date as 'Belegdatum',
gl.voucher_no as 'Belegfeld 1', gl.voucher_no as 'Belegfeld 1',
LEFT(gl.remarks, 60) as 'Buchungstext', LEFT(gl.remarks, 60) as 'Buchungstext',
@ -171,27 +173,10 @@ def get_transactions(filters, as_dict=1):
FROM `tabGL Entry` gl FROM `tabGL Entry` gl
/* Statistisches Konto (Debitoren/Kreditoren) */
left join `tabParty Account` pa
on gl.against = pa.parent
and gl.company = pa.company
/* Kontonummer */ /* Kontonummer */
left join `tabAccount` acc left join `tabAccount` acc
on gl.account = acc.name 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 WHERE gl.company = %(company)s
AND DATE(gl.posting_date) >= %(from_date)s AND DATE(gl.posting_date) >= %(from_date)s
AND DATE(gl.posting_date) <= %(to_date)s AND DATE(gl.posting_date) <= %(to_date)s
@ -347,7 +332,9 @@ def download_datev_csv(filters):
coa = frappe.get_value('Company', company, 'chart_of_accounts') coa = frappe.get_value('Company', company, 'chart_of_accounts')
filters['skr'] = '04' if 'SKR04' in coa else ('03' if 'SKR03' in coa else '') 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) transactions = get_transactions(filters)
account_names = get_account_names(filters) account_names = get_account_names(filters)

View File

@ -126,7 +126,8 @@ def make_datev_settings(company):
"doctype": "DATEV Settings", "doctype": "DATEV Settings",
"client": company.name, "client": company.name,
"client_number": "12345", "client_number": "12345",
"consultant_number": "67890" "consultant_number": "67890",
"temporary_against_account_number": "9999"
}).insert() }).insert()
@ -137,7 +138,8 @@ class TestDatev(TestCase):
self.filters = { self.filters = {
"company": self.company.name, "company": self.company.name,
"from_date": today(), "from_date": today(),
"to_date": today() "to_date": today(),
"temporary_against_account_number": "9999"
} }
make_datev_settings(self.company) make_datev_settings(self.company)