ステータスを切り替えるスクリプトに関して質問

長文で申し訳ございません。
ステータスを切り替えるスクリプトに関して質問があります。

■詳細画面での質問

⇒一覧画面から詳細画面のページを開いた際にスクリプトを実行させるため、
「 ‘app.record.detail.show’ 」の定義をいれておりますが、
処理が行われず、詳細画面を開いた時「‘app.record.edit.submit’,」に
処理がおこわれております。スクリプトの作りに不備はございますか?

(具体例)
あるレコードの「作業開始日(workStarDate)」に"2018-06-02”を入力しております。
今日は6/1なので、本来のステータスは”発注済”となることを期待しております。
※現在、一覧画面部分のスクリプトもうまく動作していないため、一覧画面の
編集では、ステータスを自由に変更できておりますため、本来正しくないステータスの
登録ができており、”作業完了” を入力しております。
この状態で、画面左の「レコードの詳細を表示する」をクリックしても、ステータスは
変更されません。

} else if (record[‘workStartDate’].value <= now) {
record[‘progressStatus’].value = ‘作業中’;

上記のスクリプトが有効にならず、”作業完了”のままです。
しかし、画面右上の「レコードを編集する」のアイコンをクリックし、
編集画面にすると、ステータスは”発注済” と変更されます。
スクリプトの作りに不備はありますでしょうか?

ーーーー実際のスクリプトーーーーーーーーーーーーーーーーーーーーーーーーーーー

//条件に応じてステータス(progressStatus)を変更[詳細画面]

var events = [ ‘app.record.create.show’,
‘app.record.create.change.orderDate’,
‘app.record.create.change.progressStatus’,
‘app.record.create.change.workEndDate’,
‘app.record.create.change.workStartDate’,
‘app.record.detail.show’,
‘app.record.edit.submit’,
‘app.record.edit.show’,
‘app.record.edit.change.orderDate’,
‘app.record.edit.change.progressStatus’,
‘app.record.edit.change.workEndDate’,
‘app.record.edit.change.workStartDate’];

kintone.events.on(events, function(event) {
/*
* 現在の日付を 変数(date)に一旦格納し、その日付のフォーマットを YYYYM-MM-DDとし、変数(now)に格納する。
* 作業中か否かの判断の際に、作業開始日(workStartDate)の値と比較するために利用
*/
var date = moment();
var now = moment(date).format(‘YYYY-MM-DD’);
// console.log(now);

var record = event.record;
record[‘progressStatus’][‘disabled’] = true;

if (record[‘workEndDate’].value) {
record[‘progressStatus’].value = ‘作業完了’;

} else if (record[‘workStartDate’].value <= now) {
record[‘progressStatus’].value = ‘作業中’;

} else if (record[‘orderDate’].value) {
record[‘progressStatus’].value = ‘発注済’;

} else {
record[‘progressStatus’].value = ‘未発注’;
}

return event;

});

上記と同様に、一覧画面での動作させるためにスクリプトを作成しましたが、
エラーとなります。

Uncaught TypeError: Cannot read property ‘progressStatus’ of undefined
⇒ ‘app.record.index.show’ をコメントアウト(//)すると、このエラーは
とまりますが、次に

Uncaught TypeError: Cannot read property ‘length’ of null

と出力され、やはりあるレコードのステータスは”作業完了”のままで
「作業開始日(workStarDate)」に"2018-06-02”を入力しており、本日は6/1なのですが
本来期待されるステータスの”発注済”となりません。

■一覧表示での質問

//条件()に応じてステータス(progressStatus)を変更[一覧画面]
var events = [ ‘app.record.index.show’,
‘app.record.index.edit.show’,
‘app.record.index.edit.submit.success’,
‘app.record.index.edit.change.StartDate’,
‘app.record.index.edit.change.progressStatus’,
‘app.record.index.edit.change.workEndDate’,
‘app.record.index.edit.change.orderDate’];

kintone.events.on(events, function(event) {

var elStatus = kintone.app.record.getFieldElement(‘progressStatus’);
var record = event.record;
record[‘progressStatus’][‘disabled’] = true;

for (var i = 0; i < elStatus.length ; i++) {
var record = event.records[i];

if (record[‘workEndDate’].value) {
record[‘progressStatus’].value = ‘作業完了’;

} else if (record[‘workStartDate’].value <= now) {
record[‘progressStatus’].value = ‘作業中’;

} else if (record[‘orderDate’].value) {
record[‘progressStatus’].value = ‘発注済’;

} else {
record[‘progressStatus’].value = ‘未発注’;
}

return event;

});


勉強不足で何度も申し訳ありませんが、アドバイスをお願いします。