DIY Time Line cards game

In 2016, one of my sisters proposed to craft a gift for our parents coinciding with their 50th wedding anniversary that would work as a photo album, but more fun. She proposed that we would make our own game with family pictures following the same idea than Timeline.

Timeline General Interest Tin Box

During those years, Timeline was a popular cards game with a very simple mechanic. Each card pictures an event happening in a very specific moment in time. In one side, the card only states the name of the event while in the other side of the card it reveals the year that event happened and, sometimes, further details about the event.

The game consists in placing those cards in a time line from the further past to the present. Hence, its name. Additionally, the game was visually beautiful and, at the time, was done with quality materials in a nice embossed tin box.

Opened Timeline tin box

We decided to follow the same style but, since we wanted it to work as a photo album, the cards would be A5 instead of the tiny size of the original game. My sisters did the heavy work of finding the bulk of the pictures while I created the artistic material and selected the best pictures from the very big selection I received. In the end, we expanded from 1942 to 2016, for more than 120 cards.

As a FLOSS lover, in my creation process I used GIMP, Inkscape, Scribus and Krita and placed the basic templates into a repository to allow its usage by other people.

I used Inkscape to create the banners at the bottom of the pictures, GIMP was used for the modification of the source pictures so they will nicely sit on the cards, and Scribus was used to generate the PDFs to be sent for printing.

Ideally, the cards would be in portrait orientation …

“Los padrinos bailando” – Front
“Los padrinos bailando” – Back

… but, unavoidably, some needed to be in landscape.

“Me quedo” – Front
“Me quedo” – Back

We would also need a place in which to store the cards. An embossed tin box would have been great but way too expensive to the very limited amount we wanted to order. In the end, we decided to order an A5 cookies box from a provider which would be able to print on the lid.

I took heavy inspiration from the original designs of the existing game to make a custom cover with Inkscape and converted the resulting PNG with Krita to a TIFF using the desired CMYK color profile.

Custom “50th anniversary edition” Time Line tin box

The final result was quite nice.

Feel free to use the templates from the public repository. Contributions are also welcomed!

Basic LibreOffice invoice in Finland

WARNING

I have no responsibility if this guide and the linked examples are bogus and cause you any harm. The purpose of this post is solely as a personal note for myself. Follow and use it at your own risk.


Through this post we’ll see how to create an invoice with LibreOffice which would include the Finnish Reference Number (Viitenumero) or the RF Creditor Reference generated from that Finnish Reference Number and the Finnish Bank Bar Code (Pankkiviivakoodi).


The Finnish Reference Number

The Finnish Reference Number (viitenumero) identifies a specific bank transfer. In practice, it is used in invoices sent to a customer by a company or similar entity.

When we create an invoice in Finland, we want to include such number so its payment is following a standard set by the Finnish banks. For example, some banks may charge a commission if, when setting a payment, this number is not included.

The generation of this number follows a simple algorithm and I’ve compiled several implementations in different programming languages. Since we want to use it in LibreOffice Calc, the most suitable way would be through a (Basic) macro. It’s usage is as follows:

=LASKEVIITE(number)

Which number to pass you say? Well, it is pretty much whatever you want to pass (check the algorithm for the restrictions) but I basically pass the incremental invoice number. In my case, I just number my invoices like YYYY### meaning the 4 digits of the current year plus 3 digits for the incremental number of that invoice along the year (not in my wildest dreams I would generate more than 999 invoices in a single year). For example 2021023 would indicated the 23rd invoice generated in 2021. The result in the cell will show 202 10236, which is the provided number plus a check digit calculated by the algorithm and returned in a proper formatting (groups of 5 numbers).

The RF Creditor Reference

The RF Creditor Reference is an international business standard for an number preceded by the “RF” letters which serves a similar purpose than the Finnish Reference Number: identifying a specific payment.

The generation of this number also follows a simple algorithm and it was first implemented within the SEPA rulebook 3.2. Since having both numbers in the same invoice would be redundant and the RF Creditor Reference is international, we could just use this number and it should be accepted by the Finnish banks and some other banks, particularly some of those accepting SEPA transfers.

If we use the Finnish Reference Number, the calculation of the RF Creditor Reference check digits is pretty simple. We can just use the following formula in a cell:

=TEXT(98-MOD(SUBSTITUTE(LASKEVIITE(number)," ","")*1000000+271500,97),"00")

Following the example above, for the generated Finnish Reference Number 202 10236, the result in the cell will show 42. Then, we only have to concatenate everything together to get the full RF Creditor Reference: RF42 2021 0236.

Bar codes

Finnish banks have jointly developed the (Finnish) Bank Bar Code (Pankkiviivakoodi) in order to accelerate payments and to prevent erroneous data from being keyed in. The Bank Bar Code is a Code 128 bar code explicitly developed to be used with reference numbers in invoicing.

Hence, we want to add support to our Calc spreadsheet for generating bar codes. Fortunately, some Jiří Gabriel created a sophisticated (basic) macro for generating a whole set of 1D and 2D bar codes. This macro is able to generate the bar codes as graphical objects or as text which will be shown as the proper bar code when the companion BarsAndSpaces.ttf font is applied to the text. In my examples, I use the latter but you may prefer the former since that would allow you not to have that font installed.

This formula will show as cell result a Code 128 bar code containing the passed number if we apply the BarsAndSpaces.ttf font to its content:

=ENCODEBARCODE(CELL("SHEET"),CELL("ADDRESS"),number,0,0)

The Finnish Bank Bar Code

The Bank Bar Code is a form of presenting payment transaction data, approved by Finance
Finland (FFI). As commented above, it was jointly developed by Finnish banks and needs a reference number.

The Bank Bar Code has 2 versions currently in active use: version 4 uses the Finnish Reference Number while version 5 uses the RF Creditor Reference. Below, you can see how the 54 length structure of this bar code is divided depending on the version:

DataLengthValue
Version14
The numeric part of the payee’s bank
account number (IBAN)
16N
Euros6N
Cents2N
Reserve3000
Finnish Reference Number20N
Due Date6YYMMDD
(Finnish) Bank Bar Code v.4
DataLengthValue
Version15
The numeric part of the payee’s bank
account number (IBAN)
16N
Euros6N
Cents2N
The numeric part of the RF
Creditor Reference
23N
Due Date6YYMMDD
(Finnish) Bank Bar Code v.5

As you see, the algorithm is simple enough that can be easily implemented in a spreadsheet.

The full documentation for the Bank Bar Code is provided by Finance Finland.

Invoice examples

After all the blabbering above we get to the part that is, probably, the most interesting for you: the ODS examples.

I hope it helps you! 😀️

Appendix: QR Codes

Finance Finland also provides Guidelines for the use of QR code in credit transfer forms. Additionally, our bar codes macro also supports QR code generation. In other words, it would be possible to create an invoice with LibreOffice Calc featuring this QR code (QR-koodi).

However, I’ll leave this for another day … 😉️