★
基幹システム
⚪ ローカル
メニュー
📋 注文書
発行状況
現場一覧
🗂 マスタ
現場マスタ
業者マスタ
従業員マスタ
部署マスタ
役職マスタ
?
未ログイン
DEBUG | 切替:
|
注文書
登録件数
0
交渉中
0
発行済
0
類似現場 絞り込み ▼ 展開
基準値と許容範囲を入力(面積は±%誤差)
±件
±階
±%
±%
±%
現場名見積番号工期 階戸 受注決定概算金額 提出見積 原価設定添付 操作
業者名建設業許可証 協力会 インボイス番号操作
氏名 社員番号 部署 役職 メールアドレス 電話番号 PW システムロール 操作
部署名備考操作
役職名備考操作
基幹システム
部署と氏名を選択してログイン
パスワードリセット
管理者(admin権限者)にパスワードのリセットを依頼してください。
管理者は「設定 → ユーザー管理」からパスワードを変更できます。
管理者リカバリー(全員がログインできない場合)
初回管理者設定
管理者アカウントを作成します。
部署や役職はログイン後にマスタ画面から登録できます。
接続中...
ユーザー管理
登録ユーザーとロールを管理します
ロール別権限設定
従業員 新規登録
ログイン設定
部署 新規登録
役職 新規登録
🗑 削除の確認
⚠ この操作は取り消せません。本当に削除しますか?
注文書 新規登録
登録区分(任意)
工期
金額
現場 新規登録
工期・規模
面積
㎡
㎡
㎡
受注金額
予算コード 原価金額
業者 新規登録
設定・Supabase・LINE WORKS
システム設定
接続情報
ログイン中:
権限管理
⚪ 未接続(ローカル保存モード)
📋 Supabase初期設定(展開)
1
supabase.com で無料アカウント作成・プロジェクト作成
2
SQL Editorで実行:
CREATE TABLE app_data(id TEXT PRIMARY KEY DEFAULT 'main',data JSONB,updated_at TIMESTAMPTZ DEFAULT NOW());
ALTER TABLE app_data ENABLE ROW LEVEL SECURITY;
CREATE POLICY "allow_all" ON app_data FOR ALL USING(true) WITH CHECK(true);
3
Settings → API から Project URL と anon key をコピー → 保存
LINE WORKS 連携
📌 Cloudflare Workers Proxy経由で送達確認できます。
Proxy未設定時はno-corsで送信(送達確認なし)。
🛠 Cloudflare Workers 設定(展開)
1
cloudflare.com → Workers & Pages → Create Worker
2
以下のコードを貼り付けDeploy:
export default {
  async fetch(req) {
    const cors = {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
      'Access-Control-Allow-Headers': 'Content-Type'
    };
    // CORS preflight
    if (req.method === 'OPTIONS') {
      return new Response(null, { headers: cors });
    }
    // GET: 動作確認用(ブラウザ直アクセスでも正常応答)
    if (req.method === 'GET') {
      return new Response(
        JSON.stringify({ ok: true, running: true, message: 'LINE WORKS Proxy is running' }),
        { headers: { 'Content-Type': 'application/json', ...cors } }
      );
    }
    // POST: JSONボディを解析
    let body;
    try {
      body = await req.json();
    } catch (e) {
      return new Response(
        JSON.stringify({ ok: false, error: 'JSON parse error: ' + e.message }),
        { status: 400, headers: { 'Content-Type': 'application/json', ...cors } }
      );
    }
    const { webhookUrl, message } = body;
    // 接続テスト用(__test__ または空)
    if (!webhookUrl || webhookUrl === '__test__') {
      return new Response(
        JSON.stringify({ ok: true, status: 200, test: true }),
        { headers: { 'Content-Type': 'application/json', ...cors } }
      );
    }
    // LINE WORKS に転送 ★ 正しいフォーマット: { content: { type, text } }
    try {
      const res = await fetch(webhookUrl, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ body: { text: message } })  // ★ LINE WORKS 正しいフォーマット
      });
      return new Response(
        JSON.stringify({ ok: res.ok, status: res.status }),
        { headers: { 'Content-Type': 'application/json', ...cors } }
      );
    } catch (e) {
      return new Response(
        JSON.stringify({ ok: false, error: e.message }),
        { status: 500, headers: { 'Content-Type': 'application/json', ...cors } }
      );
    }
  }
};
3
Worker URL(https://xxxx.workers.dev)を下記に入力
📡 エラー監視: LINE WORKS URLが設定されていると、システムエラーが発生した際に自動でチャンネルへ通知されます(同一エラーは60秒/1回、最大10件/セッション)。
データバックアップ
全データを JSON ファイルとしてエクスポート/インポートします。事故時の復旧手段としてご利用ください。
リストアは管理者のみ実行可能です。リストア時は現在のデータがすべて上書きされます。
Supabaseスナップショット
Supabaseに版管理されたスナップショットを保存します。手動・自動(リストア前・週1)の3種類があり、任意の時点へワンクリックで復元可能です。
📋 初回セットアップSQL(展開)
1
Supabase SQL Editorで実行:
CREATE TABLE app_backups (
  id BIGSERIAL PRIMARY KEY,
  label TEXT,
  kind TEXT DEFAULT 'manual',
  data JSONB NOT NULL,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  created_by TEXT,
  size_bytes BIGINT
);
ALTER TABLE app_backups ENABLE ROW LEVEL SECURITY;
CREATE POLICY "allow_all" ON app_backups FOR ALL USING(true) WITH CHECK(true);
CREATE INDEX idx_backups_created ON app_backups(created_at DESC);
📚 Supabaseスナップショット一覧
最新50件まで表示。各スナップショットから任意の時点へ復元できます。復元前に現在の状態を自動保存します。
読み込み中…
現場 添付ファイル
PDF・画像・Excel等 最大10MB(セッション中のみ保持)
登録済みファイル
見積書・添付ファイル
PDF・画像・Excel等 最大10MB(セッション中のみ保持)
登録済みファイル