Esempio n. 1
0
    def build_after_table(self):
        first_warning_text = f"Es gelten die Allgemeinen Verkaufsbedingungen der " \
                             f"{self.client.name}.<br/>"\
                             f"Verkauf erfolgt unter Zugrundelegung unserer Allgemeinen Geschäftsbedingungen.<br/>"\
                             f"AGB's gelesen und Akzeptiert.<br/>"
        if self.client.contact.website_conditions_link is not None\
                and self.client.contact.website_conditions_link != "":
            abg_text = f"Es besteht auch die Möglichkeit, die Bedingungen unter folgender Internet-Adresse " \
                       f"einzusehen, herunterzuladen oder auszudrucken: " \
                       f"{self.client.contact.website_conditions_link}."
            first_warning_text += abg_text

        first_warning_paragraph = Paragraph(first_warning_text, size_ten_helvetica)

        first_warning_data = [
            [first_warning_paragraph, Paragraph("", size_ten_helvetica)],
        ]

        first_warning_table = Table(first_warning_data, colWidths=[430, 10], spaceBefore=20)

        first_warning_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ])
        )

        self.story.extend([first_warning_table])
Esempio n. 2
0
    def build_before_table(self):
        delivery_address_object = self.client.contact.delivery_address

        if self.order.delivery_address is not None:
            delivery_address_object = self.order.delivery_address

        delivery_address_html_string = get_delivery_address_html_string_from_object(
            delivery_address_object)
        delivery_date = self.order.delivery_date
        terms_of_delivery = self.order.terms_of_delivery
        terms_of_payment = self.order.terms_of_payment

        table_data = [
            [
                Paragraph(
                    "<br/>Wichtig: Bitte immer beachten!!! <br/>Jeder Lieferverzug ist uns unverzüglich "
                    "schriftlich mitzuteilen.", size_nine_helvetica)
            ],
            [
                Paragraph(
                    f"<br/><b>Liefertermin:</b> {delivery_date.strftime('%d.%m.%Y')}<br/>",
                    style=size_twelve_helvetica_bold),
            ],
            [
                Paragraph("<br/>Lieferadresse: ", style=size_nine_helvetica),
            ],
            [
                Paragraph(delivery_address_html_string,
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"<br/>Lieferbedingungen: {terms_of_delivery}<br/>",
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"Zahlungsbedingungen: {terms_of_payment}<br/>",
                          style=size_nine_helvetica),
            ],
        ]
        table = Table(table_data)
        table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))
        table_width, table_height = table.wrap(440, 0)

        self.story.append(table)
Esempio n. 3
0
    def build_before_table(self):
        warning_text = "<br/>Sehr geehrte Damen, sehr geehrte Herren, wir danken für Ihren Auftrag, den wir unter " \
                       "Zugrundelegung unserer vereinbarten Liefer- und Zahlungsbedingungen und vorbehaltlich einer " \
                       "durchzuführenden internen Abstimmung Ihrer Bestellung annehmen. Die Preise auf dieser " \
                       "Auftragsbestätigung verstehen sich als Netto- Preise nach Abzug von eventuell bestehenden " \
                       "Rechnungsrabatten."
        warning_paragraph = Paragraph(warning_text, size_nine_helvetica)

        delivery_address_object = self.mission.customer.contact.delivery_address

        delivery_address_html_string = get_delivery_address_html_string_from_object(
            delivery_address_object)
        delivery_date = self.delivery_date
        terms_of_delivery = self.mission.terms_of_delivery
        terms_of_payment = self.mission.terms_of_payment

        table_data = [
            [warning_paragraph],
            [
                Paragraph(
                    f"<br/><b>Liefertermin:</b> {delivery_date.strftime('%d.%m.%Y')}<br/>",
                    style=size_twelve_helvetica_bold),
            ],
            [
                Paragraph("<br/>Lieferadresse: ", style=size_nine_helvetica),
            ],
            [
                Paragraph(delivery_address_html_string,
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"<br/>Lieferbedingungen: {terms_of_delivery}<br/>",
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"Zahlungsbedingungen: {terms_of_payment}<br/>",
                          style=size_nine_helvetica),
            ],
        ]
        table = Table(table_data)
        table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))
        table_width, table_height = table.wrap(440, 0)

        self.story.append(table)
Esempio n. 4
0
    def build_before_table(self):
        delivery_address_object = self.mission.customer.contact.delivery_address

        delivery_address_html_string = get_delivery_address_html_string_from_object(
            delivery_address_object)
        delivery_date = self.mission.delivery_date
        terms_of_delivery = self.mission.terms_of_delivery
        terms_of_payment = self.mission.terms_of_payment

        table_data = [
            [
                Paragraph(
                    f"<br/><b>Liefertermin:</b> {delivery_date.strftime('%d.%m.%Y')}<br/>",
                    style=size_twelve_helvetica_bold),
            ],
            [
                Paragraph("<br/>Lieferadresse: ", style=size_nine_helvetica),
            ],
            [
                Paragraph(delivery_address_html_string,
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"<br/>Lieferbedingungen: {terms_of_delivery}<br/>",
                          style=size_nine_helvetica),
            ],
            [
                Paragraph(f"Zahlungsbedingungen: {terms_of_payment}<br/>",
                          style=size_nine_helvetica),
            ],
        ]
        table = Table(table_data)
        table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))
        table_width, table_height = table.wrap(440, 0)

        self.story.append(table)
Esempio n. 5
0
    def build_table(self):
        colwidths = [30, 70, 55, 100, 60, 65, 60]

        right_align_paragraph_style = ParagraphStyle("adsadsa", alignment=TA_RIGHT, fontName="Helvetica", fontSize=9,
                                                     rightIndent=17)
        header = [
            Paragraph("<b>Pos</b>", style=size_nine_helvetica),
            Paragraph("<b>EAN / SKU</b>", style=size_nine_helvetica),
            Paragraph("<b>Zustand</b>", style=size_nine_helvetica),
            Paragraph("<b>Bezeichnung</b>", style=size_nine_helvetica),
            Paragraph("<b>Menge</b>", style=right_align_paragraph_style),
            Paragraph("<b>Einzelpreis</b>", style=right_align_paragraph_style),
            Paragraph("<b>Betrag</b>", style=right_align_paragraph_style),
        ]

        data = []
        data.append(header)
        pos = 1

        for productmission in self.mission.productmission_set.all():

            data.append(
                [
                    Paragraph(str(pos), style=size_nine_helvetica),
                    Paragraph(productmission.get_ean_or_sku(), style=size_nine_helvetica),
                    Paragraph(productmission.state, style=size_nine_helvetica),
                    Paragraph(productmission.product.title or "", style=size_nine_helvetica),
                    Paragraph(str(productmission.amount), style=right_align_paragraph_style),
                    Paragraph(format_number_thousand_decimal_points(productmission.netto_price),
                              style=right_align_paragraph_style),
                    Paragraph(format_number_thousand_decimal_points(
                        (productmission.netto_price * productmission.amount)),
                              style=right_align_paragraph_style),
                ],
            )

            pos += 1
        table = LongTable(data, splitByRow=True, colWidths=colwidths, repeatRows=1)
        table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ])
        )

        total_netto = 0

        for productmission in self.mission.productmission_set.all():
            total_netto += productmission.amount * productmission.netto_price

        horizontal_line_betrag = Drawing(20, 1)
        horizontal_line_betrag.add(Line(425, 0, 200, 0))

        betrag_data = [
            [
                Paragraph(f"Nettobetrag",
                          style=right_align_paragraph_style),
                Paragraph(f"{format_number_thousand_decimal_points(total_netto)} €", style=right_align_paragraph_style),
            ],
            [
                Paragraph(f"+ Umsatzsteuer (19,00%)", style=right_align_paragraph_style),
                Paragraph(f"{format_number_thousand_decimal_points(total_netto*0.19)} €",
                          style=right_align_paragraph_style),
            ],
            [
                horizontal_line_betrag,
            ],
            [
                Paragraph(f"GESAMT", style=right_align_bold_paragraph_style),
                Paragraph(f"{format_number_thousand_decimal_points(total_netto+(total_netto*0.19))} €",
                          style=right_align_bold_paragraph_style),
            ]
        ]
        betrag_table = Table(betrag_data, colWidths=[None, 70, 75])
        betrag_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ])
        )

        self.story.extend([table, mission_horizontal_line, KeepTogether(betrag_table)])
Esempio n. 6
0
    def build_after_table(self):
        first_warning_text = "Die gelieferte Ware bleibt unser Eigentum bis zur Bezahlung sämtlicher auch künftig"\
                             " entstehender Forderungen aus unserer Geschäftsverbindung. Reklamationen können nur "\
                             "innerhalb von 2 Tagen nach Lieferung anerkannt werden."

        first_warning_paragraph = Paragraph(first_warning_text,
                                            size_ten_helvetica)

        first_warning_data = [
            [first_warning_paragraph,
             Paragraph("", size_ten_helvetica)],
        ]

        first_warning_table = Table(first_warning_data, colWidths=[430, 10])

        first_warning_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        second_warning_text = f"Reklamation von Waren können wir nur anerkennen, wenn diese unverzüglich nach der"\
                              f" Anlieferung erfolgen. Bitte prüfen Sie bei Lieferungen" \
                              f" unmittelbar die Ordnungsmäßigkeit"\
                              f" der Lieferung. Sollten Mängel oder Schäden an von uns gelieferten Waren festgestellt "\
                              f"werden, bitten wir Sie uns umgehend darüber zu informieren." \
                              f" Von Rücksendungen - ohne unsere"\
                              f" vorherige Zustimmung - bitten wir abzusehen."\
                              f"<br/><br/>"\
                              f"Retouren müssen nach unseren Richtlinien ordnungsgemäß zurück gesendet werden."

        second_warning_paragraph = Paragraph(second_warning_text,
                                             size_ten_helvetica)

        second_warning_data = [[
            second_warning_paragraph,
            Paragraph("", size_ten_helvetica)
        ]]

        second_warning_table = Table(second_warning_data, colWidths=[430, 10])

        second_warning_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        warning_paragraphs = []

        warning_list = [
            f"Bitte beachten Sie unsere Anliegerrichtlinien:<br/><br/>",
            f"Anlieferungen aufgrund von Bestellungen bedürfen einer Lieferankündigung von mindestens 24 Stunden "
            f"vor Eintreffen der Sendung. Die Ankündigung muss dabei per Mail an [email protected] gerichtet "
            f"sein und Angaben über Bestellnummer, Lieferanschrift, Lieferdatum sowie Anzahl der Paletten und "
            f"Packstücke enthalten.<br/><br/>",
            f"Die Anlieferung kann von Montag bis Freitag in der Zeit von 08:00 bis 17:00 Uhr erfolgen. Anlieferungen"
            f" außerhalb dieser Zeiten sind nur möglich, wenn ein richtlinienkonformes Anliefern durch Verschulden"
            f" der btc GmbH nicht möglich war oder in Ausnahmefällen eine Absprache mit der btc Logistik, "
            f"Bereich Wareneingang erfolgt ist.<br/><br/>",
            f"Jeder Lieferverzug ist unverzüglich schriftlich mitzuteilen.",
        ]

        for warning_string in warning_list:
            warning_paragraph = Paragraph(warning_string, size_ten_helvetica)
            warning_paragraphs.append(warning_paragraph)
        self.story.extend([two_new_lines, two_new_lines])
        self.story.extend(warning_paragraphs)
Esempio n. 7
0
    def build_after_table(self):
        first_warning_text = "Die gelieferte Ware bleibt unser Eigentum bis zur Bezahlung sämtlicher auch künftig"\
                             " entstehender Forderungen aus unserer Geschäftsverbindung. Reklamationen können nur "\
                             "innerhalb von 2 Tagen nach Lieferung anerkannt werden."

        first_warning_paragraph = Paragraph(first_warning_text,
                                            size_ten_helvetica)

        first_warning_data = [
            [first_warning_paragraph,
             Paragraph("", size_ten_helvetica)],
        ]

        first_warning_table = Table(first_warning_data,
                                    colWidths=[430, 10],
                                    spaceBefore=20)

        first_warning_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        second_warning_text = f"Reklamation von Waren können wir nur anerkennen, wenn diese unverzüglich nach der"\
                              f" Anlieferung erfolgen. Bitte prüfen Sie bei Lieferungen" \
                              f" unmittelbar die Ordnungsmäßigkeit"\
                              f" der Lieferung. Sollten Mängel oder Schäden an von uns gelieferten Waren festgestellt "\
                              f"werden, bitten wir Sie uns umgehend darüber zu informieren." \
                              f" Von Rücksendungen - ohne unsere"\
                              f" vorherige Zustimmung - bitten wir abzusehen."\
                              f"<br/><br/>"\
                              f"Retouren müssen nach unseren Richtlinien ordnungsgemäß zurück gesendet werden."

        second_warning_paragraph = Paragraph(second_warning_text,
                                             size_ten_helvetica)

        second_warning_data = [[
            second_warning_paragraph,
            Paragraph("", size_ten_helvetica)
        ]]

        second_warning_table = Table(second_warning_data,
                                     colWidths=[430, 10],
                                     spaceBefore=20)

        second_warning_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        driver_form_title = Paragraph(
            "<br/><br/><b>Ware vollständig erhalten laut Lieferschein</b><br/><br/>",
            size_ten_helvetica)

        driver_data = [
            [driver_form_title],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Name Fahrer", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Kennzeichen", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Spedition", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Unterschrift Fahrer/Stempel", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            # [Paragraph(f"Name Fahrer:{underline}", size_ten_helvetica)],
            # [],
            # [Paragraph(f"Kennzeichen:{underline}", size_ten_helvetica)],
            # [],
            # [Paragraph(f"Spedition:{underline}", size_ten_helvetica)],
            # [],
            # [],
            # [Paragraph(f"Unterschrift Fahrer/Stempel:{underline}", size_ten_helvetica)],
            # []
        ]

        driver_table = Table(driver_data, colWidths=[320, 100])

        driver_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        quality_form_title = Paragraph(
            "<br/><br/><b>Qualitätskontrolle</b><br/><br/>",
            size_ten_helvetica)

        quality_data = [
            [quality_form_title],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Name Kommissionierer", size_nine_helvetica),
                Paragraph("Datum/Unterschrift", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Name Kontrolleur", size_nine_helvetica),
                Paragraph("Datum/Unterschrift", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Name Verlader", size_nine_helvetica),
                Paragraph("Datum/Unterschrift", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
            [
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph(f"{underline}___", size_ten_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [
                Paragraph("Name Verantwortlicher", size_nine_helvetica),
                Paragraph("Datum/Unterschrift", size_nine_helvetica),
                Paragraph("", size_ten_helvetica)
            ],
            [],
        ]

        quality_form_table = Table(quality_data, colWidths=[195, 240, 0])

        quality_form_table.setStyle(
            TableStyle([
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('VALIGN', (0, 0), (-1, -1), "TOP"),
            ]))

        driver_and_quality_data = [
            [driver_table],
            [quality_form_table],
        ]

        driver_and_quality_table = Table(driver_and_quality_data)

        self.story.extend([
            first_warning_table,
            KeepTogether(driver_and_quality_table), second_warning_table
        ])