4242 get_parliamentarians_with_settlements ,
4343 get_parties_with_settlements ,
4444 is_commission_president ,
45+ round_to_five_rappen ,
4546)
4647from onegov .pas .views .abschlussliste import (
4748 generate_abschlussliste_xlsx ,
@@ -628,17 +629,21 @@ def generate_settlement_pdf(
628629 entity_type : Literal ['all' , 'commission' , 'party' , 'parliamentarian' ],
629630 entity : PASCommission | Party | PASParliamentarian | None = None ,
630631) -> bytes :
631- """ Entry point for almost all settlement PDF generations. """
632+ """ Entry point for almost all settlement PDF generations excluding
633+ parliamentarians addressed personally"""
632634 font_config = FontConfiguration ()
633635 css_path = module_path ('onegov.pas' , 'views/templates/settlement_pdf.css' )
634636 with open (css_path ) as f :
635637 css = CSS (string = f .read ())
636638
639+ subtitle = 'Einträge Journal'
640+
637641 if entity_type == 'commission' and isinstance (entity , PASCommission ):
638642 settlement_data = _get_commission_settlement_data (
639643 settlement_run , request , entity
640644 )
641645 totals = _get_commission_totals (settlement_run , request , entity )
646+ subtitle = f'Einträge Sitzungen: «{ entity .name } »'
642647
643648 elif entity_type == 'party' and isinstance (entity , Party ):
644649 settlement_data = _get_party_settlement_data (
@@ -656,7 +661,7 @@ def generate_settlement_pdf(
656661 html = _generate_settlement_html (
657662 settlement_data = settlement_data ,
658663 totals = totals ,
659- subtitle = 'Einträge Journal' ,
664+ subtitle = subtitle ,
660665 )
661666
662667 return HTML (string = html ).write_pdf (
@@ -726,35 +731,34 @@ def _generate_settlement_html(
726731 <html>
727732 <head><meta charset="utf-8"></head>
728733 <body>
734+ <div class="table-title">{ subtitle } </div>
729735 <table class="journal-table">
730736 <thead>
731737 <tr>
732- <th colspan="7">{ subtitle } </th>
733- </tr>
734- <tr>
735- <th>Datum</th>
736- <th>Pers-Nr</th>
737- <th>Person</th>
738- <th>Typ</th>
739- <th>Wert</th>
740- <th>CHF</th>
741- <th>CHF + TZ</th>
738+ <th style="width:40pt">Datum</th>
739+ <th style="width:90pt">Person</th>
740+ <th style="width:252pt">Typ</th>
741+ <th style="width:15pt">Wert</th>
742+ <th style="width:35pt">CHF</th>
743+ <th style="width:35pt">CHF + TZ</th>
742744 </tr>
743745 </thead>
744746 <tbody>
745747 """
746748
747749 for settlement_row in settlement_data :
748750 name = f'{ settlement_row [1 ].first_name } { settlement_row [1 ].last_name } '
751+ chf_rounded = round_to_five_rappen (settlement_row [4 ])
752+ chf_cola_rounded = round_to_five_rappen (settlement_row [5 ])
749753 html += f"""
750754 <tr>
751755 <td>{ settlement_row [0 ].strftime ('%d.%m.%Y' )} </td>
752- <td>{ settlement_row [1 ].personnel_number } </td>
753756 <td>{ name } </td>
754757 <td>{ settlement_row [2 ]} </td>
755758 <td class="numeric">{ settlement_row [3 ]} </td>
756- <td class="numeric">{ settlement_row [4 ]:,.2f} </td>
757- <td class="numeric">{ settlement_row [5 ]:,.2f} </td>
759+ <td class="numeric">{ format_swiss_number (chf_rounded )} </td>
760+ <td class="numeric">{ format_swiss_number (
761+ chf_cola_rounded )} </td>
758762 </tr>
759763 """
760764
@@ -779,11 +783,16 @@ def _generate_settlement_html(
779783 html += f"""
780784 <tr>
781785 <td>{ total_row [0 ]} </td>
782- <td class="numeric">{ format_swiss_number (total_row [1 ])} </td>
783- <td class="numeric">{ format_swiss_number (total_row [2 ])} </td>
784- <td class="numeric">{ format_swiss_number (total_row [3 ])} </td>
785- <td class="numeric">{ format_swiss_number (total_row [4 ])} </td>
786- <td class="numeric">{ format_swiss_number (total_row [5 ])} </td>
786+ <td class="numeric">{ format_swiss_number (
787+ round_to_five_rappen (total_row [1 ]))} </td>
788+ <td class="numeric">{ format_swiss_number (
789+ round_to_five_rappen (total_row [2 ]))} </td>
790+ <td class="numeric">{ format_swiss_number (
791+ round_to_five_rappen (total_row [3 ]))} </td>
792+ <td class="numeric">{ format_swiss_number (
793+ round_to_five_rappen (total_row [4 ]))} </td>
794+ <td class="numeric">{ format_swiss_number (
795+ round_to_five_rappen (total_row [5 ]))} </td>
787796 </tr>
788797 """
789798
@@ -793,11 +802,16 @@ def _generate_settlement_html(
793802 html += f"""
794803 <tr class="total-row">
795804 <td>{ final_row [0 ]} </td>
796- <td class="numeric">{ format_swiss_number (final_row [1 ])} </td>
797- <td class="numeric">{ format_swiss_number (final_row [2 ])} </td>
798- <td class="numeric">{ format_swiss_number (final_row [3 ])} </td>
799- <td class="numeric">{ format_swiss_number (final_row [4 ])} </td>
800- <td class="numeric">{ format_swiss_number (final_row [5 ])} </td>
805+ <td class="numeric">{ format_swiss_number (
806+ round_to_five_rappen (final_row [1 ]))} </td>
807+ <td class="numeric">{ format_swiss_number (
808+ round_to_five_rappen (final_row [2 ]))} </td>
809+ <td class="numeric">{ format_swiss_number (
810+ round_to_five_rappen (final_row [3 ]))} </td>
811+ <td class="numeric">{ format_swiss_number (
812+ round_to_five_rappen (final_row [4 ]))} </td>
813+ <td class="numeric">{ format_swiss_number (
814+ round_to_five_rappen (final_row [5 ]))} </td>
801815 </tr>
802816 """
803817
0 commit comments