やってみました。
お届け日同様、実在日のチェックはしていません。
(1) 受注一覧の発送日欄
時刻まではいらないので、日付だけにしました。
data/Smarty/templates/admin/order/index.tpl
<!--{* changed
<td class="center"><!--{$arrResults[cnt].commit_date|sfDispDBDate|default:"未発送"}--></td>
*}-->
<td class="center"><!--{$arrResults[cnt].commit_date|sfDispDBDate:false|default:"未発送"}--></td>
<!--{* changed *}-->
(2) 受注登録編集
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
(a) 日付一覧取得
$objDate = new SC_Date_Ex(RELEASE_YEAR);
$this->arrYearShippingDate = $objDate->getYear('', date('Y'), '');
$this->arrMonthShippingDate = $objDate->getMonth(true);
$this->arrDayShippingDate = $objDate->getDay(true);
// added
$this->arrYearCommitDate = $objDate->getYear('', date('Y'), '');
$this->arrMonthCommitDate = $objDate->getMonth(true);
$this->arrDayCommitDate = $objDate->getDay(true);
$this->arrYearPaymentDate = $objDate->getYear('', date('Y'), '');
$this->arrMonthPaymentDate = $objDate->getMonth(true);
$this->arrDayPaymentDate = $objDate->getDay(true);
// added
(b) パラメタ設定
$objFormParam->addParam('受注日', 'create_date');
// changed
$objFormParam->addParam('発送日(年)', 'commit_date_year', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('発送日(月)', 'commit_date_month', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('発送日(日)', 'commit_date_day', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('発送日', 'commit_date', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
// $objFormParam->addParam('発送日', 'commit_date');
// changed
$objFormParam->addParam('備考', 'message');
// changed
$objFormParam->addParam('入金日(年)', 'payment_date_year', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('入金日(月)', 'payment_date_month', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('入金日(日)', 'payment_date_day', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('入金日', 'payment_date', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
// $objFormParam->addParam('入金日', 'payment_date');
// changed
$objFormParam->addParam('端末種別', 'device_type_id');
(c) 日付分解
$arrOrder = $objPurchase->getOrder($order_id);
$objFormParam->setParam($arrOrder);
// added
if (!SC_Utils_Ex::isBlank($objFormParam->getValue('commit_date'))) {
$ts = strtotime($objFormParam->getValue('commit_date'));
$objFormParam->setValue('commit_date_year', date('Y', $ts));
$objFormParam->setValue('commit_date_month', date('n', $ts));
$objFormParam->setValue('commit_date_day', date('j', $ts));
}
if (!SC_Utils_Ex::isBlank($objFormParam->getValue('payment_date'))) {
$ts = strtotime($objFormParam->getValue('payment_date'));
$objFormParam->setValue('payment_date_year', date('Y', $ts));
$objFormParam->setValue('payment_date_month', date('n', $ts));
$objFormParam->setValue('payment_date_day', date('j', $ts));
}
// added
(d) 日付組立
$where = 'order_id = ?';
$objQuery->begin();
// added
$arrValues['commit_date']
= SC_Utils_Ex::sfGetTimestamp($arrValues['commit_date_year'],
$arrValues['commit_date_month'],
$arrValues['commit_date_day']);
$arrValues['payment_date']
= SC_Utils_Ex::sfGetTimestamp($arrValues['payment_date_year'],
$arrValues['payment_date_month'],
$arrValues['payment_date_day']);
// added
// 支払い方法が変更されたら、支払い方法名称も更新
(3) テンプレート
data/Smarty/templates/admin/order/edit.tpl
<tr>
<th>入金日</th>
<!--{* changed
<td><!--{$arrForm.payment_date.value|sfDispDBDate|default:"未入金"|h}--></td>
*}-->
<!--{if $arrForm.payment_date.value == ""}-->
<td>未入金</td>
<!--{else}-->
<td>
<!--{assign var=key1 value="payment_date_year"}-->
<!--{assign var=key2 value="payment_date_month"}-->
<!--{assign var=key3 value="payment_date_day"}-->
<span class="attention"><!--{$arrErr[$key1]}--></span>
<span class="attention"><!--{$arrErr[$key2]}--></span>
<span class="attention"><!--{$arrErr[$key3]}--></span>
<select name="<!--{$key1}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->">
<!--{html_options options=$arrYearPaymentDate selected=$arrForm[$key1].value}-->
</select>年
<select name="<!--{$key2}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->">
<!--{html_options options=$arrMonthPaymentDate selected=$arrForm[$key2].value}-->
</select>月
<select name="<!--{$key3}-->" style="<!--{$arrErr[$key3]|sfGetErrorColor}-->">
<!--{html_options options=$arrDayPaymentDate selected=$arrForm[$key3].value}-->
</select>日
</td>
<!--{/if}-->
<!--{* changed *}-->
</tr>
<tr>
<th>発送日</th>
<!--{* changed
<td><!--{$arrForm.commit_date.value|sfDispDBDate|default:"未発送"|h}--></td>
*}-->
<!--{if $arrForm.commit_date.value == ""}-->
<td>未発送</td>
<!--{else}-->
<td>
<!--{assign var=key1 value="commit_date_year"}-->
<!--{assign var=key2 value="commit_date_month"}-->
<!--{assign var=key3 value="commit_date_day"}-->
<span class="attention"><!--{$arrErr[$key1]}--></span>
<span class="attention"><!--{$arrErr[$key2]}--></span>
<span class="attention"><!--{$arrErr[$key3]}--></span>
<select name="<!--{$key1}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->">
<!--{html_options options=$arrYearCommitDate selected=$arrForm[$key1].value}-->
</select>年
<select name="<!--{$key2}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->">
<!--{html_options options=$arrMonthCommitDate selected=$arrForm[$key2].value}-->
</select>月
<select name="<!--{$key3}-->" style="<!--{$arrErr[$key3]|sfGetErrorColor}-->">
<!--{html_options options=$arrDayCommitDate selected=$arrForm[$key3].value}-->
</select>日
</td>
<!--{/if}-->
<!--{* changed *}-->
</tr>