Esempio n. 1
0
    def test_generate_proforma(self):
        provider = Provider('Pupik')
        provider.address = 'Kubelikova blah blah blah'
        provider.zip_code = '12655465'
        provider.city = 'Frantisek'
        provider.vat_id = 'CZ8590875682'
        provider.ir = '785684523'
        provider.email = '*****@*****.**'
        provider.bank_account = '2600420569/2010'
        provider.bank_name = 'RB'
        provider.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        client = Client('Kkkk')
        client.summary = 'Bla blah blah'
        client.address = 'Kubelikova blah blah blah'
        client.zip_code = '12655465'
        client.city = 'Frantisek'
        client.vat_id = 'CZ8590875682'
        client.ir = '785684523'
        client.phone = '785684523'
        client.email = '*****@*****.**'
        client.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        invoice = Invoice(client, provider, Creator('blah'))
        invoice.number = 'F20140007'
        invoice.use_tax = True
        invoice.title = u"Proforma faktura"
        invoice.add_item(Item(32, 600.6, description=u"Krátký popis", tax=50))
        invoice.add_item(Item(32, 2.5, tax=20))
        invoice.add_item(
            Item(
                5,
                25.42,
                description=
                u"Dlouhý popis blah blah blah blah blah blah blah blah blah blah blah "
                u"blah blah blah blah blah blah blah blah blah blah blah blah blah blah "
                u"blah blah blah blah blah blah blah blah blah blah blah",
                tax=20,
            ), )
        for i in range(1, 26):
            invoice.add_item(Item(5, 25.42, description=u"Popis", tax=0))
        invoice.specific_symbol = 666
        invoice.date = datetime.date.today()
        invoice.variable_symbol = '000000001'
        invoice.number = 'F20140001'
        invoice.payback = datetime.date.today()
        invoice.currency = u'Kč'
        invoice.currency_locale = 'cs_CZ.UTF-8'
        invoice.rounding_result = True

        tmp_file = NamedTemporaryFile(delete=False)
        pdf = ProformaInvoice(invoice)
        pdf.gen(tmp_file.name, True)

        pdf = PdfFileReader(tmp_file)
        pdf_string = pdf.pages[1].extractText()
        self.assertTrue(u"Celkem s DPH: 32⁄255,-⁄K…" in pdf_string)
Esempio n. 2
0
    def test_generate_proforma(self):
        provider = Provider('Pupik')
        provider.address = 'Kubelikova blah blah blah'
        provider.zip_code = '12655465'
        provider.city = 'Frantisek'
        provider.vat_id = 'CZ8590875682'
        provider.ir = '785684523'
        provider.email = '*****@*****.**'
        provider.bank_account = '2600420569/2010'
        provider.bank_name = 'RB'
        provider.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        client = Client('Kkkk')
        client.summary = 'Bla blah blah'
        client.address = 'Kubelikova blah blah blah'
        client.zip_code = '12655465'
        client.city = 'Frantisek'
        client.vat_id = 'CZ8590875682'
        client.ir = '785684523'
        client.phone = '785684523'
        client.email = '*****@*****.**'
        client.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        invoice = Invoice(client, provider, Creator('blah'))
        invoice.number = 'F20140007'
        invoice.use_tax = True
        invoice.title = u"Proforma faktura"
        invoice.add_item(Item(32, 600.6, description=u"Krátký popis", tax=50))
        invoice.add_item(Item(32, 2.5, tax=20))
        invoice.add_item(
            Item(
                5,
                25.42,
                description=u"Dlouhý popis blah blah blah blah blah blah blah blah blah blah blah "
                            u"blah blah blah blah blah blah blah blah blah blah blah blah blah blah "
                            u"blah blah blah blah blah blah blah blah blah blah blah",
                tax=20,
            ),
        )
        for i in range(1, 26):
            invoice.add_item(Item(5, 25.42, description=u"Popis", tax=0))
        invoice.specific_symbol = 666
        invoice.date = datetime.date.today()
        invoice.variable_symbol = '000000001'
        invoice.number = 'F20140001'
        invoice.payback = datetime.date.today()
        invoice.currency = u'Kč'
        invoice.currency_locale = 'cs_CZ.UTF-8'
        invoice.rounding_result = True

        tmp_file = NamedTemporaryFile(delete=False)
        pdf = ProformaInvoice(invoice)
        pdf.gen(tmp_file.name, True)

        pdf = PdfFileReader(tmp_file)
        pdf_string = pdf.pages[1].extractText()
        self.assertTrue(u"Celkem s DPH: 32⁄255,-⁄K…" in pdf_string)
Esempio n. 3
0
    def test_generate(self):
        provider = Provider('Pupik')
        provider.address = 'Kubelikova blah blah blah'
        provider.zip = '12655465'
        provider.city = 'Frantisek'
        provider.vat_id = 'CZ8590875682'
        provider.ir = '785684523'
        provider.email = '*****@*****.**'
        provider.bank_account = '2600420569/2010'
        provider.bank_name = 'RB'
        provider.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        client = Client('Kkkk')
        client.summary = 'Bla blah blah'
        client.address = 'Kubelikova blah blah blah'
        client.zip = '12655465'
        client.city = 'Frantisek'
        client.vat_id = 'CZ8590875682'
        client.ir = '785684523'
        client.phone = '785684523'
        client.email = '*****@*****.**'
        client.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        invoice = Invoice(client, provider, Creator('blah'))
        invoice.title = u"Testovací faktura"
        invoice.add_item(Item(32, 600.6, description=u"Krátký popis", tax=50))
        invoice.add_item(Item(32, 2.5, tax=20))
        invoice.add_item(
            Item(
                5,
                25.42,
                description=
                u"Dlouhý popis blah blah blah blah blah blah blah blah blah blah blah "
                u"blah blah blah blah blah blah blah blah blah blah blah blah blah blah "
                u"blah blah blah blah blah blah blah blah blah blah blah",
                tax=20))
        for i in range(1, 26):
            invoice.add_item(Item(5, 25.42, description=u"Popis", tax=0))
        invoice.specific_symbol = 666
        invoice.taxable_date = datetime.date.today()
        invoice.variable_symbol = '000000001'
        invoice.number = 'F20140001'
        invoice.payback = datetime.date.today()
        invoice.currency = u'Kč'
        invoice.currency_locale = 'cs_CZ.UTF-8'
        invoice.rounding_result = True

        tmp_file = NamedTemporaryFile(delete=False)
        pdf = SimpleInvoice(invoice)
        pdf.gen(tmp_file.name, True)

        invoice.number = 1
        invoice.reason = u"Položka navíc"
        tmp_file1 = NamedTemporaryFile(delete=False)
        pdf = CorrectingInvoice(invoice)
        pdf.gen(tmp_file1.name)
Esempio n. 4
0
    def test_generate(self):
        provider = Provider('Pupik')
        provider.address = 'Kubelikova blah blah blah'
        provider.zip = '12655465'
        provider.city = 'Frantisek'
        provider.vat_id = 'CZ8590875682'
        provider.ir = '785684523'
        provider.email = '*****@*****.**'
        provider.bank_account = '2600420569/2010'
        provider.bank_name = 'RB'
        provider.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        client = Client('Kkkk')
        client.summary = 'Bla blah blah'
        client.address = 'Kubelikova blah blah blah'
        client.zip = '12655465'
        client.city = 'Frantisek'
        client.vat_id = 'CZ8590875682'
        client.ir = '785684523'
        client.phone = '785684523'
        client.email = '*****@*****.**'
        client.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        invoice = Invoice(client, provider, Creator('blah'))
        invoice.title = u"Testovací faktura"
        invoice.add_item(Item(32, 600.6, description=u"Krátký popis", tax=50))
        invoice.add_item(Item(32, 2.5, tax=20))
        invoice.add_item(Item(5, 25.42,
                              description=u"Dlouhý popis blah blah blah blah blah blah blah blah blah blah blah "
                                          u"blah blah blah blah blah blah blah blah blah blah blah blah blah blah "
                                          u"blah blah blah blah blah blah blah blah blah blah blah",
                              tax=20))
        for i in range(1, 26):
            invoice.add_item(Item(5, 25.42, description=u"Popis", tax=0))
        invoice.specific_symbol = 666
        invoice.taxable_date = datetime.date.today()
        invoice.variable_symbol = '000000001'
        invoice.number = 'F20140001'
        invoice.payback = datetime.date.today()
        invoice.currency = u'Kč'
        invoice.currency_locale = 'cs_CZ.UTF-8'
        invoice.rounding_result = True

        tmp_file = NamedTemporaryFile(delete=False)
        pdf = SimpleInvoice(invoice)
        pdf.gen(tmp_file.name, True)

        invoice.number = 1
        invoice.reason = u"Položka navíc"
        tmp_file1 = NamedTemporaryFile(delete=False)
        pdf = CorrectingInvoice(invoice)
        pdf.gen(tmp_file1.name)
Esempio n. 5
0
def generate_invoice(invoice):
    DIR = os.path.dirname(__file__)

    client = Client(
        invoice.company_name,
        division=invoice.company_address_recipient,
        country=invoice.country,
        address=" ".join(
            filter(
                None,
                (invoice.company_address_street,
                 invoice.company_address_street_number),
            )),
        zip_code=str(invoice.company_address_psc or ""),
        city=invoice.company_address_city,
        ir=invoice.company_ico,
        vat_id=invoice.company_dic,
        phone=invoice.telephone,
        email=invoice.email,
        note=invoice.client_note,
    )

    if invoice.order_number:
        client.note += "\nČíslo objednávky: %s" % invoice.order_number

    provider = Provider(
        "AutoMat, z.s.",
        email="*****@*****.**",
        address="Vodičkova 704/36",
        zip_code="110 00",
        city="Praha 1",
        bank_name="Fio banka",
        bank_account="2601085491",
        bank_code="2010",
        vat_id="CZ22670319",
        ir="22670319",
        phone="212 240 666",
        logo_filename=os.path.join(DIR, "static/img/logo_am.png"),
        note=
        "Spolek je veden u Městského soudu v Praze pod spisovou značkou L 18119. "
        "AutoMat - společně s vámi tvoříme město, ve kterém chceme žít."
        "\nhttps://www.auto-mat.cz",
    )

    creator = Creator(
        "Klára Dušáková",
        stamp_filename=os.path.join(DIR, "static/img/podpis.png"),
    )

    invoice_gen = Invoice(client, provider, creator)
    invoice_gen.title = "Faktura %s/%03d" % (
        invoice.exposure_date.year,
        invoice.sequence_number,
    )
    invoice_gen.variable_symbol = invoice.variable_symbol
    invoice_gen.number = invoice.document_number()
    invoice_gen.date = invoice.exposure_date
    invoice_gen.payback = invoice.payback_date
    invoice_gen.taxable_date = invoice.taxable_date
    invoice_gen.rounding_result = True
    invoice_gen.rounding_strategy = decimal.ROUND_HALF_UP
    invoice_gen.use_tax = True
    invoice_gen.currency_locale = "cs_CZ.UTF-8"
    invoice_gen.paytype = "bankovním převodem"

    for payment in invoice.payment_set.order_by(
            "user_attendance__userprofile__user__last_name",
            "user_attendance__userprofile__user__first_name",
    ):
        if invoice.company_pais_benefitial_fee:
            amount = invoice.campaign.benefitial_admission_fee_company
        else:
            amount = payment.amount
        description = "Platba za soutěžící/ho %s" % (
            "" if invoice.anonymize else
            payment.user_attendance.name_for_trusted())
        invoice_gen.add_item(Item(1, amount, description=description, tax=21))
    return invoice_gen
from tempfile import NamedTemporaryFile
from InvoiceGenerator.pdf import SimpleInvoice, ProformaInvoice

from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator
from datetime import datetime, timezone
# choose english as language
os.environ["INVOICE_LANG"] = "en"

client = Client('Client company')
provider = Provider('My company',
                    bank_account='2600420569',
                    bank_code='2010',
                    logo_filename='images/Workcult_Logo.png')
creator = Creator('John Doe')


invoice = Invoice(client, provider, creator)
invoice.currency_locale = 'en_IN.UTF-8'
invoice.currency = '₹'
invoice.number = "0085"
invoice.use_tax = True
invoice.payback = datetime.now(timezone.utc)
invoice.add_item(Item(32, 600, description="Item 1"))
invoice.add_item(Item(60, 50, description="Item 2", tax=21))
invoice.add_item(Item(50, 60, description="Item 3", tax=0))
invoice.add_item(Item(5, 600, description="Item 4", tax=15))

def letscreate():
    pdf = SimpleInvoice(invoice)
    pdf.gen("invoice3.pdf", generate_qr_code=True)
Esempio n. 7
0
    def test_generate(self):
        provider = Provider('Pupik')
        provider.address = 'Kubelikova blah blah blah'
        provider.zip_code = '12655465'
        provider.city = 'Frantisek'
        provider.vat_id = 'CZ8590875682'
        provider.ir = '785684523'
        provider.email = '*****@*****.**'
        provider.bank_account = '2600420569'
        provider.bank_code = '2010'
        provider.bank_name = 'RB'
        provider.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        client = Client('Kkkk')
        client.summary = 'Bla blah blah'
        client.address = 'Kubelikova blah blah blah'
        client.zip_code = '12655465'
        client.city = 'Frantisek'
        client.vat_id = 'CZ8590875682'
        client.ir = '785684523'
        client.phone = '785684523'
        client.email = '*****@*****.**'
        client.note = u'zapsaná v obchodním rejstříku vedeném městským soudem v Praze,\noddíl C, vložka 176551'

        invoice = Invoice(client, provider, Creator('blah'))
        invoice.use_tax = True
        invoice.title = u"Testovací faktura"
        invoice.add_item(Item(32, '600.6', description=u"Krátký popis", tax=15))
        invoice.add_item(Item(32, '2.5', tax=21))
        invoice.add_item(
            Item(
                5, '25.42',
                description=u"Dlouhý popis blah blah blah blah blah blah blah blah blah blah blah "
                            u"blah blah blah blah blah blah blah blah blah blah blah blah blah blah "
                            u"blah blah blah blah blah blah blah blah blah blah blah",
                tax=21,),)
        for i in range(1, 26):
            invoice.add_item(Item(5, '25.42', description=u"Popis", tax=0))
        invoice.specific_symbol = 666
        invoice.taxable_date = datetime.date.today()
        invoice.variable_symbol = '000000001'
        invoice.number = 'F20140001'
        invoice.payback = datetime.date.today()
        invoice.currency = u'Kč'
        invoice.currency_locale = 'cs_CZ.UTF-8'
        invoice.rounding_result = True

        tmp_file = NamedTemporaryFile(delete=False)
        SimpleInvoice(invoice).gen(tmp_file.name)
        xml_string = tmp_file.read()

        root = self.assertXmlDocument(xml_string)
        self.assertXpathValues(
            root,
            './dataPack/dataPackItem/invoice/partnerIdentity/address/street/text()',
            'Kubelikova blah blah blah',
        )
        self.assertXpathValues(
            root,
            './dataPack/dataPackItem/invoice/invoiceHeader/number/numberRequested/text()',
            'F20140001',
        )
        self.assertXpathValues(
            root,
            './dataPack/dataPackItem/invoice/invoiceDetail/invoiceItem/text/text()',
            'Popis',
        )
        self.assertXpathValues(
            root,
            './dataPack/dataPackItem/invoice/invoiceSummary/priceLow/text/text()',
            '22102.080',
        )
        self.assertXpathValues(
            root,
            './dataPack/dataPackItem/invoice/invoiceSummary/priceHighVAT/text/text()',
            '43.4910',
        )
Esempio n. 8
0
##########

os.environ["INVOICE_LANG"] = "en"

client = Client(client_name)
provider = Provider('George Ruck Data Science', bank_account='22076047', bank_code='40-06-21')
creator = Creator('George Ruck')

inv_num = open(r'invoice_num.txt','r+')
num = inv_num.read()
inv_num.close()
os.remove('invoice_num.txt')
file = open('invoice_num.txt','w')
file.write(str(int(num) + 1))
file.close()

invoice = Invoice(client, provider, creator)
invoice.currency_locale = 'en_GB.UTF-8'
invoice.currency = '£'
invoice.date = date.today()
invoice.payback = date.today() + timedelta(days = 14)
invoice.number = int(num)

for item in items:
    invoice.add_item(item)

invoice.title = "Freelance Tech Camp - Python"

pdf = SimpleInvoice(invoice)
os.chdir(r'C:\Users\George\Documents\Invoices')
pdf.gen('{}_RUCK_{}.pdf'.format(num,client_name),generate_qr_code = True)