========================================================================== zsystem.jp 作業記録 2026-07 ========================================================================== -------------------------------------------------------------------------- 2026-07-01〜07-02 厚木事業所 印刷進行予定表(ellio) 工程会議資料EXCEL取込準備・ businessRawdata列コメント付与・packageqty用途調査 -------------------------------------------------------------------------- 【背景・目的】 - 厚木事業所(興国運輸)の印刷進行予定表(ellio/printschedule)関連作業の準備。 エリオから金曜の工程会議で配布される週間予定EXCEL(工程会議資料)を新規に 取り扱い、進行予定表に載っていない情報(出荷予定日等)を抽出。将来のシャーリング 週間予定立案につなげる。 【業務背景の整理・ドキュメント化(ellio/CLAUDE.md 追記)】 - 商流: 大日本印刷(DNP)→大日本エリオ(元請/鋼板印刷=化粧鋼板)→出荷先は日立 (エレベータ)・三菱電機(冷蔵庫)等。興国運輸 厚木事業所がエリオ工場内で 入荷/保管/ピッキング/印刷ライン投入/梱包出荷/シャーリングを請負。 部門=シャーリング部門/梱包部門。 - 進行予定の入手経路3種(週間EXCEL/前々日/システムPDF)と鮮度順(前々日>工程会議>PDF)、 工程会議資料の位置づけ、businessRawdata.orderno複合キー等を追記。 【工程会議資料EXCELの解析】 - ファイル: ~/Downloads/1L・2L工程会議資料0706-0710.xlsx (1L=47件, 2L=49件, 組込日7/6〜7/10) - 表示メインシート「○ライン抽出製造用本確回数」が対象。 「差し替え依頼資料…」「…(2)」シートは hidden(非表示)。 - 「進行予定表に無い情報」= AI出荷日(出荷予定日)・Jシャー CD 等を抽出。 出荷日記法: 単一日 / 分納(日付(数量)) / 朝出 / '-'=出荷予定なし=大分出荷品。 鋼材入り日/GC入り日/LM入り日(AF/AG/AH)は当該資料では空。 【businessRawdata との突合(PDFに無い行の特定)】 - orderno複合キー = 受注NO-行NO(2桁)-印刷NO(2桁) を組み立てて突合。 - EXCEL 96行中 88行=登録済 / 8行=未登録(=PDFに無い行)。7/10(金曜)に集中。 うち1件(38085761-01-02 JR東海)は既存受注の新しい印刷回、他7件は完全新規。 - タイムラグにより遠い曜日ほど未登録になりやすいことを確認。 【businessRawdata 全77列に日本語コメント付与(本番DB スキーマ変更)】 - UIラベル(printschedule.html)・工程会議EXCEL見出しを根拠に全77列のコメント案を作成、 ユーザー承認後に実行。 - SHOW CREATE TABLE の定義(型/NULL/デフォルト/auto_increment/timestamp自動更新 /utf8_bin)を完全保持し COMMENT のみ追加する単一 ALTER TABLE で一括付与 (テーブル再構築1回)。総行数 59,480 で不変=データ影響なし。 - ★文字化けトラブルと対処: 古い mysql クライアント(Distrib 5.0.92)は既定 latin1 接続のため、初回は日本語コメントが二重エンコードで化けた。 --default-character-set=utf8 で全列付け直し、格納バイトをHEXで正しいUTF-8と 一致することを確認して解消。 → 教訓: zsystem.jp の mysql CLI で日本語を書き込む際は mysql --default-character-set=utf8 (または冒頭 SET NAMES utf8)を必須とする。 【新規列・梱包数フィールドの検討(いずれも保留)】 - 工程会議EXCELの businessRawdata に列として無い情報(S GC色名/T作業回数(本確)/ U前回作業ライン/V前回作業日/W製造評価/X色調評価/Y前回作業に対して/ Z色評価コメント/AH LM入り日)は、シャーリング週間予定の整形方針が固まるまで カラム追加を保留。 - 「梱包数」フィールド追加案件: 形式は double で確定。ただし既存 packageqty (varchar10,COMMENT梱包数)と重複問題があり、当初は別名の新規double列追加の意向。 → 判断のため packageqty の用途を調査(下記)。 【packageqty(businessRawdata)の登録状況・用途調査】 - 登録状況(全59,480行): 空''=7,890 / '0'=42,838 / 実値(1以上)=8,752。 値は1〜24の小整数(文字列格納)。7/2・7/3の直近受注にも入力あり=現役。 - 書込元: printschedule/index.php:148 writeInfo() の手入力 UPDATE 1箇所のみ (進行予定表画面の「梱包数」入力欄 packageqtyfield → pacqty)。 - 用途: (1) printschedule/index.php で進行予定表に表示(indicationqty2)。 (2) skidorder/index.php で divisioncode='O'(大分出荷品)を対象に、 packageqty を数値として使用($packageqty+20 で木材=スキッド副資材の 必要数オプション算出、加算、比較)。=梱包数を基準にスキッド用副資材の 発注数を計算する実業務用途。 - 注意: arrival/invoice.php:217 の packageqty は loadinglog テーブル(トラック積載 情報)の別カラムで businessRawdata とは無関係。 - 所見: packageqty は varchar だが skidorder で完全に数値扱い=意味的には既に 「数値の梱包数」。新規double列は用途が重なる可能性があり、方針を再検討中。 【メモリー(auto-memory)】 - project_ellio_printschedule_newcols.md: 上記カラム追加保留案件・梱包数(double確定 だがpackageqty重複問題)を記録。 【本作業でのファイル/DB変更】 - DB(本番 ellio): businessRawdata 全77列に COMMENT 付与(データ変更なし)。 - ローカルのみ: ellio/CLAUDE.md に業務背景・工程会議資料の取り扱いを追記 (サーバー転送なし)。 - サーバーへのファイルデプロイ(scp/rsync)は無し。 【残課題】 - 梱包数: 新規double列を追加するか / packageqty を数値型化して転用するか / 既存で足りるか、の最終方針決定。 - 工程会議EXCELの新規列群の扱い(シャーリング週間予定の整形)。 - zsystem.jp/CLAUDE.md の MySQL 節へ「日本語書込は --default-character-set=utf8 必須」を追記するか(未実施)。 ──────────────────────────────────────── 2026-07-02 productmaster: letip を ellio に合わせてコード同期(デプロイ 2026-07-02) ──────────────────────────────────────── 目的/背景: letip/productmaster と ellio/productmaster の差異確認の結果、ellio 版にのみ 入っていた改善2点が letip 版に未反映だったため、コード部分のみ letip へ反映。 sqlite3(fieldlist/listtarget=顧客別の表示項目設定)は顧客ごとに内容が 異なるため対象外(letip 独自設定を維持)。 変更ファイル(letip/productmaster/): - index.php: writeProduct() の登録失敗時クリーンアップを追加。 新規登録時に作る仮行(PDCode='insert_temp')について、直後の UPDATE が 失敗した場合に該当行を DELETE し残骸を防止。失敗時はエラー文言を返して return。 - master.js: 検索パラメータのエンコードを encodeURI → encodeURIComponent に変更 (& = + 等も確実にエスケープ=堅牢化)。 - master.html: 変更なし(元々 ellio と一致)。 確認: php -l OK、ellio と全コードファイル md5 一致。 デプロイ: scp(2026-07-02)。sqlite3 は転送しない。 ──────────────────────────────────────── 2026-07-02 productmaster: 登録編集画面でSizeキャプション(=カラムコメント)を編集可能化(ellio→letipへ展開・デプロイ 2026-07-02) ──────────────────────────────────────── 目的/背景: サイズの順序表記が事業所(ellio/letip)ごとに異なるため、登録・編集画面上から Sizeフィールドのキャプション(= ProductDistributeTable.Size カラムのCOMMENT)を 書き換えられるようにする。従来キャプションはカラムコメント読み取りのみで固定だった。 変更(ellio/productmaster/ で開発 → letip/productmaster/ へ同一コードをコピー展開): - index.php: * switch に mode 'writeSizeComment' を追加 * readInputForm(): Size のときだけキャプションを角丸グレーのボタン に切替(他フィールドは不変) * writeSizeComment() 新設: INFORMATION_SCHEMA から現在の型属性 (varchar(32)/utf8_bin/NOT NULL) を読み、保持したまま ALTER TABLE ProductDistributeTable MODIFY COLUMN Size ... COMMENT '...' を発行。 値は mysqli_real_escape_string でエスケープ。Size専用。 - master.html: .captionbutton クラス(角丸グレー#ccc/hover#09e8)+編集ダイアログ #captionarea(入力欄 maxlength=80+登録/キャンセル)を追加 - master.js: editCaption()/saveCaption()/closeCaption() を追加。 保存成功時はボタン文言を即時更新し、findProductList() で一覧ヘッダーも再描画。 注意: 「登録」は本番テーブルへの ALTER(DDL)。ログインチェック済み管理画面内・Size専用・型保持。 確認: php -l OK、ellio と letip でコード全一致(md5)。sqlite3 は対象外。 デプロイ: scp(2026-07-02)ellio・letip 各3ファイル。 ──────────────────────────────────────────────────────── 2026-07-02 ellio/arrival/arrivalrecord/ 新規作成(鋼材入荷実績の一覧表示) 目的・背景: 厚木事業所で受け入れた鋼材(アルミ・ステンレス含む)の入荷実績を、 年月指定で一覧表示・CSV出力する画面が必要になった。 名称は「受け入れ方向」を踏まえ arrivalrecord とし、ディレクトリ構成上 ellio/arrival/ 配下に新設。ellio/arrival/materialplate/ をベースに作成。 内容(新規3ファイル / ベース=materialplate): - index.php: * actualtable を年月(YYYYMM)で絞り込み一覧表示。 * 年月セレクタは actualtable に実在する年月を新しい順に最大24ヶ月生成。 * 並びは ActualCode 昇順のシンプルなフラット表示 (materialplate の素材種別グルーピング/ブランク化は廃止)。 * 列: 日付(ActualCode先頭8桁=入荷日) / 鋼材規格 / 目付 / 仕上 / サイズ / 数量 / パックNO / 梱包NO / コイルNO / 加工日 / 納入元 / 納品書番号 / 受注番号(actualtable.actualOrderNo = 投入実績の受注番号)。 * 受注番号が複数受注にまたがる場合(actualOrderNo カンマ区切り)は 画面は改行表示、CSVはカンマのままダブルクォートでエスケープ。 * getStocklistCSV モード追加: BOM付きUTF-8・Content-Disposition で 日本語ファイル名(入荷実績YYYYMM.csv)。表示SQLと同一の絞り込みを共有。 * materialplate の不要コード(発注入力フォーム/メール取込/欠落header.html 参照/未定義のrebuildBuyingPrice等)を除去。 - stocklist.html: materialplate のスタイルを流用しつつ発注入力系UIを削除、 上部バーに年月セレクタ+CSV保存ボタン+検索、納品書画像ビューは維持。 - stocklist.js: 一覧取得/検索/納品書画像(dblclick)/CSV保存にスリム化。 注意: 受注番号は actualtable.actualOrderNo を直接表示(ActualResult等への JOINは不要)。materialplate が取得していた 'orderno' カラムは実在せず 正しくは actualOrderNo だった点に留意。 確認: php -l OK。ローカル php -S + 実DB(ellio) で一覧/CSV/複数受注番号の 改行・エスケープを動作確認。PHP5.3非対応構文は未使用。 デプロイ(2026-07-02): scp 3ファイル → /Users/zadmin/Sites/ellio/arrival/arrivalrecord/ 2026-07-02(追記) ellio/arrival/arrivalrecord/ index.php 改修 1) 一覧・CSVのヘッダ「受注番号」→「投入実績」に変更(列の実体は actualtable.actualOrderNo のまま。呼称を投入実績に統一)。 2) 検索窓の入力が受注番号形式(8桁-2桁-2桁, 例 38089668-01-01)の場合、 選択中の年月に関わらず actualtable 全体を actualOrderNo で部分一致検索し 結果表示する分岐を arrivalQuery() に追加。形式に一致しない語は従来どおり 選択年月内で複数カラム横断(productcode/productname/packno/lotno/stockno/ sendfrom/arrivalno/actualOrderNo)の LIKE 検索。 確認: php -l OK。ローカル php -S + 実DB で、受注番号完全形→全期間ヒット、 非該当語→年月内限定 を確認。 デプロイ(2026-07-02): scp index.php のみ(html/js は変更なし)。 2026-07-02(追記) ellio/menu/index.php にメニュー項目追加 入荷処理セクション(g-arrival)の末尾に「鋼材入荷実績」 (go("/arrival/arrivalrecord/"))を追加。原板納入指示明細書の次に配置。 デプロイ(2026-07-02): scp ellio/menu/index.php のみ。 2026-07-02(追記) ellio/arrival/arrivalrecord/index.php にログイン権限追加 materialplateベースのため未認証だったが、冒頭に LoginCheck("100") を追加。 ポータルメニュー(menu)と同じ権限100に揃える。AJAX/CSVは同一オリジン+cookieで継続。 デプロイ(2026-07-02): scp index.php のみ。 2026-07-03(追記) ellio/arrival/arrivalrecord/index.php に残数列を追加 背景調査: 「残鋼材か使い回しpacknoか」の判別可否を検証。 - pack.actualcode が正規キー(regist.phpのSETACTUALCODEで入荷時に必ずセット)。 - 在庫中の鋼材pack 22件は全てactualcode保持・未移動=packno一致。actualcode結合なら 使い回し新入荷(別actualcode)に誤ヒットせず、在庫中の残数を一意特定可能。 - pack.actualcodeは在庫packでユニーク(1入荷=1在庫pack行)。 実装: - arrivalQuery の両SELECTに (SELECT SUM(pk.qty) FROM pack pk WHERE pk.actualcode=AT.actualcode AND pk.locate!='') as remainQty を追加。表示・CSVに「残数」列(数量の右)を追加。 - 残数の意味: 空欄=在庫なし / 数量>残数=残鋼材 / 数量==残数=満数在庫。 - 表示のみ: 投入実績あり かつ 数量==残数 は「カンバン未クリア(実質残0)」の疑いとして 残数を color:#ccc グレー表示($rawOrderno!='' && $remain==$qty)。CSVは生値のまま。 確認: php -l OK。実DBで残鋼材(75→25)/満数(231)/在庫なし(空)/グレー判定を確認。PHP5.3構文OK。 デプロイ(2026-07-03): scp index.php のみ。 2026-07-06(追記) ellio/printsequence/index.php 「進行予定表から選択」タブで完了済みを除外 目的/背景: 投入順序(printsequence)正式版の「進行予定表から選択」タブは、印刷完了 (printCompleted=1)の受注も一覧に表示されていた。開発版(printsequenced)では既に printCompleted=0 で除外済み。正式版も未完了のみ表示に揃える。 実装: readPrintSchedule() のメインSQL(index.php:338)に AND printCompleted=0 を追加。 期間ロジック($date下限)等その他は変更なし(最小変更)。 確認: php -l OK。実DB(today-3=2026-07-03起点)で件数比較。 1ライン 69→65(完了4件除外)/ 2ライン 84→71(完了13件除外)で意図どおり動作。 デプロイ(2026-07-06): scp ellio/printsequence/index.php のみ。 2026-07-10(追記) ellio/dispatchmng/ 配車管理システム 新規作成・初回デプロイ 目的/背景: 厚木事業所(興国運輸)向け「配車管理表」システムを新規構築。トラック1台ごとの 入庫〜受付〜積込/荷降〜退場の時刻記録・荷待/荷役時間・積載率管理が目的(仕様書= ~/Desktop/厚木事業所/配車管理/配車管理記録.xlsx「システム概要」シート)。 新規テーブル(ellio DB, InnoDB/utf8_bin・本番DBに作成済): - dispatch: 配車管理表本体(仕様書A〜R列+phone/shipping_no/nonyusaki_addr等)。 出荷予定表PDF(テキスト貼付)の取込先。 - carrierMaster: 配送業者 車両・ドライバーマスタ。岡田運輸37台=写真③(車番/ナンバー/ 運転手/車種/最大積載量)、他84台=配車管理記録Excel(2026.4-6月)抽出。計122台/25社。 ファイル(4ファイル構成): index.php / dispatchmng.html / dispatchmng.js / style.css (dispatch.sql/carrier.sql はDDLドキュメント=サーバー転送対象外) 主な機能: - 出荷予定表PDF取込→dispatch(出荷指示番号=businessRawdata.orderno、質量/納期日等をパース)。 - 配車管理表: 会社名/氏名/車番を編集コンボボックス化。会社→所属ドライバー→車番と候補連動、 氏名ユニークで会社自動補完、確定でフォーカス連鎖。行ダブルクリックで編集ダイアログ。 - 新規登録/編集ダイアログ(配達日/納入先/荷重量/配送業者/車番/氏名/電話/特記)。iOS準拠ボタン。 既知の未解決: フォーカス移動時のプルダウン自動オープン。showPicker()+前フィールドblurで対応したが 実機で氏名側が未オープンの報告あり=要継続調査(将来カスタムドロップダウン化も検討)。 確認: php -l OK。ローカル(php -S + 実ellio DB)で取込202件・各コンボ絞込・新規/編集保存を検証。 デプロイ(2026-07-10): scp ellio/dispatchmng/{index.php,dispatchmng.html,dispatchmng.js,style.css}。 DB(dispatch/carrierMaster/phone列)は同一本番DBに作成済のため移行不要。 2026-07-10(追記) ellio/menu/index.php 配車セクション追加 目的: ポータルメニューに配車管理システム(dispatchmng)への導線を追加。 内容: 資材セクションの下に新セクション「配車」を追加。項目= 「配車管理(開発中)」→go("/dispatchmng/") /「現場入力(まだ動作しません)」 (リンク未実装・項目名のみ、画面は後日作成)。 デプロイ(2026-07-10): scp ellio/menu/index.php のみ。 2026-07-13 ellio/dispatchmng/index.php 便削除エラー修正 背景: 配車便編集ダイアログから便を削除しようとすると「削除エラー:」(メッセージ空)が出て 削除できない(ID:745で発覚。実際はID固有でなく全件で失敗)。 原因: deleteTrip() が未定義関数 fetchRow() を呼んでいた。fetchRow の定義は別ディレクトリ ellio/dispatch/index.php にあり、dispatchmng/index.php では未定義。呼び出しで PHP 致命的 エラー→空応答(500)となり、JS(dispatchmng.js:263)が空応答を受けて「削除エラー:」を表示していた。 修正: 該当1行を、既に取得済みの $mysqli を使うインラインクエリ (mysqli_query + num_rows>0 判定 + fetch_assoc、fetchRow と同挙動・PHP5.3互換)に置換。 確認: php -l OK。 デプロイ(2026-07-13): scp ellio/dispatchmng/index.php のみ。 2026-07-13(追記) ellio/dispatchmng 出荷依頼日(積込日)の取込・保存を追加 目的: 出荷指示書の「出荷依頼日」=トラック積込日を保存する。各明細の「納期日」は トラックが納入先に到着する日で、両者は別物(宵積み等で日が異なる)。従来は納期日 (shippingschedule.nouki / dispatch.dispatch_date)しか保存しておらず、積込日は未保存だった。 発見: 出荷依頼日は出荷指示書の各ページヘッダ「出荷依頼日 YYYY年 MM月 DD日」にあり、 ページ(積込日ブロック)単位で切り替わる(指示書全体で1つではない)。 変更: 1) shippingschedule に ship_request_date DATE 追加(nouki の後) 2) dispatch に ship_request_date DATE 追加(dispatch_date の後) ※ alter_add_ship_request_date.sql(NULL許容追加=旧コード後方互換) 3) index.php parseShippingSchedule: ページヘッダの出荷依頼日を追従取得し各明細へ付与。 importSchedule: shippingschedule/dispatch 両INSERTに ship_request_date を組込み。 (既存 dispatch 行のUPDATEは重量のみ=依頼日は新規行のみ付与) 確認: php -l OK。パーサーをオフライン実データ(依頼日=納期日/宵積みで別日/ページ跨ぎ)で検証、 出荷依頼日が納期日と別に正しく取得・追従されることを確認。 デプロイ(2026-07-13): ①alter_add_ship_request_date.sql を本番ellio DBへ適用(DDL先行) → ②scp ellio/dispatchmng/index.php。 ※既存取込済み行は ship_request_date=NULL、再取込で shippingschedule は充足。 2026-07-13(追記) ellio/dispatch 現場打刻画面 トップバー高さを約2/3に縮小 目的: dispatch/(現場打刻)画面のトップバー(.header)が高いため約2/3に縮小。 内容(style.css・縦方向のみ、横幅/配置/色は据置): .header padding 10px16px→6px16px / .filters padding 4px→3px / .f-btn padding 6px18px→3px18px / .f-btn .n font-size 22px→15px / .f-btn .l margin-top 4px→2px。 高さ 約76px→約51px。 確認: ローカルで表示確認済み(ユーザー確認)。 デプロイ(2026-07-13): scp ellio/dispatch/style.css のみ。 2026-07-14 ellio/dispatchmng ほか: 日付カラム改名(名称と意味の一致)+出荷日移行の準備 背景: 当初 納期日を出荷日として取り込み dispatch_date と命名。後から出荷日(出荷依頼日=積込日)を ship_request_date として追加したため、両フィールドが「出荷日」に見え混乱していた。 名前とデータの意味を一致させる。 改名: dispatch_date(実体=納期日)→delivery_date / ship_request_date(実体=出荷日)→dispatch_date / shippingschedule.nouki(納期日)→delivery_date に統一。挙動は不変(純粋な改名)。 対象: ellio/dispatchmng/index.php・dispatchmng.js、ellio/dispatch/index.php(現場打刻)、 ellio/dispatchmngold/index.php・dispatchmng.js、dispatch.sql/shippingschedule.sql 定義。 新規: alter_rename_date_columns.sql / backfill_dispatch_shipdate.sql / verify_migration.sql。 デプロイ(2026-07-14 フェーズ1=改名カットオーバー): ライブDBで CHANGE COLUMN 実行+5コードを個別scp。 実行前バックアップ _backup_dispatch_ss_20260714_2354.sql(実績12行)取得済み。非破壊(dispatch削除せず)。 残(ユーザー指示待ち): フェーズ2 出荷予定表PDF再取込で shippingschedule.dispatch_date(出荷日)充填 → フェーズ3 dispatch.dispatch_date を(納期日+納入先)でbackfill → 元↔後をid基準で照合。 フェーズ2/3 完了(2026-07-15 未明): shippingschedule を DELETE→出荷予定表PDF(709行)を CLI(php56)で importSchedule 実行(parsed107/ssInserted107/matched13/mismatches無)→ shippingschedule.dispatch_date(出荷日) 107件充填。dispatch.dispatch_date を (delivery_date+content) で backfill(18件更新)。実績のある2画面外の 2行(id727 07-16日立/id737 07-15荻生=実績無)は現PDFに該当グループ無く出荷日NULLのまま。 照合(verify_migration, id基準): 行集合一致/納期日不変/実績完全不変(差異0)/出荷日18充填/backfill妥当(差異0)。 実績12行の時刻・天候・備考すべて無傷を確認。非破壊で完了。 2026-07-15 ellio/dispatchmng + dispatch: 配車画面の基準日を「積込日(出荷依頼日=dispatch_date)」に切替 背景: 改名後も画面は納期日(delivery_date)基準のままで出荷依頼日が出ず「以前のまま」に見えた。 配車の実態はトラック来場=積込日なので、画面・打刻の基準を積込日に統一。 変更: dispatchmng/index.php の screen系(readDispatch/readRecordJson/listDates/dispForm-max/ insertDispatch/insertTrip/deleteTrip/updateDest/listAssignedTrucks/readTripJson)の日付軸・グループキーを delivery_date→dispatch_date に(行範囲442-768の取込parse/importScheduleは納期日ベース維持で除外)。 dispatchmng.js doInsertのパラメータを dispatch_date に。dispatch/index.php(現場打刻)の一覧フィルタ・ 天候一括・打刻時刻の日付ソースを dispatch_date に。旧残骸2行(id727/id737)は事前削除。 検証(CLI/実DB): listDates=積込日一覧(07-13〜07-16 計18)。readRecord 07-13 に LIXIL石下(納期07-14)等が並び 打刻時刻も正表示。デプロイ(2026-07-15): scp dispatchmng/index.php・dispatchmng.js・dispatch/index.php。 2026-07-15 ellio/dispatchmng: 出荷予定(shippingschedule)テーブルの表示・編集UIを追加 ヘッダーに「出荷予定」ボタン新設(出荷予定PDF取込の左)、新規登録ボタンを右へ移動。 出荷予定モーダル: 出荷日範囲で shippingschedule を一覧、全項目インライン編集(変更で自動保存)・行追加・行削除。 index.php: listSchedule/updateSchedule(フィールドホワイトリスト)/insertSchedule(手動行はMANUAL-仮orderno採番)/ deleteSchedule を追加。dispatchmng.html(ボタン並替+モーダル)、dispatchmng.js(open/load/render/save/add/delete)、 style.css(.schedule-table/.sch-in)を追加。CLI/実DBで list(107)/insert/update/delete を検証(テスト行は削除)。 デプロイ(2026-07-15): scp index.php・dispatchmng.js・dispatchmng.html・style.css。 出荷予定編集: 数量/重量の列幅を58pxに縮小、サイズ列を min180px に拡大。デプロイ(2026-07-15): scp dispatchmng.js/style.css。 2026-07-15 ellio/dispatchmng: 配送マスター(carrierMaster)の表示・編集UIを追加 ヘッダー「配車管理記録」の左に「配送マスター」ボタン新設。モーダルで carrierMaster を一覧・全項目 インライン編集(会社/車番/車両ナンバー/運転手/車種/最大積載/稼働(checkbox)/表示順/備考)・行追加・行削除。 index.php: listCarrier/updateCarrier(ホワイトリスト)/insertCarrier(手動行は NEW-xxxx 仮車番)/deleteCarrier。 dispatchmng.html(ボタン+モーダル)、dispatchmng.js(open/load/render/save/add/delete)。CSSは.schedule-table流用。 CLI/実DBで list(122)/insert/update(会社・稼働)/delete を検証(テスト行は削除)。 デプロイ(2026-07-15): scp index.php・dispatchmng.js・dispatchmng.html。 配送マスター: 会社名フィールドに datalist(companyList)を付与し、便編集画面と同じプルダウン+補完を有効化。デプロイ(2026-07-15): scp dispatchmng.js。 出荷予定編集: 列幅再調整(前段の58pxは狭すぎたため)。色を62pxに縮小し、その分を数量/重量に振り分け80pxに拡大。デプロイ(2026-07-15): scp dispatchmng.js/style.css。[commit 987e9b4] 2026-07-15 ellio/dispatchmng: 出荷予定エディタに「配車へ反映」ボタンを追加(出荷予定↔配送予定の整合手段) 背景: 出荷予定編集はカードの荷量(ライブ集計)には即反映されるが、配車便(dispatch)の作成/weight保存値/ 出荷日は自動同期されず、日付・納入先変更や行追加で便とズレ得る。取込Step3相当を手動実行できるようにした。 index.php: reflectDispatch アクション+reflectToDispatch()。表示中の出荷日範囲の shippingschedule を (納期日,納入先)でグループ化し dispatch を upsert(便が無ければ作成/1便は重量再集計/出荷日は全便追従/ 2便以上は重量不触/実績・時刻・トラック割当は一切不変/孤立便削除はしない)。 dispatchmng.html(出荷予定モーダルに「配車へ反映」ボタン)、dispatchmng.js(reflectDispatch, 反映後reloadDispatch)。 検証(CLI/実DB, 架空09-09データ): reflect1=便作成(inserted1)/reflect2=更新(updated1,冪等)、後片付けで本番無変更。 デプロイ(2026-07-15): scp index.php・dispatchmng.js・dispatchmng.html。 出荷予定画面にも「CSV保存」ボタンを追加(配車管理記録と同様)。編集中の値を反映するためDOM入力値からBOM付きUTF-8/CRLFでダウンロード。列=出荷日/納期日/受注NO/納入先/規格/色/サイズ/数量/重量/工場備考。デプロイ(2026-07-15): scp dispatchmng.js/dispatchmng.html。 2026-07-15 ellio/dispatchmng: 配車管理記録の「対象月」を、記録がある年月のプルダウン選択に変更 従来の (任意月)から、記録が存在する年月のみの