javascript - Function not executing with defined variables -


the gist of project is: have google form answers populated on google doc, let's call doc template. template copied never overwrite original. copy converted pdf, sent email, , moved specific folder on drive. function happens flawlessly every form submission , gets triggered on submit. next function supposed send copied doc google cloud print, i'm having trouble writing code that. have point print doc on form submit, have define doc's id. unfortunately id not static since new doc made every submission. here's full code minus sensitive information:

// work order      // template google docs , name  var doctemplate = ""; // *** replace template id ***  var docname = "work order";    function adddates() {    var date = new date(); // form date    var holiday = ["09/04/2017", "10/09/2017", "11/23/2017", "12/24/2017", "12/25/2017", "01/01/2018"]; //define holiday dates in mm/dd/yyyy    var days = 5; //no of days want add    date.setdate(date.getdate());    var counter = 0;    if (days > 0) {      while (counter < days) {        date.setdate(date.getdate() + 1);        var check = date.getday();        var holidaycheck = holiday.indexof(utilities.formatdate(date, "edt", "mm/dd/yyyy"));        if (check != 0 && check != 6 && holidaycheck == -1) {          counter++;        }      }    }    logger.log(date) //for example give 08/16/2017    return date;  }    function createnewdoc(values) {  //get information form , set variables    var email_address = "";    var job_name = values[1];    var ship_to = values[11];    var address = values[12];    var order_count = values[7];    var program = values[2];    var workspace = values[3];    var offer = values[4];    var sort_1 = values[5];    var sort_2 = values[6];    var image_services = values[9];    var print_services = values[10];    var priority = values[13];    var notes = values[14];    var formatteddate = utilities.formatdate(new date(), "edt", "mm/dd/yyyy");    var expirationdate = utilities.formatdate(adddates(), "edt", "mm/dd/yyyy");      // document template, copy new temp doc, , save doc's id    var copyid = driveapp.getfilebyid(doctemplate)      .makecopy(docname + ' ' + job_name)      .getid();    // open temporary document    var copydoc = documentapp.openbyid(copyid);    // document's body section    var copybody = copydoc.getactivesection();      // replace place holder keys,in our google doc template      copybody.replacetext('keyjobname', job_name);    copybody.replacetext('keyshipto', ship_to);    copybody.replacetext('keyaddress', address);    copybody.replacetext('keyordercount', order_count);    copybody.replacetext('keyprogram', program);    copybody.replacetext('keyworkspace', workspace);    copybody.replacetext('keyoffer', offer);    copybody.replacetext('keysort1', sort_1);    copybody.replacetext('keysort2', sort_2);    copybody.replacetext('keyimageservices', image_services);    copybody.replacetext('keyprintservices', print_services);    copybody.replacetext('keypriority', priority);    copybody.replacetext('keynotes', notes);    copybody.replacetext('keydate', formatteddate);    copybody.replacetext('keydue', expirationdate);      // save , close temporary document    copydoc.saveandclose();      // convert temporary document pdf using getas blob conversion    var pdf = driveapp.getfilebyid(copyid).getas("application/pdf");      // attach pdf , send email    var subject = "new job submission";    var body = "here work order " + job_name + "";    mailapp.sendemail(email_address, subject, body, {      htmlbody: body,      attachments: pdf    });      // move file folder    var file = driveapp.getfilebyid(copyid);    driveapp.getfolderbyid("").addfile(file);    file.getparents().next().removefile(file);  }    function printgoogledocument(copyid, docname) {    // notes on ticket options see https://developers.google.com/cloud-print/docs/cdd?hl=en    var ticket = {      version: "1.0",      print: {        color: {          type: "standard_color"        },        duplex: {          type: "no_duplex"        },      }    };      var payload = {      "printerid": "",      "content": copyid,      "title": docname,      "contenttype": "google.kix", // allows print google docs      "ticket": json.stringify(ticket),    };      var response = urlfetchapp.fetch('https://www.google.com/cloudprint/submit', {      method: "post",      payload: payload,      headers: {        authorization: 'bearer ' + googlecloudprint.getcloudprintservice().getaccesstoken()      },      "mutehttpexceptions": true    });      // if successful, should show job here: https://www.google.com/cloudprint/#jobs      response = json.parse(response);    if (response.success) {      logger.log("%s", response.message);    } else {      logger.log("error code: %s %s", response.errorcode, response.message);    }    return response;  }    // when form gets submitted  function onformsubmit(e) {    var values = e.values;    createnewdoc(values);    printgoogledocument(copyid, docname);  }

return new document 'createnewdoc(values);' function changing adding end of createnewdoc() function, right before closing bracket:

//starting @ code here // move file folder var file = driveapp.getfilebyid(copyid); driveapp.getfolderbyid("").addfile(file); file.getparents().next().removefile(file);  //add var newdocname = docname + ' ' + job_name; return [file, newdocname]; //to point 

}

then change onformsubmit() function shown below:

// when form gets submitted function onformsubmit(e) {   var values = e.values;   var returneddocvalues = createnewdoc(values);   var file = returneddocvalues[0];   var docname= returneddocvalues[1];   printgoogledocument(file, docname); } 

let me know if there errors have not tested code myself.


Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -