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 invoicing(self, c, lines, iva=21, invoice_num=None): if not invoice_num: invoice_num = "F000001" else: invoice_num = 'F{}'.format(str(invoice_num).zfill(6)) # choose catalan language os.environ["INVOICE_LANG"] = "ca" client = Client( c.name, address=c.direccio, zip_code=c.cp, phone=c.phone, email=c.email, vat_id=c.cif, ) name, cp, address, city, email, phone = self.get_config_file_info() provider = Provider( name, zip_code=cp, address=address, city=city, email=email, phone=phone, vat_id='E17087289', logo_filename=ICONS + '/logo_factura.jpg' ) creator = Creator(name) invoice = Invoice(client, provider, creator) os.environ["INVOICE_LANG"] = "ca" invoice.currency_locale = 'ca_ES.UTF-8' invoice.currency = '€' invoice.number = invoice_num invoice.use_tax = True invoice.date = datetime.now() for line_product in lines: price_without_iva = self.extract_iva(line_product.price, iva) invoice.add_item( Item( count=line_product.quant, price=float(price_without_iva), description=line_product.name, tax=iva ) ) f = NamedTemporaryFile(delete=False, suffix='.pdf') pdf_path = f.name pdf = SimpleInvoice(invoice) pdf.gen(pdf_path, generate_qr_code=False) return pdf_path
from InvoiceGenerator.pdf import SimpleInvoice from tempfile import NamedTemporaryFile # choose en as language os.environ["INVOICE_LANG"] = "tr" client = Client('İşin Başı Reklam Bilgi Teknolojileri ve Ticaret A.Ş') client.address = 'GÜLBAHÇE GÜLBAHÇE CAD.NO:1/17' client.city = 'URLA/İZMİR' client.zip = '35000' client.vat_id = '4820575342' client.ir = 'Urla' provider = Provider('İşin Başı Reklam Bilgi Teknolojileri ve Ticaret A.Ş') provider.address = 'GÜLBAHÇE GÜLBAHÇE CAD.NO:1/17' provider.city = 'URLA/İZMİR' provider.zip = '35000' provider.vat_id = '4820575342' provider.ir = 'Urla' creator = Creator('Workif') invoice = Invoice(client, provider, creator) invoice.currency_locale = 'tr_TR.UTF-8' invoice.currency = '₺' invoice.date = '10-12-2017' invoice.number = '205123123112' invoice.add_item(Item(1, 1.24, description="Ödeme Hizmeti Komisyonu")) tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) a = pdf.gen(tmp_file.name) print(a)
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
until = datetime.strftime(work_session.date, '"%Y-%m-%d"') daily_log = repository.log(since=since, until=until, date='raw') for raw_commit in daily_log.split('\ncommit'): if len(raw_commit) > 2: commit = Commit(raw_commit) commit.repo = repo['name'] if commit.author == 'maxime' or \ commit.author == 'maxdup': work_session.add_commit(commit) work_session.sort_commits() for k, v in projects.items(): # for each Project, create an invoice creator = Creator('me') invoice = Invoice(clients[k], provider, creator) invoice.date = datetime.now() invoice.number = datetime.now().strftime('%Y%m%d') invoice.currency = '$' invoice.currency_locale = 'en_US' invoice.title = k.capitalize() for work_session in v: # insert each work session in the invoice invoice.add_item(work_session) pdfInvoice = MyInvoice(invoice) pdfInvoice.gen("invoices/invoice-" + k + "-" + datetime.now().strftime('%Y%m%d') + ".pdf")
########## 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)