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(
1919 timesheets : List [Timesheet ],
2020 contract : Contract ,
2121 date : datetime .date = datetime .date .today (),
22+ counter : int = None ,
2223) -> Invoice :
2324 invoice = Invoice (
2425 date = date ,
@@ -36,7 +37,8 @@ def generate_invoice(
3637 VAT_rate = contract .VAT_rate ,
3738 description = timesheet .title ,
3839 )
39- invoice .generate_number ()
40+ # TODO: replace with auto-incrementing numbers
41+ invoice .generate_number (counter = counter )
4042 return invoice
4143
4244
Original file line number Diff line number Diff line change @@ -340,12 +340,14 @@ def total(self) -> Decimal:
340340 """Total invoiced amount."""
341341 return self .sum + self .VAT_total
342342
343- def generate_number (self , pattern = None ):
343+ def generate_number (self , pattern = None , counter = None ):
344344 """Generate an invoice number"""
345345 date_prefix = self .date .strftime ("%Y-%m-%d" )
346346 # suffix = hashlib.shake_256(str(uuid.uuid4()).encode("utf-8")).hexdigest(2)
347347 # 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} "
349351 self .number = f"{ date_prefix } -{ suffix } "
350352
351353 @property
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ def as_currency(number):
6262 )
6363
6464 def as_percentage (number ):
65- return f"{ number * 100 } %"
65+ return f"{ number * 100 :.1f } %"
6666
6767 template_name = f"invoice-anvil"
6868 template_path = get_template_path (template_name )
@@ -83,7 +83,8 @@ def as_percentage(number):
8383 return html
8484 else :
8585 # 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 } "
8788 invoice_dir = Path (out_dir ) / Path (prefix )
8889 invoice_dir .mkdir (parents = True , exist_ok = True )
8990 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(
6767 return ts_table
6868
6969 # 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 } " )
7078
7179 ts = Timesheet (
7280 title = f"{ project .title } - { period_str } " ,
You can’t perform that action at this time.
0 commit comments