details.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. {% extends "base/base.html" %}
  2. {% block content %}
  3. <br>
  4. <h2>{{forderung_kopf[0].Beleg }}</h2>
  5. <br>
  6. <div class="row mb-3">
  7. <div class="col-4">
  8. <table class="table table-sm">
  9. <tr>
  10. <th colspan="2">Grunddaten</th>
  11. </tr>
  12. <tr>
  13. <td><strong>Hauptbetrieb:</strong></td>
  14. <td>{{forderung_kopf[0].Hauptbetrieb_Name }}</td>
  15. </tr>
  16. <tr>
  17. <td><strong>Standort:</strong></td>
  18. <td>{{forderung_kopf[0].Standort_Name }}</td>
  19. </tr>
  20. <tr>
  21. <td><strong>Benutzer:</strong></td>
  22. <td>{{forderung_kopf[0].User_ID }}</td>
  23. </tr>
  24. <tr>
  25. <td><strong>Verursacher:</strong></td>
  26. <td>{{forderung_kopf[0].Verursacher }}</td>
  27. </tr>
  28. <tr>
  29. <td><strong>Bereich:</strong></td>
  30. <td>{{forderung_kopf[0].Bereich }}</td>
  31. </tr>
  32. </table>
  33. </div>
  34. <div class="col-4">
  35. <table class="table table-sm">
  36. <tr>
  37. <th colspan="2">Beleg</th>
  38. </tr>
  39. <tr>
  40. <td><strong>Belegart:</strong></td>
  41. <td>{{forderung_kopf[0].Rechnung_Gutschrift }}</td>
  42. </tr>
  43. <tr>
  44. <td><strong>Beleg-Nr:</strong></td>
  45. <td>{{forderung_kopf[0].Document_No }}</td>
  46. </tr>
  47. <tr>
  48. <td><strong>Betrag:</strong></td>
  49. <td>{{forderung_kopf[0].offen|number_format }} &euro;</td>
  50. </tr>
  51. <tr>
  52. <td><strong>Rechnungsdatum:</strong></td>
  53. <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
  54. </tr>
  55. <tr>
  56. <td><strong>Lieferdatum:</strong></td>
  57. <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
  58. </tr>
  59. <tr>
  60. <td><strong>Fälligkeitsdatum:</strong></td>
  61. <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
  62. </tr>
  63. </table>
  64. </div>
  65. <div class="col-4">
  66. <table class="table table-sm">
  67. <tr>
  68. <th colspan="2">Forderung</th>
  69. </tr>
  70. <tr>
  71. <td><strong>offen:</strong></td>
  72. <td>{{forderung_kopf[0].offen|number_format }} &euro;</td>
  73. </tr>
  74. <tr>
  75. <td><strong>offen (Kunde gesamt):</strong></td>
  76. <td>{{forderung_kopf[0].offen_Kunde_gesamt|number_format }} &euro;</td>
  77. </tr>
  78. <tr>
  79. <td><strong>Tage:</strong></td>
  80. <td>{{forderung_kopf[0].Tage }}</td>
  81. </tr>
  82. <tr>
  83. <td><strong>Staffel:</strong></td>
  84. <td>{{forderung_kopf[0].Staffel }}</td>
  85. </tr>
  86. <tr>
  87. <td><strong>Mahnstufe:</strong></td>
  88. <td>{{forderung_kopf[0].Mahnstufe }}</td>
  89. </tr>
  90. </table>
  91. </div>
  92. <div class="col-4">
  93. <table class="table table-sm">
  94. <tr>
  95. <th colspan="2">Kunde</th>
  96. </tr>
  97. <tr>
  98. <td><strong>Kunden-Nr:</strong></td>
  99. <td>{{forderung_kopf[0].Kunde_Nr }}</td>
  100. </tr>
  101. <tr>
  102. <td><strong>Name:</strong></td>
  103. <td>{{forderung_kopf[0].Kunde_Name }}</td>
  104. </tr>
  105. <tr>
  106. <td><strong>Adresse:</strong></td>
  107. <td>{{forderung_kopf[0].Kunde_Adresse }}</td>
  108. </tr>
  109. <tr>
  110. <td><strong>PLZ / Ort:</strong></td>
  111. <td>{{forderung_kopf[0].Kunde_PLZ }} {{forderung_kopf[0].Kunde_Ort }}</td>
  112. </tr>
  113. <tr>
  114. <td><strong>Land:</strong></td>
  115. <td>{{forderung_kopf[0].Kunde_Land }}</td>
  116. </tr>
  117. <tr>
  118. <td><strong>Telefon:</strong></td>
  119. <td>{{forderung_kopf[0].Kunde_Telefon }}</td>
  120. </tr>
  121. <tr>
  122. <td><strong>E-Mail:</strong></td>
  123. <td><a href="mailto:{{forderung_kopf[0].Kunde_Email }}?subject={{forderung_kopf[0].Document_No }}" hx-disable="true">{{forderung_kopf[0].Kunde_Email }}</a></td>
  124. </tr>
  125. <tr>
  126. <td><strong>Payment_Terms_Code:</strong></td>
  127. <td>{{forderung_kopf[0].Payment_Terms_Code }}</td>
  128. </tr>
  129. <tr>
  130. <td><strong>Kundengruppe:</strong></td>
  131. <td>{{forderung_kopf[0].Customer_Group_Description }}</td>
  132. </tr>
  133. </table>
  134. </div>
  135. {% if forderung_kopf[0].Fahrzeug_Leasing == 'J' %}
  136. <div class="col-4">
  137. <table class="table table-sm">
  138. <tr>
  139. <th colspan="2">Leasing-Kunde</th>
  140. </tr>
  141. <tr>
  142. <td><strong>Kunden-Nr:</strong></td>
  143. <td>{{forderung_kopf[0].Leasing_Kunde_Nr }}</td>
  144. </tr>
  145. <tr>
  146. <td><strong>Name:</strong></td>
  147. <td>{{forderung_kopf[0].Leasing_Kunde_Name }}</td>
  148. </tr>
  149. <tr>
  150. <td><strong>Adresse:</strong></td>
  151. <td>{{forderung_kopf[0].Leasing_Kunde_Adresse }}</td>
  152. </tr>
  153. <tr>
  154. <td><strong>PLZ / Ort:</strong></td>
  155. <td>{{forderung_kopf[0].Leasing_Kunde_PLZ }} {{forderung_kopf[0].Leasing_Kunde_Ort }}</td>
  156. </tr>
  157. <tr>
  158. <td><strong>Land:</strong></td>
  159. <td>{{forderung_kopf[0].Leasing_Kunde_Land }}</td>
  160. </tr>
  161. <tr>
  162. <td><strong>Telefon:</strong></td>
  163. <td>{{forderung_kopf[0].Leasing_Kunde_Telefon }}</td>
  164. </tr>
  165. <tr>
  166. <td><strong>E-Mail:</strong></td>
  167. <td><a href="mailto:{{forderung_kopf[0].Leasing_Kunde_Email }}?subject={{forderung_kopf[0].Document_No }}" hx-disable="true">{{forderung_kopf[0].Leasing_Kunde_Email }}</a></td>
  168. </tr>
  169. </table>
  170. </div>
  171. {% endif %}
  172. {% if forderung_kopf[0].Versicherung == 'J' and forderung_kopf[0].Vers_Adresse_ID != '' %}
  173. <div class="col-4">
  174. <table class="table table-sm">
  175. <tr>
  176. <th colspan="2">Versicherung</th>
  177. </tr>
  178. <tr>
  179. <td><strong>Name:</strong></td>
  180. <td>{{forderung_kopf[0].Vers_Name }}</td>
  181. </tr>
  182. <tr>
  183. <td><strong>Adresse:</strong></td>
  184. <td>{{forderung_kopf[0].Vers_Adresse }}</td>
  185. </tr>
  186. <tr>
  187. <td><strong>PLZ / Ort:</strong></td>
  188. <td>{{forderung_kopf[0].Vers_PLZ }} {{forderung_kopf[0].Vers_Ort }}</td>
  189. </tr>
  190. <tr>
  191. <td><strong>Telefon:</strong></td>
  192. <td>{{forderung_kopf[0].Vers_Telefon }}</td>
  193. </tr>
  194. <tr>
  195. <td><strong>Telefax:</strong></td>
  196. <td>{{forderung_kopf[0].Vers_Telefax }}</td>
  197. </tr>
  198. <tr>
  199. <td><strong>Webseite:</strong></td>
  200. <td><a href="{{forderung_kopf[0].Vers_Web }}" hx-disable="true" target="_blank">{{forderung_kopf[0].Vers_Web }}</a></td>
  201. </tr>
  202. <tr>
  203. <td><strong>Vers_Email:</strong></td>
  204. <td><a href="mailto:{{forderung_kopf[0].Vers_Email }}?subject={{forderung_kopf[0].Document_No }}" hx-disable="true">{{forderung_kopf[0].Vers_Email }}</a></td>
  205. </tr>
  206. </table>
  207. </div>
  208. {% endif %}
  209. <div class="col-4">
  210. <table class="table table-sm">
  211. <tr>
  212. <th colspan="2">Fahrzeug</th>
  213. </tr>
  214. <tr>
  215. <td><strong>VIN:</strong></td>
  216. <td>{{forderung_kopf[0].Fahrzeug_VIN }}</td>
  217. </tr>
  218. <tr>
  219. <td><strong>Marke:</strong></td>
  220. <td>{{forderung_kopf[0].Fahrzeug_Marke_Nr }}</td>
  221. </tr>
  222. <tr>
  223. <td><strong>Modell:</strong></td>
  224. <td>{{forderung_kopf[0].Fahrzeug_Modell_Nr }}</td>
  225. </tr>
  226. <tr>
  227. <td><strong>Modell Name:</strong></td>
  228. <td>{{forderung_kopf[0].Fahrzeug_Modell_Name }}</td>
  229. </tr>
  230. <tr>
  231. <td><strong>Kategoriecode:</strong></td>
  232. <td>{{forderung_kopf[0].Fahrzeug_Kategoriecode }}</td>
  233. </tr>
  234. <tr>
  235. <td><strong>Halter:</strong></td>
  236. <td>{{forderung_kopf[0].Fahrzeug_Kunde_Nr }}</td>
  237. </tr>
  238. <tr>
  239. <td><strong>Kennzeichen:</strong></td>
  240. <td>{{forderung_kopf[0].Fahrzeug_Kennzeichen }}</td>
  241. </tr>
  242. <tr>
  243. <td><strong>KM-Stand:</strong></td>
  244. <td>{{forderung_kopf[0].Fahrzeug_Kmstand }}</td>
  245. </tr>
  246. <tr>
  247. <td><strong>Antriebsart:</strong></td>
  248. <td>{{forderung_kopf[0].Fahrzeug_Antriebsart }}</td>
  249. </tr>
  250. <tr>
  251. <td><strong>Erstzulassung:</strong></td>
  252. <td>{{forderung_kopf[0].Fahrzeug_Erstzulassung|date_format }}</td>
  253. </tr>
  254. <tr>
  255. <td><strong>Kaufdatum:</strong></td>
  256. <td>{{forderung_kopf[0].Fahrzeug_Kaufdatum|date_format }}</td>
  257. </tr>
  258. <tr>
  259. <td><strong>Fahrzeug_Vorbesitzer_Anzahl:</strong></td>
  260. <td>{{forderung_kopf[0].Fahrzeug_Vorbesitzer_Anzahl }}</td>
  261. </tr>
  262. <tr>
  263. <td><strong>Vorbesitzer:</strong></td>
  264. <td>{{forderung_kopf[0].Fahrzeug_Vorbesitzer_Kunde_Nr }}</td>
  265. </tr>
  266. </table>
  267. </div>
  268. </div>
  269. <!--
  270. <h3>Kommentare</h3>
  271. <table class="table table-striped table-bordered">
  272. <thead>
  273. <tr>
  274. <th>Timestamp</th>
  275. <th>Name</th>
  276. <th>Rolle</th>
  277. <th>Kommentar</th>
  278. </tr>
  279. </thead>
  280. <tbody>
  281. {% for row in forderung_kommentar %}
  282. <tr>
  283. <td>{{ row.Timestamp|date_format }}</td>
  284. <td>{{ row.Name }}</td>
  285. <td>{{ row.Rolle }}</td>
  286. <td>{{ row.Kommentar or '' }}</td>
  287. </tr>
  288. {% endfor %}
  289. </tbody>
  290. </table>
  291. -->
  292. <br>
  293. <br>
  294. <div class="row g-3">
  295. <div class="col-5">
  296. {%include 'base/chat_container.html' %}
  297. </div>
  298. <div class="col-1">
  299. &nbsp;
  300. </div>
  301. <div class="col-6">
  302. <form class="row g-3">
  303. <div class="col-12">
  304. <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#VersicherungCollapse"
  305. aria-expanded="{{ forderung_kopf[0].Versicherung|truefalse }}" aria-controls="VersicherungCollapse">
  306. <input class="form-check-input" type="checkbox" name="Versicherung" id="Versicherung" {{ forderung_kopf[0].Versicherung|checked }}>
  307. <label class="form-check-label" for="Versicherung">
  308. <strong>Versicherungsfall</strong>
  309. </label>
  310. </div>
  311. </div>
  312. <div class="collapse {{ forderung_kopf[0].Versicherung|show }}" id="VersicherungCollapse">
  313. <div class="card card-body">
  314. <div class="row mb-3">
  315. <label for="Versicherung_Name" class="col-sm-2 col-form-label">Versicherung</label>
  316. <div class="col-sm-3">
  317. <select id="Versicherung_Name" name="Vers_Adresse_ID" class="form-select">
  318. <option value="" selected>-</option>
  319. {% for v in versicherungen %}
  320. {% if v.Vers_Adresse_ID == forderung_kopf[0].Vers_Adresse_ID %}
  321. <option value="{{ v.Vers_Adresse_ID }}" selected>{{ v.Vers_Name }}</option>
  322. {% else %}
  323. <option value="{{ v.Vers_Adresse_ID }}">{{ v.Vers_Name }}</option>
  324. {% endif %}
  325. {% endfor %}
  326. </select>
  327. </div>
  328. <div class="col-sm-3">
  329. <select id="Versicherung_Typ" name="Versicherung_Typ" class="form-select">
  330. <option value="" selected>-</option>
  331. {% for v in ('Haftpflicht', 'Teilkasko', 'Vollkasko', 'Ausländisch') %}
  332. {% if v == forderung_kopf[0].Versicherung_Typ %}
  333. <option value="{{ v }}" selected>{{ v }}</option>
  334. {% else %}
  335. <option value="{{ v }}">{{ v }}</option>
  336. {% endif %}
  337. {% endfor %}
  338. </select>
  339. </div>
  340. </div>
  341. <div class="row mb-3">
  342. <label for="Selbstbeteiligung" class="col-sm-2 col-form-label">Selbstbeteiligung</label>
  343. <div class="col-sm-2">
  344. <select id="Selbstbeteiligung" name="Selbstbeteiligung" class="form-select">
  345. <option value="" {{ (forderung_kopf[0].Selbstbeteiligung=="" )|selected }}>-</option>
  346. <option {{ (forderung_kopf[0].Selbstbeteiligung=="Versicherung" )|selected }}>Versicherung</option>
  347. <option {{ (forderung_kopf[0].Selbstbeteiligung=="Kunde" )|selected }}>Kunde</option>
  348. <option {{ (forderung_kopf[0].Selbstbeteiligung=="Autohaus" )|selected }}>Autohaus</option>
  349. </select>
  350. </div>
  351. <div class="col-sm-2">
  352. <input type="text" class="form-control" id="Selbstbeteiligung_Betrag" name="Selbstbeteiligung_Betrag" placeholder="Betrag" value="{{ forderung_kopf[0].Selbstbeteiligung_Betrag }}">
  353. </div>
  354. </div>
  355. <div class="row mb-3">
  356. <label for="MwSt" class="col-sm-2 col-form-label">MwSt</label>
  357. <div class="col-sm-2">
  358. <select id="MwSt" name="Mwst" class="form-select">
  359. <option value="" {{ (forderung_kopf[0].MwSt=="" )|selected }}>-</option>
  360. <option {{ (forderung_kopf[0].Mwst=="Versicherung" )|selected }}>Versicherung</option>
  361. <option {{ (forderung_kopf[0].Mwst=="Kunde" )|selected }}>Kunde</option>
  362. <option {{ (forderung_kopf[0].Mwst=="Autohaus" )|selected }}>Autohaus</option>
  363. </select>
  364. </div>
  365. <div class="col-sm-2">
  366. <input type="text" class="form-control" id="Mwst_Betrag" name="Mwst_Betrag" placeholder="Betrag" value="{{ forderung_kopf[0].Mwst_Betrag|number_format }}">
  367. </div>
  368. <div class="col-sm-2">
  369. <a class="btn btn-primary" hx-disable="true"
  370. onclick="document.getElementById('Mwst_Betrag').value='{{ forderung_kopf[0].Mwst_Betrag_berechnet|number_format }}';">
  371. <i class="cil-arrow-thick-left"></i>
  372. {{ forderung_kopf[0].Mwst_Betrag_berechnet|number_format }}</a>
  373. </div>
  374. </div>
  375. <div class="col-3">
  376. <a class="btn btn-secondary" hx-disable="true"
  377. href="/app/forderungen/export/{{forderung_kopf[0].Client_DB}}_{{forderung_kopf[0].Document_No}}">Mahnung
  378. erstellen</a>
  379. </div>
  380. </div>
  381. </div>
  382. <div class="col-12">
  383. <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#ReklamationCollapse"
  384. aria-expanded="{{ forderung_kopf[0].Reklamation|truefalse }}" aria-controls="ReklamationCollapse">
  385. <input class="form-check-input" type="checkbox" id="Reklamation" name="Reklamation" {{ forderung_kopf[0].Reklamation|checked }}>
  386. <label class="form-check-label" for="Reklamation">
  387. <strong>Reklamation</strong>
  388. </label>
  389. </div>
  390. </div>
  391. <div class="collapse {{ forderung_kopf[0].Reklamation|show }}" id="ReklamationCollapse">
  392. <div class="card card-body">
  393. <div class="row mb-3">
  394. <label for="Reklamation_Begruendung" class="col-sm-2 col-form-label">Begründung</label>
  395. <div class="col-sm-3">
  396. <input type="text" class="form-control" id="Reklamation_Begruendung" name="Reklamation_Begruendung" value="{{ forderung_kopf[0].Reklamation_Begruendung }}">
  397. </div>
  398. </div>
  399. </div>
  400. </div>
  401. <div class="col-12">
  402. <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#RechtsanwaltCollapse"
  403. aria-expanded="{{ forderung_kopf[0].Rechtsanwalt|truefalse }}" aria-controls="RechtsanwaltCollapse">
  404. <input class="form-check-input" type="checkbox" id="Rechtsanwalt" name="Rechtsanwalt" {{ forderung_kopf[0].Rechtsanwalt|checked }}>
  405. <label class="form-check-label" for="Rechtsanwalt">
  406. <strong>Rechtsanwalt</strong>
  407. </label>
  408. </div>
  409. </div>
  410. <div class="collapse {{ forderung_kopf[0].Rechtsanwalt|show }}" id="RechtsanwaltCollapse">
  411. <div class="card card-body">
  412. <div class="row mb-3">
  413. <label for="Rechtsanwalt_Begruendung" class="col-sm-2 col-form-label">Begründung</label>
  414. <div class="col-sm-3">
  415. <input type="text" class="form-control" id="Rechtsanwalt_Begruendung" name="Rechtsanwalt_Begruendung" value="{{ forderung_kopf[0].Rechtsanwalt_Begruendung }}">
  416. </div>
  417. </div>
  418. <div class="row mb-3">
  419. <label for="Rechtsanwalt_Aktenzeichen" class="col-sm-2 col-form-label">Aktenzeichen</label>
  420. <div class="col-sm-3">
  421. <input type="text" class="form-control" id="Rechtsanwalt_Aktenzeichen" name="Rechtsanwalt_Aktenzeichen" value="{{ forderung_kopf[0].Rechtsanwalt_Aktenzeichen }}">
  422. </div>
  423. </div>
  424. <div class="row mb-3">
  425. <label for="Rechtsanwalt_Stand" class="col-sm-2 col-form-label">Aktueller Stand</label>
  426. <div class="col-sm-3">
  427. <input type="text" class="form-control" id="Rechtsanwalt_Stand" name="Rechtsanwalt_Stand" value="{{ forderung_kopf[0].Rechtsanwalt_Stand }}">
  428. </div>
  429. </div>
  430. <div class="col-3">
  431. <a class="btn btn-secondary" hx-disable="true"
  432. href="/app/forderungen/export/{{forderung_kopf[0].Client_DB}}_{{forderung_kopf[0].Document_No}}">Beitreibungsauftrag</a>
  433. </div>
  434. </div>
  435. </div>
  436. <div class="col-12">
  437. <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#MahnenCollapse"
  438. aria-expanded="{{ forderung_kopf[0].Mahnen_aussetzen|truefalse }}" aria-controls="MahnenCollapse">
  439. <input class="form-check-input" type="checkbox" id="Mahnen" name="Mahnen_aussetzen" {{ forderung_kopf[0].Mahnen_aussetzen|checked }}>
  440. <label class="form-check-label" for="Mahnen">
  441. <strong>Mahnlauf aussetzen</strong>
  442. </label>
  443. </div>
  444. </div>
  445. <div class="collapse {{ forderung_kopf[0].Mahnen_aussetzen|show }}" id="MahnenCollapse">
  446. <div class="card card-body">
  447. <div class="row mb-3">
  448. <label for="Mahnen_Begründung" class="col-sm-2 col-form-label">Begründung</label>
  449. <div class="col-sm-3">
  450. <input type="text" class="form-control" id="Mahnen_Begruendung" name="Mahnen_Begruendung" value="{{ forderung_kopf[0].Mahnen_Begruendung }}">
  451. </div>
  452. </div>
  453. </div>
  454. </div>
  455. <div class="col-3">
  456. <label for="Wiedervorlage" class="form-label">Wiedervorlage</label>
  457. <input type="date" class="form-control" id="Wiedervorlage" name="Wiedervorlage"
  458. value="{{ forderung_kopf[0].Wiedervorlage.strftime("%Y-%m-%d") }}">
  459. </div>
  460. <div class="col-2">
  461. <a class="btn btn-primary"
  462. onclick="document.getElementById('Wiedervorlage').value='{{ add7days.strftime("%Y-%m-%d") }}';" hx-disable="true">
  463. +7 Tage
  464. </a>
  465. </div>
  466. <div class="col-12">
  467. <button class="btn btn-primary" hx-post="" hx-trigger="click" hx-swap="none" hx-push-url="false" >Speichern</button>
  468. </div>
  469. </form>
  470. </div>
  471. </div>
  472. <br>
  473. <br>
  474. <div class="accordion accordion-flush" id="accordionFlushExample">
  475. <div class="accordion-item">
  476. <h2 class="accordion-header">
  477. <button class="accordion-button collapsed" type="button" data-coreui-toggle="collapse"
  478. data-coreui-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
  479. <h3>Dateien</h3>
  480. </button>
  481. </h2>
  482. <div id="flush-collapseOne" class="accordion-collapse collapse" data-coreui-parent="#accordionFlushExample">
  483. <div class="accordion-body">
  484. <table class="table table-striped table-bordered">
  485. <thead>
  486. <tr>
  487. <th>Datum</th>
  488. <th>Dateiname</th>
  489. </tr>
  490. </thead>
  491. <tbody>
  492. {% for row in files %}
  493. <tr>
  494. <td></td>
  495. <td><a href="/files/?name={{ row }}" hx-disable="true">{{ row }}</a></td>
  496. </tr>
  497. {% endfor %}
  498. </tbody>
  499. </table>
  500. </div>
  501. </div>
  502. </div>
  503. <div class="accordion-item">
  504. <h2 class="accordion-header">
  505. <button class="accordion-button collapsed" type="button" data-coreui-toggle="collapse"
  506. data-coreui-target="#flush-collapseTwo" aria-expanded="false" aria-controls="flush-collapseTwo">
  507. <h3>Forderung Details</h3>
  508. </button>
  509. </h2>
  510. <div id="flush-collapseTwo" class="accordion-collapse collapse" data-coreui-parent="#accordionFlushExample">
  511. <div class="accordion-body">
  512. <table class="table table-striped table-bordered">
  513. <div>
  514. <!--
  515. {% for row in forderung_kopf %}
  516. {% for key, value in row._asdict().items() %}
  517. <tr>
  518. <td><strong>{{ key }}:</strong></td>
  519. <td>{{ '{{' }}forderung_kopf[0].{{ key }} {{ '}}' }}</td>
  520. </tr>
  521. {% endfor %}
  522. {% endfor %}
  523. -->
  524. </div>
  525. <tbody>
  526. {% for row in forderung_kopf %}
  527. {% for key, value in row._asdict().items() %}
  528. <tr>
  529. <th>{{ key }}</th>
  530. <td>{{ value }}</td>
  531. </tr>
  532. {% endfor %}
  533. {% endfor %}
  534. </tbody>
  535. </table>
  536. </div>
  537. </div>
  538. </div>
  539. <div class="accordion-item">
  540. <h2 class="accordion-header">
  541. <button class="accordion-button collapsed" type="button" data-coreui-toggle="collapse"
  542. data-coreui-target="#flush-collapseThree" aria-expanded="false" aria-controls="flush-collapseThree">
  543. <h3>Mahnungen</h3>
  544. </button>
  545. </h2>
  546. <div id="flush-collapseThree" class="accordion-collapse collapse" data-coreui-parent="#accordionFlushExample">
  547. <div class="accordion-body">
  548. <table class="table table-striped table-bordered">
  549. <thead>
  550. <tr>
  551. <th>Kunde_Nr</th>
  552. <th>Mahnung_Nr</th>
  553. <th>Mahndatum</th>
  554. <th>Mahnstufe</th>
  555. <th>Rechnung_Nr</th>
  556. <th>Rechnung_Datum</th>
  557. <th>Betrag</th>
  558. <th>Offen</th>
  559. </tr>
  560. </thead>
  561. <tbody>
  562. {% for row in forderung_mahnung %}
  563. <tr>
  564. <td>{{ row.Kunde_Nr }}</td>
  565. <td>{{ row.Mahnung_Nr }}</td>
  566. <td>{{ row.Mahndatum|date_format }}</td>
  567. <td>{{ row.Mahnstufe }}</td>
  568. <td>{{ row.Rechnung_Nr }}</td>
  569. <td>{{ row.Rechnung_Datum|date_format }}</td>
  570. <td class="text-end">{{ row.Betrag|number_format }}</td>
  571. <td class="text-end">{{ row.Offen|number_format }}</td>
  572. </tr>
  573. {% endfor %}
  574. </tbody>
  575. </table>
  576. </div>
  577. </div>
  578. </div>
  579. <div class="accordion-item">
  580. <h2 class="accordion-header">
  581. <button class="accordion-button collapsed" type="button" data-coreui-toggle="collapse"
  582. data-coreui-target="#flush-collapseFour" aria-expanded="false" aria-controls="flush-collapseFour">
  583. <h3>Auftragspositionen</h3>
  584. </button>
  585. </h2>
  586. <div id="flush-collapseFour" class="accordion-collapse collapse" data-coreui-parent="#accordionFlushExample">
  587. <div class="accordion-body">
  588. <table class="table table-bordered">
  589. <thead>
  590. <tr>
  591. <th>Auftrag_Position</th>
  592. <th>Betrag</th>
  593. </tr>
  594. </thead>
  595. <tbody>
  596. {% for row in auftrag_positionen %}
  597. <tr>
  598. <td>{{ row.Auftrag_Position }}</td>
  599. <td class="text-end">{{ row.Betrag|number_format }}</td>
  600. </tr>
  601. {% endfor %}
  602. </tbody>
  603. </table>
  604. </div>
  605. </div>
  606. </div>
  607. <div class="accordion-item">
  608. <h2 class="accordion-header">
  609. <button class="accordion-button collapsed" type="button" data-coreui-toggle="collapse"
  610. data-coreui-target="#flush-collapseFive" aria-expanded="false" aria-controls="flush-collapseFive">
  611. <h3>Buchungsbelege</h3>
  612. </button>
  613. </h2>
  614. <div id="flush-collapseFive" class="accordion-collapse collapse" data-coreui-parent="#accordionFlushExample">
  615. <div class="accordion-body">
  616. <table class="table table-striped table-bordered">
  617. <thead>
  618. <tr>
  619. <th>Fahrzeug</th>
  620. <th>Rechnungsnr.</th>
  621. <th>Rechnungsdatum</th>
  622. <th>Beschreibung</th>
  623. <th>Betrag</th>
  624. <th>Offen</th>
  625. <th>Benutzer</th>
  626. </tr>
  627. </thead>
  628. <tbody>
  629. {% for row in forderung_belege %}
  630. <tr>
  631. <td>{{ row.Fahrzeug_Nr }}</td>
  632. <td>{{ row.Beleg_Nr }}</td>
  633. <td>{{ row.Beleg_Datum|date_format }}</td>
  634. <td>{{ row.Beleg_Beschreibung }}</td>
  635. <td class="text-end">{{ row.Betrag|number_format }}</td>
  636. <td>{{ row.Status }}</td>
  637. <td>{{ row.Benutzer }}</td>
  638. </tr>
  639. {% endfor %}
  640. </tbody>
  641. </table>
  642. </div>
  643. </div>
  644. </div>
  645. </div>
  646. {% endblock %}