File tree Expand file tree Collapse file tree 4 files changed +18
-5
lines changed Expand file tree Collapse file tree 4 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ def generate_invoice(
19
19
timesheets : List [Timesheet ],
20
20
contract : Contract ,
21
21
date : datetime .date = datetime .date .today (),
22
+ counter : int = None ,
22
23
) -> Invoice :
23
24
invoice = Invoice (
24
25
date = date ,
@@ -36,7 +37,8 @@ def generate_invoice(
36
37
VAT_rate = contract .VAT_rate ,
37
38
description = timesheet .title ,
38
39
)
39
- invoice .generate_number ()
40
+ # TODO: replace with auto-incrementing numbers
41
+ invoice .generate_number (counter = counter )
40
42
return invoice
41
43
42
44
Original file line number Diff line number Diff line change @@ -340,12 +340,14 @@ def total(self) -> Decimal:
340
340
"""Total invoiced amount."""
341
341
return self .sum + self .VAT_total
342
342
343
- def generate_number (self , pattern = None ):
343
+ def generate_number (self , pattern = None , counter = None ):
344
344
"""Generate an invoice number"""
345
345
date_prefix = self .date .strftime ("%Y-%m-%d" )
346
346
# suffix = hashlib.shake_256(str(uuid.uuid4()).encode("utf-8")).hexdigest(2)
347
347
# TODO: auto-increment suffix for invoices generated on the same day
348
- suffix = "01"
348
+ if counter is None :
349
+ counter = 1
350
+ suffix = f"{ counter :02} "
349
351
self .number = f"{ date_prefix } -{ suffix } "
350
352
351
353
@property
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ def as_currency(number):
62
62
)
63
63
64
64
def as_percentage (number ):
65
- return f"{ number * 100 } %"
65
+ return f"{ number * 100 :.1f } %"
66
66
67
67
template_name = f"invoice-anvil"
68
68
template_path = get_template_path (template_name )
@@ -83,7 +83,8 @@ def as_percentage(number):
83
83
return html
84
84
else :
85
85
# write invoice html
86
- prefix = f"{ invoice .number } -{ invoice .client .name .lower ()} "
86
+ client_suffix = invoice .client .name .lower ().split ()[0 ]
87
+ prefix = f"{ invoice .number } -{ client_suffix } "
87
88
invoice_dir = Path (out_dir ) / Path (prefix )
88
89
invoice_dir .mkdir (parents = True , exist_ok = True )
89
90
invoice_path = invoice_dir / Path (f"{ prefix } .html" )
Original file line number Diff line number Diff line change @@ -67,6 +67,14 @@ def generate_timesheet(
67
67
return ts_table
68
68
69
69
# TODO: grouping
70
+ if group_by is None :
71
+ pass
72
+ elif group_by == "day" :
73
+ raise NotImplementedError ("TODO" )
74
+ elif group_by == "week" :
75
+ raise NotImplementedError ("TODO" )
76
+ else :
77
+ raise ValueError (f"unknown group_by argument: { group_by } " )
70
78
71
79
ts = Timesheet (
72
80
title = f"{ project .title } - { period_str } " ,
You can’t perform that action at this time.
0 commit comments