ken_nogi/Pleasanter/実行予算WF申請/実行予算承認_2026_09_04 09_34_10.json
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。
NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは
別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter
インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:37:06 +09:00

1946 lines
101 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"HeaderInfo": {
"AssemblyVersion": "1.5.7.1",
"BaseSiteId": 376868,
"Server": "https://nextoffice2.next-hd.net/pleasanter",
"CreatorName": "野木 健一郎",
"PackageTime": "2026-09-04T09:34:10.6231668+09:00",
"Convertors": [
{
"SiteId": 376868,
"SiteTitle": "実行予算承認",
"ReferenceType": "Sites",
"IncludeData": false,
"Order": "[376872,376869]"
},
{
"SiteId": 376869,
"SiteTitle": "マスタ",
"ReferenceType": "Sites",
"IncludeData": false,
"Order": "[]"
},
{
"SiteId": 376870,
"SiteTitle": "担当監督マスタ",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 376871,
"SiteTitle": "申請種別マスタ",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 376872,
"SiteTitle": "実行予算WF申請",
"ReferenceType": "Results",
"IncludeData": false
}
],
"IncludeSitePermission": true,
"IncludeRecordPermission": true,
"IncludeColumnPermission": true,
"IncludeNotifications": true,
"IncludeReminders": true
},
"Sites": [
{
"TenantId": 1,
"SiteId": 376868,
"Title": "実行予算承認",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Sites",
"ParentId": 0,
"InheritPermission": 376868,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Sites",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 376869,
"Title": "マスタ",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Sites",
"ParentId": 376868,
"InheritPermission": 376869,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Sites",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 376870,
"Title": "担当監督マスタ",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 376869,
"InheritPermission": 376870,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridView": 1,
"GridEditorType": 10,
"GridColumns": [
"ResultId",
"NumA",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Ver",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE",
"NumA",
"Body",
"Comments"
]
},
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "エリア",
"NoWrap": true
},
{
"ColumnName": "ClassB",
"LabelText": "担当監督一覧",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassC",
"LabelText": "エリア別通知先",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "NumA",
"LabelText": "並び順(昇順)",
"InputGuide": "昇順",
"DefaultInput": "1",
"ControlType": "Spinner",
"Min": 0.0
},
{
"ColumnName": "ClassD",
"LabelText": "役員通知先",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassE",
"LabelText": "経理通知先",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "UpdatedTime",
"GridDesign": "[UpdatedTime]\n[Updator]"
}
],
"ViewLatestId": 1,
"Views": [
{
"Id": 1,
"Name": "既定のビュー",
"DefaultMode": "Index",
"ColumnSorterHash": {
"NumA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 376871,
"Title": "申請種別マスタ",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 376869,
"InheritPermission": 376871,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridView": 1,
"GridEditorType": 10,
"GridColumns": [
"ResultId",
"NumA",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Ver",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"NumA",
"Body",
"Comments"
]
},
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "申請種別",
"ChoicesText": "1,基礎のみ,基礎のみ,new-status-yellow\n2,仮予算,仮予算,new-status-orange\n3,仮予算確定,仮予算確定,new-status-purple\n4,A工種発注完了,A工種発注完了,new-status-pink\n5,構造確定,構造確定,new-status-brown\n6,予算修正,予算修正,new-status-cyan",
"Anchor": true,
"ChoicesControlType": "Radio",
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassB",
"LabelText": "積算発注管理課",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "NumA",
"LabelText": "並び順(昇順)",
"DefaultInput": "1",
"ControlType": "Spinner",
"Min": 0.0
},
{
"ColumnName": "ClassC",
"LabelText": "申請別通知先",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "UpdatedTime",
"GridDesign": "[UpdatedTime]\n[Updator]"
},
{
"ColumnName": "ClassD",
"LabelText": "最終承認者",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"MultipleSelections": true,
"FieldCss": "field-wide"
}
],
"ViewLatestId": 1,
"Views": [
{
"Id": 1,
"Name": "既定のビュー",
"DefaultMode": "Index",
"ColumnSorterHash": {
"NumA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 376872,
"Title": "実行予算WF申請",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "[md]\n# 実行積算予算承認ワークフロー\n### 内容についてのコメントがある場合は、「コメント欄」をご利用ください",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 376868,
"InheritPermission": 376868,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"Status",
"Title",
"ClassX",
"ClassY",
"ClassB",
"ClassC",
"ClassD",
"DateB",
"DateC",
"Owner",
"Class021",
"AttachmentsA",
"UpdatedTime",
"ClassI"
],
"FilterColumns": [
"Owner",
"Status",
"ClassD",
"ClassI",
"ClassJ",
"ClassK",
"ClassL",
"ClassX",
"ClassY"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Comments",
"Title",
"ClassZ",
"Status",
"Owner",
"_Section-4",
"CheckA",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassI",
"ClassJ",
"ClassK",
"ClassL",
"_Section-2",
"DateB",
"DateC",
"_Section-1",
"ClassX",
"CheckX",
"CheckY",
"ClassY",
"Date001",
"Date002",
"Date003",
"Date004",
"Date005",
"Num001",
"AttachmentsA",
"AttachmentsB",
"AttachmentsC",
"AttachmentsD",
"NumA",
"NumB",
"NumC",
"NumD",
"_Section-3",
"AttachmentsE",
"AttachmentsF",
"Body",
"_Section-7",
"Class020",
"DateA",
"Class021",
"Class022",
"Date024",
"_Section-8",
"Class025",
"Date025",
"Description025",
"_Section-9",
"Class026",
"Date026",
"Description026",
"_Section-10",
"Class027",
"Date027",
"Description027",
"_Section-11",
"Class028",
"Date028",
"Description028"
],
"_Tab-1": [
"_Section-5",
"Class001",
"Class002",
"Class003",
"Class004",
"Class005",
"Class006",
"Class010",
"_Section-6",
"Class015",
"CheckZ",
"Class014",
"DescriptionA",
"ClassW"
]
},
"TabLatestId": 1,
"Tabs": [
{
"LabelText": "WF申請状況",
"Id": 1
}
],
"SectionLatestId": 11,
"Sections": [
{
"Id": 4,
"LabelText": "",
"AllowExpand": false,
"Expand": true
},
{
"Id": 2,
"LabelText": "",
"AllowExpand": false,
"Expand": true
},
{
"Id": 1,
"LabelText": "",
"AllowExpand": false,
"Expand": true
},
{
"Id": 3,
"LabelText": "",
"AllowExpand": true,
"Expand": true
},
{
"Id": 7,
"LabelText": "WF申請",
"AllowExpand": false,
"Expand": true
},
{
"Id": 8,
"LabelText": "一次承認",
"AllowExpand": true,
"Expand": true
},
{
"Id": 9,
"LabelText": "最終決裁",
"AllowExpand": true,
"Expand": true
},
{
"Id": 10,
"LabelText": "保留",
"AllowExpand": true,
"Expand": false
},
{
"Id": 11,
"LabelText": "差戻し",
"AllowExpand": true,
"Expand": false
},
{
"Id": 5,
"LabelText": "承認者および通知先一覧",
"AllowExpand": false,
"Expand": true
},
{
"Id": 6,
"LabelText": "WF承認状況",
"AllowExpand": false,
"Expand": true
}
],
"TitleColumns": [
"ClassZ",
"ClassB",
"ClassX"
],
"Columns": [
{
"ColumnName": "DateA",
"LabelText": "申請日",
"EditorFormat": "Ymdhms",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "DateB",
"LabelText": "承認図日"
},
{
"ColumnName": "DateC",
"LabelText": "着工日"
},
{
"ColumnName": "ClassA",
"LabelText": "マスターシート",
"ChoicesText": "[\n {\n \"SiteId\": 189112,\n \"SearchFormat\": \"[ClassA] - [ClassQ] 様 ([ClassF] [ClassG])\",\n \"View\": {\n \"ColumnSorterHash\": {\n \"ResultId\": \"desc\"\n }\n }\n }\n]",
"UseSearch": true,
"NoWrap": true,
"FieldCss": "field-wide",
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassB",
"LabelText": "物件名",
"Description": "工事名",
"ValidateRequired": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassC",
"LabelText": "契約コード",
"AutoNumberingResetType": "String",
"ValidateRequired": true
},
{
"ColumnName": "ClassI",
"LabelText": "ブランド",
"ChoicesText": "[[109100]]",
"Link": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassJ",
"LabelText": "建物階数",
"ChoicesText": "平屋\n2階建て\n3階建て",
"ChoicesControlType": "Radio",
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassK",
"LabelText": "延べ床面積",
"ChoicesText": "20坪\n2130坪\n3140坪\n4150坪\n51坪",
"ChoicesControlType": "Radio",
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassL",
"LabelText": "構造材",
"ChoicesText": "LVL\n構造用集成材",
"ChoicesControlType": "Radio",
"SearchType": "PartialMatch"
},
{
"ColumnName": "AttachmentsA",
"LabelText": "実行予算書"
},
{
"ColumnName": "AttachmentsB",
"LabelText": "実行予算作成時の質疑書"
},
{
"ColumnName": "AttachmentsC",
"LabelText": "実行予算作成日程"
},
{
"ColumnName": "AttachmentsD",
"LabelText": "承認図"
},
{
"ColumnName": "NumA",
"LabelText": "契約時粗利",
"Format": "C",
"NoWrap": true,
"TextAlign": 20
},
{
"ColumnName": "NumB",
"LabelText": "仮予算申請時粗利",
"Format": "C",
"NoWrap": true,
"TextAlign": 20
},
{
"ColumnName": "NumC",
"LabelText": "構造確定時粗利",
"Format": "C",
"NoWrap": true,
"TextAlign": 20
},
{
"ColumnName": "NumD",
"LabelText": "予算変更 金額増減",
"Format": "C",
"NoWrap": true,
"TextAlign": 20
},
{
"ColumnName": "Body",
"LabelText": "申し送り事項"
},
{
"ColumnName": "ResultId",
"Hide": true
},
{
"ColumnName": "ClassD",
"LabelText": "エリア",
"ChoicesText": "東京\n愛知\n千葉",
"ChoicesControlType": "Radio",
"ValidateRequired": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassX",
"LabelText": "進行状況",
"ChoicesText": "1,基礎のみ,基礎のみ,new-status-yellow\n2,仮予算,仮予算,new-status-orange\n3,仮予算確定,仮予算確定,new-status-purple\n4,A工種発注完了,A工種発注完了,new-status-pink\n5,構造確定,構造確定,new-status-brown\n6,予算修正,予算修正,new-status-cyan",
"ChoicesControlType": "Radio",
"ValidateRequired": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "Date001",
"LabelText": "基礎のみ"
},
{
"ColumnName": "Date002",
"LabelText": "仮予算申請日"
},
{
"ColumnName": "Date003",
"LabelText": "仮予算確定申請日"
},
{
"ColumnName": "Date004",
"LabelText": "A工種発注完了申請日"
},
{
"ColumnName": "Date005",
"LabelText": "構造確定申請日"
},
{
"ColumnName": "Num001",
"LabelText": "予算修正(回数)",
"ControlType": "Spinner",
"Min": 0.0
},
{
"ColumnName": "ClassZ",
"LabelText": "管理番号",
"AutoNumberingFormat": "[ClassC]-[NNNN]",
"AutoNumberingResetType": "String"
},
{
"ColumnName": "Class001",
"LabelText": "担当監督一覧",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class002",
"LabelText": "エリア別通知先",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class003",
"LabelText": "役員通知先",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class004",
"LabelText": "経理通知先",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class005",
"LabelText": "積算発注管理課",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class006",
"LabelText": "申請別通知先",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Class010",
"LabelText": "最終承認者一覧",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Owner",
"LabelText": "積算担当",
"ChoicesText": "[[Users*]]",
"UseSearch": true,
"NoWrap": true
},
{
"ColumnName": "ClassY",
"LabelText": "各申請日/予算修正回数",
"Hide": true
},
{
"ColumnName": "Title",
"LabelText": "管理番号"
},
{
"ColumnName": "Class020",
"LabelText": "申請者",
"ChoicesText": "[\n {\n \"TableName\": \"Users\",\n \"View\": {\n \"ColumnFilterHash\": {\n \"DeptId\": \"26\",\n \"Disabled\": \"false\"\n },\n \"ColumnSorterHash\": {\n \"UserId\": \"asc\"\n }\n }\n }\n]",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Class021",
"LabelText": "担当監督(承認者)",
"ChoicesText": "[\n {\n \"TableName\": \"Users\",\n \"View\": {\n \"ColumnFilterHash\": {\n \"Disabled\": \"false\"\n },\n \"ColumnFilterExpressions\": {\n \"UserId\": \"[@Class001]\"\n }\n }\n }\n]",
"NoWrap": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "Class022",
"LabelText": "最終承認者",
"ChoicesText": "[\n {\n \"TableName\": \"Users\",\n \"View\": {\n \"ColumnFilterHash\": {\n \"Disabled\": \"false\"\n },\n \"ColumnFilterExpressions\": {\n \"UserId\": \"[@Class010]\"\n }\n }\n }\n]",
"DefaultInput": "421",
"NoWrap": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "Status",
"ChoicesText": "100,新規登録,新,status-new\n150,入力完了,入,status-yellow\n160,差戻し,戻,status-red\n300,承認申請,申,status-green\n500,工務承認,工承,status-purple\n510,積算承認,積承,status-orange\n900,最終決裁,終,status-closed\n910,保留,留,status-rejected",
"ExtendedControlCss": "code-readonly3"
},
{
"ColumnName": "AttachmentsE",
"LabelText": "添付1"
},
{
"ColumnName": "AttachmentsF",
"LabelText": "添付2"
},
{
"ColumnName": "Class015",
"LabelText": "差戻し権限者",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "Date024",
"LabelText": "承認期限",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Class025",
"LabelText": "一次承認者",
"ChoicesText": "[[Users*]]",
"ExtendedFieldCss": "code-readonly3",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Date025",
"LabelText": "一次承認日",
"EditorFormat": "Ymdhms",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Class026",
"LabelText": "最終決裁者",
"ChoicesText": "[[Users*]]",
"ExtendedFieldCss": "code-readonly3",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Date026",
"LabelText": "最終決裁日",
"EditorFormat": "Ymdhms",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Description025",
"LabelText": "一次承認コメント",
"AllowImage": false
},
{
"ColumnName": "Description026",
"LabelText": "決裁コメント",
"AllowImage": false
},
{
"ColumnName": "CheckA",
"LabelText": "建売・モデルハウスMSS無し",
"NoWrap": true
},
{
"ColumnName": "CheckZ",
"Hide": true
},
{
"ColumnName": "CheckX",
"Hide": true
},
{
"ColumnName": "CheckY",
"Hide": true
},
{
"ColumnName": "Class027",
"LabelText": "保留実行者",
"ChoicesText": "[[Users*]]\n",
"ExtendedFieldCss": "code-readonly3",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Class028",
"LabelText": "差戻し者",
"ChoicesText": "[[Users*]]\n",
"ExtendedFieldCss": "code-readonly3",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Date027",
"LabelText": "保留日",
"EditorFormat": "Ymdhms",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Description027",
"LabelText": "保留コメント"
},
{
"ColumnName": "Date028",
"LabelText": "差戻し日",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Description028",
"LabelText": "差戻しコメント"
},
{
"ColumnName": "DescriptionA",
"LabelText": "申し送り事項コメント",
"ExtendedFieldCss": "code-readonly3"
},
{
"ColumnName": "Class014",
"LabelText": "CC通知先一覧",
"ChoicesText": "[[Users*]]",
"MultipleSelections": true,
"ExtendedFieldCss": "code-readonly3",
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassW",
"LabelText": "進行状況控え",
"ExtendedFieldCss": "code-readonly3"
}
],
"Aggregations": [
{
"Id": 1,
"GroupBy": "Status",
"Type": 0,
"Target": ""
},
{
"Id": 7,
"GroupBy": "ClassX",
"Type": 0,
"Target": ""
},
{
"Id": 2,
"GroupBy": "ClassD",
"Type": 0,
"Target": ""
},
{
"Id": 3,
"GroupBy": "ClassI",
"Type": 0,
"Target": ""
},
{
"Id": 4,
"GroupBy": "ClassJ",
"Type": 0,
"Target": ""
},
{
"Id": 5,
"GroupBy": "ClassK",
"Type": 0,
"Target": ""
},
{
"Id": 6,
"GroupBy": "ClassL",
"Type": 0,
"Target": ""
}
],
"Links": [
{
"ColumnName": "ClassI",
"SiteId": 109100
},
{
"ColumnName": "ClassA",
"SiteId": 189112,
"SearchFormat": "[ClassA] - [ClassQ] 様 ([ClassF] [ClassG])",
"View": {
"Id": 0,
"ColumnSorterHash": {
"ResultId": "desc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"JsonFormat": true
},
{
"TableName": "Users",
"ColumnName": "Class021",
"SiteId": 0,
"View": {
"Id": 0,
"ColumnFilterHash": {
"Disabled": "false"
},
"ColumnFilterExpressions": {
"UserId": "[@Class001]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"JsonFormat": true
},
{
"TableName": "Users",
"ColumnName": "Class022",
"SiteId": 0,
"View": {
"Id": 0,
"ColumnFilterHash": {
"Disabled": "false"
},
"ColumnFilterExpressions": {
"UserId": "[@Class010]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"JsonFormat": true
},
{
"TableName": "Users",
"ColumnName": "Class020",
"SiteId": 0,
"View": {
"Id": 0,
"ColumnFilterHash": {
"DeptId": "26",
"Disabled": "false"
},
"ColumnSorterHash": {
"UserId": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"JsonFormat": true
}
],
"Processes": [
{
"Id": 1,
"Name": "入力完了",
"DisplayName": "入力完了",
"CurrentStatus": -1,
"ChangedStatus": 150,
"OnClick": "$p.ex.processScript($(this));",
"ValidateInputs": [
{
"Id": 1,
"ColumnName": "Class021",
"Required": true
},
{
"Id": 2,
"ColumnName": "Class022",
"Required": true
}
],
"View": {
"Id": 0,
"ColumnFilterHash": {
"Owner": "[\"Own\"]",
"Status": "[\"100\",\"160\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
},
{
"Id": 2,
"Name": "承認申請",
"DisplayName": "承認申請",
"CurrentStatus": 150,
"ChangedStatus": 300,
"Description": "進行状況が「構造確定」以外。通知先は担当監督。",
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Owner": "[\"Own\"]",
"ClassX": "[\"1\",\"2\",\"3\",\"4\",\"6\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputUser",
"ColumnName": "Class020",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputDateTime",
"ColumnName": "DateA",
"BaseDateTime": "CurrentTime",
"Value": "0,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputDate",
"ColumnName": "Date024",
"Value": "2,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[ClassX] ([ClassD]) 承認申請",
"Address": "[Class021]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n新しい実行予算が申請されました。\n\n内容を確認し、承認を行ってください。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進行状況[ClassX]\n[DescriptionA]\n\n------------------\n次承認者[Class021]\n承認期限[Date024]\n\n内容を確認し、承認または差戻し処理を行ってください。",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 8,
"Name": "承認申請",
"DisplayName": "承認申請",
"CurrentStatus": 150,
"ChangedStatus": 300,
"Description": "進行状況が「構造確定の場合」通知先は積算発注管理課のみ。",
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Owner": "[\"Own\"]",
"ClassX": "[\"5\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputUser",
"ColumnName": "Class020",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputDateTime",
"ColumnName": "DateA",
"BaseDateTime": "CurrentTime",
"Value": "0,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputDate",
"ColumnName": "Date024",
"Value": "2,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[ClassX] ([ClassD]) 承認申請",
"Address": "[Class005]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n新しい実行予算が申請されました。\n\n内容を確認し、承認を行ってください。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進行状況[ClassX]\n[DescriptionA]\n\n------------------\n次承認者[Class005]\n承認期限[Date024]\n\n内容を確認し、承認または差戻し処理を行ってください。",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 3,
"Name": "工務承認",
"DisplayName": "工務承認",
"CurrentStatus": 300,
"ChangedStatus": 500,
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Class021": "[\"Own\"]",
"ClassX": "[\"1\",\"2\",\"3\",\"4\",\"6\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputUser",
"ColumnName": "Class025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputDateTime",
"ColumnName": "Date025",
"BaseDateTime": "CurrentTime",
"Value": "0,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputDate",
"ColumnName": "Date024",
"Value": "2,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[ClassX] ([ClassD]) 工務承認",
"Address": "[Class022]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n実行予算の一次承認が承認されました。\n\n内容を確認し、最終決裁を行ってください。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進行状況[ClassX]\n[DescriptionA]\n\n------------------\n承認者[Class025]\n承認日[Date025]\n承認者コメント\n[Description025]\n\n内容を確認し、承認または差戻し処理を行ってください。\n",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 7,
"Name": "積算承認",
"DisplayName": "積算承認",
"CurrentStatus": 300,
"ChangedStatus": 510,
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"ClassX": "[\"5\"]",
"Class005": "[\"Own\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputUser",
"ColumnName": "Class025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputDateTime",
"ColumnName": "Date025",
"BaseDateTime": "CurrentTime",
"Value": "0,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputDate",
"ColumnName": "Date024",
"Value": "2,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[ClassX] ([ClassD]) 積算承認",
"Address": "[Class022]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n実行予算の一次承認が承認されました。\n\n内容を確認し、最終決裁を行ってください。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進行状況[ClassX]\n[DescriptionA]\n\n------------------\n承認者[Class025]\n承認日[Date025]\n承認者コメント\n[Description025]\n\n内容を確認し、承認または差戻し処理を行ってください。\n",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 4,
"Name": "最終決裁",
"DisplayName": "最終決裁",
"CurrentStatus": -1,
"ChangedStatus": 900,
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Class022": "[\"Own\"]",
"Status": "[\"500\",\"510\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputUser",
"ColumnName": "Class026",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputDateTime",
"ColumnName": "Date026",
"BaseDateTime": "CurrentTime",
"Value": "0,Days",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputValue",
"ColumnName": "Date024",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[ClassX] ([ClassD]) 最終承認",
"Address": "[Class020]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n実行予算は最終決裁されました。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進行状況[ClassX]\n[DescriptionA]\n\n------------------\n承認者[Class026]\n承認日[Date026]\n承認者コメント\n[Description026]\n",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 5,
"Name": "保留",
"DisplayName": "保留",
"CurrentStatus": -1,
"ChangedStatus": 910,
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Class020": "[\"Own\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputValue",
"ColumnName": "Date024",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputValue",
"ColumnName": "Class025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputValue",
"ColumnName": "Class026",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 4,
"Type": "InputValue",
"ColumnName": "Date025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 5,
"Type": "InputValue",
"ColumnName": "Date026",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[進捗状況] ([ClassD]) 保留",
"Address": "[Class020]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n実行予算は保留に変更されました\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進捗状況[進捗状況]\n\n------------------",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
},
{
"Id": 6,
"Name": "差戻し",
"DisplayName": "差戻し",
"CurrentStatus": -1,
"ChangedStatus": 160,
"OnClick": "$p.ex.processScript($(this));",
"View": {
"Id": 0,
"ColumnFilterHash": {
"Status": "[\"300\",\"500\",\"900\",\"910\"]",
"Class015": "[\"Own\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"DataChanges": [
{
"Id": 1,
"Type": "InputValue",
"ColumnName": "Date024",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 2,
"Type": "InputValue",
"ColumnName": "Class025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 3,
"Type": "InputValue",
"ColumnName": "Class026",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 4,
"Type": "InputValue",
"ColumnName": "Date025",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
},
{
"Id": 5,
"Type": "InputValue",
"ColumnName": "Date026",
"Value": "",
"ValueFormulaNotUseDisplayName": false,
"ValueFormulaIsDisplayError": false
}
],
"Notifications": [
{
"Type": 1,
"Subject": "【実行予算WF】[進捗状況] ([ClassD]) 差戻し",
"Address": "[Class020]",
"CcAddress": "[Class014]",
"MediaType": "application/json",
"Body": "プリザンターの実行予算WF申請システムより\n実行予算は差し戻されました。\n\n{Url}\n------------------\n物件名[ClassB]\n申請者[Class020]\n進捗状況[進捗状況]\n\n------------------\n差戻し者[Class028]\n差戻し日[Date028]\n差戻しコメント\n[Description028]\n",
"BeforeCondition": 0,
"AfterCondition": 0,
"Expression": 0,
"Id": 1
}
]
}
],
"StatusControls": [
{
"Id": 1,
"Name": "読取り専用",
"Status": -1,
"ColumnHash": {
"Body": "ReadOnly",
"Owner": "ReadOnly",
"ClassA": "ReadOnly",
"ClassB": "ReadOnly",
"ClassC": "ReadOnly",
"ClassD": "ReadOnly",
"ClassI": "ReadOnly",
"ClassJ": "ReadOnly",
"ClassK": "ReadOnly",
"ClassL": "ReadOnly",
"ClassX": "ReadOnly",
"ClassZ": "ReadOnly",
"Class020": "ReadOnly",
"Class021": "ReadOnly",
"Class022": "ReadOnly",
"NumA": "ReadOnly",
"NumB": "ReadOnly",
"NumC": "ReadOnly",
"NumD": "ReadOnly",
"Num001": "ReadOnly",
"DateA": "ReadOnly",
"DateB": "ReadOnly",
"DateC": "ReadOnly",
"Date001": "ReadOnly",
"Date002": "ReadOnly",
"Date003": "ReadOnly",
"Date004": "ReadOnly",
"Date005": "ReadOnly",
"AttachmentsA": "ReadOnly",
"AttachmentsB": "ReadOnly",
"AttachmentsC": "ReadOnly",
"AttachmentsD": "ReadOnly",
"AttachmentsE": "ReadOnly",
"AttachmentsF": "ReadOnly"
},
"View": {
"Id": 0,
"ColumnFilterHash": {
"Status": "[\"150\",\"300\",\"500\",\"900\",\"910\"]"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
}
],
"Styles": [
{
"Title": "01_基本スタイル設定",
"New": true,
"Edit": true,
"Body": "/*\n@config : next999.json\n@filename : 01_基本スタイル設定.css\n@title : 01_基本スタイル設定\n@name :\n@siteIds : 335011\n@siteTitles : 実行予算WF申請\n@disabled: false\n*/\n/*見出しサイズ*/\n.field-section {\n font-size: 1.5em !important;\n font-weight: bold !important;\n height: auto;\n}\n\n/*項目の後ろの行間を少し狭める*/\n.field-normal {\n height: 35px;\n}\n\n.field-wide {\n min-height: 35px;\n padding: 0 10px 5px 0;\n}\n\n/*コメントのある項目の高さだけ少し広げる*/\ndiv:has(.commentAdd).field-normal {\n height: 50px;\n}",
"Id": 1
},
{
"Title": "02_個別スタイル調整",
"New": true,
"Edit": true,
"Body": "/*\n@config : next999.json\n@filename : ${psFileBasename}\n@title : 02_個別スタイル調整\n@name :\n@siteIds : 335011\n@siteTitles : 実行予算WF申請\n@disabled: false\n*/\n\n#Results_ClassXField {\n font-size: 1.5em !important;\n\n & label {\n font-weight: bold !important;\n }\n\n & input[type=\"radio\"] {\n accent-color: #f00;\n transform: scale(1.5);\n margin-top: 8px;\n margin-left: 10px;\n }\n}\n\nlabel[for=\"Results_ClassX\"] {\n color: #f00 !important;\n}\n\n#Process_1,\n#Process_2,\n#Process_3,\n#Process_4 {\n background: blue !important;\n font-size: 1.5em !important;\n font-weight: bold !important;\n color: #fff !important;\n}\n\n#Process_5 {\n background: gray !important;\n font-size: 1.2em !important;\n font-weight: bold !important;\n color: #000 !important;\n}\n\n#Process_6 {\n background: red !important;\n font-size: 1.2em !important;\n font-weight: bold !important;\n color: #000 !important;\n}",
"Id": 2
},
{
"Title": "99_読み取り専用処理",
"New": true,
"Edit": true,
"Body": "/*\n@config : next999.json\n@filename : ${psFileBasename}\n@title : 99_読み取り専用処理\n@name \n@siteIds : 335011\n@siteTitles : 実行予算WF申請\n@disabled: false\n*/\nlabel.error {\n pointer-events: none;\n z-index: 100;\n border-top: none !important;\n}\n\n.code-readonly {\n pointer-events: none;\n background-color: lightgrey;\n font-weight: bold;\n}\n\n.code-readonly2,\n.code-readonly2+button,\n.code-readonly2+div.ui-icon,\n.code-readonly3,\n.code-readonly3+button,\n.code-readonly3+div.ui-icon {\n font-weight: bold;\n\n &:active {\n pointer-events: none;\n }\n\n a:not(.ui-spinner-button) {\n pointer-events: auto;\n }\n\n}\n\n.code-readonly2 select,\n.code-readonly2 input,\n.code-readonly2 button.ui-multiselect,\n.code-readonly2 .control-markup,\n.code-readonly2 .ui-spinner,\nspan[data-readonly=\"1\"] {\n pointer-events: none;\n\n border: dashed 1px black !important;\n background-color: lightgray !important;\n color: black !important;\n\n .ui-spinner-input {\n border: none;\n }\n}\n\n.code-readonly3 select,\n.code-readonly3 input,\n.code-readonly3 button.ui-multiselect,\n.code-readonly3 .control-markup,\n.code-readonly3 .ui-spinner {\n pointer-events: none;\n\n border: dashed 1px black !important;\n\n .ui-spinner-input {\n border: none;\n }\n}\n\n.code-readonly2,\n.code-readonly3,\n.field-normal:has(span[data-readonly=\"1\"]),\n.field-wide:has(span[data-readonly=\"1\"]) {\n position: relative;\n\n &:hover::after {\n content: \"読取り専用です\";\n position: absolute;\n left: 120px;\n top: calc(100% - 9px);\n margin-top: 4px;\n background: #00000080;\n color: #fff;\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: normal !important;\n pointer-events: none;\n z-index: 9999;\n white-space: nowrap;\n }\n}\n\n.code-required,\nselect[data-validate-required=\"1\"],\ninput[data-validate-required=\"1\"] {\n border: solid 2px red !important;\n\n &+button.ui-multiselect {\n border: solid 2px red !important;\n }\n\n}\n.code-required-font,\nlabel[class=\"required\"] {\n color: red !important;\n font-weight: bold !important;\n}",
"Id": 3
}
],
"Scripts": [
{
"Title": "01_メインスクリプト",
"New": true,
"Edit": true,
"Body": "//----------------------------------------------------------------------\nlet pageLoading = 0;\nlet apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';\n\nlet areaNotificationList = JSON.parse($('#areaNotificationList').val() || '{}');\nlet classNotificationList = JSON.parse($('#classNotificationList').val() || '{}');\n\n//----------------------------------------------------------------------\n//初期処理\nwindow.addEventListener('load', function () {\n if (pageLoading == 0) {\n console.log('Window load Event');\n $p.ex.onLoad();\n }\n});\n\n$p.events.on_editor_load = function () {\n if (pageLoading == 0) {\n console.log('on Editor Load');\n $p.ex.onLoad();\n }\n}\n\n$p.ex.onLoad = function () {\n //ロード開始\n pageLoading = 1;\n\n //初期処理\n $p.ex.init();\n}\n\n//----------------------------------------------------------------------\n$p.ex.init = function () {\n console.log('initialize...');\n //初期化\n\n //初期表示\n let classX = $('#Results_ClassW').val();\n\n $p.ex.changeMode(classX);\n\n //ClassXの選択値を取得\n $('input[name=\"Results_ClassX\"]:radio').change(function () {\n //ClassX保存\n $p.set($('#Results_ClassW'), $('input[name=\"Results_ClassX\"]:checked').val());\n\n $p.clearMessage();\n\n const selectedValue = $(this).val();\n console.log('Results_ClassX changed:', selectedValue);\n //日付表示の切り替え\n $p.ex.changeMode(selectedValue);\n\n\n //データ処理\n if (selectedValue === '6') {\n // ここに処理を追加\n console.log('回数チェック処理を実行');\n checkNumberCount();\n }\n\n //ClassXの選択値に応じて、ClassYに値をセット\n classXCheckData()\n\n });\n\n //チェックボックスの状態を確認\n if (!$('#Results_CheckA').is(':checked')) {\n //チェックが入っていない場合、工事名が未入力の場合はエラー\n if ($('#Results_ClassA').val() == '') {\n $('#Results_ClassA').addClass('code-required');\n $('label[for=\"Results_ClassA\"]').addClass('code-required-font');\n }\n }\n\n\n //自身のデータを取得\n if ($p.action() != 'new') {\n $p.ex.getMyData();\n }\n\n console.log('initialize...done');\n}\n\n$p.events.before_validate_Create = function (args) {\n //新規作成時の処理\n console.log('New Create...');\n //担当監督、通知先のセット\n $p.ex.setUsers();\n\n}\n\n//保存前処理\n$p.events.before_validate = function (args) {\n console.log('Before Validate...');\n\n //ClassX保存\n if ($('#Results_ClassX').attr('data-readonly') == '1') {\n $p.set($('#Results_ClassW'), $('#Results_ClassX').attr('data-value'));\n } else {\n $p.set($('#Results_ClassW'), $('#Results_ClassX').val());\n }\n\n //担当監督、通知先のセット\n if (!$('#Results_CheckZ').is(':checked')) {\n $p.ex.setUsers();\n }\n\n //チェックボックスの状態を確認\n //新規作成時のみチェック\n if ($('#Results_Status').val() == '100') {\n if (!$('#Results_CheckA').is(':checked')) {\n //チェックが入っていない場合、工事名が未入力の場合はエラー\n let classA;\n if ($('#Results_ClassA').attr('data-readonly') == '1') {\n classA = $('#Results_ClassA').attr('data-value');\n } else {\n classA = $('#Results_ClassA').val();\n }\n if (classA == '') {\n $('#Results_ClassA').addClass('code-required');\n $('label[for=\"Results_ClassA\"]').addClass('code-required-font');\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-red', 'マスターシートを選択してください');\n return false;\n }\n }\n }\n\n //変更された項目をチェックし、特定の項目の値が変更された場合に処理を行う\n $.each($p.data.MainForm, function (key, value) {\n //console.log(key + ' : ' + value);\n if (key === 'Results_ClassX' && value === '6') {\n // ここに処理を追加\n console.log('回数チェック処理を実行');\n checkNumberCount();\n }\n\n if (key === 'Results_ClassX') {\n //ClassXの選択値に応じて、ClassYに値をセット\n classXCheckData()\n }\n\n });\n\n if (!$('#Results_CheckY').is(':checked')) {\n if ($('#Results_ClassX').val() === '6') {\n // ここに処理を追加\n console.log('回数チェック処理を実行');\n checkNumberCount();\n }\n }\n\n if (!$('#Results_CheckX').is(':checked')) {\n if ($('#Results_CheckX').val() != '') {\n //ClassXの選択値に応じて、ClassYに値をセット\n classXCheckData()\n }\n }\n\n\n //console.log($p.data.MainForm);\n console.log('Before Validate...done');\n\n}\n\n//ClassXの選択値に応じて、ClassYに値をセット\nfunction classXCheckData() {\n const classX = $('#Results_ClassW').val();\n switch (classX) {\n case '1':\n $p.set($('#Results_ClassY'), $('#Results_Date001').val());\n $p.set($('#Results_Date002'), '');\n $p.set($('#Results_Date003'), '');\n $p.set($('#Results_Date004'), '');\n $p.set($('#Results_Date005'), '');\n $p.set($('#Results_Num001'), '');\n break;\n case '2':\n $p.set($('#Results_ClassY'), $('#Results_Date002').val());\n $p.set($('#Results_Date001'), '');\n $p.set($('#Results_Date003'), '');\n $p.set($('#Results_Date004'), '');\n $p.set($('#Results_Date005'), '');\n $p.set($('#Results_Num001'), '');\n break;\n case '3':\n $p.set($('#Results_ClassY'), $('#Results_Date003').val());\n $p.set($('#Results_Date001'), '');\n $p.set($('#Results_Date002'), '');\n $p.set($('#Results_Date004'), '');\n $p.set($('#Results_Date005'), '');\n $p.set($('#Results_Num001'), '');\n break;\n case '4':\n $p.set($('#Results_ClassY'), $('#Results_Date004').val());\n $p.set($('#Results_Date001'), '');\n $p.set($('#Results_Date002'), '');\n $p.set($('#Results_Date003'), '');\n $p.set($('#Results_Date005'), '');\n $p.set($('#Results_Num001'), '');\n break;\n case '5':\n $p.set($('#Results_ClassY'), $('#Results_Date005').val());\n $p.set($('#Results_Date001'), '');\n $p.set($('#Results_Date002'), '');\n $p.set($('#Results_Date003'), '');\n $p.set($('#Results_Date004'), '');\n $p.set($('#Results_Num001'), '');\n break;\n case '6':\n $p.set($('#Results_ClassY'), $('#Results_Num001').val() + ' 回');\n $p.set($('#Results_Date001'), '');\n $p.set($('#Results_Date002'), '');\n $p.set($('#Results_Date003'), '');\n $p.set($('#Results_Date004'), '');\n $p.set($('#Results_Date005'), '');\n break;\n default:\n }\n\n $p.set($('#Results_CheckX'), true); //チェック済みフラグをセット\n}\n\n//保存後処理\n$p.events.after_set = function (args) {\n //初期処理\n $p.ex.init();\n}\n\n//マスターシートからデータを取得\n$p.on('change', 'ClassA', function () {\n if (!$('#Results_CheckA').is(':checked')) {\n if ($('#Results_ClassA').val() != '') {\n $p.ex.getMSSData();\n }\n }\n});\n\n//マスターシートからデータを取得\n$p.on('change', 'CheckA', function () {\n console.log($('#Results_CheckA').is(':checked'));\n if ($('#Results_CheckA').is(':checked')) {\n //チェックありの場合、マスターシートの情報をクリア\n $p.set($('#Results_ClassA'), ''); //工事名\n }\n});\n\n//マスターシートの情報取得\n$p.ex.getMSSData = function () {\n let resultId = $(\"#Results_ClassA\").val();\n\n $p.apiGet({\n 'id': resultId,\n 'done': function (data) {\n console.log(data);\n if (data.Response.TotalCount == '1') {\n let mssData = data.Response.Data[0];\n\n console.log('MSSデータをセット');\n // 工事名の末尾に「様」または空白があれば削除\n let classQ = mssData.ClassHash.ClassQ || '';\n classQ = classQ.replace(/[\\s様]+$/, '');\n if (classQ !== '') {\n classQ = classQ + ' 様邸';\n }\n $p.set($('#Results_ClassB'), classQ); //工事名\n $p.set($('#Results_ClassC'), mssData.ClassHash.ClassA); //契約コード\n\n $p.set($('#Results_ClassI'), mssData.ClassHash.Class033); //契約ブランド\n $p.set($('#Results_ClassJ'), mssData.ClassHash.Class043); //建物種類\n\n //延床面積選択\n let num016 = parseFloat(mssData.NumHash.Num016 || '0');\n if (num016 < 21) {\n $p.set($('#Results_ClassK'), '20坪'); //延床面積\n } else if (num016 < 31) {\n $p.set($('#Results_ClassK'), '2130坪'); //延床面積\n } else if (num016 < 41) {\n $p.set($('#Results_ClassK'), '3140坪'); //延床面積\n } else if (num016 < 51) {\n $p.set($('#Results_ClassK'), '4150坪'); //延床面積\n } else {\n $p.set($('#Results_ClassK'), '51坪'); //延床面積\n }\n\n $p.set($('#Results_ClassL'), mssData.ClassHash.Class036); //構造材\n\n //承認図予定日\n if (mssData.DateHash.DateH != '1899-12-30T00:00:00') {\n let dateH = new Date(mssData.DateHash.DateH);\n let dateHStr = dateH.getFullYear() + '/' + (dateH.getMonth() + 1).toString().padStart(2, '0') + '/' + dateH.getDate().toString().padStart(2, '0');\n $p.set($('#Results_DateB'), dateHStr);\n }\n\n //着工予定日\n if (mssData.DateHash.Date063 != '1899-12-30T00:00:00') {\n let date063 = new Date(mssData.DateHash.Date063);\n let date063Str = date063.getFullYear() + '/' + (date063.getMonth() + 1).toString().padStart(2, '0') + '/' + date063.getDate().toString().padStart(2, '0');\n $p.set($('#Results_DateC'), date063Str);\n }\n\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-lime', 'マスターシートの情報を取得しました');\n\n //チェックボックスをオフにする\n $p.set($('#Results_CheckA'), false)\n\n } else {\n //既存データクリア\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-red', 'マスターシートの情報を取得に失敗しました');\n\n }\n },\n 'fail': function (data) {\n console.log(data);\n //既存データクリア\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-red', 'マスターシートの情報を取得に失敗しました');\n\n }\n });\n}\n\n$p.ex.setUsers = function () {\n console.log(areaNotificationList);\n console.log(classNotificationList);\n //担当監督マスタ、通知先マスタの情報を元に、担当監督、通知先をセットする\n let area = $('#Results_ClassD').val() || '';\n let mode = $('#Results_ClassW').val() || '';\n\n if (area != '' && mode != '') {\n $p.set($('#Results_Class001'), areaNotificationList[area].list1);\n $p.set($('#Results_Class002'), areaNotificationList[area].list2);\n $p.set($('#Results_Class003'), areaNotificationList[area].list3);\n $p.set($('#Results_Class004'), areaNotificationList[area].list4);\n\n $p.set($('#Results_Class005'), classNotificationList[mode].list1);\n $p.set($('#Results_Class006'), classNotificationList[mode].list2);\n //最終承認者\n $p.set($('#Results_Class010'), classNotificationList[mode].list3);\n\n console.log('担当監督、通知先をセットしました');\n\n //チェックZを入れる\n $p.set($('#Results_CheckZ'), true);\n } else {\n console.log('担当監督、通知先のセットに失敗しました');\n }\n\n}\n\n$p.ex.changeMode = function (mode) {\n //\n $('#Results_Date001Field').hide();\n $('#Results_Date002Field').hide();\n $('#Results_Date003Field').hide();\n $('#Results_Date004Field').hide();\n $('#Results_Date005Field').hide();\n $('#Results_Num001Field').hide();\n console.log('changeMode...');\n\n // モード変更に伴う処理をここに追加\n //const classX = $('#Results_ClassX').val();\n switch (mode) {\n case '1':\n $('#Results_Date001Field').show();\n break;\n case '2':\n $('#Results_Date002Field').show();\n break;\n case '3':\n $('#Results_Date003Field').show();\n break;\n case '4':\n $('#Results_Date004Field').show();\n break;\n case '5':\n $('#Results_Date005Field').show();\n break;\n case '6':\n $('#Results_Num001Field').show();\n break;\n default:\n }\n}\n\nfunction createNum001Button() {\n const $num001 = $('#Results_Num001');\n if ($num001.length) {\n const $parentSpan = $num001.closest('span');\n if ($parentSpan.length) {\n const $btn = $('<button>')\n .attr('type', 'button')\n .text('回数チェック')\n .css({ 'margin-left': '5px', 'margin-top': '2px' })\n .on('click', checkNumberCount);\n $parentSpan.after($btn);\n $btn.button(); // Jquery UIボタン化\n }\n }\n}\n\n// #Results_Num001 の親spanタグの後ろにJquery UIボタンを追加\nfunction checkNumberCount() {\n\n let siteId = $p.siteId();\n let keiyakuCode = $('#Results_ClassC').val() || '';\n let classX = $('#Results_ClassW').val() || '';\n //if (classX != '6') {\n // alert('契約コードの回数チェックは、「予算修正」の場合のみ実行できます');\n // return;\n //}\n if (keiyakuCode == '') {\n alert('契約コードが未入力です');\n return;\n }\n\n $p.apiGet({\n 'id': siteId,\n 'async': false,\n 'data': {\n 'ApiVersion': 1.1,\n 'ApiKey': apiKey,\n 'View': {\n 'ColumnFilterHash': {\n 'ClassC': keiyakuCode,\n 'ClassX': \"['6']\"\n }\n }\n },\n 'done': function (data) {\n console.log(data);\n let count = data.Response.TotalCount || 0;\n let myId = $p.id();\n let exists = data.Response.Data.some(item => item.ResultId == myId);\n if (!exists) {\n count = Number(count) + 1;\n }\n $p.set($('#Results_Num001'), count);\n $p.ex.setMyMessage('new-status-lime', `予算修正回数は ${count} 回です`);\n $p.set($('#Results_CheckY'), true); //回数チェック済みフラグをセット\n return;\n },\n 'fail': function (data) {\n console.log(data);\n $p.ex.setMyMessage('new-status-red', '予算修正回数の取得に失敗しました');\n }\n });\n\n}\n\n$p.ex.setMyMessage = function (cssColor = 'alert-success', message, clear = 1) {\n clear && $p.clearMessage();\n\n $p.setMessage('#Message', JSON.stringify({\n Css: 'alert-success ' + cssColor,\n Text: message\n }));\n\n}\n",
"Id": 1
},
{
"Title": "02_プロセス処理",
"New": true,
"Edit": true,
"Body": "//----------------------------------------------------------------------\n$p.ex.processScript = async function (proccessButton) {\n //押されたボタンからプロセス番号を取得\n let procNum = proccessButton[0].id.replace('Process_', '');\n console.log('processScript ' + procNum);\n\n let remandUserList = [];\n let comments = '';\n let flag = false;\n\n\n let classXMode = $('#Results_ClassW').val();\n let ccList = [];\n\n // プロセス番号に応じた処理\n switch (procNum) {\n case '1':\n console.log('processScript 1 入力完了');\n if (!$('#Results_CheckY').is(':checked')) {\n if (classXMode === '6') { //予算修正\n // ここに処理を追加\n console.log('回数チェック処理を実行');\n checkNumberCount();\n }\n }\n\n classXCheckData();\n\n if ($('#Results_ClassY').val() == '') {\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-red', '進行状況の次にある日付を入力してください。');\n\n $('#Results_Date001').addClass('code-required');\n $('label[for=\"Results_Date001\"]').addClass('code-required-font');\n $('#Results_Date002').addClass('code-required');\n $('label[for=\"Results_Date002\"]').addClass('code-required-font');\n $('#Results_Date003').addClass('code-required');\n $('label[for=\"Results_Date003\"]').addClass('code-required-font');\n $('#Results_Date004').addClass('code-required');\n $('label[for=\"Results_Date004\"]').addClass('code-required-font');\n $('#Results_Date005').addClass('code-required');\n $('label[for=\"Results_Date005\"]').addClass('code-required-font');\n\n return false;\n }\n\n break;\n case '2':\n console.log('processScript 2 承認申請');\n\n // 確認ポップアップ表示\n flag = window.confirm('実行予算を申請します。宜しいですか?');\n if (!flag) {\n //キャンセル押したら終了\n return false;\n }\n /*\n 社長 '420'\n 申請者 Class020\n 担当監督一覧\tClass001\n エリア別通知先\tClass002\n 役員通知先\tClass003\n 経理通知先\tClass004\n 積算発注管理課\tClass005\n 申請別通知先\tClass006\n */\n\n //申し送り事項コメント(メール用)\n if ($('#Results_Body').attr('data-readonly') == '1') {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').text());\n } else {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').val());\n }\n\n //CC通知先一覧の設定\n switch (classXMode) {\n case '1': //基礎のみ\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n break\n case '2': //仮予算\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '3': //仮予算確定\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '4': //A工種発注完了\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '5': //構造確定\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '6': //予算修正\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n }\n //CC宛先リストに格納\n await $p.set($('#Results_Class014'), JSON.stringify(ccList));\n\n // 差戻し権限者リストを作成\n remandUserList.push($p.userId().toString());//申請者を追加\n remandUserList.push($('#Results_Class021').attr('data-value'));//担当監督承認者を追加\n await $p.set($('#Results_Class015'), JSON.stringify(remandUserList));\n\n break;\n case '3':\n console.log('processScript 3 工務承認');\n\n // ポップアップコメント入力の表示\n comments = window.prompt('一次承認コメント', '一次承認コメント:');\n if (comments == null) {\n //キャンセル押したら終了\n return false;\n }\n await $p.set($('#Results_Description025'), comments);\n\n //申し送り事項コメント(メール用) ※空欄にする\n await $p.set($('#Results_DescriptionA'), \"\");\n\n //CC通知先一覧の設定\n switch (classXMode) {\n case '1': //基礎のみ\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n break\n case '2': //仮予算\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '3': //仮予算確定\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '4': //A工種発注完了\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '5': //構造確定\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '6': //予算修正\n ccList.push($('#Results_Class020').val()); //申請者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n //申し送り事項コメント(メール用)\n if ($('#Results_Body').attr('data-readonly') == '1') {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').text());\n } else {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').val());\n }\n\n break\n }\n //CC宛先リストに格納\n await $p.set($('#Results_Class014'), JSON.stringify(ccList));\n\n // 差戻し権限者リストを作成\n remandUserList.push($p.userId().toString());//申請者を追加\n remandUserList.push($('#Results_Class022').attr('data-value'));//最終決裁者を追加\n await $p.set($('#Results_Class015'), JSON.stringify(remandUserList));\n\n break;\n case '4':\n console.log('processScript 4 最終決裁');\n\n // ポップアップコメント入力の表示\n comments = window.prompt('最終決裁コメント', '最終決裁コメント:');\n if (comments == null) {\n //キャンセル押したら終了\n return false;\n }\n await $p.set($('#Results_Description026'), comments);\n\n //申し送り事項コメント(メール用)\n if ($('#Results_Body').attr('data-readonly') == '1') {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').text());\n } else {\n await $p.set($('#Results_DescriptionA'), $('#Results_Body').val());\n }\n\n //CC通知先一覧の設定\n switch (classXMode) {\n case '1': //基礎のみ\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n break\n case '2': //仮予算\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '3': //仮予算確定\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '4': //A工種発注完了\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '5': //構造確定\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class003').val()); //役員通知先\n ccList.push($('#Results_Class004').val()); //経理通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n case '6': //予算修正\n ccList.push(\"421\"); //社長\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class002').val()); //エリア別通知先\n ccList.push($('#Results_Class006').val()); //申請別通知先\n break\n }\n //CC宛先リストに格納\n await $p.set($('#Results_Class014'), JSON.stringify(ccList));\n\n // 差戻し権限者リストをクリア\n await $p.set($('#Results_Class015'), \"\");\n\n break;\n case '5':\n console.log('processScript 5 保留');\n\n // 確認ポップアップ表示\n flag = window.confirm('申請を保留します。宜しいですか?');\n if (!flag) {\n //キャンセル押したら終了\n return false;\n }\n\n ccList.push($p.userId().toString()); //実行者\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n\n //CC宛先リストに格納\n await $p.set($('#Results_Class014'), JSON.stringify(ccList));\n\n // 差戻し権限者リストをクリア\n await $p.set($('#Results_Class015'), \"\");\n\n break;\n case '6':\n console.log('processScript 6 差戻し');\n\n // 確認ポップアップ表示\n flag = window.confirm('申請を差し戻します。宜しいですか?');\n if (!flag) {\n //キャンセル押したら終了\n return false;\n }\n\n ccList.push($('#Results_Class005').val()); //積算発注管理課\n ccList.push($('#Results_Class028').val()); //差戻し者\n\n //CC宛先リストに格納\n await $p.set($('#Results_Class014'), JSON.stringify(ccList));\n\n // 差戻し権限者リストを自分の身\n remandUserList.push($p.userId().toString());\n await $p.set($('#Results_Class015'), JSON.stringify(remandUserList));\n\n break;\n }\n\n // プロセス実行\n $p.execProcess($('#Process_' + procNum));\n\n}\n\nlet myData;\n\n$p.ex.getMyData = function () {\n let thisId = $p.id();\n\n $p.apiGet({\n 'id': thisId,\n 'data': {\n 'ApiVersion': 1.1,\n 'ApiKey': apiKey,\n },\n 'async': false,\n 'done': function (data) {\n myData = data.Response.Data[0];\n $p.ex.createButtons();\n },\n 'fail': function (data) {\n console.log(data);\n }\n\n });\n}\n\n$p.ex.createNewRecord = async function (mode) {\n const siteId = $p.siteId();\n const url = 'https://' + location.hostname + '/pleasanter/api/items/' + siteId + '/create'\n\n const jsonBody = {\n 'ApiVersion': 1.1,\n 'Body': myData.Body,\n 'ClassHash': {\n 'ClassA': myData.ClassHash.ClassA,\n 'ClassB': myData.ClassHash.ClassB,\n 'ClassC': myData.ClassHash.ClassC,\n 'ClassD': myData.ClassHash.ClassD,\n 'ClassI': myData.ClassHash.ClassI,\n 'ClassJ': myData.ClassHash.ClassJ,\n 'ClassK': myData.ClassHash.ClassK,\n 'ClassL': myData.ClassHash.ClassL,\n 'Class001': myData.ClassHash.Class001,\n 'Class002': myData.ClassHash.Class002,\n 'Class003': myData.ClassHash.Class003,\n 'Class004': myData.ClassHash.Class004,\n 'Class005': myData.ClassHash.Class005,\n 'Class006': myData.ClassHash.Class006,\n 'Class021': myData.ClassHash.Class021,\n 'ClassX': mode\n },\n 'NumHash': {\n 'NumA': myData.NumHash.NumA,\n 'NumB': myData.NumHash.NumB,\n 'NumC': myData.NumHash.NumC,\n },\n 'CheckHash': {\n 'CheckA': myData.CheckHash.CheckA,\n 'CheckZ': myData.CheckHash.CheckZ,\n },\n 'DateHash': {\n 'DateB': myData.DateHash.DateB,\n 'DateC': myData.DateHash.DateC\n }\n }\n const res = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(jsonBody)\n });\n\n const resData = await res.json();\n //console.log(resData);\n\n if (resData.StatusCode == '200') {\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-green', resData.Message + ' 3秒後に新しい申請画面へ遷移します。');\n\n setTimeout(function () {\n location.href = '/pleasanter/items/' + resData.Id;\n }, 3000);\n\n } else {\n $p.clearMessage();\n $p.ex.setMyMessage('new-status-red', '別の申請への遷移に失敗しました。システム担当へご連絡ください。');\n }\n\n}\n\n$p.ex.createButtons = function () {\n\n let status = myData.Status;\n let classX = myData.ClassHash.ClassX;\n\n //新規作成時は処理しない\n if ($p.action() == 'new') {\n return;\n }\n\n if (status != '900') {\n return;\n }\n\n let buttonData = [\n {\n 'buttonId': 1,\n 'buttonName': '基礎のみ'\n }, {\n 'buttonId': 2,\n 'buttonName': '仮予算'\n }, {\n 'buttonId': 3,\n 'buttonName': '仮予算確定'\n }, {\n 'buttonId': 4,\n 'buttonName': 'A工種発注完了'\n }, {\n 'buttonId': 5,\n 'buttonName': '構造確定'\n }, {\n 'buttonId': 6,\n 'buttonName': '予算修正'\n }\n ];\n\n let div = document.createElement('div');\n div.id = 'nextProcessDiv';\n if ($('#nextProcessDiv').length) {\n $('#nextProcessDiv').remove();\n }\n $('#Guide').after(div);\n\n for (buttonInfo of buttonData) {\n if (classX == buttonInfo.buttonId && buttonInfo.buttonId != '6') {\n continue;\n }\n let button = document.createElement('button');\n button.type = 'button';\n button.id = 'nextButton_' + buttonInfo.buttonId;\n button.innerHTML = buttonInfo.buttonName + ' に移行';\n button.setAttribute('onclick', '$p.ex.createNewRecord(' + buttonInfo.buttonId + ')');\n div.append(button);\n button.style.margin = '5px';\n $('#nextButton_' + buttonInfo.buttonId).button({\n icon: 'ui-icon-document'\n });\n }\n\n}\n",
"Id": 2
}
],
"ServerScripts": [
{
"Title": "01_マスタデータ取得",
"Name": "",
"BeforeOpeningPage": true,
"Body": "/*\n@config :next999.json\n@filename : ${psFileBasename}\n@title :01_マスタデータ取得\n@name :01_マスタデータ取得\n@siteIds : 335011\n@siteTitles : 実行予算WF申請\n@disabled: false\n*/\n\ntry {\n //マスタデータ取得\n getMasterData1();\n getMasterData2();\n\n} catch (error) {\n context.Log(error);\n\n}\n\n//マスタデータ取得1\nfunction getMasterData1() {\n //担当監督マスタ\n let masterTableId = '376870';\n let data = {\n \"View\": {\n \"ColumnSorterHash\": {\n \"NumA\": \"asc\"\n }\n }\n }\n\n let results = items.Get(masterTableId, JSON.stringify(data));\n if (results.Length === 0) {\n context.Log('担当監督マスタデータが見つかりませんでした。1');\n return;\n }\n\n let areaNotificationList = {};\n let count = 0;\n for (let item of results) {\n const area = item.ClassA;\n const list1 = item.ClassB;\n const list2 = item.ClassC;\n const list3 = item.ClassD;\n const list4 = item.ClassE;\n\n areaNotificationList[area] = {\n \"list1\": list1,\n \"list2\": list2,\n \"list3\": list3,\n \"list4\": list4\n };\n\n count++;\n }\n\n //取得したデータをhiddenに格納\n if (count > 0) {\n hidden.Add('areaNotificationList', JSON.stringify(areaNotificationList));\n context.Log('担当監督マスタデータ取得完了');\n return;\n } else {\n context.Log('担当監督マスタデータが見つかりませんでした。2');\n return;\n }\n\n}\n\n//マスタデータ取得2\nfunction getMasterData2() {\n //通知先マスタ\n let masterTableId = '376871';\n let data = {\n \"View\": {\n \"ColumnSorterHash\": {\n \"NumA\": \"asc\"\n }\n }\n }\n\n let results = items.Get(masterTableId, JSON.stringify(data));\n if (results.Length === 0) {\n context.Log('通知先マスタデータが見つかりませんでした。3');\n return;\n }\n\n let classNotificationList = {};\n let count = 0;\n for (let item of results) {\n const shubetu = item.ClassA;\n const list1 = item.ClassB;\n const list2 = item.ClassC;\n const list3 = item.ClassD;\n\n classNotificationList[shubetu] = {\n \"list1\": list1,\n \"list2\": list2,\n \"list3\": list3\n };\n\n count++;\n }\n\n //取得したデータをhiddenに格納\n if (count > 0) {\n hidden.Add('classNotificationList', JSON.stringify(classNotificationList));\n context.Log('通知先マスタデータ取得完了');\n return;\n } else {\n context.Log('通知先マスタデータが見つかりませんでした。4');\n return;\n }\n}",
"Id": 1
}
],
"AllowCopy": false,
"HideLink": true,
"TitleSeparator": "■",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
}
],
"Data": [],
"Permissions": [
{
"SiteId": 376868,
"Permissions": [
{
"ReferenceId": 376869,
"DeptId": 26,
"GroupId": 0,
"UserId": 0,
"PermissionType": 511
},
{
"ReferenceId": 376869,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
},
{
"ReferenceId": 376868,
"DeptId": 26,
"GroupId": 0,
"UserId": 0,
"PermissionType": 511
},
{
"ReferenceId": 376868,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
},
{
"ReferenceId": 376868,
"DeptId": 66,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376868,
"DeptId": 36,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376868,
"DeptId": 28,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376868,
"DeptId": 1,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376868,
"DeptId": 19,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376868,
"DeptId": 56,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
}
]
},
{
"SiteId": 376869,
"Permissions": [
{
"ReferenceId": 376869,
"DeptId": 26,
"GroupId": 0,
"UserId": 0,
"PermissionType": 511
},
{
"ReferenceId": 376869,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
}
]
},
{
"SiteId": 376870,
"Permissions": [
{
"ReferenceId": 376870,
"DeptId": 1,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 19,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 26,
"GroupId": 0,
"UserId": 0,
"PermissionType": 511
},
{
"ReferenceId": 376870,
"DeptId": 28,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 36,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 56,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 66,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376870,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
}
]
},
{
"SiteId": 376871,
"Permissions": [
{
"ReferenceId": 376871,
"DeptId": 1,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 19,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 26,
"GroupId": 0,
"UserId": 0,
"PermissionType": 511
},
{
"ReferenceId": 376871,
"DeptId": 28,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 36,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 56,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 66,
"GroupId": 0,
"UserId": 0,
"PermissionType": 5
},
{
"ReferenceId": 376871,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
}
]
},
{
"SiteId": 376872,
"Permissions": []
}
],
"PermissionIdList": {
"DeptIdList": [
{
"DeptId": 26,
"DeptCode": "10107",
"DeptName": "積算発注管理課"
},
{
"DeptId": 66,
"DeptCode": "40034",
"DeptName": "千葉・工務課"
},
{
"DeptId": 36,
"DeptCode": "20021",
"DeptName": "愛知・工務課"
},
{
"DeptId": 28,
"DeptCode": "10109",
"DeptName": "東京・工務課"
},
{
"DeptId": 1,
"DeptCode": "10000",
"DeptName": "役員"
},
{
"DeptId": 19,
"DeptCode": "10100",
"DeptName": "経理・財務課"
},
{
"DeptId": 56,
"DeptCode": "40002",
"DeptName": "君津・総務経理課"
}
],
"GroupIdList": [],
"UserIdList": [
{
"UserId": 460,
"LoginId": "ntkco12216",
"UserCode": "",
"Name": "野木 健一郎"
}
]
}
}