stations and tables
authorKilian <ksaffran@dks.lu>
Sun, 17 Mar 2019 09:37:37 +0000 (10:37 +0100)
committerKilian <ksaffran@dks.lu>
Sun, 17 Mar 2019 09:37:37 +0000 (10:37 +0100)
main.js
modules/clients/index.js
modules/sales/index.html
modules/stations/index.html
modules/stations/index.js
modules/tables/index.html
modules/tables/index.js
modules/transactions/index.html
modules/transactions/lib/transaction.js [new file with mode: 0644]

diff --git a/main.js b/main.js
index d499a29..c813a67 100644 (file)
--- a/main.js
+++ b/main.js
@@ -45,12 +45,12 @@ function createWindow () {
        // var test = app.getPath('USERPROFILE');
        // console.log("Path:" + test);
        // console.log(data.toString());
-       win.show()
+       mainWindow.show()
       } 
    
     });
   } else {
-    win.show();
+    mainWindow.show();
   }
   
   mainWindow.show()
index 9f39e0d..488cc5b 100644 (file)
@@ -9,37 +9,21 @@ function initpage(){
  
 
 function loadtable(){
-  // var sql = 'select ij.id,ij.byear,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' +
-  // 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' +
-  // 'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount,  ' +
-  // 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' +
-  // 'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' +
-  // 'ij.status ' +
-  // 'from cashbox ij ' +
-  // 'left join invoicepositions pos on (ij.id=pos.id_invoice) ' +
-  // 'left join accounts rec on (ij.id_receipient = rec.id) ' +
-  // 'left join accounts sen on (ij.id_sender = sen.id) where ij.byear=' + cfg.byear +' group by pos.id_invoice order by date desc;';
-  // var data = appdb.dbquery(sql);
+  var sql = 'SELECT id, prename,surname, address, zip, city, country, clientnumber, email, phone FROM clients;'
+  var data = appdb.dbquery(sql);
   // //console.log(data.sqldata);
-  // for (var i in data.sqldata){
-  //   var cstatus = "secondary";
-  //   if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; }
-  //   if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; }
-  //   if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; }
-  //   var acolor = "";
-  //   if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; }
-  //   var row = '<tr id="' +data.sqldata[i].id + '">'+
-  //   '<td></td>' +
-  //   '<td><span class="d-none">'+data.sqldata[i].datesortable+'</span> ' + data.sqldata[i].date+ '</td>' +
-  //   '<td>' + data.sqldata[i].recepient+ '</td>' +
-  //   '<td>' + data.sqldata[i].sender+ '</td>' +
-  //   '<td>' + data.sqldata[i].reference+ '</td>' +
-  //   '<td class="btn-'+ cstatus+'">' + data.sqldata[i].status+ '</td>' +
-  //   '<td class="'+ acolor +'">' + data.sqldata[i].totalamount+ ' €</td>' +
-    
-  //   '</tr>';
-  //   $("#tbl_invoices").append(row);
-  // }
+  for (var i in data.sqldata){
+   var row = '<tr id="' +data.sqldata[i].id + '">'+
+   '<td></td>' +
+     '<td>'+ data.sqldata[i].prename + ' ' + data.sqldata[i].surname + '</td>' +
+    '<td>'+ data.sqldata[i].address + '<br/>' + data.sqldata[i].zip + ' ' + data.sqldata[i].city + '<br/>' + data.sqldata[i].country +'</td>' +
+     '<td>' + data.sqldata[i].phone+ '</td>' +
+     '<td>' + data.sqldata[i].email+ '</td>' +
+     '<td>' +  '</td>' +
+     '<td>' +  '</td>' +
+     '</tr>';
+     $("#tbl_clients").append(row);
+  }
   $('#tbl_clients').bootstrapTable({
     pagination: false,
     search: false,
@@ -50,38 +34,27 @@ function loadtable(){
   
 }
 
-function loadyears(){
-  sql = "select byear from cashbox group by byear order by byear asc;";
-  var data = appdb.dbquery(sql);
-  //onsole.log(data.sqldata);
-  for (var i in data.sqldata){
-    $("#timerange").append('<a class="dropdown-item" href="javascript:change_timerange({"byear":"'+data.sqldata[i].byear+'"});">' + data.sqldata[i].byear+'</a>');
-  }
-  
-}
 
-function invoice_edit(){
-  var inv_id= getTableSelectionID();
-  if (inv_id){
-    parent.browserapp.loadmodulepage('invoices','invoice',{"id":inv_id});
+
+function client_edit(){
+  var cl_id= getTableSelectionID();
+  if (cl_id){
+    parent.browserapp.loadmodulepage('clients','client',{"id":cl_id});
   }
   
 }
 
-function invoice_delete(){
+function client_delete(){
   
 }
 
-function invoice_duplicate(){
+function client_duplicate(){
   
 }
 
-function change_timerange(){
-
-}
 
 function getTableSelectionID(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_clients').bootstrapTable('getSelections');
   var id = null;
   
   if (sel){  id=sel[0]._id; }
@@ -90,7 +63,7 @@ function getTableSelectionID(){
 }
 
 function getTableSelectionIDs(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_clients').bootstrapTable('getSelections');
   var ids = [];
   if (sel){  
     for (var s in sel){
index 707db75..d3cbd62 100644 (file)
@@ -6,7 +6,7 @@
 <link rel="stylesheet" href="../../node_modules/bootstrap/dist/css/bootstrap.min.css">
 <link rel="stylesheet" href="../../node_modules/bootstrap-table/dist/bootstrap-table.min.css">
 <link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css">
-<link rel="stylesheet" href="../../css/salesjournal.epic.css">
+<link rel="stylesheet" href="../../css/cashbox.epic.css">
 <link rel="stylesheet" href="../../css/app.css">
 <title>Verkäufe</title>
 </head>
index 2a66de8..d161e36 100644 (file)
                 <a class="navbar-brand" href="#">Rechnungen</a>
                 <div class="ml-auto">
            <div class="btn-group" role="group" aria-label="Basic example">
-    <button class="btn btn-primary" onclick="invoice_new();"><i class="fas fa-plus"></i><br/>New</button>
-    <button class="btn btn-primary" onclick="invoice_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
-    <button class="btn btn-primary" onclick="invoice_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
-    <button class="btn btn-primary" onclick="invoice_clone();"><i class="fas fa-clone"></i><br/>Dupl.</button>
-    <div class="btn-group">
-        <button type="button" class="btn btn-primary" id="seltimerange">TimeRange</button>
-        <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-          <span class="sr-only">Toggle Dropdown</span>
-        </button>
-        <div class="dropdown-menu" id="timerange">
-          
-        </div>
-      </div>
+    <button class="btn btn-primary" onclick="station_new();"><i class="fas fa-plus"></i><br/>New</button>
+    <button class="btn btn-primary" onclick="station_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
+    <button class="btn btn-primary" onclick="station_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
+    <button class="btn btn-primary" onclick="station_clone();"><i class="fas fa-clone"></i><br/>Dupl.</button>
+    
    </div>
                 </div>
               </nav>
     <div class="cotainer-fluid" style="margin-top: 52px;">            
-    <table id="tbl_invoices" class="table table-bordered table-hover table-striped">
+    <table id="tbl_stations" class="table table-bordered table-hover table-striped">
         <thead class="thead-dark"> 
                 <th data-checkbox="true"></th>
-                <th data-sortable="true">Datum</th>
-                <th data-sortable="true">Empfänger</th>
-                <th data-sortable="true">Sender</th>
-                <th data-sortable="true">Referenz</th>
+                <th data-sortable="true">Name</th>
+                <th data-sortable="true">Typ</th>
+                <th data-sortable="true">Mitarbeiter</th>
                 <th data-sortable="true">Status</th>
-                <th data-sortable="true" data-align="right" data-width="100">Betrag</th>
         <tfoot></tfoot>
         <tbody></tbody>
     </table>
@@ -52,7 +42,6 @@
 <script src="../../node_modules/@fortawesome/fontawesome-free/js/all.min.js"></script>
 <script src="../../js/moduleglobal.js"></script>
 <script src="../../js/database.js"></script>
-<script src="lib/invoice.js"></script>
 <script src="index.js"></script>
 <script>if (window.module) module = window.module;</script>
 </body>
index 7c61e85..7f398a4 100644 (file)
@@ -1,49 +1,35 @@
 var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
 var tblh = winh-54;
-var cfg = {
-  byear: 2018
-}
+
 function initpage(){
   console.log(appdb.url);
-  loadyears();
   loadtable();
 }
 
  
 
 function loadtable(){
-  var sql = 'select ij.id,ij.byear,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' +
-  'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' +
-  'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount,  ' +
-  'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' +
-  'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' +
-  'ij.status ' +
-  'from cashbox ij ' +
-  'left join invoicepositions pos on (ij.id=pos.id_invoice) ' +
-  'left join accounts rec on (ij.id_receipient = rec.id) ' +
-  'left join accounts sen on (ij.id_sender = sen.id) where ij.byear=' + cfg.byear +' group by pos.id_invoice order by date desc;';
+  var sql = 'SELECT id, hostname, "type", currentip, staffmember, status, location FROM stations;';
   var data = appdb.dbquery(sql);
   //console.log(data.sqldata);
   for (var i in data.sqldata){
     var cstatus = "secondary";
-    if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; }
-    if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; }
-    if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; }
-    var acolor = "";
-    if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; }
+    if (data.sqldata[i].status== "active"){ cstatus = "success"; }
+    if (data.sqldata[i].status== "inactive"){ cstatus = "danger"; }
+    // if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; }
+    // var acolor = "";
+    // if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; }
     var row = '<tr id="' +data.sqldata[i].id + '">'+
     '<td></td>' +
-    '<td><span class="d-none">'+data.sqldata[i].datesortable+'</span> ' + data.sqldata[i].date+ '</td>' +
-    '<td>' + data.sqldata[i].recepient+ '</td>' +
-    '<td>' + data.sqldata[i].sender+ '</td>' +
-    '<td>' + data.sqldata[i].reference+ '</td>' +
+    '<td><span class="d-none">' + data.sqldata[i].hostname+ '</td>' +
+    '<td>' + data.sqldata[i].type+ '</td>' +
+    '<td>' + data.sqldata[i].location+ '</td>' +
+    '<td>' + data.sqldata[i].staffmember+ '</td>' +
     '<td class="btn-'+ cstatus+'">' + data.sqldata[i].status+ '</td>' +
-    '<td class="'+ acolor +'">' + data.sqldata[i].totalamount+ ' €</td>' +
-    
     '</tr>';
-    $("#tbl_invoices").append(row);
+    $("#tbl_stations").append(row);
   }
-  $('#tbl_invoices').bootstrapTable({
+  $('#tbl_stations').bootstrapTable({
     pagination: false,
     search: false,
     height: tblh,
@@ -53,38 +39,27 @@ function loadtable(){
   
 }
 
-function loadyears(){
-  sql = "select byear from cashbox group by byear order by byear asc;";
-  var data = appdb.dbquery(sql);
-  //onsole.log(data.sqldata);
-  for (var i in data.sqldata){
-    $("#timerange").append('<a class="dropdown-item" href="javascript:change_timerange({"byear":"'+data.sqldata[i].byear+'"});">' + data.sqldata[i].byear+'</a>');
-  }
-  
-}
 
-function invoice_edit(){
-  var inv_id= getTableSelectionID();
-  if (inv_id){
-    parent.browserapp.loadmodulepage('invoices','invoice',{"id":inv_id});
+function station_edit(){
+  var st_id= getTableSelectionID();
+  if (st_id){
+    parent.browserapp.loadmodulepage('stations','station',{"id":st_id});
   }
   
 }
 
-function invoice_delete(){
+function station_delete(){
   
 }
 
-function invoice_duplicate(){
+function station_duplicate(){
   
 }
 
-function change_timerange(){
 
-}
 
 function getTableSelectionID(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_stations').bootstrapTable('getSelections');
   var id = null;
   
   if (sel){  id=sel[0]._id; }
@@ -93,7 +68,7 @@ function getTableSelectionID(){
 }
 
 function getTableSelectionIDs(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_stations').bootstrapTable('getSelections');
   var ids = [];
   if (sel){  
     for (var s in sel){
index 2a66de8..34f2f6f 100644 (file)
 </head>
 <body>
         <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-                <a class="navbar-brand" href="#">Rechnungen</a>
+                <a class="navbar-brand" href="#">Tische</a>
                 <div class="ml-auto">
            <div class="btn-group" role="group" aria-label="Basic example">
-    <button class="btn btn-primary" onclick="invoice_new();"><i class="fas fa-plus"></i><br/>New</button>
-    <button class="btn btn-primary" onclick="invoice_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
-    <button class="btn btn-primary" onclick="invoice_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
-    <button class="btn btn-primary" onclick="invoice_clone();"><i class="fas fa-clone"></i><br/>Dupl.</button>
-    <div class="btn-group">
-        <button type="button" class="btn btn-primary" id="seltimerange">TimeRange</button>
-        <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-          <span class="sr-only">Toggle Dropdown</span>
-        </button>
-        <div class="dropdown-menu" id="timerange">
-          
-        </div>
-      </div>
+    <button class="btn btn-primary" onclick="table_new();"><i class="fas fa-plus"></i><br/>New</button>
+    <button class="btn btn-primary" onclick="table_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
+    <button class="btn btn-primary" onclick="table_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
+    <button class="btn btn-primary" onclick="table_clone();"><i class="fas fa-clone"></i><br/>Dupl.</button>
+    
    </div>
                 </div>
               </nav>
     <div class="cotainer-fluid" style="margin-top: 52px;">            
-    <table id="tbl_invoices" class="table table-bordered table-hover table-striped">
+    <table id="tbl_tables" class="table table-bordered table-hover table-striped">
         <thead class="thead-dark"> 
                 <th data-checkbox="true"></th>
-                <th data-sortable="true">Datum</th>
-                <th data-sortable="true">Empfänger</th>
-                <th data-sortable="true">Sender</th>
-                <th data-sortable="true">Referenz</th>
+                <th data-sortable="true">Name</th>
+                <th data-sortable="true">Sitzplätze</th>
+                <th data-sortable="true">Standort</th>
                 <th data-sortable="true">Status</th>
+                <th data-sortable="true">Freie Plätze</th>
                 <th data-sortable="true" data-align="right" data-width="100">Betrag</th>
         <tfoot></tfoot>
         <tbody></tbody>
@@ -52,7 +44,6 @@
 <script src="../../node_modules/@fortawesome/fontawesome-free/js/all.min.js"></script>
 <script src="../../js/moduleglobal.js"></script>
 <script src="../../js/database.js"></script>
-<script src="lib/invoice.js"></script>
 <script src="index.js"></script>
 <script>if (window.module) module = window.module;</script>
 </body>
index 7c61e85..94ca376 100644 (file)
@@ -1,49 +1,32 @@
 var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
 var tblh = winh-54;
-var cfg = {
-  byear: 2018
-}
+
 function initpage(){
   console.log(appdb.url);
-  loadyears();
   loadtable();
 }
 
  
 
 function loadtable(){
-  var sql = 'select ij.id,ij.byear,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' +
-  'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' +
-  'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount,  ' +
-  'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' +
-  'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' +
-  'ij.status ' +
-  'from cashbox ij ' +
-  'left join invoicepositions pos on (ij.id=pos.id_invoice) ' +
-  'left join accounts rec on (ij.id_receipient = rec.id) ' +
-  'left join accounts sen on (ij.id_sender = sen.id) where ij.byear=' + cfg.byear +' group by pos.id_invoice order by date desc;';
+  var sql = 'SELECT id, name, seats,location FROM tables;';
   var data = appdb.dbquery(sql);
   //console.log(data.sqldata);
   for (var i in data.sqldata){
-    var cstatus = "secondary";
-    if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; }
-    if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; }
-    if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; }
-    var acolor = "";
-    if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; }
+    
     var row = '<tr id="' +data.sqldata[i].id + '">'+
     '<td></td>' +
-    '<td><span class="d-none">'+data.sqldata[i].datesortable+'</span> ' + data.sqldata[i].date+ '</td>' +
-    '<td>' + data.sqldata[i].recepient+ '</td>' +
-    '<td>' + data.sqldata[i].sender+ '</td>' +
-    '<td>' + data.sqldata[i].reference+ '</td>' +
-    '<td class="btn-'+ cstatus+'">' + data.sqldata[i].status+ '</td>' +
-    '<td class="'+ acolor +'">' + data.sqldata[i].totalamount+ ' €</td>' +
+    '<td>' + data.sqldata[i].name+ '</td>' +
+    '<td>' + data.sqldata[i].seats+ '</td>' +
+    '<td>' + data.sqldata[i].location+ '</td>' +
+    '<td>' +  'unbekannt' +'</td>' +
+    '<td >' + 0+ '</td>' +
+    '<td class="'+ acolor +'">' + 0.00+ ' €</td>' +
     
     '</tr>';
-    $("#tbl_invoices").append(row);
+    $("#tbl_tables").append(row);
   }
-  $('#tbl_invoices').bootstrapTable({
+  $('#tbl_tables').bootstrapTable({
     pagination: false,
     search: false,
     height: tblh,
@@ -53,38 +36,28 @@ function loadtable(){
   
 }
 
-function loadyears(){
-  sql = "select byear from cashbox group by byear order by byear asc;";
-  var data = appdb.dbquery(sql);
-  //onsole.log(data.sqldata);
-  for (var i in data.sqldata){
-    $("#timerange").append('<a class="dropdown-item" href="javascript:change_timerange({"byear":"'+data.sqldata[i].byear+'"});">' + data.sqldata[i].byear+'</a>');
-  }
-  
-}
 
-function invoice_edit(){
-  var inv_id= getTableSelectionID();
-  if (inv_id){
-    parent.browserapp.loadmodulepage('invoices','invoice',{"id":inv_id});
+
+function table_edit(){
+  var tbl_id= getTableSelectionID();
+  if (tbl_id){
+    parent.browserapp.loadmodulepage('tables','table',{"id":tbl_id});
   }
   
 }
 
-function invoice_delete(){
+function table_delete(){
   
 }
 
-function invoice_duplicate(){
+function table_clone(){
   
 }
 
-function change_timerange(){
 
-}
 
 function getTableSelectionID(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_tables').bootstrapTable('getSelections');
   var id = null;
   
   if (sel){  id=sel[0]._id; }
@@ -93,7 +66,7 @@ function getTableSelectionID(){
 }
 
 function getTableSelectionIDs(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_tables').bootstrapTable('getSelections');
   var ids = [];
   if (sel){  
     for (var s in sel){
index 2a66de8..cfb0709 100644 (file)
@@ -8,11 +8,11 @@
 <link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css">
 <link rel="stylesheet" href="../../css/cashbox.epic.css">
 <link rel="stylesheet" href="../../css/app.css">
-<title>Rechnungen</title>
+<title>Transaktionen</title>
 </head>
 <body>
         <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-                <a class="navbar-brand" href="#">Rechnungen</a>
+                <a class="navbar-brand" href="#">Transaktionen</a>
                 <div class="ml-auto">
            <div class="btn-group" role="group" aria-label="Basic example">
     <button class="btn btn-primary" onclick="invoice_new();"><i class="fas fa-plus"></i><br/>New</button>
     <table id="tbl_invoices" class="table table-bordered table-hover table-striped">
         <thead class="thead-dark"> 
                 <th data-checkbox="true"></th>
-                <th data-sortable="true">Datum</th>
-                <th data-sortable="true">Empfänger</th>
-                <th data-sortable="true">Sender</th>
-                <th data-sortable="true">Referenz</th>
+                <th data-sortable="true">Zeitpunkt</th>
+                <th data-sortable="true">Bezahlart</th>
+                <th data-sortable="true">Kunde</th>
+                <th data-sortable="true">Tisch</th>
                 <th data-sortable="true">Status</th>
                 <th data-sortable="true" data-align="right" data-width="100">Betrag</th>
         <tfoot></tfoot>
@@ -52,7 +52,7 @@
 <script src="../../node_modules/@fortawesome/fontawesome-free/js/all.min.js"></script>
 <script src="../../js/moduleglobal.js"></script>
 <script src="../../js/database.js"></script>
-<script src="lib/invoice.js"></script>
+<script src="lib/transaction.js"></script>
 <script src="index.js"></script>
 <script>if (window.module) module = window.module;</script>
 </body>
diff --git a/modules/transactions/lib/transaction.js b/modules/transactions/lib/transaction.js
new file mode 100644 (file)
index 0000000..e69de29