-
Notifications
You must be signed in to change notification settings - Fork 0
/
PythonF60.txt
114 lines (84 loc) · 3.96 KB
/
PythonF60.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
PythonF60
Slik bruker du f60.py til å lage PDF-faktura
Innledning
F60.py er en python-modul for å produsere en faktura i PDF-format. Dokumentet er laget til å samsvare med Norsk standard Giro F60, og kan skrives ut på slike blanketter.
F60.py brukes av finfaktura, men kan også brukes uavhengig, i ditt eget python-program. I det følgende vises hvordan.
Vil du bruke F60.py for seg selv, kan du laste modulen ned fra nedlastingslista.
F60.py bruker reportlab til å lage PDF-filer. Denne pakken må du installere (den heter python-reportlab i linux).
Innledning
Eksempel
Informasjon om fakturaen
Fakturainfo
Firmainfo
Kundeinfo
Ordrelinje
Logo
KID
Datoformat
Format
Epost
Papir/Utskrift
Kvittering
Eksempel
import f60
filnavn = /tmp/testfaktura.pdf
faktura = f60(filnavn, overskriv=True)
faktura.settKundeinfo(06, "Topert\nRopertgata 33\n9022 Nissedal")
faktura.settFakturainfo(
fakturanr=03,
utstedtEpoch=1145542709,
forfallEpoch=1146546709,
fakturatekst=u"Produksjon i august",
vilkaar=u"Takk for handelen, kom gjerne igjen.",
kid=True)
faktura.settFirmainfo({firmanavn:Firma Ein,
kontaktperson:Rattatta Hansen,
adresse:uSurdalsøyra,
postnummer:8999,
poststed:uFløya,
kontonummer:99999999999,
organisasjonsnummer:876876,
telefon:23233322,
epost:[email protected]})
faktura.settOrdrelinje([ ["Leder", 1, 300, 25], [Reportasje, 1, 3000, 25], ])
if faktura.lagEpost():
print "Kvittering laget i", filnavn
Gir følgende faktura:
Informasjon om fakturaen
Fakturainfo
Firmainfo
Kundeinfo
Ordrelinje
Logo
Metode: .settLogo(logo)
Du kan sette inn en firmalogo med metoden .settLogo(logo). Argumentet logo er 1) et filnavn, 2) bildedata eller 3) et PIL-objekt.
Dersom bildefila eller bildedata ikke er i JPEG-format, må PIL være installert.
Logoen blir installert oppe i venstre hjørne av fakturaen, med maks-størrelse 25*25 mm! Er bildet større, blir det nedskalert. Det er likevel lurest å skalere logoen selv, siden det ofte gir bedre resultater.
KID
Metode: .lagKid()
Metode: .sjekkKid()
Metode: .lagKontrollsifferMod10()
Metode: .lagKontrollsifferMod11()
f60 kan generere, kontrollere og sette KID. .lagKid() setter sammen en KID av kundenummer + fakturanummer + kontrollsiffer.
Kontrollsifferet skal regnes ut etter mod10 eller mod11-algoritmen, slik BBS Nordic oppgir den i Kravspek for OCR. I f60.py brukes som standard mod10.
Se detaljer i issue#38 .
Sett kundeinfo først
Siden f60 bruker kundenummer for å generere KID, må du huske å sette kundeinfoen (.settKundeinfo()) før du setter fakturainfoen dersom du skal autogenerere KID.
Datoformat
Metode: .settDatoformat(format)
Standard datoformat er %Y-%m-%d, for eksempel 2009-01-31. Du kan oppgi ditt eget datoformat.
Lista over gyldige formatteringskoder finner du på python.org.
Format
Fakturaene produseres i filformatet PDF gjennom hjelpebiblioteket reportlab. Last ned en åpen pdf-leser.
Videre kan fakturaene få ulike layout, avhengig av hvordan de skal sendes.
Epost
Metode: .lagEpost()
Her imiteres en ferdig utfylt giroblankett, altså en digital kopi av et skjema F60-1 med gule felter, og betalingsinformasjon.
Vær obs på at det ikke er lov å skrive denne ut til papir. Du må skrive ut på en trykket blankett! Da bruker du .lagPost() -- se neste punkt.
Papir/Utskrift
Metode: .lagPost()
Dette valget gir en PDF-fil som egner seg for utskrift på et skjema F60-1, altså bare betalingsinformasjonen.
Kvittering
Metode: .lagKvittering()
Dette er en spesiell versjon av den imiterte giroblanketten, hvor påskriften "KVITTERING" er trykket på tvers over arket. Dette er den kopien av fordringen du skal beholde.
Hensikten med denne layouten er å unngå sammenblanding dersom du velger å skrive ut kvitteringen.