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 setClient(clientName, clientAddress, clientPostCode, clientAdditionalData): client = Client(clientName, clientAddress, clientPostCode, clientAdditionalData) invoice = Invoice(client, provider, creator, number=datetime.datetime.now().strftime("%d-%m-%y")) invoice.currency_locale = 'pl_PL.UTF-8' invoice.use_tax = True return invoice
def test_generate_with_vat(self): invoice = Invoice(Client('Kkkk'), Provider('Pupik'), Creator('blah')) invoice.add_item(Item(32, 600)) invoice.add_item(Item(60, 50, tax=10)) invoice.add_item(Item(50, 60, tax=5)) invoice.add_item(Item(5, 600, tax=50)) invoice.currency_locale = 'en_US.UTF-8' tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) pdf.gen(tmp_file.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 test_generate_with_vat(self): invoice = Invoice(Client('Kkkk'), Provider('Pupik'), Creator('blah')) invoice.number = 'F20140001' invoice.add_item(Item(32, 600)) invoice.add_item(Item(60, 50, tax=10)) invoice.add_item(Item(50, 60, tax=5)) invoice.add_item(Item(5, 600, tax=50)) invoice.currency_locale = 'en_US.UTF-8' tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) pdf.gen(tmp_file.name)
def bill_generator(request): try: global bill_no fs = FileSystemStorage() os.environ["INVOICE_LANG"] = "en" table_no = request.data["no"] client = Client('Table ' + str(table_no)) clerk = request.data["email"] provider = Provider('Restaurant', bank_account='2600420569', bank_code='2010') creator = Creator(clerk) invoice = Invoice(client, provider, creator) data = request.data["order"] # quantity,price, name invoice.currency_locale = 'en_IN' invoice.currency = "INR" invoice.number = bill_no balance = list(Variable.objects.all().values())[0]["balance"] bill_no += 1 for item in data: invoice.add_item( Item(item[1], item[2] / item[1], description=item[0], tax=14)) my_custom_sql( "insert into sales(item_code,quantity) values({},{})".format( int(item[3]), item[1])) balance += item[2] #print("select count(*) from sales where (item_code = {} && date >= {});".format(item[3], str((datetime.today() - timedelta(days=3)).strftime("%Y-%d,%Y")))) # count = my_custom_sql("select count(*) from sales where (item_code = {} && date >= {});".format(item[3], str((datetime.today() - timedelta(days=3)).strftime("%Y-%m-%d"))))[0][0] Variable.objects.all().delete() Variable(balance=balance).save() filename = "invoice" + str(bill_no) + ".pdf" pdf = SimpleInvoice(invoice) pdf.gen(filename, generate_qr_code=True) t = Thread(target=calculateThreshold, args=(data, )) t.start() if fs.exists(filename): with fs.open(filename) as pdf: response = HttpResponse(pdf, content_type='application/pdf') #response['Content-Disposition'] = 'attachment; filename="mypdf.pdf"' #user will be prompted with the browser’s open/save file response['Content-Disposition'] = 'inline; filename={}'.format( filename ) #user will be prompted display the PDF in the browser return response except FileNotFoundError: raise Http404()
def create_invoice(provider_name, provider_address, provider_postcode, client_name, client_address, client_postcode, items_list): provider = Provider(provider_name, provider_address, provider_postcode, bank_account='2600420569', bank_code='2010') creator = Creator('') client = Client(client_name, client_address, client_postcode) invoice = Invoice(client, provider, creator, number=datetime.datetime.now().strftime("%d-%m-%y")) invoice.currency_locale = 'pl_PL.UTF-8' invoice.use_tax = False for i in range(0,len(items_list),3): item_count = items_list[i] item_price = items_list[i+1] item_name = items_list[i+2] invoice.add_item(Item(item_count, item_price, description=item_name)) pdf = ProformaInvoice(invoice) pdf.gen("Proforma.pdf", generate_qr_code=False)
def setProvider(clientName, clientAddress, clientPostCode, clientAdditionalData): provider = Provider(clientName, clientAddress, clientPostCode, clientAdditionalData) client = Client('AS Lomza', 'Niewodowo 50', "18-421 Piątnica", bank_account='2600420569', bank_code='2010') invoice = Invoice(client, provider, creator, number=datetime.datetime.now().strftime("%d-%m-%y")) invoice.currency_locale = 'pl_PL.UTF-8' invoice.use_tax = True return invoice
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
def create_invoice(user, order): os.environ["INVOICE_LANG"] = "en" client_address = user.customer.street + ',<br/>' + user.customer.area client_zip_code = user.customer.zipcode client_phone = str(user.customer.phone) client_email = user.email provider_address = 'No.185, Bellman Ford St.' + ',<br/>' + 'T. Nagar' provider_zip_code = '600056' provider_phone = '044-42353988' provider_email = '*****@*****.**' payment_method = order.get_payment_type_display() client = Client( summary=user.customer.fullname, address=client_address, zip_code=client_zip_code, phone=client_phone, email=client_email, ) provider = Provider( summary='The Water Company', address=provider_address, zip_code=provider_zip_code, phone=provider_phone, email=provider_email, payment_method=payment_method, ) creator = Creator('TWC') invoice = Invoice(client, provider, creator, str(order.id)) invoice.currency_locale = 'en.UTF-8' items = OrderItem.objects.filter(order=order) for item in items: invoice.add_item( Item(item.quantity, item.price, description=item.product.name)) pdf = SimpleInvoice(invoice) pdf.gen(MEDIA_ROOT + '/orders/' + str(order.id) + ".pdf", generate_qr_code=False)
def test_generate_with_vat(self): os.environ["INVOICE_LANG"] = "en" invoice = Invoice(Client('Kkkk'), Provider('Pupik'), Creator('blah')) invoice.number = 'F20140001' invoice.use_tax = True invoice.add_item(Item(32, 600)) invoice.add_item(Item(60, 50, tax=10)) invoice.add_item(Item(50, 60, tax=5)) invoice.add_item(Item(5, 600, tax=50)) invoice.currency_locale = 'en_US.UTF-8' invoice.currency = 'USD' tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) pdf.gen(tmp_file.name) pdf = PdfFileReader(tmp_file) pdf_string = pdf.pages[0].extractText() self.assertTrue(u"$3,000.00" in pdf_string) self.assertTrue(u"Total with tax: $30,150.00" in pdf_string) self.assertTrue(u"Creator: blah" in pdf_string)
def test_generate_with_vat(self): os.environ["INVOICE_LANG"] = "en" invoice = Invoice(Client('Kkkk'), Provider('Pupik'), Creator('blah')) invoice.number = 'F20140001' invoice.use_tax = True invoice.add_item(Item(32, 600)) invoice.add_item(Item(60, 50, tax=10)) invoice.add_item(Item(50, 60, tax=5)) invoice.add_item(Item(5, 600, tax=50)) invoice.currency_locale = 'en_US.UTF-8' invoice.currency = 'USD' tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) pdf.gen(tmp_file.name) pdf = PdfFileReader(tmp_file) pdf_string = pdf.pages[0].extractText() self.assertTrue("$3,000.00" in pdf_string) self.assertTrue("Total with tax: $30,150.00" in pdf_string) self.assertTrue("Creator: blah" in pdf_string)
def invoice(): form = InvoiceForm() print(form) if form.validate_on_submit(): client = form.client.data creator = form.creator.data item_name = form.item_name.data price = form.price.data quantity = form.quantity.data a = current_user client = Client(client) provider = Provider(a.name, bank_account=a.gstnumber, bank_code='2018') creator = Creator(creator) os.environ["INVOICE_LANG"] = "en" invoice = Invoice(client, provider, creator) invoice.currency_locale = "en_US.UTF_8" invoice.add_item(Item(quantity, price, item_name)) from InvoiceGenerator.pdf import SimpleInvoice pdf = SimpleInvoice(invoice) pdf.gen("invoice.pdf", generate_qr_code=False) return send_file("invoice.pdf") return render_template('invoice.html', form=form)
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 post(self, *args, **kwargs): form = CheckoutForm(self.request.POST or None) if self.request.user.profile.is_warsztat(): form = WarsztatCheckoutForm(self.request.POST or None) try: order = Order.objects.get(customer=self.request.user, ordered=False) if form.is_valid(): street_address = form.cleaned_data.get('street_address') apartment_address = form.cleaned_data.get('apartment_address') country = form.cleaned_data.get('country') zip_code = form.cleaned_data.get('zip_code') payment_option = form.cleaned_data.get('payment_option') checkout_address = CheckoutAddress( user=self.request.user, street_address=street_address, apartment_address=apartment_address, country=country, zip_code=zip_code ) checkout_address.save() order.checkout_address = checkout_address order.save() PAYMENT_OPTIONS = tuple() if self.request.user.profile.is_warsztat(): PAYMENT_OPTIONS = PAYMENT_WARSZTAT else: PAYMENT_OPTIONS = PAYMENT for payment_tuple in PAYMENT_OPTIONS: if payment_option == payment_tuple[0]: order.payment_method = payment_tuple[1] order.ordered = True if order.payment_method == 'Faktura': os.environ["INVOICE_LANG"] = "pl" client = Client(order.customer.username + '<br />' + str(order.customer.email) + '<br />' + order.customer.profile.street_address + '<br />' + order.customer.profile.postal_code + ' ' + order.customer.profile.city ) provider = Provider('Auto Parts', bank_account='2600420569', bank_code='2010') creator = Creator('Jan Kowalski') invoice = Invoice(client, provider, creator) invoice.number = order.id invoice.currency = 'PLN' invoice.currency_locale = 'pl_PL.UTF-8' for order_line in order.order_lines.all(): invoice.add_item(Item(order_line.quantity, order_line.product.get_discount_price(), description=order_line.product.name, tax=23)) pdf_name = "invoice" + str(order.id) + ".pdf" pdf = SimpleInvoice(invoice) pdf.gen(pdf_name) with open(pdf_name, 'rb') as f: order.invoice_file.save(pdf_name, File(f)) if os.path.exists(pdf_name): os.remove(pdf_name) order.save() return redirect('pages:orders_list') messages.warning(self.request, "Niepoprawna metoda płatności") return redirect('pages:checkout') except ObjectDoesNotExist: messages.error(self.request, "Nie masz żadnego zamówienia") return redirect("pages:order-summary")
import os from tempfile import NamedTemporaryFile from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator from InvoiceGenerator.pdf import SimpleInvoice # choose english as language os.environ["INVOICE_LANG"] = "en" client = Client('Client company') provider = Provider('My company', bank_account='2600420569', bank_code='2010') creator = Creator('John Doe') invoice = Invoice(client, provider, creator) invoice.currency_locale = 'en_US.UTF-8' 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)) pdf = SimpleInvoice(invoice) pdf.gen("invoice.pdf", generate_qr_code=True)
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)
from tempfile import NamedTemporaryFile from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator from InvoiceGenerator.pdf import SimpleInvoice client = Client('Client company') provider = Provider('My company', bank_account='2600420569/2010') creator = Creator('John Doe') invoice = Invoice(client, provider, creator) invoice.currency_locale = 'en_US.UTF-8' invoice.add_item(Item(32, 600, description="Item 1")) invoice.add_item(Item(60, 50, description="Item 2", tax=10)) invoice.add_item(Item(50, 60, description="Item 3", tax=5)) invoice.add_item(Item(5, 600, description="Item 4", tax=50)) tmp_file = NamedTemporaryFile(delete=False) pdf = SimpleInvoice(invoice) pdf.gen(tmp_file.name, generate_qr_code=False)
import os from tempfile import NamedTemporaryFile from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator from InvoiceGenerator.pdf import SimpleInvoice # choose english as language os.environ["INVOICE_LANG"] = "en" client = Client('Table 1') provider = Provider('Restaurant', bank_account='2600420569', bank_code='2010') creator = Creator('Team 5') invoice = Invoice(client, provider, creator) invoice_number = 1 data = ((1, 60, "dosa"), (2, 10, "Idly"), (3, 70, "Fried Rice"), (4, 60, "Noodles")) invoice.currency_locale = 'en_IN' invoice.currency = "INR" invoice.number = invoice_number for item in data: invoice.add_item(Item(item[0], item[1], description=item[2], tax=14)) pdf = SimpleInvoice(invoice) pdf.gen("invoice.pdf", generate_qr_code=True)
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
########## 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)
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', )
import os from tempfile import NamedTemporaryFile from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator # choose english as language os.environ["INVOICE_LANG"] = "en" client = Client("MN furnitures") provider = Provider('My company', bank_account='2600420569', bank_code='111') creator = Creator('nippon') invoice = Invoice(client, provider, creator) invoice.currency_locale = 'th_TH.UTF-8' invoice.add_item(Item(32, 600, description="Item 1")) invoice.add_item(Item(60, 50, description="Item 2", tax=10)) invoice.add_item(Item(50, 60, description="Item 3", tax=10.1)) invoice.add_item(Item(5, 600, description="Item 4", tax=15)) from InvoiceGenerator.pdf import SimpleInvoice pdf = SimpleInvoice(invoice) pdf.gen("invoice.pdf", generate_qr_code=True)