public function updateItemtoAnotherAction()
 {
     //get current schoolid
     $schoolid = $this->getCurrentSchoolId();
     $returnData = array("success" => true, "data" => "");
     $orderid = $this->getInput("orderid", "post");
     $orderItemId = $this->getInput("fromItemId", "post");
     $toMId = $this->getInput("toMId", "post");
     if ($orderid <= 0 || $orderItemId <= 0) {
         $returnData['success'] = false;
         $returnData['data'] = "数据未准备完全";
         print_r(json_encode($returnData));
         die;
     }
     //old Order and order Item infor
     $orderItemInfo = $this->_getMyOrderDS()->getOrderItemById($orderItemId);
     $orderItemInfo = $orderItemInfo[0];
     $originalItemMoney = $orderItemInfo['price'];
     $orderInfo = $this->_getMyOrderDS()->getOrdertail($orderid);
     $orderInfo = $orderInfo[0];
     if ($toMId <= 0) {
         //cancel the order item
         //remove old item to archive table and create new table
         Wind::import('EXT:4tschool.service.myorder.dm.App_OrderItem_Dm');
         $dmitem = new App_OrderItem_Dm();
         $dmitem->setValid(0);
         //not valid anymore
         $this->_getMyOrderDS()->updateOrderItem($orderItemId, $dmitem);
         //need to update old order total money
         $newOrderMoney = $orderInfo['ordermoney'] - $originalItemMoney;
         //如果订单中只有一个商品, 当商品被取消时, 那么这个订单就应该被取消
         $this->_getMyOrderDS()->updateOrderItemStatus($orderItemId, 7);
         //客户取消
         //当订单中没有缺货了的Item的时候,应该更新为其中某个Item的状态
         $orderItems = $this->_getMyOrderDS()->getOrderItems($orderInfo['id']);
         //得到order item里面最小的状态
         if (count($orderItems) > 0) {
             $lowestStatus = $orderInfo['status'];
             foreach ($orderitems as $key => $eachItem) {
                 if ($eachItem['status'] < $lowestStatus) {
                     $lowestStatus = $eachItem['status'];
                 }
             }
         } else {
             $lowestStatus = 7;
         }
         //已取消,当这个订单没有物品时,应取消订单
         //
         //compose order data and update total money
         Wind::import('EXT:4tschool.service.myorder.dm.App_Order_Dm');
         $dmorder = new App_Order_Dm();
         $dmorder->setOrdermoney($newOrderMoney)->setStatus($lowestStatus);
         $this->_getMyOrderDS()->updateOrder($orderid, $dmorder);
         $returnData['success'] = true;
         $returnData['data'] = "取消菜品成功, 返回缺货列表";
         print_r(json_encode($returnData));
         die;
     } else {
         //new order Item infor
         $merchandiseInfo = $this->_getMerchandiseDS()->getMerchandiseById($toMId);
         $shopInfo = $this->_getShopDS()->getByShopId($merchandiseInfo['shopid']);
         $needPackingPrice = $merchandiseInfo['needPackingPrice'];
         if ($needPackingPrice == 1) {
             $packingPrice = $shopInfo['packingprice'] + $shopInfo['deliveryprice'];
         } else {
             $packingPrice = 0.0;
         }
         //check and compare price
         $newItemMoney = ($merchandiseInfo['currentprice'] + $packingPrice) * $orderItemInfo['quatity'];
         //need to update old order total money
         $newOrderMoney = $orderInfo['ordermoney'] + ($newItemMoney - $originalItemMoney);
         //compose order data and update total money
         Wind::import('EXT:4tschool.service.myorder.dm.App_Order_Dm');
         $dmorder = new App_Order_Dm();
         $dmorder->setOrdermoney($newOrderMoney);
         $this->_getMyOrderDS()->updateOrder($orderid, $dmorder);
         //remove old item to archive table and create new table
         Wind::import('EXT:4tschool.service.myorder.dm.App_OrderItem_Dm');
         $dmitem = new App_OrderItem_Dm();
         $dmitem->setValid(0);
         //not valid anymore
         $this->_getMyOrderDS()->updateOrderItem($orderItemId, $dmitem);
         //create new order item
         Wind::import('EXT:4tschool.service.myorder.dm.App_OrderItem_Dm');
         $dmnewitem = new App_OrderItem_Dm();
         $dmnewitem->setOrderId($orderid)->setMerchandiseId($toMId)->setSchoolAreaId($shopInfo['areaid'])->setQuatity($orderItemInfo['quatity'])->setPriceOriginal($merchandiseInfo['price'])->setPriceOfferDescription("优惠了" . ($merchandiseInfo['price'] - $merchandiseInfo['currentprice']) * $value['qty'] . "元")->setPrice($merchandiseInfo['currentprice'] + $packingPrice)->setSaving(($merchandiseInfo['price'] - $merchandiseInfo['currentprice']) * $value['qty'])->setIntegral($newItemMoney * 1.5)->setSequence($orderItemInfo['sequence'])->setPackingprice($packingPrice)->setChangeFromItemId($orderItemId)->setStatus(1);
         //已受理
         $generatedItemId = $this->_getMyOrderDS()->insertOrderItem($dmnewitem);
         $this->_getMyOrderDS()->updateOrderItemStatus($generatedItemId, 1);
         //已下单
         $returnData['success'] = true;
         $returnData['data'] = "替换菜品成功, 返回缺菜列表";
         print_r(json_encode($returnData));
         die;
     }
 }