def saveAsHandout(self): """Write the PDF document, multiple slides per page.""" styleSheet = getSampleStyleSheet() h1 = styleSheet['Heading1'] bt = styleSheet['BodyText'] if self.sourceFilename : filename = os.path.splitext(self.sourceFilename)[0] + '.pdf' outfile = BytesIO() doc = SimpleDocTemplate(outfile, pagesize=rl_config.defaultPageSize, showBoundary=0) doc.leftMargin = 1*cm doc.rightMargin = 1*cm doc.topMargin = 2*cm doc.bottomMargin = 2*cm multiPageWidth = rl_config.defaultPageSize[0] - doc.leftMargin - doc.rightMargin - 50 story = [] orgFullPageSize = (self.pageWidth, self.pageHeight) t = makeSlideTable(self.slides, orgFullPageSize, multiPageWidth, self.cols) story.append(t) ## #ensure outline visible by default ## if self.showOutline: ## doc.canv.showOutline() doc.build(story) return self.savetofile(outfile, filename)
def saveAsHandout(self): """Write the PDF document, multiple slides per page.""" styleSheet = getSampleStyleSheet() h1 = styleSheet["Heading1"] bt = styleSheet["BodyText"] if self.sourceFilename: filename = os.path.splitext(self.sourceFilename)[0] + ".pdf" outfile = getStringIO() doc = SimpleDocTemplate(outfile, pagesize=rl_config.defaultPageSize, showBoundary=0) doc.leftMargin = 1 * cm doc.rightMargin = 1 * cm doc.topMargin = 2 * cm doc.bottomMargin = 2 * cm multiPageWidth = rl_config.defaultPageSize[0] - doc.leftMargin - doc.rightMargin - 50 story = [] orgFullPageSize = (self.pageWidth, self.pageHeight) t = makeSlideTable(self.slides, orgFullPageSize, multiPageWidth, self.cols) story.append(t) ## #ensure outline visible by default ## if self.showOutline: ## doc.canv.showOutline() doc.build(story) return self.savetofile(outfile, filename)
def print_mass_pay(request, year): """ This function contains the required methods to create a PDF report. It will be merged with the salary app some time later. """ def sch (c): try: return c.permanent and c.permanent.organization_serving() except: return c.organization_serving() payment_codes = PaymentCode.objects.all() category_titles = PaymentCategoryTitle.objects.all() emp = Employee.objects.get(id=request.session['matched_employee_id']) try: emptype = Permanent.objects.get(parent_id=emp.id) except Permanent.DoesNotExist: try: emptype = NonPermanent.objects.get(parent_id=emp.id) except NonPermanent.DoesNotExist: try: emptype = Administrative.objects.get(parent_id=emp.id) except Administrative.DoesNotExist: emptype = 0 except: raise emp_payments = rprts_from_user(emp.id, year, '11,12,21') u = set([x['employee_id'] for x in emp_payments]) y = {x['employee_id']: x['year'] for x in emp_payments} dict_emp = {c.id: [c.lastname, c.firstname, c.vat_number, c.fathername, c.address, c.tax_office, u'%s' % c.profession, u'%s' % c.profession.description, c.telephone_number1, sch(c)] for c in Employee.objects.filter(id__in=u)} elements = [] reports = [] for empx in u: r_list = calc_reports(filter(lambda s: s['employee_id'] == empx, emp_payments)) hd = r_list[0] ft = [r_list[-2]] + [r_list[-1]] dt = r_list del dt[0] del dt[-2] del dt[-1] newlist = [] output = dict() for sublist in dt: try: output[sublist[0]] = map(operator.add, output[sublist[0]], sublist[1:]) except KeyError: output[sublist[0]] = sublist[1:] for key in output.keys(): newlist.append([key] + output[key]) newlist.sort(key=lambda x: x[0], reverse=True) r_list = [hd] + newlist + ft report = {} report['report_type'] = '1' report['type'] = '' report['year'] = y[empx] report['emp_type'] = 0 report['vat_number'] = dict_emp[empx][2] report['lastname'] = dict_emp[empx][0] report['firstname'] = dict_emp[empx][1] report['fathername'] = dict_emp[empx][3] report['address'] = dict_emp[empx][4] report['tax_office'] = dict_emp[empx][5] report['profession'] = ' '.join([dict_emp[empx][6], dict_emp[empx][7]]) report['telephone_number1'] = dict_emp[empx][8] report['rank'] = None report['net_amount1'] = '' report['net_amount2'] = '' report['organization_serving'] = dict_emp[empx][9] report['payment_categories'] = r_list reports.append(report) response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=pay_report_%s.pdf' % year registerFont(TTFont('DroidSans', os.path.join(settings.MEDIA_ROOT, 'DroidSans.ttf'))) registerFont(TTFont('DroidSans-Bold', os.path.join(settings.MEDIA_ROOT, 'DroidSans-Bold.ttf'))) doc = SimpleDocTemplate(response, pagesize=A4) doc.topMargin = 0.5 * cm doc.bottomMargin = 0.5 * cm doc.leftMargin = 1.5 * cm doc.rightMargin = 1.5 * cm doc.pagesize = landscape(A4) if year == '2012': style = getSampleStyleSheet() style.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=12)) elements = [Paragraph(u'ΠΑΡΑΚΑΛΟΥΜΕ ΑΠΕΥΘΥΝΘΕΙΤΕ ΣΤΗΝ ΥΠΗΡΕΣΙΑ ΓΙΑ ΤΗΝ ΜΙΣΘΟΛΟΓΙΚΗ ΚΑΤΑΣΤΑΣΗ ΤΟΥ 2012', style['Center'])] else: elements = generate_pdf_landscape_structure(reports) doc.build(elements) return response
def print_exp_report(request): emptype = NonPermanent.objects.select_related().get(parent_id=request.session['matched_employee_id']) response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=exp_report.pdf' registerFont(TTFont('DroidSans', os.path.join(settings.MEDIA_ROOT, 'DroidSans.ttf'))) registerFont(TTFont('DroidSans-Bold', os.path.join(settings.MEDIA_ROOT, 'DroidSans-Bold.ttf'))) doc = SimpleDocTemplate(response, pagesize=A4) doc.topMargin = 1.0 * cm doc.bottomMargin = 1.0 * cm doc.leftMargin = 1.5 * cm doc.rightMargin = 1.5 * cm elements = [] logo = os.path.join(settings.MEDIA_ROOT, "logo.png") width, height = A4 head_logo = getSampleStyleSheet() head_logo.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=8)) heading_style = getSampleStyleSheet() heading_style.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans-Bold', fontSize=12)) heading_style.add(ParagraphStyle(name='Spacer', spaceBefore=5, spaceAfter=5, fontName='DroidSans-Bold', fontSize=12)) signature = getSampleStyleSheet() signature.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=10)) tbl_style = getSampleStyleSheet() tbl_style.add(ParagraphStyle(name='Left', alignment=TA_LEFT, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='Right', alignment=TA_RIGHT, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='BoldLeft', alignment=TA_LEFT, fontName='DroidSans-Bold', fontSize=10)) tbl_style.add(ParagraphStyle(name='BoldRight', alignment=TA_RIGHT, fontName='DroidSans-Bold', fontSize=10)) tsl = [('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONT', (0, 0), (-1, 0), 'DroidSans'), ('FONTSIZE', (0, 0), (-1, 0), 8), ('BOTTOMPADDING', (0, 0), (-1, -1), 0), ('TOPPADDING', (0, 0), (-1, -1), 0)] tsh = [('ALIGN', (1, 1), (-1, -1), 'LEFT'), ('BOX', (0, 0), (-1, -1), 0.25, colors.black)] ts = [('ALIGN', (1, 1), (-1, -1), 'LEFT'), ('FONT', (0, 0), (-1, 0), 'DroidSans'), ('BOX', (0, 0), (-1, -1), 0.25, colors.black), ('GRID', (0, 0), (-1, -1), 0.5, colors.black)] tsf = [('ALIGN', (1, 1), (-1, -1), 'CENTER')] im = Image(logo) im.drawHeight = 1.25 * cm im.drawWidth = 1.25 * cm data = [] #today = datetime.date.today() date_plus1 = emptype.current_placement().date_to data.append([Paragraph(u'Ρόδος, %s / %s / %s' % (date_plus1.day, date_plus1.month, date_plus1.year), tbl_style['Left'])]) data.append([Paragraph(u' ', heading_style['Spacer'])]) data.append([Paragraph(u' ', heading_style['Spacer'])]) data.append([Paragraph(u'Αρ. Πρωτ.: %s' % protocol_number(emptype.order().order_end_manager), tbl_style['Left'])]) tableh = Table(data, style=tsl, colWidths=[6.0 * cm]) data = [] data.append([im, '', '']) data.append([Paragraph(u'ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ', head_logo['Center']), '', Paragraph(u'Ρόδος, %s / %s / %s' % (date_plus1.day, date_plus1.month, date_plus1.year), tbl_style['Left'])]) data.append([Paragraph(u'ΠΕΡΙΦΕΡΕΙΑΚΗ ΔΙΕΥΘΥΝΣΗ ΠΡΩΤΟΒΑΘΜΙΑΣ', head_logo['Center']), '', Paragraph(u'Αρ. Πρωτ.: %s' % protocol_number(emptype.order().order_end_manager), tbl_style['Left'])]) data.append([Paragraph(u'ΚΑΙ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΝΟΤΙΟΥ ΑΙΓΑΙΟΥ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΔΙΕΥΘΥΝΣΗ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΔΩΔΕΚΑΝΗΣΟΥ', head_logo['Center']), Paragraph(u'ΠΡΟΣ:', tbl_style['BoldRight']), Paragraph(u'%s %s' % (emptype.lastname, emptype.firstname), tbl_style['BoldLeft'])]) table0 = Table(data, style=tsl, colWidths=[8.0 * cm, 5.0 * cm, 6.0 * cm]) elements.append(table0) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Ταχ. Διεύθυνση: %s' % SETTINGS['address'], tbl_style['Left'])) elements.append(Paragraph(u'Πληροφορίες: %s' % SETTINGS['substitutes_contact_person'], tbl_style['Left'])) elements.append(Paragraph(u'Τηλέφωνο: %s' % SETTINGS['substitutes_contact_telephone_number'], tbl_style['Left'])) elements.append(Paragraph(u'Email: %s' % SETTINGS['email_substitutes'], tbl_style['Left'])) elements.append(Paragraph(u'Fax: %s' % SETTINGS['fax_number'], tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'ΘΕΜΑ: Αυτοδίκαιη Απόλυση', tbl_style['BoldLeft'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Σας ανακοινώνουμε ότι με την ταυτάριθμη απόφαση της Διεύθυνσης Δευτεροβάθμιας Εκπαίδευσης %s απολύεστε αυτοδίκαια και χωρίς καμία αποζημίωση από το Δημόσιο από τη θέση του/της προσωρινού/ης αναπληρωτή/τριας καθηγητή/τριας την %s/%s/%s.' % (SETTINGS['dide_place'], emptype.current_placement().date_to.day, emptype.current_placement().date_to.month, emptype.current_placement().date_to.year), tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'ΘΕΜΑ: Βεβαίωση Προϋπηρεσίας', tbl_style['BoldLeft'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) hours_type = '' if emptype.type().id == 1: hours_type = u'(23 ώρες την εβδομάδα)' elements.append(Paragraph(u'Σας ανακοινώνουμε ότι, όπως προκύπτει από το αρχείο που τηρείται στην υπηρεσία μας, ο/η %s %s με όνομα πατρός %s του κλάδου %s %s τοποθετήθηκε στο %s ως %s %s με σχέση εργασίας ιδιωτικού δικαίου ορισμένου χρόνου και υπηρέτησε από %s/%s/%s έως %s/%s/%s.' % (emptype.lastname, emptype.firstname, emptype.fathername, emptype.profession, emptype.profession.description, emptype.current_placement(), emptype.type(), hours_type, emptype.current_placement().date_from.day,emptype.current_placement().date_from.month,emptype.current_placement().date_from.year, emptype.current_placement().date_to.day, emptype.current_placement().date_to.month,emptype.current_placement().date_to.year), tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση διορισμού %s: %s %s/%s/%s' % (SETTINGS['ministry_title'], emptype.order().order, emptype.order().date.day, emptype.order().date.month, emptype.order().date.year), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση τοποθέτησης Διευθυντή Δ.Ε. Δωδεκανήσου: %s' % emptype.order().order_start_manager, tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση απόλυσης Διευθυντή Δ.Ε. Δωδεκανήσου: %s' % emptype.order().order_end_manager, tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) if emptype.current_placement().substituteplacement.date_from_show: elements.append(Paragraph(u'Ημερομηνία ανάληψης υπηρεσίας: %s/%s/%s' % (emptype.current_placement().substituteplacement.date_from_show.day, emptype.current_placement().substituteplacement.date_from_show.month, emptype.current_placement().substituteplacement.date_from_show.year), tbl_style['Left'])) else: elements.append(Paragraph(u'Ημερομηνία ανάληψης υπηρεσίας: %s/%s/%s' % (emptype.current_placement().date_from.day, emptype.current_placement().date_from.month, emptype.current_placement().date_from.year), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Χρόνος προϋπηρεσίας με βάση την υπουργική απόφαση: %s' % emptype.experience(), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Το πλήρες ωράριο εβδομαδιαίας διδακτικής απασχόλησης των εκπαιδευτικών της Δευτεροβάθμιας Εκπαίδευσης κλάδων ΠΕ που ισχύει σύμφωνα με τον Ν.4152/2013 είναι 23 ώρες.', tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Η βεβαίωση αυτή χορηγείται ύστερα από αίτηση του/της ενδιαφερόμενου/ης προκειμένου να τη χρησιμοποιήσει ως δικαιολογητικό για την αναγνώριση της προϋπηρεσίας του/της.', tbl_style['Justify'])) #elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) data = [] sign = os.path.join(settings.MEDIA_ROOT, "signature.png") im = Image(sign) im.drawHeight = 3.2 * cm im.drawWidth = 6.5 * cm data.append([Paragraph(u' ', signature['Center']) ,im]) table6 = Table(data, style=tsf, colWidths=[10.0 * cm, 7.0 * cm]) elements.append(table6) #elements.append(Paragraph(u' ', heading_style['Spacer'])) #elements.append(Paragraph(u' ', heading_style['Spacer'])) #elements.append(Paragraph(u'ΚΟΙΝΟΠΟΙΗΣΗ', tbl_style['BoldLeft'])) #elements.append(Paragraph(u'1. %s' % emptype.current_placement(), tbl_style['Left'])) #elements.append(Paragraph(u'2. Α.Φ.', tbl_style['Left'])) if emptype.order().order_type == 3: logo = os.path.join(settings.MEDIA_ROOT, "espa2.jpg") im = Image(logo) im.drawHeight = 3.0 * cm im.drawWidth = 16.3 * cm elements.append(im) elements.append(PageBreak()) doc.build(elements) return response
def print_mass_pay(request, year): """ This function contains the required methods to create a PDF report. It will be merged with the salary app some time later. """ def sch(c): try: return c.permanent and c.permanent.organization_serving() except: return c.organization_serving() payment_codes = PaymentCode.objects.all() category_titles = PaymentCategoryTitle.objects.all() emp = Employee.objects.get(id=request.session['matched_employee_id']) try: emptype = Permanent.objects.get(parent_id=emp.id) except Permanent.DoesNotExist: try: emptype = NonPermanent.objects.get(parent_id=emp.id) except NonPermanent.DoesNotExist: try: emptype = Administrative.objects.get(parent_id=emp.id) except Administrative.DoesNotExist: emptype = 0 except: raise emp_payments = rprts_from_user(emp.id, year, '11,12,21') u = set([x['employee_id'] for x in emp_payments]) y = {x['employee_id']: x['year'] for x in emp_payments} dict_emp = { c.id: [ c.lastname, c.firstname, c.vat_number, c.fathername, c.address, c.tax_office, u'%s' % c.profession, u'%s' % c.profession.description, c.telephone_number1, sch(c) ] for c in Employee.objects.filter(id__in=u) } elements = [] reports = [] for empx in u: r_list = calc_reports( filter(lambda s: s['employee_id'] == empx, emp_payments)) hd = r_list[0] ft = [r_list[-2]] + [r_list[-1]] dt = r_list del dt[0] del dt[-2] del dt[-1] newlist = [] output = dict() for sublist in dt: try: output[sublist[0]] = map(operator.add, output[sublist[0]], sublist[1:]) except KeyError: output[sublist[0]] = sublist[1:] for key in output.keys(): newlist.append([key] + output[key]) newlist.sort(key=lambda x: x[0], reverse=True) r_list = [hd] + newlist + ft report = {} report['report_type'] = '1' report['type'] = '' report['year'] = y[empx] report['emp_type'] = 0 report['vat_number'] = dict_emp[empx][2] report['lastname'] = dict_emp[empx][0] report['firstname'] = dict_emp[empx][1] report['fathername'] = dict_emp[empx][3] report['address'] = dict_emp[empx][4] report['tax_office'] = dict_emp[empx][5] report['profession'] = ' '.join([dict_emp[empx][6], dict_emp[empx][7]]) report['telephone_number1'] = dict_emp[empx][8] report['rank'] = None report['net_amount1'] = '' report['net_amount2'] = '' report['organization_serving'] = dict_emp[empx][9] report['payment_categories'] = r_list reports.append(report) response = HttpResponse(mimetype='application/pdf') response[ 'Content-Disposition'] = 'attachment; filename=pay_report_%s.pdf' % year registerFont( TTFont('DroidSans', os.path.join(settings.MEDIA_ROOT, 'DroidSans.ttf'))) registerFont( TTFont('DroidSans-Bold', os.path.join(settings.MEDIA_ROOT, 'DroidSans-Bold.ttf'))) doc = SimpleDocTemplate(response, pagesize=A4) doc.topMargin = 0.5 * cm doc.bottomMargin = 0.5 * cm doc.leftMargin = 1.5 * cm doc.rightMargin = 1.5 * cm doc.pagesize = landscape(A4) if year == '2012': style = getSampleStyleSheet() style.add( ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=12)) elements = [ Paragraph( u'ΠΑΡΑΚΑΛΟΥΜΕ ΑΠΕΥΘΥΝΘΕΙΤΕ ΣΤΗΝ ΥΠΗΡΕΣΙΑ ΓΙΑ ΤΗΝ ΜΙΣΘΟΛΟΓΙΚΗ ΚΑΤΑΣΤΑΣΗ ΤΟΥ 2012', style['Center']) ] else: elements = generate_pdf_landscape_structure(reports) doc.build(elements) return response
def print_exp_report(request): emptype = NonPermanent.objects.select_related().get(parent_id=request.session['matched_employee_id']) response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=exp_report.pdf' registerFont(TTFont('DroidSans', os.path.join(settings.MEDIA_ROOT, 'DroidSans.ttf'))) registerFont(TTFont('DroidSans-Bold', os.path.join(settings.MEDIA_ROOT, 'DroidSans-Bold.ttf'))) doc = SimpleDocTemplate(response, pagesize=A4) doc.topMargin = 1.0 * cm doc.bottomMargin = 1.0 * cm doc.leftMargin = 1.5 * cm doc.rightMargin = 1.5 * cm elements = [] logo = os.path.join(settings.MEDIA_ROOT, "logo.png") width, height = A4 head_logo = getSampleStyleSheet() head_logo.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=8)) heading_style = getSampleStyleSheet() heading_style.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans-Bold', fontSize=12)) heading_style.add(ParagraphStyle(name='Spacer', spaceBefore=5, spaceAfter=5, fontName='DroidSans-Bold', fontSize=12)) signature = getSampleStyleSheet() signature.add(ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='DroidSans', fontSize=10)) tbl_style = getSampleStyleSheet() tbl_style.add(ParagraphStyle(name='Left', alignment=TA_LEFT, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='Right', alignment=TA_RIGHT, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY, fontName='DroidSans', fontSize=10)) tbl_style.add(ParagraphStyle(name='BoldLeft', alignment=TA_LEFT, fontName='DroidSans-Bold', fontSize=10)) tbl_style.add(ParagraphStyle(name='BoldRight', alignment=TA_RIGHT, fontName='DroidSans-Bold', fontSize=10)) tsl = [('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONT', (0, 0), (-1, 0), 'DroidSans'), ('FONTSIZE', (0, 0), (-1, 0), 8), ('BOTTOMPADDING', (0, 0), (-1, -1), 0), ('TOPPADDING', (0, 0), (-1, -1), 0)] tsh = [('ALIGN', (1, 1), (-1, -1), 'LEFT'), ('BOX', (0, 0), (-1, -1), 0.25, colors.black)] ts = [('ALIGN', (1, 1), (-1, -1), 'LEFT'), ('FONT', (0, 0), (-1, 0), 'DroidSans'), ('BOX', (0, 0), (-1, -1), 0.25, colors.black), ('GRID', (0, 0), (-1, -1), 0.5, colors.black)] tsf = [('ALIGN', (1, 1), (-1, -1), 'CENTER')] im = Image(logo) im.drawHeight = 1.25 * cm im.drawWidth = 1.25 * cm data = [] date_plus1 = emptype.current_placement().date_to data.append([Paragraph(u'Ρόδος, %s / %s / %s' % (date_plus1.day, date_plus1.month, date_plus1.year), tbl_style['Left'])]) data.append([Paragraph(u' ', heading_style['Spacer'])]) data.append([Paragraph(u' ', heading_style['Spacer'])]) data.append([Paragraph(u'Αρ. Πρωτ.: %s' % protocol_number(emptype.order().order_end_manager), tbl_style['Left'])]) tableh = Table(data, style=tsl, colWidths=[6.0 * cm]) data = [] data.append([im, '', '']) data.append([Paragraph(u'ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ', head_logo['Center']), '', Paragraph(u'Ρόδος, %s / %s / %s' % (date_plus1.day, date_plus1.month, date_plus1.year), tbl_style['Left'])]) data.append([Paragraph(u'ΠΕΡΙΦΕΡΕΙΑΚΗ ΔΙΕΥΘΥΝΣΗ ΠΡΩΤΟΒΑΘΜΙΑΣ', head_logo['Center']), '', Paragraph(u'Αρ. Πρωτ.: %s' % protocol_number(emptype.order().order_end_manager), tbl_style['Left'])]) data.append([Paragraph(u'ΚΑΙ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΝΟΤΙΟΥ ΑΙΓΑΙΟΥ', head_logo['Center']), '', '']) data.append([Paragraph(u'ΔΙΕΥΘΥΝΣΗ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΔΩΔΕΚΑΝΗΣΟΥ', head_logo['Center']), Paragraph(u'ΠΡΟΣ:', tbl_style['BoldRight']), Paragraph(u'%s %s' % (emptype.lastname, emptype.firstname), tbl_style['BoldLeft'])]) table0 = Table(data, style=tsl, colWidths=[8.0 * cm, 5.0 * cm, 6.0 * cm]) elements.append(table0) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Ταχ. Διεύθυνση: %s' % SETTINGS['address'], tbl_style['Left'])) elements.append(Paragraph(u'Πληροφορίες: %s' % SETTINGS['substitutes_contact_person'], tbl_style['Left'])) elements.append(Paragraph(u'Τηλέφωνο: %s' % SETTINGS['substitutes_contact_telephone_number'], tbl_style['Left'])) elements.append(Paragraph(u'Email: %s' % SETTINGS['email_substitutes'], tbl_style['Left'])) elements.append(Paragraph(u'Fax: %s' % SETTINGS['fax_number'], tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'ΘΕΜΑ: Αυτοδίκαιη Απόλυση', tbl_style['BoldLeft'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Σας ανακοινώνουμε ότι με την ταυτάριθμη απόφαση της Διεύθυνσης Δευτεροβάθμιας Εκπαίδευσης %s απολύεστε αυτοδίκαια και χωρίς καμία αποζημίωση από το Δημόσιο από τη θέση του/της προσωρινού/ης αναπληρωτή/τριας καθηγητή/τριας την %s/%s/%s.' % (SETTINGS['dide_place'], emptype.current_placement().date_to.day, emptype.current_placement().date_to.month, emptype.current_placement().date_to.year), tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'ΘΕΜΑ: Βεβαίωση Προϋπηρεσίας', tbl_style['BoldLeft'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) hours_type = '' if emptype.type().id == 1: hours_type = u'(23 ώρες την εβδομάδα)' elements.append(Paragraph(u'Σας ανακοινώνουμε ότι, όπως προκύπτει από το αρχείο που τηρείται στην υπηρεσία μας, ο/η %s %s με όνομα πατρός %s του κλάδου %s %s τοποθετήθηκε στο %s ως %s %s με σχέση εργασίας ιδιωτικού δικαίου ορισμένου χρόνου και υπηρέτησε από %s/%s/%s έως %s/%s/%s.' % (emptype.lastname, emptype.firstname, emptype.fathername, emptype.profession, emptype.profession.description, emptype.current_placement(), emptype.type(), hours_type, emptype.current_placement().date_from.day,emptype.current_placement().date_from.month,emptype.current_placement().date_from.year, emptype.current_placement().date_to.day, emptype.current_placement().date_to.month,emptype.current_placement().date_to.year), tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση διορισμού %s: %s %s/%s/%s' % (SETTINGS['ministry_title'], emptype.order().order, emptype.order().date.day, emptype.order().date.month, emptype.order().date.year), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση τοποθέτησης Διευθυντή Δ.Ε. Δωδεκανήσου: %s' % emptype.order().order_start_manager, tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Απόφαση απόλυσης Διευθυντή Δ.Ε. Δωδεκανήσου: %s' % emptype.order().order_end_manager, tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) if emptype.current_placement().substituteplacement.date_from_show: elements.append(Paragraph(u'Ημερομηνία ανάληψης υπηρεσίας: %s/%s/%s' % (emptype.current_placement().substituteplacement.date_from_show.day, emptype.current_placement().substituteplacement.date_from_show.month, emptype.current_placement().substituteplacement.date_from_show.year), tbl_style['Left'])) else: elements.append(Paragraph(u'Ημερομηνία ανάληψης υπηρεσίας: %s/%s/%s' % (emptype.current_placement().date_from.day, emptype.current_placement().date_from.month, emptype.current_placement().date_from.year), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Χρόνος προϋπηρεσίας για μισθολογικό κλιμάκιο: %s' % emptype.experience_salary(), tbl_style['Left'])) elements.append(Paragraph(u'Χρόνος προϋπηρεσίας για πίνακες αναπληρωτών: %s' % emptype.experience(), tbl_style['Left'])) # if emptype.current_placement().substituteplacement.date_from_show: # elements.append(Paragraph(u'Χρόνος προϋπηρεσίας για μισθολογικό κλιμάκιο: %s/%s/%s - %s/%s/%s' % (emptype.current_placement().substituteplacement.date_from_show.day, emptype.current_placement().substituteplacement.date_from_show.month, emptype.current_placement().substituteplacement.date_from_show.year, emptype.current_placement().date_to.day, emptype.current_placement().date_to.month, emptype.current_placement().date_to.year), tbl_style['Left'])) # else: # elements.append(Paragraph(u'Χρόνος προϋπηρεσίας για μισθολογικό κλιμάκιο: %s/%s/%s - %s/%s/%s' % (emptype.current_placement().date_from.day, emptype.current_placement().date_from.month, emptype.current_placement().date_from.year, emptype.current_placement().date_to.day, emptype.current_placement().date_to.month, emptype.current_placement().date_to.year), tbl_style['Left'])) # elements.append(Paragraph(u'Χρόνος προϋπηρεσίας για πίνακες αναπληρωτών: %s/%s/%s - %s/%s/%s' % (emptype.current_placement().date_from.day, emptype.current_placement().date_from.month, emptype.current_placement().date_from.year, emptype.current_placement().date_to.day, emptype.current_placement().date_to.month, emptype.current_placement().date_to.year), tbl_style['Left'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Το πλήρες ωράριο εβδομαδιαίας διδακτικής απασχόλησης των εκπαιδευτικών της Δευτεροβάθμιας Εκπαίδευσης κλάδων ΠΕ που ισχύει σύμφωνα με τον Ν.4152/2013 είναι 23 ώρες.', tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) elements.append(Paragraph(u'Η βεβαίωση αυτή χορηγείται ύστερα από αίτηση του/της ενδιαφερόμενου/ης προκειμένου να τη χρησιμοποιήσει ως δικαιολογητικό για την αναγνώριση της προϋπηρεσίας του/της.', tbl_style['Justify'])) elements.append(Paragraph(u' ', heading_style['Spacer'])) data = [] sign = os.path.join(settings.MEDIA_ROOT, "signature.png") im = Image(sign) im.drawHeight = 3.2 * cm im.drawWidth = 6.5 * cm data.append([Paragraph(u' ', signature['Center']) ,im]) table6 = Table(data, style=tsf, colWidths=[10.0 * cm, 7.0 * cm]) elements.append(table6) if emptype.order().order_type == 3: logo = os.path.join(settings.MEDIA_ROOT, "espa2.jpg") im = Image(logo) im.drawHeight = 3.0 * cm im.drawWidth = 16.3 * cm elements.append(im) elements.append(PageBreak()) doc.build(elements) return response