Skip to content

Commit 25bbe25

Browse files
author
eino
committed
Mikulta etc
1 parent ad09f40 commit 25bbe25

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

account_bank_statement_import.py

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from openerp import api, fields, models, _
66
from openerp.exceptions import UserError
77
from openerp.addons.base.res.res_bank import sanitize_account_number
8+
from decimal import Decimal
9+
import openerp.addons.decimal_precision as dp
810

911
import logging
1012
_logger = logging.getLogger(__name__)
@@ -16,6 +18,19 @@ class AccountBankStatementImport(models.TransientModel):
1618
_description = 'Import Bank Statement CSV format OKO Finland'
1719

1820
#data_file = fields.Binary(string='Bank Statement File', required=True, help='Get you bank statements in electronic format from your bank and select them here.')
21+
balance_start = fields.Float(
22+
'Starting Balance',
23+
digits_compute=dp.get_precision('Account')
24+
)
25+
26+
bank_statement_date = fields.Date(
27+
'Bank Statement Date',
28+
help="You can choose to manually set the bank statement date here. "
29+
"Otherwise the bank statement date will be read from the latest "
30+
"bank statement line date ",
31+
)
32+
33+
1934

2035
OKO_START_ROW="Kirjauspäivä;Arvopäivä;Määrä EUROA;Laji;Selitys;Saaja/Maksaja;Saajan tilinumero ja pankin BIC;Viite;Viesti;Arkistointitunnus".decode("utf-8").encode("iso8859-1")
2136
def __check_oko(self,data_file):
@@ -52,7 +67,7 @@ def _parse_file(self, data_file):
5267
transactions=[]
5368
mindate="9999-99-99"
5469
maxdate="0000-00-00"
55-
70+
total_amt = Decimal(0)
5671
header_skipped=False
5772
linenum=1
5873
for row in data_file.split("\n"):
@@ -76,10 +91,11 @@ def _parse_file(self, data_file):
7691
# The last part is just the bank identifier
7792
identifier = transaccount_and_bic.rfind(' ')
7893
acc_num=transaccount_and_bic[:identifier]
79-
80-
81-
transactions.append(
82-
{
94+
if len(memo.strip())==0:
95+
memo='-'
96+
if len(other_part.strip())==0:
97+
other_part=''
98+
oneval={
8399
'sequence': linenum, # added for sequence?
84100
'name':other_part,
85101
'date':accdate,
@@ -89,16 +105,25 @@ def _parse_file(self, data_file):
89105
'note':memo,
90106
'partner_name':other_part,
91107
'ref':referencecode,
92-
}
93-
)
108+
}
109+
transactions.append(oneval)
110+
111+
total_amt = total_amt + Decimal(amountEUR)
112+
linenum=linenum+1 # advance sequence
94113
else:
95114
header_skipped=True
96-
linenum=linenum+1
97115
# OKO csv does not include account number so we get it from journal
98116
journal_obj = self.env['account.journal']
99117
journal = journal_obj.browse(self.env.context.get('journal_id', []))
118+
balance_end=Decimal(self.balance_start)+total_amt
119+
100120
account=journal.bank_account_id.sanitized_acc_number
101-
#xname=_("OKO ")+mindate+" - "+maxdate
102-
return ("EUR",account,[{'date':maxdate,'transactions':transactions},])
121+
vals_bank_statement = {
122+
'balance_start': self.balance_start,
123+
'balance_end_real': balance_end,
124+
'date': self.bank_statement_date if self.bank_statement_date else maxdate,
125+
'transactions': transactions
126+
}
127+
return ("EUR",account,[vals_bank_statement,])
103128

104129

account_bank_statement_import_oko_view.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88
<xpath expr='//ul[@id="statement_format"]' position='inside'>
99
<li>OKO Finland CSV format </li>
1010
</xpath>
11+
<xpath expr='//ul[@id="statement_format"]' position='after'>
12+
<label for="balance_start"/>
13+
<field name="balance_start"/>
14+
15+
<label for="bank_statement_date"/>
16+
<field name="bank_statement_date"/>
17+
</xpath>
1118
</field>
1219
</record>
1320

0 commit comments

Comments
 (0)