Jelajahi Sumber

Datenbank umstrukturiert, Queries und Templates entsprechend angepasst

gc-server3 1 Minggu lalu
induk
melakukan
4dd99ad9b3

+ 2 - 4
app/query_filter.py

@@ -77,11 +77,9 @@ filter_type_option = {
 }
 
 
-def import_filter_config() -> list[FilterConfig]:
+def import_filter_config(area: str) -> list[FilterConfig]:
     res = []
-    with open(
-        "templates\\forderungen\\liste\\config\\liste_filter.csv", "r", newline="", encoding="latin-1"
-    ) as csvfile:
+    with open(f"templates\\{area}\\liste\\config\\liste_filter.csv", "r", newline="", encoding="latin-1") as csvfile:
         reader = csv.DictReader(csvfile, delimiter=";")
         for row in reader:
             config = FilterConfig.from_dict(*row.values())

+ 8 - 7
app/routes.py

@@ -59,7 +59,7 @@ def single_quote(text: str):
     return "'" + unquote(text) + "'"
 
 
-forderung_filter_config = import_filter_config("forderungen\\liste\\config\\liste_filter.csv")
+forderung_filter_config = import_filter_config("forderungen")
 
 
 @router.get("/app/forderungen/liste", response_class=HTMLResponse)
@@ -149,7 +149,7 @@ def forderungen_details(request: Request, primary_key: str, db: Session = Depend
             "URL": {
                 "queryParams": {
                     "Client_DB": "'" + pkey["Client_DB"] + "'",
-                    "Document_No": "'" + pkey["Beleg_Nr"] + "'",
+                    "Beleg_Nr": "'" + pkey["Beleg_Nr"] + "'",
                 }
             }
         },
@@ -159,11 +159,11 @@ def forderungen_details(request: Request, primary_key: str, db: Session = Depend
 
     template_context = {}
     for filename in [
-        "auftrag_positionen",
-        "forderung_belege",
-        "forderung_kommentar",
-        "forderung_kopf",
-        "forderung_mahnung",
+        "auftraege_positionen",
+        "forderungen_buchungen",
+        "forderungen_kommentar",
+        "forderungen_kopf",
+        "forderungen_mahnungen",
         "versicherungen",
     ]:
         query = templates.TemplateResponse(request, f"forderungen/details/queries/{filename}.sql", context).body.decode(
@@ -327,6 +327,7 @@ def export_docx(id: int, db: Session = Depends(get_session)):
     )
 
 
+# TODO
 @router.get("/app/forderungen/export/{client_db}_{document_no}/")
 def export_docx2(request: Request, client_db: str, document_no: str, db: Session = Depends(get_session)):
     context = {

+ 3 - 3
templates/base/chat_container.html

@@ -10,7 +10,7 @@
                 </svg>
             </div>
             <div class="course-info">
-                <div class="course-title">{{ forderung_kopf[0].Kunde }} / {{ forderung_kopf[0].Document_No }}</div>
+                <div class="course-title">{{ forderungen_kopf[0].Kunde }} / {{ forderungen_kopf[0].Beleg_Nr }}</div>
                 <div class="course-participants">4 Mitarbeiter involviert</div>
             </div>
         </div>
@@ -49,7 +49,7 @@
     <div class="chat-content" id="chatContent">
         <div class="date-divider">
             <div class="divider-line"></div>
-            <div class="divider-text">{{ forderung_kopf[0].Invoice_Date|date_format }}</div>
+            <div class="divider-text">{{ forderungen_kopf[0].Beleg_Datum|date_format }}</div>
             <div class="divider-line"></div>
         </div>
         <!--
@@ -96,7 +96,7 @@
                 AZ 3120/24 HP Schaden Rep RE kann nicht eingereicht werden. ESW Zusatzprodukte fehlen
             </div>
         </div>-->
-        {% for row in forderung_kommentar %}
+        {% for row in forderungen_kommentare %}
         <div class="message teacher {{ row.Rolle }}">
             <div class="message-header">
                 <div class="avatar">{{ row.Benutzer_ID }}</div>

+ 1 - 0
templates/forderungen/config/primary_key.txt

@@ -0,0 +1 @@
+Client_DB;Beleg_Nr

+ 1 - 1
templates/forderungen/details/details.html

@@ -2,7 +2,7 @@
 {% block content %}
 
 <br>
-<h2>{{forderung_kopf[0].Beleg }}</h2>
+<h2>{{forderungen_kopf[0].Beleg_Text }}</h2>
 <br>
 
 <div class="row g-3">

+ 1 - 1
templates/forderungen/details/details_buchungen.html

@@ -18,7 +18,7 @@
         </tr>
     </thead>
     <tbody>
-        {% for row in forderung_belege %}
+        {% for row in forderungen_buchungen %}
         <tr>
             <td>{{ row.Fahrzeug_Nr }}</td>
             <td>{{ row.Beleg_Nr }}</td>

+ 37 - 35
templates/forderungen/details/details_formular.html

@@ -1,17 +1,19 @@
+{% set row = forderungen_kopf[0] %}
+
 <form class="row g-3">
   <input type="hidden" name="source" value="details" />
   <div class="col-12">
     <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#VersicherungCollapse"
-      aria-expanded="{{ forderung_kopf[0].Versicherung|truefalse }}" aria-controls="VersicherungCollapse">
+      aria-expanded="{{ row.Versicherung|truefalse }}" aria-controls="VersicherungCollapse">
       <input class="form-check-input" type="checkbox" name="Versicherung" id="Versicherung" {{
-        forderung_kopf[0].Versicherung|checked }}>
+        row.Versicherung|checked }}>
       <label class="form-check-label" for="Versicherung">
         <strong>Versicherungsfall</strong>
       </label>
     </div>
   </div>
 
-  <div class="collapse {{ forderung_kopf[0].Versicherung|show }}" id="VersicherungCollapse">
+  <div class="collapse {{ row.Versicherung|show }}" id="VersicherungCollapse">
     <div class="card card-body">
       <div class="row mb-3">
         <label for="Versicherung_Name" class="col-sm-3 col-form-label">Versicherung</label>
@@ -19,7 +21,7 @@
           <select id="Versicherung_Name" name="Vers_Adresse_ID" class="form-select">
             <option value="" selected>-</option>
             {% for v in versicherungen %}
-            {% if v.Vers_Adresse_ID == forderung_kopf[0].Vers_Adresse_ID %}
+            {% if v.Vers_Adresse_ID == row.Vers_Adresse_ID %}
             <option value="{{ v.Vers_Adresse_ID }}" selected>{{ v.Vers_Name }}</option>
             {% else %}
             <option value="{{ v.Vers_Adresse_ID }}">{{ v.Vers_Name }}</option>
@@ -31,7 +33,7 @@
           <select id="Versicherung_Typ" name="Versicherung_Typ" class="form-select">
             <option value="" selected>-</option>
             {% for v in ('Haftpflicht', 'Teilkasko', 'Vollkasko', 'Ausländisch') %}
-            {% if v == forderung_kopf[0].Versicherung_Typ %}
+            {% if v == row.Versicherung_Typ %}
             <option value="{{ v }}" selected>{{ v }}</option>
             {% else %}
             <option value="{{ v }}">{{ v }}</option>
@@ -45,48 +47,48 @@
         <label for="Versicherung_Schadennummer" class="col-sm-3 col-form-label">Schadennummer</label>
         <div class="col-sm-5">
           <input type="text" class="form-control" id="Versicherung_Schadennummer" name="Versicherung_Schadennummer"
-            value="{{ forderung_kopf[0].Versicherung_Schadennummer }}">
+            value="{{ row.Versicherung_Schadennummer }}">
         </div>
       </div>
       <div class="row mb-3">
         <label for="Selbstbeteiligung" class="col-sm-3 col-form-label">Selbstbeteiligung</label>
         <div class="col-sm-3">
           <select id="Selbstbeteiligung" name="Selbstbeteiligung" class="form-select">
-            <option value="" {{ (forderung_kopf[0].Selbstbeteiligung=="" )|selected }}>-</option>
-            <option {{ (forderung_kopf[0].Selbstbeteiligung=="Versicherung" )|selected }}>Versicherung</option>
-            <option {{ (forderung_kopf[0].Selbstbeteiligung=="Kunde" )|selected }}>Kunde</option>
-            <option {{ (forderung_kopf[0].Selbstbeteiligung=="Autohaus" )|selected }}>Autohaus</option>
+            <option value="" {{ (row.Selbstbeteiligung=="" )|selected }}>-</option>
+            <option {{ (row.Selbstbeteiligung=="Versicherung" )|selected }}>Versicherung</option>
+            <option {{ (row.Selbstbeteiligung=="Kunde" )|selected }}>Kunde</option>
+            <option {{ (row.Selbstbeteiligung=="Autohaus" )|selected }}>Autohaus</option>
           </select>
         </div>
         <div class="col-sm-3">
           <input type="text" class="form-control" id="Selbstbeteiligung_Betrag" name="Selbstbeteiligung_Betrag"
-            placeholder="Betrag" value="{{ forderung_kopf[0].Selbstbeteiligung_Betrag }}">
+            placeholder="Betrag" value="{{ row.Selbstbeteiligung_Betrag }}">
         </div>
       </div>
       <div class="row mb-3">
         <label for="MwSt" class="col-sm-3 col-form-label">MwSt</label>
         <div class="col-sm-3">
           <select id="MwSt" name="Mwst" class="form-select">
-            <option value="" {{ (forderung_kopf[0].MwSt=="" )|selected }}>-</option>
-            <option {{ (forderung_kopf[0].Mwst=="Versicherung" )|selected }}>Versicherung</option>
-            <option {{ (forderung_kopf[0].Mwst=="Kunde" )|selected }}>Kunde</option>
-            <option {{ (forderung_kopf[0].Mwst=="Autohaus" )|selected }}>Autohaus</option>
+            <option value="" {{ (row.MwSt=="" )|selected }}>-</option>
+            <option {{ (row.Mwst=="Versicherung" )|selected }}>Versicherung</option>
+            <option {{ (row.Mwst=="Kunde" )|selected }}>Kunde</option>
+            <option {{ (row.Mwst=="Autohaus" )|selected }}>Autohaus</option>
           </select>
         </div>
         <div class="col-sm-3">
           <input type="text" class="form-control" id="Mwst_Betrag" name="Mwst_Betrag" placeholder="Betrag"
-            value="{{ forderung_kopf[0].Mwst_Betrag|number_format }}">
+            value="{{ row.Mwst_Betrag|number_format }}">
         </div>
         <div class="col-sm-3">
           <a class="btn btn-primary" hx-disable="true"
-            onclick="document.getElementById('Mwst_Betrag').value='{{ forderung_kopf[0].Mwst_Betrag_berechnet|number_format }}';">
+            onclick="document.getElementById('Mwst_Betrag').value='{{ row.Mwst_Betrag_berechnet|number_format }}';">
             <i class="cil-arrow-thick-left"></i>
-            {{ forderung_kopf[0].Mwst_Betrag_berechnet|number_format }}</a>
+            {{ row.Mwst_Betrag_berechnet|number_format }}</a>
         </div>
       </div>
       <div class="col-3">
         <a class="btn btn-secondary" hx-disable="true"
-          href="/app/forderungen/export/{{forderung_kopf[0].Client_DB}}_{{forderung_kopf[0].Document_No}}">Mahnung
+          href="/app/forderungen/export/{{row.Client_DB}}_{{row.Beleg_Nr}}">Mahnung
           erstellen</a>
       </div>
 
@@ -95,22 +97,22 @@
 
   <div class="col-12">
     <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#ReklamationCollapse"
-      aria-expanded="{{ forderung_kopf[0].Reklamation|truefalse }}" aria-controls="ReklamationCollapse">
+      aria-expanded="{{ row.Reklamation|truefalse }}" aria-controls="ReklamationCollapse">
       <input class="form-check-input" type="checkbox" id="Reklamation" name="Reklamation" {{
-        forderung_kopf[0].Reklamation|checked }}>
+        row.Reklamation|checked }}>
       <label class="form-check-label" for="Reklamation">
         <strong>Reklamation</strong>
       </label>
     </div>
   </div>
 
-  <div class="collapse {{ forderung_kopf[0].Reklamation|show }}" id="ReklamationCollapse">
+  <div class="collapse {{ row.Reklamation|show }}" id="ReklamationCollapse">
     <div class="card card-body">
       <div class="row mb-3">
         <label for="Reklamation_Begruendung" class="col-sm-3 col-form-label">Begründung</label>
         <div class="col-sm-5">
           <input type="text" class="form-control" id="Reklamation_Begruendung" name="Reklamation_Begruendung"
-            value="{{ forderung_kopf[0].Reklamation_Begruendung }}">
+            value="{{ row.Reklamation_Begruendung }}">
         </div>
       </div>
     </div>
@@ -118,9 +120,9 @@
 
   <div class="col-12">
     <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#RechtsanwaltCollapse"
-      aria-expanded="{{ forderung_kopf[0].Rechtsanwalt|truefalse }}" aria-controls="RechtsanwaltCollapse">
+      aria-expanded="{{ row.Rechtsanwalt|truefalse }}" aria-controls="RechtsanwaltCollapse">
       <input class="form-check-input" type="checkbox" id="Rechtsanwalt" name="Rechtsanwalt" {{
-        forderung_kopf[0].Rechtsanwalt|checked }}>
+        row.Rechtsanwalt|checked }}>
       <label class="form-check-label" for="Rechtsanwalt">
         <strong>Rechtsanwalt</strong>
       </label>
@@ -129,32 +131,32 @@
 
 
 
-  <div class="collapse {{ forderung_kopf[0].Rechtsanwalt|show }}" id="RechtsanwaltCollapse">
+  <div class="collapse {{ row.Rechtsanwalt|show }}" id="RechtsanwaltCollapse">
     <div class="card card-body">
       <div class="row mb-3">
         <label for="Rechtsanwalt_Begruendung" class="col-sm-3 col-form-label">Begründung</label>
         <div class="col-sm-5">
           <input type="text" class="form-control" id="Rechtsanwalt_Begruendung" name="Rechtsanwalt_Begruendung"
-            value="{{ forderung_kopf[0].Rechtsanwalt_Begruendung }}">
+            value="{{ row.Rechtsanwalt_Begruendung }}">
         </div>
       </div>
       <div class="row mb-3">
         <label for="Rechtsanwalt_Aktenzeichen" class="col-sm-3 col-form-label">Aktenzeichen</label>
         <div class="col-sm-5">
           <input type="text" class="form-control" id="Rechtsanwalt_Aktenzeichen" name="Rechtsanwalt_Aktenzeichen"
-            value="{{ forderung_kopf[0].Rechtsanwalt_Aktenzeichen }}">
+            value="{{ row.Rechtsanwalt_Aktenzeichen }}">
         </div>
       </div>
       <div class="row mb-3">
         <label for="Rechtsanwalt_Stand" class="col-sm-3 col-form-label">Aktueller Stand</label>
         <div class="col-sm-5">
           <input type="text" class="form-control" id="Rechtsanwalt_Stand" name="Rechtsanwalt_Stand"
-            value="{{ forderung_kopf[0].Rechtsanwalt_Stand }}">
+            value="{{ row.Rechtsanwalt_Stand }}">
         </div>
       </div>
       <div class="col-3">
         <a class="btn btn-secondary" hx-disable="true"
-          href="/app/forderungen/export/{{forderung_kopf[0].Client_DB}}_{{forderung_kopf[0].Document_No}}">Beitreibungsauftrag</a>
+          href="/app/forderungen/export/{{row.Client_DB}}_{{row.Beleg_Nr}}">Beitreibungsauftrag</a>
       </div>
     </div>
   </div>
@@ -162,16 +164,16 @@
 
   <div class="col-12">
     <div class="form-check" data-coreui-toggle="collapse" data-coreui-target="#MahnenCollapse"
-      aria-expanded="{{ forderung_kopf[0].Mahnen_aussetzen|truefalse }}" aria-controls="MahnenCollapse">
+      aria-expanded="{{ row.Mahnen_aussetzen|truefalse }}" aria-controls="MahnenCollapse">
       <input class="form-check-input" type="checkbox" id="Mahnen" name="Mahnen_aussetzen" {{
-        forderung_kopf[0].Mahnen_aussetzen|checked }}>
+        row.Mahnen_aussetzen|checked }}>
       <label class="form-check-label" for="Mahnen">
         <strong>Mahnlauf aussetzen</strong>
       </label>
     </div>
   </div>
 
-  <div class="collapse {{ forderung_kopf[0].Mahnen_aussetzen|show }}" id="MahnenCollapse">
+  <div class="collapse {{ row.Mahnen_aussetzen|show }}" id="MahnenCollapse">
     <div class="card card-body">
       <div class="row mb-3">
         <p>
@@ -182,7 +184,7 @@
         <div class="col-sm-5">
 
           <input type="text" class="form-control" id="Mahnen_Begruendung" name="Mahnen_Begruendung"
-            value="{{ forderung_kopf[0].Mahnen_Begruendung }}">
+            value="{{ row.Mahnen_Begruendung }}">
         </div>
       </div>
     </div>
@@ -196,7 +198,7 @@
       <label for="Wiedervorlage" class="col-sm-3 col-form-label">Wiedervorlage</label>
       <div class="col-sm-5">
         <input type="date" class="form-control" id="Wiedervorlage" name="Wiedervorlage"
-          value="{{ forderung_kopf[0].Wiedervorlage.strftime(" %Y-%m-%d") }}">
+          value="{{ row.Wiedervorlage.strftime(" %Y-%m-%d") }}">
       </div>
       <div class="col-3">
         <a class="btn btn-primary" onclick="document.getElementById('Wiedervorlage').value='{{ add7days }}';" hx-disable="true">

+ 1 - 1
templates/forderungen/details/details_kommentare.html

@@ -13,7 +13,7 @@
     </tr>
   </thead>
   <tbody>
-    {% for row in forderung_kommentar %}
+    {% for row in forderungen_kommentare %}
     <tr>
       <td>{{ row.Timestamp|date_format }}</td>
       <td>{{ row.Name }}</td>

+ 4 - 4
templates/forderungen/details/details_mahnungen.html

@@ -19,14 +19,14 @@
         </tr>
     </thead>
     <tbody>
-        {% for row in forderung_mahnung %}
+        {% for row in forderungen_mahnungen %}
         <tr>
             <td>{{ row.Kunde_Nr }}</td>
             <td>{{ row.Mahnung_Nr }}</td>
-            <td>{{ row.Mahndatum|date_format }}</td>
+            <td>{{ row.Mahnung_Datum|date_format }}</td>
             <td>{{ row.Mahnstufe }}</td>
-            <td>{{ row.Rechnung_Nr }}</td>
-            <td>{{ row.Rechnung_Datum|date_format }}</td>
+            <td>{{ row.Beleg_Nr }}</td>
+            <td>{{ row.Beleg_Datum|date_format }}</td>
             <td class="text-end">{{ row.Betrag|number_format }}</td>
             <td class="text-end">{{ row.Offen|number_format }}</td>
         </tr>

+ 1 - 1
templates/forderungen/details/details_positionen.html

@@ -6,7 +6,7 @@
         </tr>
     </thead>
     <tbody>
-        {% for row in auftrag_positionen %}
+        {% for row in auftraege_positionen %}
         <tr>
             <td>{{ row.Auftrag_Position }}</td>
             <td class="text-end">{{ row.Betrag|number_format }}</td>

+ 3 - 3
templates/forderungen/details/details_rohdaten.html

@@ -1,19 +1,19 @@
 <table class="table table-striped table-bordered">
     <div>
         <!--
-          {% for row in forderung_kopf %}
+          {% for row in forderungen_kopf %}
 
             {% for key, value in row._asdict().items() %}
             <tr>
               <td><strong>{{ key }}:</strong></td>
-              <td>{{ '{{' }}forderung_kopf[0].{{ key }} {{ '}}' }}</td>
+              <td>{{ '{{' }}forderungen_kopf[0].{{ key }} {{ '}}' }}</td>
             </tr>
             {% endfor %}
             {% endfor %}
           -->
     </div>
     <tbody>
-        {% for row in forderung_kopf %}
+        {% for row in forderungen_kopf %}
 
         {% for key, value in row._asdict().items() %}
         <tr>

+ 55 - 54
templates/forderungen/details/details_uebersicht.html

@@ -1,3 +1,4 @@
+{% set row = forderungen_kopf[0] %}
 
 <div class="row mb-3">
   <div>
@@ -7,26 +8,26 @@
       </tr>
       <tr>
         <td><strong>Hauptbetrieb:</strong></td>
-        <td>{{forderung_kopf[0].Hauptbetrieb_Name }}</td>
+        <td>{{row.Hauptbetrieb_Name }}</td>
       </tr>
 
       <tr>
         <td><strong>Standort:</strong></td>
-        <td>{{forderung_kopf[0].Standort_Name }}</td>
+        <td>{{row.Standort_Name }}</td>
       </tr>
       <tr>
         <td><strong>Benutzer:</strong></td>
-        <td>{{forderung_kopf[0].User_ID }}</td>
+        <td>{{row.User_ID }}</td>
       </tr>
 
       <tr>
         <td><strong>Verursacher:</strong></td>
-        <td>{{forderung_kopf[0].Verursacher }}</td>
+        <td>{{row.Verursacher }}</td>
       </tr>
 
       <tr>
         <td><strong>Bereich:</strong></td>
-        <td>{{forderung_kopf[0].Bereich }}</td>
+        <td>{{row.Bereich }}</td>
       </tr>
 
     </table>
@@ -38,27 +39,27 @@
       </tr>
       <tr>
         <td><strong>Belegart:</strong></td>
-        <td>{{forderung_kopf[0].Rechnung_Gutschrift }}</td>
+        <td>{{row.Rechnung_Gutschrift }}</td>
       </tr>
       <tr>
         <td><strong>Beleg-Nr:</strong></td>
-        <td>{{forderung_kopf[0].Document_No }}</td>
+        <td>{{row.Beleg_Nr }}</td>
       </tr>
       <tr>
         <td><strong>Betrag:</strong></td>
-        <td>{{forderung_kopf[0].offen|number_format }} &euro;</td>
+        <td>{{row.Beleg_offen|number_format }} &euro;</td>
       </tr>
       <tr>
         <td><strong>Rechnungsdatum:</strong></td>
-        <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
+        <td>{{row.Beleg_Datum|date_format }}</td>
       </tr>            
       <tr>
         <td><strong>Lieferdatum:</strong></td>
-        <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
+        <td>{{row.Beleg_Datum|date_format }}</td>
       </tr>
       <tr>
         <td><strong>Fälligkeitsdatum:</strong></td>
-        <td>{{forderung_kopf[0].Invoice_Date|date_format }}</td>
+        <td>{{row.Beleg_Datum|date_format }}</td>
       </tr>
 
 
@@ -72,27 +73,27 @@
       </tr>
       <tr>
         <td><strong>offen:</strong></td>
-        <td>{{forderung_kopf[0].offen|number_format }} &euro;</td>
+        <td>{{row.Beleg_offen|number_format }} &euro;</td>
       </tr>
 
       <tr>
         <td><strong>offen (Kunde gesamt):</strong></td>
-        <td>{{forderung_kopf[0].offen_Kunde_gesamt|number_format }} &euro;</td>
+        <td>{{row.Kunde_offen_gesamt|number_format }} &euro;</td>
       </tr>
 
       <tr>
         <td><strong>Tage:</strong></td>
-        <td>{{forderung_kopf[0].Tage }}</td>
+        <td>{{row.Tage }}</td>
       </tr>
 
       <tr>
         <td><strong>Staffel:</strong></td>
-        <td>{{forderung_kopf[0].Staffel }}</td>
+        <td>{{row.Staffel }}</td>
       </tr>
 
       <tr>
         <td><strong>Mahnstufe:</strong></td>
-        <td>{{forderung_kopf[0].Mahnstufe }}</td>
+        <td>{{row.Mahnstufe }}</td>
       </tr>
     </table>
   </div>
@@ -106,52 +107,52 @@
 
       <tr>
         <td><strong>Kunden-Nr:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_Nr }}</td>
+        <td>{{row.Kunde_Nr }}</td>
       </tr>
 
       <tr>
         <td><strong>Name:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_Name }}</td>
+        <td>{{row.Kunde_Name }}</td>
       </tr>
 
       <tr>
         <td><strong>Adresse:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_Adresse }}</td>
+        <td>{{row.Kunde_Adresse }}</td>
       </tr>
 
       <tr>
         <td><strong>PLZ / Ort:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_PLZ }} {{forderung_kopf[0].Kunde_Ort }}</td>
+        <td>{{row.Kunde_PLZ }} {{row.Kunde_Ort }}</td>
       </tr>
 
       <tr>
         <td><strong>Land:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_Land }}</td>
+        <td>{{row.Kunde_Land }}</td>
       </tr>
 
       <tr>
         <td><strong>Telefon:</strong></td>
-        <td>{{forderung_kopf[0].Kunde_Telefon }}</td>
+        <td>{{row.Kunde_Telefon }}</td>
       </tr>
 
       <tr>
         <td><strong>E-Mail:</strong></td>
-        <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>
+        <td><a href="mailto:{{row.Kunde_Email }}?subject={{row.Beleg_Nr }}" hx-disable="true">{{row.Kunde_Email }}</a></td>
       </tr>
 
       <tr>
         <td><strong>Payment_Terms_Code:</strong></td>
-        <td>{{forderung_kopf[0].Payment_Terms_Code }}</td>
+        <td>{{row.Payment_Terms_Code }}</td>
       </tr>
 
       <tr>
         <td><strong>Kundengruppe:</strong></td>
-        <td>{{forderung_kopf[0].Customer_Group_Description }}</td>
+        <td>{{row.Customer_Group_Description }}</td>
       </tr>
 
     </table>
   </div>
-{% if forderung_kopf[0].Fahrzeug_Leasing == 'J' %}
+{% if row.Fahrzeug_Leasing == 'J' %}
 <div>
     <table class="table table-sm">
       <tr>
@@ -160,44 +161,44 @@
 
       <tr>
         <td><strong>Kunden-Nr:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_Nr }}</td>
+        <td>{{row.Leasing_Kunde_Nr }}</td>
       </tr>
 
       <tr>
         <td><strong>Name:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_Name }}</td>
+        <td>{{row.Leasing_Kunde_Name }}</td>
       </tr>
 
       <tr>
         <td><strong>Adresse:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_Adresse }}</td>
+        <td>{{row.Leasing_Kunde_Adresse }}</td>
       </tr>
 
       <tr>
         <td><strong>PLZ / Ort:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_PLZ }} {{forderung_kopf[0].Leasing_Kunde_Ort }}</td>
+        <td>{{row.Leasing_Kunde_PLZ }} {{row.Leasing_Kunde_Ort }}</td>
       </tr>
 
       <tr>
         <td><strong>Land:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_Land }}</td>
+        <td>{{row.Leasing_Kunde_Land }}</td>
       </tr>
 
       <tr>
         <td><strong>Telefon:</strong></td>
-        <td>{{forderung_kopf[0].Leasing_Kunde_Telefon }}</td>
+        <td>{{row.Leasing_Kunde_Telefon }}</td>
       </tr>
 
       <tr>
         <td><strong>E-Mail:</strong></td>
-        <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>
+        <td><a href="mailto:{{row.Leasing_Kunde_Email }}?subject={{row.Beleg_Nr }}" hx-disable="true">{{row.Leasing_Kunde_Email }}</a></td>
       </tr>
     </table>
   </div>
 {% endif %}
 
 
-{% if forderung_kopf[0].Versicherung == 'J' and forderung_kopf[0].Vers_Adresse_ID != '' %}
+{% if row.Versicherung == 'J' and row.Vers_Adresse_ID != '' %}
   <div>
     <table class="table table-sm">
       <tr>
@@ -205,37 +206,37 @@
       </tr>
       <tr>
         <td><strong>Name:</strong></td>
-        <td>{{forderung_kopf[0].Vers_Name }}</td>
+        <td>{{row.Vers_Name }}</td>
       </tr>
 
       <tr>
         <td><strong>Adresse:</strong></td>
-        <td>{{forderung_kopf[0].Vers_Adresse }}</td>
+        <td>{{row.Vers_Adresse }}</td>
       </tr>
 
       <tr>
         <td><strong>PLZ / Ort:</strong></td>
-        <td>{{forderung_kopf[0].Vers_PLZ }} {{forderung_kopf[0].Vers_Ort }}</td>
+        <td>{{row.Vers_PLZ }} {{row.Vers_Ort }}</td>
       </tr>
 
       <tr>
         <td><strong>Telefon:</strong></td>
-        <td>{{forderung_kopf[0].Vers_Telefon }}</td>
+        <td>{{row.Vers_Telefon }}</td>
       </tr>
 
       <tr>
         <td><strong>Telefax:</strong></td>
-        <td>{{forderung_kopf[0].Vers_Telefax }}</td>
+        <td>{{row.Vers_Telefax }}</td>
       </tr>
 
       <tr>
         <td><strong>Webseite:</strong></td>
-        <td><a href="{{forderung_kopf[0].Vers_Web }}" hx-disable="true" target="_blank">{{forderung_kopf[0].Vers_Web }}</a></td>
+        <td><a href="{{row.Vers_Web }}" hx-disable="true" target="_blank">{{row.Vers_Web }}</a></td>
       </tr>
 
       <tr>
         <td><strong>Vers_Email:</strong></td>
-        <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>
+        <td><a href="mailto:{{row.Vers_Email }}?subject={{row.Beleg_Nr }}" hx-disable="true">{{row.Vers_Email }}</a></td>
       </tr>
     </table>
   </div>
@@ -249,67 +250,67 @@
       </tr>
       <tr>
         <td><strong>VIN:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_VIN }}</td>
+        <td>{{row.Fahrzeug_VIN }}</td>
       </tr>
 
       <tr>
         <td><strong>Marke:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Marke_Nr }}</td>
+        <td>{{row.Fahrzeug_Marke_Nr }}</td>
       </tr>
 
       <tr>
         <td><strong>Modell:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Modell_Nr }}</td>
+        <td>{{row.Fahrzeug_Modell_Nr }}</td>
       </tr>
 
       <tr>
         <td><strong>Modell Name:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Modell_Name }}</td>
+        <td>{{row.Fahrzeug_Modell_Name }}</td>
       </tr>
 
       <tr>
         <td><strong>Kategoriecode:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Kategoriecode }}</td>
+        <td>{{row.Fahrzeug_Kategoriecode }}</td>
       </tr>
 
       <tr>
         <td><strong>Halter:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Kunde_Nr }}</td>
+        <td>{{row.Fahrzeug_Kunde_Nr }}</td>
       </tr>
 
       <tr>
         <td><strong>Kennzeichen:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Kennzeichen }}</td>
+        <td>{{row.Fahrzeug_Kennzeichen }}</td>
       </tr>
 
       <tr>
         <td><strong>KM-Stand:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Kmstand }}</td>
+        <td>{{row.Fahrzeug_Kmstand }}</td>
       </tr>
 
       <tr>
         <td><strong>Antriebsart:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Antriebsart }}</td>
+        <td>{{row.Fahrzeug_Antriebsart }}</td>
       </tr>
 
       <tr>
         <td><strong>Erstzulassung:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Erstzulassung|date_format }}</td>
+        <td>{{row.Fahrzeug_Erstzulassung|date_format }}</td>
       </tr>
 
       <tr>
         <td><strong>Kaufdatum:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Kaufdatum|date_format }}</td>
+        <td>{{row.Fahrzeug_Kaufdatum|date_format }}</td>
       </tr>
 
       <tr>
         <td><strong>Anzahl Vorbesitzer:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Vorbesitzer_Anzahl }}</td>
+        <td>{{row.Fahrzeug_Vorbesitzer_Anzahl }}</td>
       </tr>
 
       <tr>
         <td><strong>Vorbesitzer:</strong></td>
-        <td>{{forderung_kopf[0].Fahrzeug_Vorbesitzer_Kunde_Nr }}</td>
+        <td>{{row.Fahrzeug_Vorbesitzer_Kunde_Nr }}</td>
       </tr>
     </table>
   </div>

+ 1 - 1
templates/forderungen/details/queries/auftrag_positionen.sql → templates/forderungen/details/queries/auftraege_positionen.sql

@@ -1,7 +1,7 @@
 SELECT TOP 100 [Auftrag_Nr]
      , [Auftrag_Position]
      , [Betrag]
-FROM [dbo].[Auftrag_Positionen]
+FROM [dbo].[Auftraege_Positionen]
 WHERE (
 	Client_DB = {{ appsmith.URL.queryParams.Client_DB }}
 AND [Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }}

+ 0 - 15
templates/forderungen/details/queries/forderung_mahnung.sql

@@ -1,15 +0,0 @@
-SELECT TOP 100 [Client_DB]
-     , [Kunde_Nr]
-     , [Mahnung_Nr]
-     , [Mahndatum]
-     , [Mahnstufe]
-     , [Rechnung_Nr]
-     , [Rechnung_Datum]
-     , [Betrag]
-     , [Offen]
-FROM [dbo].[Forderung_Mahnung]
-WHERE (
-	Client_DB = {{ appsmith.URL.queryParams.Client_DB }}
-AND [Kunde_Nr] IN (SELECT [Kunde_Nr] FROM [dbo].[Forderung_Mahnung] WHERE [Rechnung_Nr] = {{ appsmith.URL.queryParams.Document_No }} )
-) OR 1 != 1
-ORDER BY Mahndatum

+ 2 - 2
templates/forderungen/details/queries/forderung_belege.sql → templates/forderungen/details/queries/forderungen_buchungen.sql

@@ -17,11 +17,11 @@ SELECT TOP 1000 [Client_DB]
 FROM [dbo].[Forderungen_Buchungen]
 WHERE (
 	[Client_DB] = {{ appsmith.URL.queryParams.Client_DB }}
-AND [Kunde_Nr] IN (SELECT [Kunde_Nr] FROM [dbo].[Forderung_Mahnung] WHERE [Rechnung_Nr] = {{ appsmith.URL.queryParams.Document_No }} )
+AND [Kunde_Nr] IN (SELECT [Kunde_Nr] FROM [dbo].[Forderungen_Mahnungen] WHERE [Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }} )
 AND (
 	('D' = '{{ BelegeFilter.selectedOptionValue }}')
 	OR
-	('F' = '{{ BelegeFilter.selectedOptionValue }}' AND [Fahrzeug_Nr] IN (SELECT [Fahrzeug_Nr] FROM [dbo].[Forderung_Mahnung] WHERE [Rechnung_Nr] = {{ appsmith.URL.queryParams.Document_No }} )) 
+	('F' = '{{ BelegeFilter.selectedOptionValue }}' AND [Fahrzeug_Nr] IN (SELECT [Fahrzeug_Nr] FROM [dbo].[Forderungen_Mahnungen] WHERE [Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }} )) 
 
 )
 	

+ 1 - 1
templates/forderungen/details/queries/forderung_kommentar.sql → templates/forderungen/details/queries/forderungen_kommentar.sql

@@ -6,4 +6,4 @@ SELECT [Timestamp],
  
 FROM [dbo].[Forderungen_Kommentar_Benutzer]
 WHERE [Client_DB] = {{ appsmith.URL.queryParams.Client_DB }}
-AND [Beleg_Nr] = {{ appsmith.URL.queryParams.Document_No }}
+AND [Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }}

+ 5 - 5
templates/forderungen/details/queries/forderung_kopf.sql → templates/forderungen/details/queries/forderungen_kopf.sql

@@ -1,5 +1,5 @@
 SELECT [F].*
-     , round([offen] * 0.19, 2) AS [Mwst_Betrag_berechnet]
+     , round([Beleg_offen] * 0.19, 2) AS [Mwst_Betrag_berechnet]
      , [K].[Kunde_Name]
      , [K].[Kunde_Nachname]
      , [K].[Kunde_Vorname]
@@ -30,7 +30,7 @@ SELECT [F].*
      , isnull([FD].[Rechtsanwalt_Aktenzeichen], '') AS [Rechtsanwalt_Aktenzeichen]
      , isnull([FD].[Rechtsanwalt_Stand], '') AS [Rechtsanwalt_Stand]
      , isnull([FD].[Mahnen_Begruendung], '') AS [Mahnen_Begruendung]
-     , isnull([FD].[Wiedervorlage], coalesce([FD].[Wiedervorlage], dateadd(DAY, 14, [F].[Invoice_Date]))) AS [Wiedervorlage]
+     , isnull([FD].[Wiedervorlage], coalesce([FD].[Wiedervorlage], dateadd(DAY, 14, [F].[Beleg_Datum]))) AS [Wiedervorlage]
      , [V].[Vers_Name]
      , [V].[Vers_Adresse]
      , [V].[Vers_PLZ]
@@ -64,11 +64,11 @@ SELECT [F].*
      , [K2].[Kunde_Land] AS [Leasing_Kunde_Land]
      , [K2].[Kunde_Telefon] AS [Leasing_Kunde_Telefon]
      , [K2].[Kunde_Email] AS [Leasing_Kunde_Email]     
-FROM [dbo].[Forderungen_Liste] [F]
+FROM [dbo].[Forderungen_Kopf] [F]
          LEFT JOIN [dbo].[Kunden] [K] ON [F].[Kunde_Nr] = [K].[Kunde_Nr] AND [F].[Client_DB] = [K].[Client_DB]
-         LEFT JOIN [dbo].[Fahrzeuge] FZ ON F.VIN = FZ.Fahrzeug_Nr AND [F].[Client_DB] = [FZ].[Client_DB]
+         LEFT JOIN [dbo].[Fahrzeuge] FZ ON F.[Fahrzeug_Nr] = FZ.[Fahrzeug_Nr] AND [F].[Client_DB] = [FZ].[Client_DB]
          LEFT JOIN [dbo].[Kunden] [K2] ON [FZ].[Fahrzeug_Kunde_Nr] = [K2].[Kunde_Nr] AND [FZ].[Client_DB] = [K2].[Client_DB]
-         LEFT JOIN [dbo].[Forderungen_Details] [FD] ON [F].[Client_DB] = [FD].[Client_DB] AND [F].[Document_No] = [FD].[Beleg_Nr]
+         LEFT JOIN [dbo].[Forderungen_Details] [FD] ON [F].[Beleg_Nr] = [FD].[Beleg_Nr] AND [F].[Client_DB] = [FD].[Client_DB] 
          LEFT JOIN [dbo].[Versicherungen] [V] ON [FD].[Vers_Adresse_ID] = [V].[Vers_Adresse_ID]
 WHERE [F].[Client_DB] = {{ appsmith.URL.queryParams.Client_DB }}
 AND [F].[Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }}

+ 15 - 0
templates/forderungen/details/queries/forderungen_mahnungen.sql

@@ -0,0 +1,15 @@
+SELECT TOP 100 [Client_DB]
+     , [Kunde_Nr]
+     , [Mahnung_Nr]
+     , [Mahnung_Datum]
+     , [Mahnstufe]
+     , [Beleg_Nr]
+     , [Beleg_Datum]
+     , [Betrag]
+     , [Offen]
+FROM [dbo].[Forderungen_Mahnungen]
+WHERE (
+	[Client_DB] = {{ appsmith.URL.queryParams.Client_DB }}
+AND [Kunde_Nr] IN (SELECT [Kunde_Nr] FROM [dbo].[Forderungen_Mahnungen] WHERE [Beleg_Nr] = {{ appsmith.URL.queryParams.Beleg_Nr }} )
+) OR 1 != 1
+ORDER BY [Mahnung_Datum]

+ 1 - 1
templates/forderungen/liste/config/liste_filter.csv

@@ -3,7 +3,7 @@ Hauptbetrieb;select;2;;Client_DB;Hauptbetrieb_Name;;
 Standort;select;3;;Standort_ID;Standort_Name;;
 Bereich;select;3;;;;;
 Verursacher;select;4;;;;;
-Rechnungsnummer;text;2;;Document_No;;;
+Rechnungsnummer;text;2;;Beleg_Nr;;;
 RechnungsdatumVon;date;2;Rechnungsdatum von;Invoice_Date;;;
 RechnungsdatumBis;date;2;Rechnungsdatum bis;Invoice_Date;;;
 Kunde;text;4;;;;;

+ 3 - 3
templates/forderungen/liste/liste_zeile.html

@@ -1,6 +1,6 @@
 <tr>
   <td>
-    <a href="/app/forderungen/details/{{ row.Client_DB }}_{{ row.Document_No }}"
+    <a href="/app/forderungen/details/{{ row.Client_DB }}_{{ row.Beleg_Nr }}"
       class="btn btn-sm btn-primary gc-action-btn">
       <i class="icon cil-pencil"></i>
     </a>
@@ -18,7 +18,7 @@
     <div class="gc-subtitle">
       {{ row.Kunde2 or '' }}
       {% if row.Kunde_Email %}
-      · <a href="mailto:{{ row.Kunde_Email }}?subject={{ row.Document_No }}" hx-disable="true">E-Mail</a>
+      · <a href="mailto:{{ row.Kunde_Email }}?subject={{ row.Beleg_Nr }}" hx-disable="true">E-Mail</a>
       {% endif %}
     </div>
   </td>
@@ -34,7 +34,7 @@
   </td>
 
   <td>
-    <span class="gc-badge gc-badge-info">{{ row.Document_No }}</span>
+    <span class="gc-badge gc-badge-info">{{ row.Beleg_Nr }}</span>
   </td>
 
   <td>

+ 4 - 4
templates/forderungen/liste/queries/forderungen_liste.sql

@@ -5,7 +5,7 @@ SELECT [F].[Client_DB]
      , [F].[Hauptbetrieb_Name]
      , [F].[Standort_ID]
      , [F].[Standort_Name]
-     , [F].[Document_No]
+     , [F].[Beleg_Nr]
      , [F].[Rechnung_Gutschrift]
      , [F].[User_ID]
      , [F].[VIN]
@@ -48,10 +48,10 @@ SELECT [F].[Client_DB]
      , isnull([FD].[Bearbeitet], 'N') AS [Bearbeitet]
      , dateadd(DAY, 14, [F].[Invoice_Date]) AS [Fällig_Datum]
 
-FROM [dbo].[Forderungen] [F]
+FROM [dbo].[Forderungen_Kopf] [F]
          LEFT JOIN [dbo].[Kunden] [K] ON [F].[Kunde_Nr] = [K].[Kunde_Nr] AND [F].[Client_DB] = [K].[Client_DB]
-         LEFT JOIN [dbo].[Forderungen_Details] [FD] ON [F].[Client_DB] = [FD].[Client_DB] AND [F].[Document_No] = [FD].[Beleg_Nr]
-         LEFT JOIN [dbo].[Forderungen_Kommentar_letzte] [FK] ON [F].[Client_DB] = [FK].[Client_DB] AND [F].[Document_No] = [FK].[Beleg_Nr]
+         LEFT JOIN [dbo].[Forderungen_Details] [FD] ON [F].[Client_DB] = [FD].[Client_DB] AND [F].[Beleg_Nr] = [FD].[Beleg_Nr]
+         LEFT JOIN [dbo].[Forderungen_Kommentar_letzte] [FK] ON [F].[Client_DB] = [FK].[Client_DB] AND [F].[Beleg_Nr] = [FK].[Beleg_Nr]
 
 ) AS F
 INNER JOIN [dbo].[Benutzer_Rechte] [BR] ON ([BR].[Benutzer_ID] = {{ BenutzerSelect.selectedOptionValue }} OR BR.Benutzer_ID = '')