| @@ 491-499 (lines=9) @@ | ||
| 488 | break;  | 
                                |
| 489 | }  | 
                                |
| 490 | }  | 
                                |
| 491 |                 if ($allShipped) { | 
                                |
| 492 |                     if ($this->orderStateMachine->can($Order, $OrderStatus)) { | 
                                |
| 493 | $this->orderStateMachine->apply($Order, $OrderStatus);  | 
                                |
| 494 |                     } else { | 
                                |
| 495 | $from = $Order->getOrderStatus()->getName();  | 
                                |
| 496 | $to = $OrderStatus->getName();  | 
                                |
| 497 |                         $result = ['message' => sprintf('%s: %s から %s へのステータス変更はできません', $Shipping->getId(), $from, $to)]; | 
                                |
| 498 | }  | 
                                |
| 499 | }  | 
                                |
| 500 |             } else { | 
                                |
| 501 |                 if ($this->orderStateMachine->can($Order, $OrderStatus)) { | 
                                |
| 502 | $this->orderStateMachine->apply($Order, $OrderStatus);  | 
                                |
| @@ 500-508 (lines=9) @@ | ||
| 497 |                         $result = ['message' => sprintf('%s: %s から %s へのステータス変更はできません', $Shipping->getId(), $from, $to)]; | 
                                |
| 498 | }  | 
                                |
| 499 | }  | 
                                |
| 500 |             } else { | 
                                |
| 501 |                 if ($this->orderStateMachine->can($Order, $OrderStatus)) { | 
                                |
| 502 | $this->orderStateMachine->apply($Order, $OrderStatus);  | 
                                |
| 503 |                 } else { | 
                                |
| 504 | $from = $Order->getOrderStatus()->getName();  | 
                                |
| 505 | $to = $OrderStatus->getName();  | 
                                |
| 506 |                     $result = ['message' => sprintf('%s: %s から %s へのステータス変更はできません', $Shipping->getId(), $from, $to)]; | 
                                |
| 507 | }  | 
                                |
| 508 | }  | 
                                |
| 509 | $this->entityManager->flush($Order);  | 
                                |
| 510 | ||
| 511 | // 会員の場合、購入回数、購入金額などを更新  | 
                                |
| @@ 166-176 (lines=11) @@ | ||
| 163 | }  | 
                                |
| 164 | }  | 
                                |
| 165 | $OrderStatus = $this->entityManager->find(OrderStatus::class, OrderStatus::DELIVERED);  | 
                                |
| 166 |             if ($allShipped) { | 
                                |
| 167 | // XXX 先行の行で OrderStateMachine が OrderStatus::id を変更している場合があるので refresh する  | 
                                |
| 168 | $this->entityManager->refresh($Order);  | 
                                |
| 169 |                 if ($this->orderStateMachine->can($Order, $OrderStatus)) { | 
                                |
| 170 | $this->orderStateMachine->apply($Order, $OrderStatus);  | 
                                |
| 171 |                 } else { | 
                                |
| 172 | $from = $Order->getOrderStatus()->getName();  | 
                                |
| 173 | $to = $OrderStatus->getName();  | 
                                |
| 174 |                     $errors[] = sprintf('%s: %s から %s へステータス変更できませんでした', $Shipping->getId(), $from, $to); | 
                                |
| 175 | }  | 
                                |
| 176 | }  | 
                                |
| 177 | }  | 
                                |
| 178 | }  | 
                                |
| 179 | ||