Exemplo n.º 1
0
 /**
  * 创建未付款订单
  * $order参数:一维数组,存放订单基本信息,
  * 包括卖家ID,卖家机构名称,收货地址ID,商品总价,以及订单总金额;
  * $address参数:一维数组,存放订单收货地址信息,
  * 包括订单ID,收货人信息,邮编,手机,固话,省,市,区,详细地址和添加时间
  * $goodsList参数:二维数组,存放订单商品信息,
  * 包括商品ID,商品编号,商品OE号,商品名称,标准名称,品牌,单价,促销价,数量以及商品总价。
  * @param type $result:eg array("order"=>array(),"address"=>array(),"goodsList"=> array())
  */
 public static function create($result)
 {
     //添加订单基本信息
     $model = new PapOrder();
     if ($result['order']['BuyerID']) {
         $result['order']['OrganID'] = $result['order']['BuyerID'];
     } else {
         $result['order']['OrganID'] = Yii::app()->user->getOrganID();
     }
     $model->attributes = $result["order"];
     $model->save();
     $orderId = $model->ID;
     // $model = PapOrder::model()->findByPk(557);
     if ($orderId) {
         $key = $model['Status'];
         //待付款提醒发给修理厂
         if ($key == 1) {
             $params = array('OrganID' => $result['order']['BuyerID'], 'OrganType' => 3, 'HandleID' => $orderId);
             $params['type'] = array('name' => 'DD', 'key' => $key);
             RemindService::sendRemind($params);
         }
         //发送待付款、待发货提醒给经销商
         $params = array('OrganID' => $result['order']['SellerID'], 'OrganType' => 2, 'HandleID' => $orderId);
         $params['type'] = array('name' => 'DD', 'key' => $key);
         RemindService::sendRemind($params);
         //            //生成订单发送邮件
         if (Yii::app()->Params['sendEmail']['send']) {
             self::createSendEmail($result);
         }
         //添加订单收货地址
         unset($model);
         $model = new PapOrderAddress();
         // $model->OrderID = $orderId;
         $result['address']['OrderID'] = $orderId;
         $model->attributes = $result["address"];
         Yii::app()->papdb->createCommand()->insert('pap_order_address', $result['address']);
         // $model->save();
     }
     foreach ($result["goodsList"] as $list) {
         //添加订单商品信息
         $list["OrderID"] = $orderId;
         unset($model);
         if (is_array($list)) {
             //判断商品是否已经添加
             $model = PapOrderGoods::model()->findByAttributes(array("OrderID" => $orderId, "GoodsID" => $list["GoodsID"]));
             //没有添加则添加,有则累加商品(数量、物流费及总价)
             if (empty($model) && !isset($model)) {
                 $model = new PapOrderGoods();
                 $b = self::UgoodsSalesByGoodsID($list["GoodsID"], $list["Quantity"]);
             } else {
                 $list["Quantity"] = $model['Quantity'] + $list["Quantity"];
                 $list["ShipCost"] = $model['ShipCost'] + $list["ShipCost"];
                 $list["GoodsAmount"] = $model['ProPrice'] ? $model['ProPrice'] + $list["GoodsAmount"] : $model['Price'] + $list["GoodsAmount"];
                 // 修改商品表的销售数量
                 $b = self::UgoodsSalesByGoodsID($list["GoodsID"], $list["Quantity"]);
             }
         } else {
             return false;
         }
         $model->attributes = $list;
         $res = Yii::app()->papdb->createCommand()->insert('pap_order_goods', $list);
         //$model->save();
     }
     //插入机构活动记录表
     //        if (!empty($result['order']['PromoID'])) {
     //            $times = self::insert_promotion_times($result);
     //        }
     if (!empty($result['order']['PromoID'])) {
         OrderService::insert_active_times();
     }
     //优惠活动添加记录
     if (in_array($result['order']['Type'], array(1, 2))) {
         $promotion_order = array('OrderID' => $orderId, 'PromoID' => $result['order']['PromoID'], 'Amount' => $result['order']['DecrTotal'], 'CreateTime' => time(), 'SellerID' => $result['order']['SellerID']);
         //插入优惠活动订单表
         self::insert_promotion_order($promotion_order);
     }
     if (isset($result['order']['UseCouponID']) && !empty($result['order']['UseCouponID'])) {
         //使用优惠券更新使用状态
         self::update_coupon_status($result['order']['UseCouponID']);
         $promotion_order = array('OrderID' => $orderId, 'CouponID' => $result['order']['UseCouponID'], 'Amount' => $result['order']['DecrTotal'], 'CreateTime' => time(), 'SellerID' => $result['order']['SellerID']);
         //插入优惠活动订单表
         self::insert_promotion_order($promotion_order);
     }
     return $orderId;
 }