はじまり
会社のエライ人「ちょっといい?」
会社のエライ人「労働条件通知書ってのがあるんだけどさ」
会社のエライ人「アレ簡単に作ってメールとかで送れる?」
ボクちゃん「(なんだっけそれ・・・?)」
ボクちゃん「カタカタ (Google:労働条件通知書 メール)」
ボクちゃん「あっ、2019年4月から書面の代わりにメールで条件通知が出来るようになった件でしょうか?(知ってた風に)」
※参考:労働条件通知書の電子化がついに解禁
会社のエライ人「そう、よろしく!」
(しばらく後・・・)
ボクちゃん「総務さん、労働条件通知書っていつ出すの?」
総務さん 「内定決まったらだよ」
総務さん 「あと、ついでに入社書類もまとめて送りたいからよろしく」
ボクちゃん「えっ?」
総務さん 「よろ なるはや」
(そうして要件が増えた)
要件を整理すると
- 労働条件通知書を書面で作りたい
- メールか何かで被雇用者に送りたい
- 入社書類が10種類以上あるので回収を楽に
そして出来上がったもの
⇒DEMO
フォームに答えるとその1~3がメールで届きます
# ここから解説編(初心者向け)
労働条件通知書を書面で作りたい
1.フォームで情報を集める
2.フォーム送信と同時にGASを起動
3.地道にスプレッドシートに印字
gas
//印字する from 問合せ入力
雛形_社員.getRange('E1').setValue('労働条件通知書('+data[3]+')'); //タイトル
雛形_社員.getRange('A4').setValue(data[1]); //氏名
雛形_社員.getRange('I3').setValue(data[9]); //入社日
4.シートをPDF化してドライブに保存する
var opts = {
exportFormat: "pdf", // ファイル形式の指定 pdf / csv / xls / xlsx
format: "pdf", // ファイル形式の指定 pdf / csv / xls / xlsx
size: "A4", // 用紙サイズの指定 legal / letter / A4
portrait: "true", // true → 縦向き、false → 横向き
fitw: "true", // 横幅を用紙に合わせるか
top_margin: "0.10", //上余白
bottom_margin:"0.00", //下余白
left_margin: "0.40", //左余白
right_margin: "0.20", //右余白
sheetnames: "false", // シート名をPDF上部に表示するか
printtitle: "false", // スプレッドシート名をPDF上部に表示するか
pagenumbers: "false", // ページ番号の有無
gridlines: "false", // グリッドラインの表示有無
fzr: "false", // 固定行の表示有無
//gid: sheetid, // シートIDを指定 sheetidは引数で取得
muteHttpExceptions: "true"
};
// PDF作成関数 引数は(folderid:保存先フォルダID, ssid:PDF化するスプレッドシートID, sheetid:PDF化するシートID, filename:PDFの名前)
function createPDF(folderid, sheetid, filename, opts){
// PDFファイルの保存先となるフォルダをフォルダIDで指定
var folder = DriveApp.getFolderById(folderid);
//同名のファイルが存在するかチェック
var file = fileExists(folderid, filename+'.pdf');
if(file){
//ファイルを削除する
folder.removeFile(file);
//return false;
};
// スプレッドシートをPDFにエクスポートするためのURL。このURLに色々なオプションを付けてPDFを作成
var url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace("SSID", ssid);
// PDF作成のオプションを指定
opts['gid'] = sheetid;
var url_ext = [];
// 上記のoptsのオプション名と値を「=」で繋げて配列url_extに格納
for( optName in opts ){
url_ext.push( optName + "=" + opts[optName] );
}
// url_extの各要素を「&」で繋げる
var options = url_ext.join("&");
// API使用のためのOAuth認証
var token = ScriptApp.getOAuthToken();
Utilities.sleep(6000);//APIのリクエスト過多対策、6秒遅らせる
// PDF作成
var response = UrlFetchApp.fetch(url + options, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var blob = response.getBlob().setName(filename + '.pdf');
// PDFを指定したフォルダに保存
var recordPDF = folder.createFile(blob);
return recordPDF;
}
メールか何かで被雇用者に送りたい
MailApp.sendEmail(to, subject, body, option);
入社書類が10種類以上あるので回収を楽に
最後に
ソースの一部を環境変数化したらGitにUPします。
メールでユニークQRを送って、そこから受領フラグ立てとかの機能つけたいな。