バージョン選択

フォーラム

メニュー

オンライン状況

39 人のユーザが現在オンラインです。 (25 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 39
もっと...

サイト内検索

質問 > 管理機能 > 受注一覧にお届け日時を表示させると受注日がおかしくなる

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
longview
投稿日時: 2015/3/28 11:07
対応状況: −−−
半人前
登録日: 2013/6/4
居住地:
投稿: 18
受注一覧にお届け日時を表示させると受注日がおかしくなる
-----------------------------------
EC-CUBEバージョン:2.13.3
PHPバージョン:PHP 5.2.17
DBバージョン:MySQL 5.6.14-log
-----------------------------------

以下のスレッドを参考に受注一覧にお届け日時を表示させました。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=13791&forum=11

しかし、受注した直後は正しく受注日が入っているのですが、
受注を更新すると受注日欄に更新日時が入ってしまいます。
データベースを確認しますと、dtb_shippingのcreate_dateが受注日に入っているようです。

dtb_order
create_date 2015-03-27 12:02:05
update_date 2015-03-28 09:38:45

dtb_shipping
create_date 2015-03-28 09:38:45
update_date 2015-03-28 09:38:45

これをきちんとdtb_orderのcreate_dateが入るようにするにはどうしたらよいでしょうか?
ご教授お願いいたします。
そもそもcreate_dateとはレコードが登録された日時だと思っていたのですが
dtb_shippingのcreate_dateはなぜ更新するたびに変わるのか良く分かりません。

※インストールしたてのEC-CUBEでも同じ現象がおきました。
bucchi
投稿日時: 2015/3/28 13:38
対応状況: −−−
一人前
登録日: 2014/4/28
居住地: 関東
投稿: 72
Re: 受注一覧にお届け日時を表示させると受注日がおかしくなる
EC-CUBEバージョン:2.13.3 において

LC_Page_Admin_Order_Edit.php
内で呼び出している
/data/class/helper/SC_Helper_Purchase.phpの
public function registerShipping($order_id, $arrParams, $convert_shipping_date = true)
ですが、
order_idに該当する配送情報(dtb_shipping)を
アップデートするのではなく、削除した後に作りなおしています。
そのため、update_dateも変わってしまっているようです。

なぜこのような仕様になっているのかわかりませんが、
自分にはバグに見えます。

public function registerShipping($order_id, $arrParams, $convert_shipping_date = true)
はフロント購入時に使用しているので
上記メソッドとは別に管理画面からのupdate or insert用のメソッドを作成して、
LC_Page_Admin_Order_Edit.php
で使用すれば解決するかと思います。
longview
投稿日時: 2015/3/28 16:24
対応状況: 保留
半人前
登録日: 2013/6/4
居住地:
投稿: 18
Re: 受注一覧にお届け日時を表示させると受注日がおかしくなる
bucchi様アドバイスありがとうございます。
function registerShippingを確認しましたところ
$objQuery->delete($table, $where, array($order_id));

とあり一度削除されていました。

function registerShippingをコピーし別名にし
削除するのをとめて、更新するようにしましたら
確かにdtb_shipping のcreate_dateの日時が更新されていくことはなくりました。
ありがとうございます。大変助かりました。

一つ難点なのが、既に何百件ある受注のdtb_shipping のcreate_dateを一つずつ直していくのは大変なので
既存の受注分は割り切るしかないのかなと思います。

上記も踏まえて、dtb_orderのcreate_dateを表示できたら助かります。
もしお分かりの方いらっしゃいましたらよろしくお願いいたします。
yuh
投稿日時: 2015/3/29 14:49
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 受注一覧にお届け日時を表示させると受注日がおかしくなる

UPDATE
	dtb_shipping
SET
	create_date = (
	SELECT
		create_date
	FROM
		dtb_order
	WHERE
		order_id = dtb_shipping.order_id
	)

このクエリを実行すれば
dtb_shipping のcreate_dateを一括でdtb_orderのcreate_dateに変更できます。
自己責任でお願いします。
longview
投稿日時: 2015/3/31 9:23
対応状況: −−−
半人前
登録日: 2013/6/4
居住地:
投稿: 18
Re: 受注一覧にお届け日時を表示させると受注日がおかしくなる
yuh様アドバイスありがとうございます。

テスト環境で分からないながらにfunction registerShippingに以下のように記述してみましたが、更新時エラーが出てしまいました。

$objQuery->query(UPDATE dtb_shipping SET create_date = (SELECT create_date FROM dtb_order WHERE order_id = dtb_shipping.order_id))


もう少しSQL勉強してからチャレンジしたいと思います。

FRIENDS
投稿日時: 2015/7/4 0:43
対応状況: −−−
半人前
登録日: 2014/11/3
居住地: 宮崎県
投稿: 22
Re: 受注一覧にお届け日時を表示させると受注日がおかしくなる
longview様

引用:

function registerShippingをコピーし別名にし削除するのをとめて、更新するようにしましたら確かにdtb_shipping のcreate_dateの日時が更新されていくことはなくりました。

こちらどの様な記述をされているのか、良ければ教えて頂けないでしょうか?
私も色々と試してみたのですが、どうしても分かりません
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,686名です
総投稿数は109,932件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.