質問 > 管理機能 > 配送CSVをダウンロード後に受注ステータス変更したい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2018/1/10 16:07
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
配送CSVをダウンロード後に受注ステータス変更したい 受注マスターにて配送CSVをダウンロード後に受注ステータスを変更するような処理を実装することは可能でしょうか?
OrderController の exportShipping() 内に実装することで、受注ステータスを変更すること自体はできました。 しかし、配送CSVをダウンロード後というタイミングで処理を実行する方法がわかりません。。 src/Eccube/Controller/Admin/Order/OrderController.php
src/Eccube/Service/CsvExportService.php
|
tsuji |
投稿日時: 2018/1/11 11:14
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい h_tanaka 様
試していないのでアイディアだけお伝えします。 setCallbackの後で、 受注データ検索用のクエリビルダを 取得・実行するとおなじ受注IDを取得することはできますので それをもとに更新処理を行うのはどうでしょうか? もしくは、あまり使いたくはないですが、 setCallback内でセッションに該当受注IDを設定し、setCallback実行後に 取り出して更新をかけるという方法もあるかと思います。
|
h_tanaka |
投稿日時: 2018/1/11 11:22
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい tsuji 様
ご返信ありがとうございます。 setCallbackの後というのは上記コードの ★3 の箇所でしょうか? ここに処理を追加するとダウンロード処理とほぼ同時のタイミングで実行されるため、10件の受注データのステータスを「新規受付」から「送信済み」に変更する処理を入れて試してみたところ、1件目が「新規受付」となり2件目以降が「送信済み」となります。 これを10件とも「新規受付」のままダウンロードし、ダウンロード後に10件を「送信済み」に変更したいと考えております。 このようなことは可能でしょうか?
|
tsuji |
投稿日時: 2018/1/11 11:44
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい h_tanaka 様
ダウンロード後ということであれば、 $response->send();になるかと思います。 検索結果に基づいてダウンロードを行っていると思いますので、 新たに$response->send();後に検索を行って 対象を取得するということになるかと思っています。
|
h_tanaka |
投稿日時: 2018/1/18 10:47
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい tsuji 様
上記 ★3 の箇所に次のコードを挿入してみたのですが、次のエラーになってしまいます。。 ■エラー [2018-01-18 10:16:52,243055] admin.ERROR [f448b3c3] [5892b798] [2] [LogListener:onKernelException:115] - Doctrine\ORM\ORMInvalidArgumentException: A new entity was found through the relationship 'Eccube\Entity\Shipping#Order' that was not configured to cascade persist operations for entity: Eccube\Entity\Order@000000007463c263000000007d60586b. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'Eccube\Entity\Order#__toString()' to get a clue. (uncaught exception) at /usr/home/fa2002002/html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMInvalidArgumentException.php line 91 {"exception":"[object] (Doctrine\\ORM\\ORMInvalidArgumentException(code: 0): A new entity was found through the relationship 'Eccube\\Entity\\Shipping#Order' that was not configured to cascade persist operations for entity: Eccube\\Entity\\Order@000000007463c263000000007d60586b. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={\"persist\"}). If you cannot find out which entity causes the problem implement 'Eccube\\Entity\\Order#__toString()' to get a clue. at /usr/home/fa2002002/html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMInvalidArgumentException.php:91)"} [GET, /ecadmin/order/export/shipping?, 210.131.156.102, https://livingut.shop/ecadmin/order, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36] ■挿入したコード
|
tsuji |
投稿日時: 2018/1/25 13:41
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい h_tanaka 様
↓の★4に入れてみてはどうでしょうか? ここであれば、CSV用のデータ作成後になるので処理を入れる箇所としては正しいかと思っています。
|
h_tanaka |
投稿日時: 2018/1/25 17:30
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: 配送CSVをダウンロード後に受注ステータス変更したい tsuji 様
ご指定の場所に処理を入れてみたのですが、上記と同じORMInvalidArgumentExceptionが発生してしまいます。 発生箇所は、次の処理のタイミングのようです。 $orderRepository->changeStatus($val['id'], $Status);
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |