-
Notifications
You must be signed in to change notification settings - Fork 7
profiler/HB_Convert
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Convert_1.3
Attempt creating a universal Homebank(4.3) csv import converter (c)Ton 8-10-2011
=============================================================================================================
[Manual] Program usage
Before you can use this script, you have to create a definition-file (see short manual below)
Format import-csv-file-record homebank = ['date','paymode','info','payee','description','amount','category']
Format import-csv-file-record bank = [any number of fields & field-position in record]
Record field seperation-token can be comma or semicolon [,;]
Run in terminal, on command-line type ./Convert_x.x.x.py [import.csv] [output.csv] [import.def]
*
[Leganda] [import.csv] = ("bank".csv) file exported from bank
[output.csv] = ("homebank".csv) file to be created
[import.def] = ("bank".def) definition-file "bank" <> "Homebank"
*
Input-files: [import.csv], [import.def]
Output-files: [output.csv], log.txt (= logging conversion process)
=============================================================================================================
[Manual] Definition-file:
*
Homebank definition file contains multiple lines/records:
*
First line is needed to be able to SKIP Header-line(s) at the top of the ["bank".csv] file,
* Line contains 3 fields/columns (left to right):
*
[1] = (H) Homebank field !! field # = [H] >>> do NOT change <<<
[2] = Homebank name !! function >>> do NOT change <<<
[3] = (B) Skipped Bankfile header-lines !! [0..N] (skipped from the top)
*
Rest of lines informs program position of field-data stored in ["bank".csv] file,
* Line contains 5 fields/columns (left to right):
*
[1] = (H) Homebank field pos. !! field # = [0..8] >>> do NOT change <<<
[2] = Homebank field name !! as in Homebank >>> do NOT change <<<
[3] = (B) Bankfile field pos. !! field # = [0..N,-1,-M] (M = headerlength)
[4] = Bankfile field name !! as in Bank-file
[5] = Bankfile field details !! line #,pos # (NO semicolons allowed)
-------------------------------------------------------------------------------------------------------------
Column[3] <Bankfile-field-number> [0..N] : existing field (possitiv number)
* [-1] : "not-in-use" (negative number)
* Bank-file contains header with data to be extracted
* [-2..-N]: LAST-line of header (negative number) i.e. headerlength
*
NOTE: Multi definitions-lines(rows) per field are possible but cannot contain [-1] !!!!!!!!!!
NOTE: header containing data MUST be >= 2 lines !!!!!!!!
-------------------------------------------------------------------------------------------------------------
[Without header]
Column[5] <Bankfile-field-details> must contain information crucial for converting import field-data.
* These 3 fields are Homebank-date, -amount, -paymode.
*
-Date (any order): 4*[Y]ear,2*[M]onth,2*[D]ay -> seperation[-#%&*/] -> [YYYY/MM/DD] [YYYY-MM-DD] [DD%MM%YYYY]
*
-Amount (comes first): Amount without sign needs extra Amount_sign info,
* Amount-format can have grouping-token[,.]
* and decimal-token[.,]
* limitations: integers[N*= any number], fraction[None .. 2= max]
*
-Amount_sign (second): [aA-zZ],[aA-zZ] -> order [+,-] -> [D,C] [Debet,Credit] [af,bij] [Neg,Pos]
*
-Paymode (any lenght): N*(Booking-code) , N*(Homebank-code)
* [aA-zZ,0-9],..,[aA-zZ,0-9], [0-10],...,[0-10] -> [ga,gb,cb,..,tg,kh,db,3,3,4,..,8,9,10]
* (any no. of char. per code)
*
NOTE: NO semicolons allowed in Bank-file-field-details !!!!!!!!!!
--------------------------------------------------------------------------------------------------------------
[With header]
Column[5] <Bankfile-field-details> must contain information crucial for converting import header-data.
* These fields are Homebank-account,-balance
* Consists of row/line-number[1-N] and column/line-item-number[0-N].
*
* Header: (line N of header) , (item N of line) Example
* [2-N] , [0-N] -> [6,1]
=============================================================================================================
Example-definition-file 1 (without header):
---------------------------------------------------------------------------------------------------------
H <Homebank> B <"Bank"> <Bank-file>
#___<field>___________<field>_______<field-details>______________________________________________________
0;date ;2 ;Curr.date ;YYYYMMDD
1;paymode ;8 ;Booking-Code ;ga,gb,cb,sb,tb,ba,ck,eb,ei,ma,nb,bg,ac,id,3,3,4,4,5,6,6,7,7,7,7,8,8,8
2;info ;5 ;Offset-account ;
3;payee ;6 ;Payee ;
4;description ;10;Description.1 ;
4;description ;11;Description.2 ;
4;description ;12;Description.3 ;
4;description ;13;Description.4 ;
4;description ;14;Description.5 ;
4;description ;15;Description.6 ;
5;amount ;4 ;Amount ;
5;amount_sign ;3 ;Debet/Credit ;D,C
6;category ;-1; ;
7;*account ;0 ;Account ;
8;*balance ;-1; ;
=========================================================================================================
Example-definition-file 2 (with header 1 line to be skipped):
---------------------------------------------------------------------------------------------------------
H <Homebank> B <"Bank"> <Bank-file>
#___<field>___________<field>_______<field-details>______________________________________________________
H;header ;1
0;date ;2 ;Curr.date ;YYYYMMDD
1;paymode ;8 ;Booking-Code ;ga,gb,cb,sb,tb,ba,ck,eb,ei,ma,nb,bg,ac,id,3,3,4,4,5,6,6,7,7,7,7,8,8,8
2;info ;5 ;Offset-account ;
3;payee ;6 ;Payee ;
4;description ;10;Description.1 ;
4;description ;11;Description.2 ;
4;description ;12;Description.3 ;
4;description ;13;Description.4 ;
4;description ;14;Description.5 ;
4;description ;15;Description.6 ;
5;amount ;4 ;Amount ;
5;amount_sign ;3 ;Debet/Credit ;D,C
6;category ;-1; ;
7;*account ;0 ;Account ;
8;*balance ;-1; ;
=========================================================================================================
Example-definition-file 3 (with header containing data):
--------------------------------------------------------------------------------------------
H <Homebank> B <"Bank"> <Bank-file>
#___<field>___________<field>_______<field-details>_________________________________________
0;date ;2 ;Curr.date ;YYYYMMDD
1;paymode ;8 ;Booking-Code ;ga,gb,cb,sb,tb,ba,ck,eb,ei,ma,nb,bg,ac,id,3,3,4,4,5,6,6,7,7,7,7,8,8,8
2;info ;5 ;Offset-account ;
3;payee ;6 ;Payee ;
4;description ;10;Description.1 ;
4;description ;11;Description.2 ;
4;description ;12;Description.3 ;
4;description ;13;Description.4 ;
4;description ;14;Description.5 ;
4;description ;15;Description.6 ;
5;amount ;4 ;Amount ;
5;amount_sign ;3 ;Debet/Credit ;D,C
6;category ;-1; ;
7;*account ;-7;Account ;2,1
8;*balance ;-7;Balance ;6,1
About
converting bank.csv files to homebank.csv standard (via definition-file)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published