<?php

namespace Factory\Lib;

use Dever;

class Order
{
	# 单个商品下单
	public function pay($shop_order_id, $shop, $factory_id, $price, $num, $goods_id, $sku_id)
	{
		# 先更新销量
		$state = $this->updateSell($factory_id, $goods_id, $sku_id, $num);

		if (!$state) {
			return false;
		}

		$where['order_num'] = $shop_order_id;
		$where['shop_id'] = $shop['id'];
		$where['type'] = 2;
		$where['type_id'] = $factory_id;
		$info = Dever::db('shop/buy_order')->find($where);

		if (!$info) {
			$data = $where;
			$data['name'] = $shop_order_id;
			$data['mobile'] = $shop['mobile'];
			$data['area'] = $shop['area'];
			$data['province'] = $shop['province'];
			$data['city'] = $shop['city'];
			$data['county'] = $shop['county'];
			$data['town'] = $shop['town'];
			$data['operdate'] = time();
			$data['status'] = 3;
			$data['price'] = $price;
			$data['num'] = $num;
			$id = $state = Dever::db('shop/buy_order')->insert($where);
		} else {
			$id = $info['id'];

			$data['where_id'] = $id;
			$data['price'] = $info['price'] + $price;
			$data['num'] = $info['num'] + $num;
			$state = Dever::db('shop/buy_order')->update($data);
		}

		if ($state && $id > 0) {
			$goods_info = Dever::db('shop/buy_order_goods')->find(array('order_id' => $id));
			if (!$goods_info) {
				$goods['order_id'] = $id;
				$goods['shop_id'] = $shop['id'];
				$goods['goods_id'] = $goods_id;
				$goods['sku_id'] = $sku_id;
				$goods['price'] = $price;
				$goods['num'] = $num;
				Dever::db('shop/buy_order_goods')->insert($goods);
			}

			return $id;
		}

		return false;
	}

	# 增加销量
    public function updateSell($factory_id, $goods_id, $sku_id, $num)
    {
        $up = array();
        $up['where_factory_id'] = $factory_id;
        $up['where_goods_id'] = $goods_id;
        $up['sell_num'] = $num;
        $state = Dever::db('factory/goods')->incSell($up);

        if ($state) {
        	if ($sku_id > 0) {
	            
	        } else {
	            $sku_id = -1;
	        }
	        $upSku = $up;
	        $upSku['where_sku_id'] = $sku_id;
	        $state = Dever::db('factory/goods_sku')->incSell($upSku);
        }

        return $state;
    }
}