Skip to content
Snippets Groups Projects
dup.js 2.05 KiB
Newer Older
wactbprot's avatar
wactbprot committed
function (doc, req) {
wactbprot's avatar
wactbprot committed
    // example url:
    // http://localhost:5984/vaclab_db/_design/e-share/_show/dup/73eda2bf9694bb4f78edaecba90cdc49
    // 
wactbprot's avatar
wactbprot committed
    
wactbprot's avatar
wactbprot committed
    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;
wactbprot's avatar
wactbprot committed

wactbprot's avatar
wactbprot committed
            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
wactbprot's avatar
wactbprot committed

wactbprot's avatar
wactbprot committed
                var tn1 = ""   + (parseInt("1" + s1, 10) + 1);
                tn1     =    tn1.substr(1,tn1.length-1);
wactbprot's avatar
wactbprot committed

wactbprot's avatar
wactbprot committed
                // 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;  
wactbprot's avatar
wactbprot committed
		}
wactbprot's avatar
wactbprot committed
		if(dcpc){
		  dupd.Calibration.Presettings.Customer = dcpc;  
		}
            }
        }else{
            var dupd = {error: "Doc contains no measurement block"};
        }
wactbprot's avatar
wactbprot committed
    }else{
wactbprot's avatar
wactbprot committed
        var dupd = {error: "Doc seems to be no calibration"};
wactbprot's avatar
wactbprot committed
    }
wactbprot's avatar
wactbprot committed
    
    return  {
	"headers" : {"Content-Type" : "application/json"},
	"body" : toJSON(dupd)
    };
wactbprot's avatar
wactbprot committed
};