<select class="form-control list-group-item list-group-item-action bg-primary text-white" id="globaldatasets" onchange="browserapp.loaddataset();">
</select>
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('paywindow');">Kasse</a>
- <a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('overview');">Übersicht</a>
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('products');">Produkte</a>
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('accounts');">Konten</a>
- <a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('stations');">Geräte</a>
+ <!-- <a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('stations');">Geräte</a> -->
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('transactions');">Transaktionen</a>
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('sales');">Verkäufe</a>
<a class="list-group-item list-group-item-action bg-light" href="javascript:browserapp.loadmodule('settings');">Einstellungen</a></li>
<!-- Page Content -->
<div id="page-content-wrapper">
- <iframe id="moduleframe" src="modules/overview/index.html" style="width: 100%;height: 100vh; border: 0px;">
+ <iframe id="moduleframe" src="modules/paywindow/index.html" style="width: 100%;height: 100vh; border: 0px;">
</iframe>
</div>
<!-- /#page-content-wrapper -->
result=data.result;
},
error: function(data){
- alert("Error:" + JSON.stringify(data));
+ //alert("Error:" + JSON.stringify(data));
console.log("Error:" + JSON.stringify(data));
},
async:false
result=data.result;
},
error: function(data){
- alert("Error:" + JSON.stringify(data));
+ //alert("Error:" + JSON.stringify(data));
console.log("Error:" + JSON.stringify(data));
},
async:false
result=data.result;
},
error: function(data){
- alert("Error:" + JSON.stringify(data));
+ //alert("Error:" + JSON.stringify(data));
console.log("Error:" + JSON.stringify(data));
},
async:false
result=data.result;
},
error: function(data){
- alert("Error:" + JSON.stringify(data));
+ //alert("Error:" + JSON.stringify(data));
console.log("Error:" + JSON.stringify(data));
},
async:false
$( document ).ready(function() {
- console.log( "Main ready!" );
+ //console.log( "Main ready!" );
browserapp.setdatasets();
browserapp.loaddataset();
browserapp.loadmodule("overview");
- console.log("After module load!");
+ //console.log("After module load!");
});
//console.log(navigator.platform);
$( document ).ready(function() {
- console.log( "Iframe "+ location.pathname.substring(location.pathname.lastIndexOf("/")) +" ready!" );
+ //console.log( "Iframe "+ location.pathname.substring(location.pathname.lastIndexOf("/")) +" ready!" );
mpref.loadconfig();
initpage();
});
getSearchParams: function (k){
//alert(location.href);
var p={};
- console.log("params =>" + location.search);
+ //console.log("params =>" + location.search);
location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v});
return k?p[k]:p;
},
loadconfig: function(){
this.cfg = this.getSearchParams();
+ //console.log("Module global config");
+ //console.log(this.cfg);
//var page = location.pathname.substring(location.pathname.lastIndexOf("/"));
//page = page.replace(/\.html/,'');
//apppref.getpreference(page);
mainWindow.show()
// Open the DevTools.
mainWindow.webContents.openDevTools()
-
+ mainWindow.webContents.on('new-window', (event, url, frameName, disposition, options, additionalFeatures) =>{
+ console.log("URL:" + url);
+ console.log("frameName:" + frameName);
+ console.log(options);
+ console.log(disposition);
+ if (frameName === 'receipt') {
+ event.preventDefault()
+ Object.assign(options,{
+ modal: true,
+ parent: mainWindow,
+ width: 320,
+ height: 400,
+ show: false
+ })
+ const win = new BrowserWindow(options)
+ win.setMenu(null)
+ win.once('ready-to-show', () => win.show())
+ win.loadURL(url)
+ if (url.indexOf("&action=print") > 0 ){
+ win.webContents.on('did-finish-load', () => {
+ win.webContents.print();
+ })
+ }
+ event.newGuest = win
+ }
+ else if (frameName === 'cardview') {
+ event.preventDefault()
+ Object.assign(options,{
+ modal: true,
+ parent: mainWindow,
+ width: 1040,
+ height: 600,
+ show: false
+ })
+ const win = new BrowserWindow(options)
+ win.setMenu(null)
+ win.once('ready-to-show', () => win.show())
+ win.loadURL(url)
+ win.webContents.on('new-window', (event2, url2, frameName2, disposition2, options2, additionalFeatures2) => {
+ console.log("SubWindow for print!");
+ console.log(url2);
+ console.log(frameName2);
+ event2.preventDefault()
+ Object.assign(options,{
+ modal: true,
+ parent: win,
+ width: 1040,
+ height: 600,
+ show: false
+ })
+ const win2 = new BrowserWindow(options)
+ win2.setMenu(null)
+ win2.loadURL(url2)
+ win2.webContents.on('did-finish-load', () => {
+ win2.webContents.print();
+ })
+
+ //win2.print()
+ event.newGuest = win2
+ })
+ event.newGuest = win
+ } else {
+ event.preventDefault()
+ Object.assign(options,{
+ modal: true,
+ parent: mainWindow,
+ width: 1040,
+ height: 600,
+ show: false
+ })
+ const win = new BrowserWindow(options)
+ win.setMenu(null)
+ win.once('ready-to-show', () => win.print())
+ win.loadURL(url)
+
+ event.newGuest = win
+ }
+ })
+
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta charset="UTF-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<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/cashbox.epic.css">
-<link rel="stylesheet" href="../../css/app.css">
-<title>Konto</title>
-</head>
-<body>
- <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
- <a class="navbar-brand" href="#">Konto</a>
- <div class="ml-auto">
- <div class="btn-group" role="group" aria-label="Basic example">
-
- </div>
- </nav>
- <div class="cotainer-fluid" style="margin-top: 52px;">
- <input type="hidden" value="" id="id" name="id" />
- <div class="row">
-
- <div class="col-md-4">
- <div class="form-group">
- <label for="name">Name</label>
- <input type="text" class="form-control" id="name" name="name" />
- </div>
- </div>
- <div class="col-md-2">
- <div class="form-group">
- <label for="name">Typ</label>
- <select class="form-control" id="type" name="type" >
- <option value="table">Tisch</option>
- <option value="client">Kunde</option>
- <option value="seat">Sitzplatz</option>
- <option value="account">Konto</option>
- </select>
- </div>
- </div>
- </div>
- </div>
-<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
-<script src="../../node_modules/jquery/dist/jquery.min.js"></script>
-<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
-<script src="../../node_modules/bootstrap-table/dist/bootstrap-table.min.js"></script>
-<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="account.js"></script>
-<script>if (window.module) module = window.module;</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
-var tblh = winh-54;
-
-function initpage(){
- if (mpref.cfg.id){
- getaccountdata(mpref.cfg.id);
- } else {
- //load default new invoice data
- }
- console.log("invoice ID:",mpref.cfg.id);
-}
-
-function getaccountdata(){
-
-}
\ No newline at end of file
<a class="navbar-brand" href="#">Kunden</a>
<div class="ml-auto">
<div class="btn-group" role="group" aria-label="Basic example">
- <button class="btn btn-primary" onclick="client_new();"><i class="fas fa-plus"></i><br/>New</button>
- <button class="btn btn-primary" onclick="client_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
- <button class="btn btn-primary" onclick="client_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
- <button class="btn btn-primary" onclick="client_clone();"><i class="fas fa-clone"></i><br/>Dupl.</button>
+ <button class="btn btn-primary" onclick="account_new();"><i class="fas fa-plus"></i><br/>New</button>
+ <button class="btn btn-primary" onclick="account_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
+ <button class="btn btn-primary" onclick="account_delete();"><i class="fas fa-trash"></i><br/>Delete</button>
</div>
</nav>
<table id="tbl_accounts" class="table table-bordered table-hover table-striped">
<thead class="thead-dark">
<th data-checkbox="true"></th>
+ <th data-sortable="true" data-width="20"><i class="fas fa-cash-register"></i></th>
<th data-sortable="true">Name</th>
<th data-sortable="true">Typ</th>
<th data-sortable="true">Info</th>
<tbody></tbody>
</table>
</div>
+ <div id="datalists" style="display: hidden;"><datalist id="accounttypes"></datalist></div>
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
<script src="../../node_modules/jquery/dist/jquery.min.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<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/accounts.js"></script>
<script src="index.js"></script>
<script>if (window.module) module = window.module;</script>
</body>
var tblh = winh-54;
function initpage(){
+ loaddatalist_accounttypes();
loadtable();
}
function loadtable(){
- var sql = 'SELECT id, name,type,prename,surname, address, zip, city, country, clientnumber, email, phone FROM accounts;'
+ var sql = 'SELECT id,name,type,visible,info FROM accounts;';
var data = appdb.dbquery(sql);
- // //console.log(data.sqldata);
+ console.log("load accounts table " + sql);
+ console.log(data.sqldata);
+ $('#tbl_accounts > tbody').html("");
for (var i in data.sqldata){
- var row = '<tr id="' +data.sqldata[i].id + '">'+
- '<td></td>' +
- '<td>'+ data.sqldata[i].name +'</td>' +
- '<td>'+ data.sqldata[i].type +'</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+ '<br/>' + data.sqldata[i].email+ '</td>' +
- '</tr>';
- $("#tbl_accounts").append(row);
+ var row = '<tr id="' +data.sqldata[i].id + '"><td></td>'+
+ '<td><input type="checkbox" class="form-control" id="accounts-visible" name="accounts-visible" onfocusout="account.savevalue(this);" value="'+data.sqldata[i].visible+ '" '+ ((data.sqldata[i].visible == '1')?"checked":'')+'/></td>' +
+ '<td><input type="text" class="form-control font-weight-bold" id="accounts-name" name="accounts-name" onfocusout="account.savevalue(this);" value="'+((data.sqldata[i].name != null)?data.sqldata[i].name:'')+'"/></td>' +
+ '<td><input type="text" class="form-control" list="accounttypes" id="accounts-type" name="accounts-type" onfocusout="account.savevalue(this);" value="' + (( data.sqldata[i].type!= null)?data.sqldata[i].type:'')+ '"/></td>' +
+ '<td><textarea rows="3" class="form-control" id="accounts-info" name="accounts-info" onfocusout="account.savevalue(this);" >' + (( data.sqldata[i].info!= null)?data.sqldata[i].info:'')+ '</textarea></td>' +
+ '</tr>';
+ $("#tbl_accounts").append(row);
}
$('#tbl_accounts').bootstrapTable({
pagination: false,
}
-
-
-function account_edit(){
- var cl_id= getTableSelectionID();
- if (cl_id){
- parent.browserapp.loadmodulepage('accounts','account',{"id":cl_id});
- }
-
+function account_new(){
+ var accid = account.new();
+ var row = '<tr id="'+accid+'"><td></td>'+
+ '<td><input type="checkbox" class="form-control" id="accounts-visible" name="accounts-visible" onfocusout="account.savevalue(this);" value=""/></td>' +
+ '<td><input type="text" class="form-control font-weight-bold" id="accounts-name" name="accounts-name" onfocusout="account.savevalue(this);" value=""/></td>' +
+ '<td><input type="text" class="form-control" list="accounttypes" id="accounts-type" name="accounts-type" onfocusout="account.savevalue(this);" value=""/></td>' +
+ '<td><textarea rows="3" class="form-control" id="accounts-info" name="accounts-info" onfocusout="account.savevalue(this);" ></textarea></td>' +
+ '</tr>';
+ $("#tbl_accounts").prepend(row);
}
-function delete_delete(){
-
+function account_delete(){
+ var ret = parent.usersystem.showMessage("Bestätigung erforderlich","Ausgewählte Konten löschen?",null,"question",msgButtons=["JA","NEIN"],0,1);
+ console.log("Delete return:" + ret);
+ if (ret == 0){
+ //delete
+ var ids= getTableSelectionIDs();
+ console.log(ids);
+ account.delete(ids);
+ loadtable();
+ }
}
-function account_duplicate(){
-
+function loaddatalist_accounttypes(){
+ var sql = "select type from accounts where type is not null group by type;";
+ var data = appdb.dbquery(sql);
+ for (var i in data.sqldata){
+ $("#accounttypes").append('<option value="'+ data.sqldata[i].type +'">');
+ }
}
+
var account = {
- new: function(){
- parent.browserapp.loadmodulepage('accounts','form_account',{"id":""});
+ savevalue: function(obj){
+ console.log(obj.type);
+ var savevalue= mpref.formatvalue(obj.value);
+ if (obj.type == "checkbox"){
+ if (obj.checked){
+ savevalue='1';
+ } else {
+ savevalue=null;
+ }
+ }
+ if (savevalue==null){
+ savevalue='null';
+ }else {
+ savevalue="'"+ savevalue+"'";
+ }
+ var ds = obj.id.split("-");
+ var sql = "update " + ds[0]+" set "+ds[1]+ "="+savevalue+" where id='"+obj.parentNode.parentNode.id+"';";
+ console.log(sql);
+ appdb.dbexec(sql);
+ },
+ import: function(){
+
},
- edit: function(id){
- parent.browserapp.loadmodulepage('accounts','form_account',{"id":id});
+ export: function(){
+
},
- duplicate: function(id){
-
+ new: function(){
+ var accid = appdb.generate_uuid;
+ appdb.dbexec("insert into accounts (id) VALUES ('"+ accid+"');");
+ return accid;
},
- delete: function(id){
-
+ delete: function(ids){
+ var sql="DELETE FROM accounts WHERE id in ('"+ ids.join("','")+"')";
+ appdb.dbexec(sql);
}
+ // duplicate: function(ids){
+ // for (var i in ids){
+ // var sql = "INSERT into products (id,name,specification,netamount,grossamount,vatpercent,productgroup) SELECT '"+ appdb.generate_uuid()+"' as id, name, specification, netamount, grossamount, vatpercent,productgroup FROM products where id = '"+ i +"';";
+ // appdb.dbexec(sql);
+ // }
+ // }
}
\ No newline at end of file
<div class="btn-group" role="group" aria-label="Basic example">
<button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-toolbox"></i><br/>Verwaltung</button>
<button class="btn btn-primary" onclick="view_unpayedshoppingcarts();"><i class="fas fa-cash-register"></i><br/>Bestellungen</button>
+ <button class="btn btn-primary" onclick="cardwindow();"><i class="fas fa-credit-card"></i><br/>SumUp</button>
</div>
</div>
</nav>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-8" style="background-color: white; font-weight: bold; font-size: 30px; padding-top: 3px; padding-right: 5px;">
- <i class="fas fa-map-marker-alt"></i> <span id="commandtable"></span>
+ <i class="fas fa-map-marker-alt"></i> <span id="account"></span>
</div>
<div class="col-sm-4">
- <button class="btn btn-primary btn-block" onclick="view_tables();"><i class="fas fa-map-marker-alt"></i><br>auswählen</button>
+ <button class="btn btn-primary btn-block" onclick="view_accounts();"><i class="fas fa-map-marker-alt"></i><br>auswählen</button>
</div>
</div>
<div class="row" style="margin: 0px;">
- <div class="col-sm-12" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid green;; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-right: 5px;">
+ <div class="col-sm-12" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid green; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-right: 5px;">
<span id="sumtotal">0,00</span>€
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6 bg-primary text-white" style=" font-weight: bold; font-size: 30px; padding-top: 3px; padding-right: 5px;">
- <i class="fas fa-map-marker-alt white"></i> <span id="pay_commandtable"></span>
+ <i class="fas fa-map-marker-alt white"></i> <span id="pay_account"></span>
</div>
<div class="btn-group btn-group-toggle col-sm-6" data-toggle="buttons">
<label class="btn btn-secondary btn-block" style="font-size: 20px;">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abrechen</button>
- <button type="button" class="btn btn-secondary" onclick="book_shoppingcard">Buchen</button>
+ <button type="button" class="btn btn-secondary" onclick="save_shoppingcard();">Buchen</button>
</div>
</div>
</div>
var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
var config = {};
var localconfig = {};
+var mainconfig = {};
var shoppingcart = {products:{},transaction:{}};
var tblheight1=winh-180;
function initpage(){
+ //console.log("INIT PAGE paywindow");
+ //mpref.loadconfig();
+ //console.log(mpref.cfg);
loadconfig();
load_group_selects();
//load_local_config_product_tables();
height: tblheight1,
});
$('#checkout > tbody').html("");
+
}
function loadconfig(){
if (dataconfig != null){
config = dataconfig.sqldata;
}
- console.log("config loaded");
- console.log(config);
+ //console.log("config loaded");
+ //console.log(config);
localconfig = parent.usersystem.getPreference('paywindow');
}
// }
function printpreview(){
-
+ window.open(decodeURIComponent(mpref.cfg.serviceurl)+ "receipt.html","receipt");
+}
+
+function cardwindow(){
+ window.open('https://me.sumup.com/de-lu/transactionsnew',"cardview");
}
function load_group_selects(){
function load_productgroup(listnum){
var listval = $("#grouplist" + listnum + " :selected").val();
- console.log(listval);
+ //console.log(listval);
$('#producttable' + listnum + " > tbody").html("");
var sql ="select id,name,specification,replace(printf(\"%.2f\",grossamount),'.',',') as grossamount from products where productgroup='"+appdb.secvalue(listval)+"';";
var products = appdb.dbquery(sql);
}
function addproduct(idproduct){
- console.log(idproduct);
+ //console.log(idproduct);
var sql = "select id,name,specification,grossamount,netamount,vatpercent,replace(printf(\"%.2f\",grossamount),'.',',') as dsp_grossamount from products where id='"+idproduct+"';";
- console.log(sql);
+ //console.log(sql);
var product = appdb.dbquery(sql);
var trow = "";
var bdone = false;
}
function remove_co_product(id){
- console.log("remove id: "+ id);
+ //console.log("remove id: "+ id);
$("table#checkout > tbody tr#checkout_"+id).remove();
delete shoppingcart['products'][id];
calctotal();
}
function calctotal(){
- console.log(shoppingcart);
+ //console.log(shoppingcart);
var sum = 0.00;
for (var i in shoppingcart["products"]){
sum += shoppingcart["products"][i].quantity * parseFloat(shoppingcart["products"][i].grossamount);
}
function save_shoppingcart(){
-
-}
-
-function view_payementdlg(ptype){
-
+ printpreview();
}
function book_shoppingcart(ptype){
shoppingcart['transaction']['id']= appdb.generate_uuid();
if (shoppingcart['transaction']['table'] && shoppingcart['transaction']['table']['name']){
- $("#pay_commandtable").html(shoppingcart['transaction']['table']['name']);
+ $("#pay_account").html(shoppingcart['transaction']['table']['name']);
} else {
- $("#pay_commandtable").html("");
+ $("#pay_account").html("");
}
if (shoppingcart['transaction']['grossamount']){
$("#pay_sumtotal").html(shoppingcart['transaction']['grossamount'].toFixed(2).replace('.',','));
}
function setprinttype(id){
- console.log("set printtypes");
+ //console.log("set printtypes");
if (!localsystem['printtype']){
localsystem['printtype'] = {};
}
parent.usersystem.setPreference('paywindow',localconfig);
}
-function view_tables(){
- var tbls = appdb.dbquery("select id,name from tables;");
+function view_accounts(){
+ var tbls = appdb.dbquery("select id,name from accounts where visible='1' and name is not null;");
$("#tableslist").html("");
console.log(tbls);
for (var i in tbls.sqldata){
- $("#tableslist").append('<button class="btn btn-secondary" onclick="setTable(\''+tbls.sqldata[i].id+'\',\''+tbls.sqldata[i].name+'\');">'+tbls.sqldata[i].name+'</button>');
+ $("#tableslist").append('<button class="btn btn-secondary" style="margin: 1px solid #fff;" onclick="set_account(\''+tbls.sqldata[i].id+'\',\''+tbls.sqldata[i].name+'\');">'+tbls.sqldata[i].name+'</button>');
}
$('#dlgTables').modal('show');
}
-function setTable(id,name){
- $("#commandtable").html(name);
+function set_account(id,name){
+ $("#account").html(name);
if (!shoppingcart['transaction']['table']){
shoppingcart['transaction']['table'] ={};
}
}
function setpayementtype(ptype){
- console.log("set payement type: " + ptype);
+ //console.log("set payement type: " + ptype);
if ($("#"+id).prop('checked')){
shoppingcart['transaction']['payementtype'] =ptype;
}
<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>Kunden</title>
+<title>Produkte</title>
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<button class="btn btn-primary" onclick="product_new();"><i class="fas fa-plus"></i><br/>New</button>
<button class="btn btn-primary" onclick="product_edit();"><i class="fas fa-edit"></i><br/>Edit</button>
<button class="btn btn-primary" onclick="product_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>
+ <button class="btn btn-primary" onclick="product_duplicate();"><i class="fas fa-clone"></i><br/>Dupl.</button>
</div>
</nav>
<script src="../../js/moduleglobal.js"></script>
<script src="../../js/database.js"></script>
<script src="lib/product.js"></script>
-
<script src="index.js"></script>
<script>if (window.module) module = window.module;</script>
</body>
}
function product_new (){
- var row = '<tr id=""><td></td>'+
+ var prid = products.new();
+ var row = '<tr id="'+ prid+'"><td></td>'+
'<td><input type="checkbox" class="form-control" id="visible" name="visible" value="1"/></td>' +
'<td><input type="text" class="form-control" value=""/><br><input class="form-control" type="text" value="" /></td>' +
'<td><input type="text" class="form-control" list="productgroup" value=""/></td>' +
function product_duplicate(){
var ids= getTableSelectionIDs();
console.log(ids);
- //product.duplicate(ids);
+ product.duplicate(ids);
loadtable();
}
var sql="DELETE FROM products WHERE id in ('"+ ids.join("','")+"')";
appdb.dbexec(sql);
},
+ new: function(){
+ var prid = appdb.generate_uuid;
+ appdb.dbexec("insert into products (id) VALUES ('"+ prid+"');");
+ return prid;
+ },
duplicate: function(ids){
for (var i in ids){
var sql = "INSERT into products (id,name,specification,netamount,grossamount,vatpercent,productgroup) SELECT '"+ appdb.generate_uuid()+"' as id, name, specification, netamount, grossamount, vatpercent,productgroup FROM products where id = '"+ i +"';";
var usersystem = {
profilepath: function(){
var ppath="";
- console.log(os.platform());
- console.log(os.homedir());
+ //console.log(os.platform());
+ //console.log(os.homedir());
if (os.platform() == "darwin"){
ppath = os.homedir() + '/Library/Application Support/cashbox/';
} else if (os.platform() == "win32") {
getPreference: function(key){
var data = null;
if (fs.existsSync(this.profilepath() + key + ".json")){
- console.log("Read Key:" + key);
+ //console.log("Read Key:" + key);
var data = fs.readFileSync(this.profilepath() + key + ".json", 'utf-8');
if (data.startsWith("{") || data.startsWith("[")){
data = JSON.parse(data);
},
getLocalDataSets: function(){
var datasets =[];
- console.log(this.profilepath());
+ //console.log(this.profilepath());
var files = fs.readdirSync(this.profilepath());
files.forEach(function(file) {
if (file.match('db\..*\.json')){
<table class="table table-striped" data-toggle="table" style="width: 100%;">
<thead>
<tr>
- <th colspan="4" id="head_commandtable">Table 1</th>
+ <th colspan="4" id="head_account">Table 1</th>
</tr>
<tr>
<th data-sortable="true">Qu.</th>
}
function getpnlcommandsdata(){
- $("#head_commandtable").html(cdata.table.name);
+ $("#head_account").html(cdata.table.name);
var commands = appdb.dbquery("select id,modified,status,payedamount,grossamount from transactions where id_table='"+cdata.table.nid+"'");
}
--- /dev/null
+var printconfig = {}
+$( document ).ready(function() {
+ //we need: databasename and transactionid
+ print.cfg = getSearchParams();
+});
+
+var print = {
+ cfg: null,
+ getSearchParams: function (k){
+ //alert(location.href);
+ var p={};
+ console.log("params =>" + location.search);
+ location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v});
+ return k?p[k]:p;
+ },
+ print: function(){
+ window.print();
+ }
+}
+
<span id="creationdate">DD.MM.YYYY HH:MM</span><br/>
<span id="tranactionid">550e8400-e29b-11d4-a716-446655440000</span></p>
</section>
-
+<script src="js/pagedata.js"></script>
+<script src="js/webdatabase.js"></script>
+<script src="js/print.js"></script>
</body>
-
+
</html>
\ No newline at end of file