<?php
namespace store\Admin;

use Dever;

class Order extends Core
{
	# 获取概览数据
	public function getData()
	{
		# 待处理订单
		$where['status'] = 3;
		$where['source_type'] = 2;
		$where['source_id'] = $this->id;

		# 待处理订单
		$data['order_num'] = Dever::db('shop/buy_order')->getOrderNum($where);

		# 超时待处理订单:72小时
		$where['end_o'] = time() - 72*3600;
		$data['cs_order_num'] = Dever::db('shop/buy_order')->getOrderNum($where);

        # 超时待处理订单:72小时
        $where = array();
        $where['status'] = 4;
        $where['type'] = 2;
        $where['type_id'] = $this->id;
        $where['end_o'] = time() - 72*3600;

        $data['sh_order_num'] = Dever::db('shop/buy_order')->getOrderNum($where);

		return $data;
	}

	# 订单列表
    public function getList()
    {
        $data = Dever::load('mshop/lib/buy')->set(12, 1)->getList($this->id);

        $html = '';
        if ($data && $data['order']) {
        	foreach ($data['order'] as $k => $v) {
        		if ($v['ps_info']) {
        			$ps_date = $v['ps_info']['cdate'];
        		} else {
        			$ps_date = '-';
        		}
        		$view = Dever::url('order_view?type=3&order_id=' . $v['id'] . '&cash=2', 'store');

        		$send = Dever::url('order_send?id=' . $v['id'] . '&type=2', 'store');

        		$button = '<a href="'.$view.'"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">查看详情</button></a>';

        		if ($v['status'] < 5) {

                    $print = Dever::url('admin/order.print?id=' . $v['id'] . '&type=2', 'store');

        			$button .= '&nbsp;&nbsp;<a href="'.$print.'" id="print_'.$v['id'].'" target="_blank"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">打印备货单</button></a>';
        		}
        		
        		if ($v['status'] == 3) {
        			$button .= '&nbsp;&nbsp;<a href="javascript:;" id="send_'.$v['id'].'" onclick="fastEdit($(this), \''.$send.'\', \'配送发货\', \'\', 1)"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">配送发货</button></a>';
        		}

                if ($v['status_name'] == '待确认收货') {
                    $v['status_name'] = '已发货';
                }

                if ($v['refund_status'] == 2 && $v['status'] != 8) {
                    $v['status_name'] .= '[缺货报损中]';
                }

        		$html .= '<tr><td><input type="checkbox" name="mul_where_id[]" class="checkbox-checkall-list" lay-ignore value="'.$v['id'].'"/></td><td>'.$v['order_num'].'</td><td>'.$v['operdate'].'</td><td>'.$v['type_info']['name'].'</td><td>'.$ps_date.'</td><td>'.$v['num'].'</td><td>'.$v['status_name'].'</td><td>'.$button.'</td></tr>';
        	}
        }
        return $html;
    }

    # 获取列表页搜索信息
    public function getSearch()
    {
    	$config = array
        (
        	array('value' => '0', 'name' => '全部'),
            array('value' => 3, 'name' => '待发货'),
            array('value' => 4, 'name' => '已发货'),
            array('value' => '5,6', 'name' => '已到货'),
            array('value' => '7,8,11', 'name' => '已取消'),
            array('value' => 'refund', 'name' => '缺货与报损'),
        );

        $status = Dever::input('status');

        $html = '';
        foreach ($config as $k => $v) {
        	$selected = '';
    		if ((!$status && $k == 0) || $status == $v['value']) {
    			$selected = 'selected=""';
    		} 

    		$html .= '<option value="'.$v['value'].'" '.$selected.'>'.$v['name'].'</option>';
    	}

        return $html;
    }

    # 获取列表页搜索信息
    public function getService()
    {
    	$service = Dever::db('shop/service')->select();
        $html = '';
        foreach ($service as $k => $v) {
        	$selected = '';
    		if ($k == 0) {
    			$selected = 'selected=""';
    		} 

    		$html .= '<option value="'.$v['id'].'" '.$selected.'>'.$v['name'].'</option>';
    	}

        return $html;
    }

    # 获取基本信息
    public function getConfig()
    {
    	$data['search'] = Dever::url('order', 'store');

    	# 发货
    	$data['send'] = Dever::url('admin/order.send', 'store');

        # 退款
        $data['tui'] = Dever::url('lib/buy.refund_apply_info_one_commit?json=1', 'mshop');
    	return $data;
    }

    # 发货
    public function send_api()
    {
    	$input = Dever::input();

    	$order_id = Dever::input('update_where_id');

    	$where['order_id'] = $order_id;
    	$info = Dever::db('shop/buy_order_ps')->find($where);

    	$update = $where;
    	$update['service_id'] = $input['update_service_id'];
    	$update['order_num'] = $input['update_order_num'];
        $update['num'] = $input['update_num'];
    	$update['phy'] = $input['update_phy'];
    	$update['dby'] = $input['update_dby'];
    	$update['zl'] = $input['update_zl'];
    	$update['tj'] = $input['update_tj'];
    	$update['price'] = $input['update_price'];
    	$update['cdate'] = $input['update_cdate'];
    	if ($info) {
    		$update['where_id'] = $info['id'];
    		Dever::db('shop/buy_order_ps')->update($update);
    	} else {
    		Dever::db('shop/buy_order_ps')->insert($update);
    	}
    	Dever::db('shop/buy_order')->update(array('status' => 4, 'where_id' => $update['order_id']));

    	return 'reload';
    }

    public function print_api()
    {
        return Dever::load('mshop/lib/buy')->printer($this->user);
    }

    # 获取报损信息
    public function refund()
    {
        $data = Dever::load('mshop/lib/buy')->refund_apply_info_one_info();

        if (isset($data['num'])) {
            $data['tui_price_info'] = 'x' . $data['num'];
        } else {
            $data['tui_price_info'] = '0';
        }
        return $data;
    }
}