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)
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)
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)
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)
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)
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', )
########## 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)