From 3ea413bd3ef1819dd756c4773229cb5f31e57c56 Mon Sep 17 00:00:00 2001
From: wactbprot <thsteinbock@web.de>
Date: Fri, 24 May 2013 16:08:40 +0200
Subject: [PATCH] neues KD mit _show/new

---
 language     |   1 +
 lib/share.js |   4 +-
 shows/dup.js | 103 +++++++++++++++++++++++++++++++++++----------------
 shows/new.js |  36 ++++++++++++++++++
 4 files changed, 110 insertions(+), 34 deletions(-)
 create mode 100644 language
 create mode 100644 shows/new.js

diff --git a/language b/language
new file mode 100644
index 0000000..f504a95
--- /dev/null
+++ b/language
@@ -0,0 +1 @@
+javascript
\ No newline at end of file
diff --git a/lib/share.js b/lib/share.js
index 66b30ed..b487b49 100644
--- a/lib/share.js
+++ b/lib/share.js
@@ -92,8 +92,8 @@ var pad0 = function(n){
 };
 exports.pad0 = pad0;
 
-var vlDateString = function(){
-    var dt = new Date(),
+var vlDateString = function(d){
+    var dt = d || new Date(),
     Y = dt.getFullYear(),
     M = pad0(dt.getMonth()+1),
     D = pad0(dt.getDate()),
diff --git a/shows/dup.js b/shows/dup.js
index 9d64992..bdded7a 100644
--- a/shows/dup.js
+++ b/shows/dup.js
@@ -1,41 +1,80 @@
 function (doc, req) {
-
-// example url:
-// http://localhost:5984/vaclab_db/_design/e-share/_show/dup/73eda2bf9694bb4f78edaecba90cdc49
-    var 
-    dc  = doc.Calibration,
-    ds  = dc.Sign,
-    ss  = ds.split(/[-_]+/),
-    nd  = new Date(),
-    s0  = ss[0], // main sign
-    s1  = ss[1], // sub sign
-    ns1 = "";    // new sub sign
-    
+    // example url:
+    // http://localhost:5984/vaclab_db/_design/e-share/_show/dup/73eda2bf9694bb4f78edaecba90cdc49
+    // 
     
+    var share = require("lib/share"),
+    dc        = doc.Calibration;
+
+    if(doc &&
+       dc  &&
+       typeof dc == "object"){
+
+        var
+        ds     = dc.Sign,
+        dcm    = dc.Measurement,
+	dcp    = dc.Presettings;
+        if(dcm &&
+           typeof dcm == "object" &&
+	   dcp &&
+           typeof dcp == "object"){
+
+            var
+            dcmco  = dcm.CalibrationObject,
+	    dcpt   = dcp.Todo,
+	    dcpc   = dcp.Customer;
 
+            if(dcmco &&
+	       typeof dcmco == "object"){
+		
+                var 
+		dcmco0 = dcmco[0],
+                ss     = ds.split(/[-_]+/),
+                nd     = new Date(),
+                s0     = ss[0], // main sign
+                s1     = ss[1], // sub sign
+                ns1    = "";    // new sub sign
 
+                var tn1 = ""   + (parseInt("1" + s1, 10) + 1);
+                tn1     =    tn1.substr(1,tn1.length-1);
 
-    if(doc && 
-       dc  && 
-       typeof dc == "object" && 
-       ds){
-	var tn1 = ""   + (parseInt("1" + s1, 10) + 1);
-	tn1     =    tn1.substr(1,tn1.length-1);
-	var dupd = {
-	    Calibration:{
-		Sign: s0 + "_"  + tn1,
-		Type: req.query.type || dc.Type,
-		Year: "" + nd.getFullYear(),
-		Standard: req.query.standard || dc.Standard,
-		Presettings:{
-		    
+                // code is data!
+
+                var dupd = {
+                    Calibration:{
+                        Sign: s0 + "_"  + tn1,
+                        Type: req.query.type || dc.Type,
+                        Year: "" + nd.getFullYear(),
+                        Standard: req.query.standard || dc.Standard,
+                        Presettings:{
+			    Date: [
+				{Value: share.vlDateString(nd),
+				 Type: "duplicated"
+				}
+			    ]
+                        },
+                        Measurement:{
+                            CalibrationObject:[dcmco0]
+                        }
+                    }
+                };
+
+		if(dcpt){
+		  dupd.Calibration.Presettings.ToDo = dcpt;  
 		}
-	    }    
-	};
-	
+		if(dcpc){
+		  dupd.Calibration.Presettings.Customer = dcpc;  
+		}
+            }
+        }else{
+            var dupd = {error: "Doc contains no measurement block"};
+        }
     }else{
-	var dupd = {error: "Doc seems to be no calibration"};
+        var dupd = {error: "Doc seems to be no calibration"};
     }
-   
-    return toJSON(dupd);
+    
+    return  {
+	"headers" : {"Content-Type" : "application/json"},
+	"body" : toJSON(dupd)
+    };
 };
diff --git a/shows/new.js b/shows/new.js
new file mode 100644
index 0000000..9301f68
--- /dev/null
+++ b/shows/new.js
@@ -0,0 +1,36 @@
+function (doc, req) {
+    // example url:
+    // http://localhost:5984/vaclab_db/_design/e-share/_show/new
+    // 
+    
+    var share = require("lib/share"),
+    nd        = new Date(),
+    ndoc = {
+        Calibration:{
+            Sign: req.query.sign || "99999_0001",
+            Type: req.query.type || "NN",
+            Year: "" + nd.getFullYear(),
+            Standard: req.query.standard || "",
+            Presettings:{
+		Maintainer:req.query.maintainer || "",
+		Date: [
+		    {Value: share.vlDateString(nd),
+		     Type: "generated"
+		    }
+		]
+            },
+            Measurement:{
+                CalibrationObject:[{
+		                       Type: "",
+				       Sign: "",
+				       Name: ""
+				   }]
+            }
+        }
+    };
+    
+    return  {
+	"headers" : {"Content-Type" : "application/json"},
+	"body" : toJSON(ndoc)
+    };
+};
-- 
GitLab