invoice idea

This commit is contained in:
Martin Quarda 2024-08-06 10:16:30 +02:00
parent 21de28e71d
commit 9c0e3748e9
3 changed files with 565 additions and 3 deletions

View File

@ -16,7 +16,7 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import path
from alkatorapi.views import register, results, photos, payment_result, payment_state
from alkatorapi.views import register, results, photos, payment_result, payment_state, invoice
urlpatterns = [
path('admin/', admin.site.urls),
@ -25,4 +25,5 @@ urlpatterns = [
path('api/photos', photos),
path('api/payment_result', payment_result),
path('api/payment_state', payment_state),
path('api/invoice', invoice),
]

View File

@ -0,0 +1,556 @@
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{/*border-color:black;border-style:solid;border-width:1px*/;font-family:Arial, sans-serif;font-size:14px;
overflow:hidden;padding:10px 5px;word-break:normal;}
.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
.tg .tg-2b7s{text-align:right;vertical-align:bottom}
.tg .tg-kw6s{color:#3D3D3D;text-align:center;vertical-align:bottom}
.tg .tg-71pv{background-color:#FFF;color:#1F1F1F;text-align:left;vertical-align:top}
.tg .tg-kbc9{background-color:#66B3ED;color:#FFF;font-weight:bold;text-align:center;vertical-align:bottom}
.tg .tg-7zrl{text-align:left;vertical-align:bottom}
.tg .tg-8d8j{text-align:center;vertical-align:bottom}
.tg .tg-uzm7{background-color:#BFFE8D;text-align:left;vertical-align:bottom}
.tg .tg-kcps{background-color:#FFF;text-align:left;vertical-align:bottom}
.tg .tg-j6zm{font-weight:bold;text-align:left;vertical-align:bottom}
.tg .tg-hvob{background-color:#A8DEF1;text-align:left;vertical-align:bottom}
.tg .tg-83cc{background-color:#66B3ED;font-weight:bold;text-align:right;vertical-align:bottom}
.tg .tg-widl{background-color:#FFF;text-align:right;vertical-align:bottom}
</style>
<table class="tg"><tbody>
<tr>
<td class="tg-7zrl" colspan="6"></td>
<td class="tg-7zrl">Číslo faktury</td>
<td class="tg-8d8j" colspan="2">{{user.invoice_id}}</td>
</tr>
<tr>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Dodavatel</span></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Odběratel</span></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Jméno</span></td>
<td class="tg-7zrl" colspan="2">Zhoor s.r.o.</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Jméno</span></td>
<td class="tg-71pv" colspan="3" rowspan="2">{{user.first_name}} {{user.last_name}}</td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Adresa</span></td>
<td class="tg-7zrl" colspan="2">Adam Krejsa</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-uzm7"><span style="background-color:#BFFE8D">Adresa</span></td>
<td class="tg-71pv">{{user.address}}</td>
<td class="tg-kcps"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl" colspan="2">Červenovodská 548</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-kcps"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl" colspan="2">561 69, Králíky</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl">Email:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td class="tg-7zrl">{{user.email}}</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-j6zm" colspan="2"><span style="font-weight:bold">Neplátce DPH</span></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-hvob"><span style="background-color:#A8DEF1"></span></td>
<td class="tg-kcps" colspan="2"><span style="background-color:#FFF">21244863</span></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-hvob"><span style="background-color:#A8DEF1"></span></td>
<td class="tg-kcps" colspan="2"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-hvob"><span style="background-color:#A8DEF1">DIČ</span></td>
<td class="tg-8d8j" colspan="2">X</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-hvob"><span style="background-color:#A8DEF1">DIČ</span></td>
<td class="tg-7zrl" colspan="2"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Banka</span></td>
<td class="tg-7zrl" colspan="2">Komerční Banka - KB</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Bankovní účet</span></td>
<td class="tg-7zrl" colspan="2">131-2219860207/0100</td>
<td class="tg-7zrl"></td>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Datum vystavení</span></td>
<td class="tg-2b7s" colspan="2">{{user.register_date|date:"d/m/Y"}}</td>
</tr>
<tr>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Variabilní symbol</span></td>
<td class="tg-8d8j" colspan="2">Číslo faktury</td>
<td class="tg-7zrl"></td>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Datum splatnosti</span></td>
<td class="tg-83cc" colspan="2"><span style="font-weight:bold;background-color:#66B3ED">{{user.register_date|date:"d/m/Y"}}</span></td>
</tr>
<tr>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Způsob platby</span></td>
<td class="tg-7zrl" colspan="2">Platební bránou</td>
<td class="tg-7zrl"></td>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Datum zdan. plnění</span></td>
<td class="tg-widl" colspan="2"><span style="background-color:#FFF">{{user.register_date|date:"d/m/Y"}}</span></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl" colspan="4">Fakturovaná položka</td>
<td class="tg-8d8j">MJ</td>
<td class="tg-2b7s" colspan="2">Cena za MJ</td>
<td class="tg-2b7s" colspan="2">Cena</td>
</tr>
<tr>
<td class="tg-71pv">Startovné do závodu - ALKATOR</td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-2b7s">1</td>
<td class="tg-7zrl"></td>
<td class="tg-2b7s">690,00 Kč</td>
<td class="tg-7zrl"></td>
<td class="tg-2b7s">690,00 Kč</td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-hvob" colspan="2"><span style="background-color:#A8DEF1">Celkem</span></td>
<td class="tg-kbc9" colspan="2"><span style="font-weight:bold;color:#FFF;background-color:#66B3ED">690,00 Kč</span></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-kw6s" colspan="8"><span style="color:#3D3D3D">V obchodním rejstříku je zapsána pod spisovou značkou C 52475, Krajský soud v Hradci Králové.</span></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
<tr>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
<td class="tg-7zrl"></td>
</tr>
</tbody></table>

View File

@ -1,5 +1,6 @@
from django.shortcuts import render
from django.http import HttpResponse
from django.template.response import TemplateResponse
from django.views.decorators.csrf import csrf_exempt
from datetime import date, datetime
from urllib.parse import parse_qs
@ -85,7 +86,7 @@ def register(request):
if result['code'][0] != '0':
user.delete()
return HttpResponse('{"reason":"Chyba na straně platevní brány: ' + result['message'][0] + '"}', status=400, content_type='application/json')
return HttpResponse('{"reason":"Chyba na straně platební brány: ' + result['message'][0] + '"}', status=400, content_type='application/json')
user.trans_id = result['transId'][0]
user.save()
@ -149,4 +150,8 @@ def photos(request):
'original_width': img.width,
'original_height': img.height,
})
return HttpResponse(json.dumps(rtn), content_type='application/json')
return HttpResponse(json.dumps(rtn), content_type='application/json')
def invoice(request):
return TemplateResponse(request, 'invoice.html', {'user': User.objects.get(invoice_id=request.GET['invoice_id'])})