print template form
authorKilian Saffran <ksaffran@dks.lu>
Sun, 17 Mar 2019 09:21:22 +0000 (10:21 +0100)
committerKilian Saffran <ksaffran@dks.lu>
Sun, 17 Mar 2019 09:21:22 +0000 (10:21 +0100)
js/moduleglobal.js
modules/accounts/index.html
modules/accounts/index.js
modules/templates/form_printtemplate.html
modules/templates/form_printtemplate.js
modules/templates/index.js
modules/templates/lib/printtemplate.js

index 5efb098..de543ce 100644 (file)
@@ -21,4 +21,4 @@ var mpref ={
     //appdb.dbfile = this.cfg.dbfile; 
     appdb.url = decodeURIComponent(this.cfg.serviceurl) + 'sqlite/' + decodeURIComponent(this.cfg.dbfile);
   }
-}
\ No newline at end of file
+}
index e5539ff..2897c37 100644 (file)
@@ -30,9 +30,6 @@
                 <th data-sortable="true">Kunden-Nr.</th>
                 <th data-sortable="true">Company / Name</th>
                 <th data-sortable="true">Adresse</th>
-                <th data-sortable="true">PLZ</th>
-                <th data-sortable="true">Ort</th>
-                <th data-sortable="true">Land</th>
                 <th data-sortable="true">E-mail</th>
                 <th data-sortable="true">Telefon</th>
         <tfoot></tfoot>
index 6b5bdc9..f5fa6b5 100644 (file)
@@ -10,38 +10,22 @@ 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 invoicejournal 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);
-  // //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);
-  // }
-  $('#tbl_invoices').bootstrapTable({
+
+  var sql = 'SELECT id, company, prename,surname, address, zip, city, country, email, phone, mobile, ident FROM accounts;';
+  var data = appdb.dbquery(sql);
+  console.log(data.sqldata);
+  for (var i in data.sqldata){
+  var row = '<tr id="' +data.sqldata[i].id + '">'+
+     '<td></td>' +
+     '<td>' + data.sqldata[i].ident+ '</td>' +
+     '<td>' + data.sqldata[i].company + (( data.sqldata[i].company != null)?'<br/>':'') + data.sqldata[i].surname + ' ' + data.sqldata[i].surname + '</td>' +
+     '<td>' + data.sqldata[i].address+ ((data.sqldata[i].address != null)?'<br/>':'') + data.sqldata[i].zip + ' ' + data.sqldata[i].city + ((data.sqldata[i].country != null)?'<br/>':'')+ data.sqldata[i].country + '</td>' +
+     '<td>' + data.sqldata[i].email+ '</td>' +
+     '<td>' + data.sqldata[i].phone+ '</td>' +
+     '</tr>';
+     $("#tbl_accounts").append(row.replace(/null/g,''));
+  }
+  $('#tbl_accounts').bootstrapTable({
     pagination: false,
     search: false,
     height: tblh,
@@ -54,9 +38,9 @@ function loadtable(){
 
 
 function account_edit(){
-  var inv_id= getTableSelectionID();
-  if (inv_id){
-    parent.browserapp.loadmodulepage('addresses','account',{"id":inv_id});
+  var id= getTableSelectionID();
+  if (id){
+    parent.browserapp.loadmodulepage('accounts','form_account',{"id":d});
   }
   
 }
@@ -80,7 +64,7 @@ function getTableSelectionID(){
 }
 
 function getTableSelectionIDs(){
-  var sel = $('#tbl_invoices').bootstrapTable('getSelections');
+  var sel = $('#tbl_accounts').bootstrapTable('getSelections');
   var ids = [];
   if (sel){  
     for (var s in sel){
index 47ad799..abc8e03 100644 (file)
               </select>
             </div>
         </div>
+        <div class="col-md-4">
+          <div class="form-group">
+            <label for="name">Dimension</label>
+            <input type="text" list="papertypelist" class="form-control" id="papertype" name="papertype" />
+            <datalist id="papertypelist">
+              <option value="A4">A4</option>
+              <option value="A5">A5</option>
+            </datalist>
+          </div>
+        </div>
         
       </div>
       <div class="row">
-        <div class="col-md-8 bg-secondary" style="padding: 20px; overflow-y: scroll; height: 75vh;">
+      
+        <div class="col-md-4 bg-secondary" style="padding: 20px; overflow: scroll; height: 75vh;">
           <h5>Seite 1</h5>  
-          <div style="border: 1px solid red; width: 595px; height: 842px; background-color: #fff">
+          <div style="border: 1px solid red; width: 595px; height: 842px; background-color: #fff" id="tmplpage1">
           </div>
           <h5>Seite 2</h5>  
-          <div style="border: 1px solid red; width: 595px; height: 842px; background-color: #fff">
+          <div style="border: 1px solid red; width: 595px; height: 842px; background-color: #fff" id="tmplpage2">
           </div>
         </div>
-        <div class="col-md-4">
+        <div class="col-md-8">
             <div class="form-group">
-              <label for="element">Element</label>
-              <select class="form-control" id="name" name="name">
-                <option value="name1">Name 1</option>
-                <option value="name1">Name 2</option>
+                <div class="input-group form-inline">
+              <label for="element" class="col-sm-1">Element</label>
+              <select class="form-control col-sm-6"  id="pte_id" name="pte_id">
               </select>
+              <label for="pte_type" class="col-sm-1">Type</label>
+              <select class="form-control col-sm-6" id="pte_type" name="pte_type">
+                  <option value="image">Bild</a>
+                  <option value="line">Linie</a>
+                  <option value="text">Text</a>
+                  <option value="richtext">Rich-Text</a>
+                  <option value="table">Tabelle</a>
+              </select>
+              </div>
+            </div>
+            <div style="padding: 2px; overflow-y: scroll; height: 60vh;">
+                <div id="pte_type_image"  >
+                    <div class="form-group">
+                        <label for="ptedata_src">src</label>
+                        <input type="file" class="form-control" id="ptedata_src" name="ptedata_src" />
+                    </div>
+                    <div class="form-group">
+                      <div class="input-group form-inline">
+                          <label for="ptedata_x" class="col-sm-1">X</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_x" name="ptedata_x" />
+                          <label for="ptedata_y" class="col-sm-1">Y</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_y" name="ptedata_y" />
+                          <label for="ptedata_y" class="col-sm-1">Width</label>
+                        <input type="number" class="form-control col-sm-3" id="ptedata_width" name="ptedata_width" />
+                      </div>
+                    </div>
+                </div>
+                <div id="pte_type_line" >
+                    <div class="form-group">
+                        <div class="input-group form-inline">
+                          <label for="ptedata_x" class="col-sm-1">Color</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_color" name="ptedata_color" />
+                          <label for="ptedata_x" class="col-sm-1">Width</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_width" name="ptedata_width" />
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <div class="input-group form-inline">
+                          <label for="ptedata_x" class="col-sm-1">start X</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_start_x" name="ptedata_start_x" />
+                          <label for="ptedata_x" class="col-sm-1">start Y</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_start_y" name="ptedata_start_y" />
+                          <label for="ptedata_x" class="col-sm-1">End X</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_end_x" name="ptedata_end_x" />
+                          <label for="ptedata_x" class="col-sm-1">End Y</label>
+                          <input type="number" class="form-control col-sm-3" id="ptedata_end_y" name="ptedata_end_y" />
+                        </div>
+                    </div>
+                </div>
             </div>
+            
         </div>
       </div>
         
index ea81536..d02a0b6 100644 (file)
@@ -1,4 +1,34 @@
 function initpage(){
   console.log(parent.usersystem.getsysinfo());
+  if (mpref.cfg.id){
+    gettemplatedata(mpref.cfg.id);
+  } else {
+    //load default new invoice data
+  }
   //parent.usersystem.setProperty("testproperty",{id:"TEST"});
+}
+
+function gettemplatedata(id){
+  var sql = "select * from printtemplates where id='"+ id +"';";
+  var data = appdb.dbquery(sql);
+  if (data.sqldata){
+    for (var i in data.sqldata[0]){
+      if ($("#" + i).prop("tagName") == "SELECT"){
+        $("#" + i).val(data.sqldata[0][i]);
+      } else if ($("#" + i).prop("tagName") == "INPUT" )  {
+        console.log(i + ">=" + data.sqldata[0][i]);
+        $("#" + i).val(data.sqldata[0][i]);
+      } else {
+        $("#" + i).html(data.sqldata[0][i]);
+      }
+    }
+  }
+}
+
+function gettemplateelements(id_printtemplate){
+  var sql ="select id,name from printtemplateelements where id_printtemplate='"+ id_printtemplate +"';";
+  var data = appdb.dbquery(sql);
+  for (var i in data.sqldata){
+    
+  }
 }
\ No newline at end of file
index fca4ca2..f49aacf 100644 (file)
@@ -1,10 +1,39 @@
+var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+var tblh = winh-54;
+
 function initpage(){
-    
+    loadtable();
 }
 
+function loadtable(){
+  var sql = "SELECT id, name,'Druck' as form,'printtemplate' as formtmpl, \"type\",  lang,isdefault FROM printtemplates;";
+  var data = appdb.dbquery(sql);
+  for (var i in data.sqldata){
+    var row = '<tr id="' +data.sqldata[i].id + '" data-tmpl="'+ data.sqldata[i].formtmpl+'">'+
+       '<td></td>' +
+       '<td>' + data.sqldata[i].name+ '</td>' +
+       '<td>' + data.sqldata[i].lang + '</td>' +
+       '<td>' + data.sqldata[i].form + '</td>' +
+       '<td>' + data.sqldata[i].type+ '</td>' +
+       '<td>' + data.sqldata[i].isdefault+ '</td>' +
+       '</tr>';
+       $("#tbl_templates").append(row.replace(/null/g,''));
+    }
+    $('#tbl_templates').bootstrapTable({
+      pagination: false,
+      search: false,
+      height: tblh,
+      clickToSelect: true
+    });
+}
 
 function template_edit(){
-  
+  var id= getTableSelectionID();
+  if (id){
+    if ($("#" + id ).data("tmpl")  == 'printtemplate'){
+      printtemplate.edit(id);
+    }
+  }
 }
 
 function template_duplicate(){
@@ -13,4 +42,24 @@ function template_duplicate(){
 
 function template_delete(){
   
+}
+
+function getTableSelectionID(){
+  var sel = $('#tbl_templates').bootstrapTable('getSelections');
+  var id = null;
+  
+  if (sel){  id=sel[0]._id; }
+  console.log("Selected ID:" + id);
+  return id;
+}
+
+function getTableSelectionIDs(){
+  var sel = $('#tbl_templates').bootstrapTable('getSelections');
+  var ids = [];
+  if (sel){  
+    for (var s in sel){
+      ids.push(s._id);
+    }
+  }
+  return ids;
 }
\ No newline at end of file
index a0346f2..b507686 100644 (file)
@@ -2,8 +2,8 @@ var printtemplate = {
   new: function(){
     parent.browserapp.loadmodulepage('templates','form_printtemplate',{"id":""});
   },
-  edit: function(){
-    
+  edit: function(id){
+    parent.browserapp.loadmodulepage('templates','form_printtemplate',{"id":id});
   },
   duplicate: function(){