50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from reportlab.pdfgen import canvas
|
|
from reportlab.lib.pagesizes import A4
|
|
from reportlab.lib.utils import ImageReader
|
|
from reportlab.lib import colors
|
|
from reportlab.lib.pagesizes import letter
|
|
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
|
|
|
|
import gspread
|
|
import csv
|
|
import locale
|
|
import datetime
|
|
import yaml
|
|
|
|
with open("config.yaml", encoding='utf8') as f:
|
|
cfg = yaml.load(f, Loader=yaml.FullLoader)
|
|
|
|
locale.setlocale(locale.LC_ALL, 'de_DE')
|
|
|
|
gc = gspread.service_account()
|
|
sh = gc.open('Zeiterfassung alle Projekte')
|
|
worksheet = sh.worksheet(cfg['worksheet_name'])
|
|
|
|
invoice_nr = 'R000543'
|
|
|
|
# read the whole sheet
|
|
list_of_dicts = worksheet.get_all_records(numericise_ignore=['all'])
|
|
|
|
doc = SimpleDocTemplate(f"{invoice_nr}.pdf", pagesize=A4)
|
|
|
|
# container for the 'Flowable' objects
|
|
elements = []
|
|
|
|
data= [['00', '01', '02', '03', '04'],
|
|
['10', '11', '12', '13', '14'],
|
|
['20', '21', '22', '23', '24'],
|
|
['30', '31', '32', '33', '34']]
|
|
|
|
t = Table(data)
|
|
t.setStyle(TableStyle([('BACKGROUND',(1,1),(-2,-2),colors.green),
|
|
('TEXTCOLOR',(0,0),(1,-1),colors.red)]))
|
|
elements.append(t)
|
|
|
|
# write the document to disk
|
|
doc.build(elements)
|
|
|
|
""" for key in ["wgwr3", "wgwr_service", "dkarb", "bauwb"]:
|
|
elsap_id = list_of_dicts[2].get(f"sum_{key}")
|
|
if elsap_id != "":
|
|
#elsap_id = worksheet.acell('H3').value #'2061818_00030_0000000020'
|
|
csvexport_filename = f"{datetime.date.today().strftime('%Y_%m')}_01_{elsap_id}_{username}" """ |