<?php
class Common_Status
{
    /**
     * @库存批次锁状态
     * @param string $lang
     * @return array
     */
    public static function holdStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '无锁',
                '1' => '盘点锁',
                '2' => '借领用锁',
            ),
            'en_US' => array(
                '0' => '无锁',
                '1' => '盘点锁',
                '2' => '借领用锁',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @param string $lang
     * @return array
     */
    public static function inventoryBatchStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '不可用',
                '1' => '可用',
            ),
            'en_US' => array(
                '0' => 'disabled',
                '1' => 'Enabled',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }


    /**
     * @订单状态
     * @param string $lang
     * @return array
     */
    public static function orderStatus($lang = 'zh_CN')
    {

        $tmp = array(
            'zh_CN' => array(
                '0' => '删除',
                '1' => '草稿',
                '2' => '确认',
                '3' => '异常',
                '4' => '已提交',
                '5' => '已打印',
                '6' => '已下架',
                '7' => '已打包',
            	'14' => '已录单',	
                '8' => '已装袋',
                '9' => '装袋完成',
                '10' => '已加挂',
                '11' => '物流完成',
                '12' => '物流发货',
                '13' => '已签收',
            ),
            'en_US' => array(
                '0' => '删除',
                '1' => '草稿',
                '2' => '确认',
                '3' => '异常',
                '4' => '已提交',
                '5' => '已打印',
                '6' => '已下架',
                '7' => '已打包',
           		'14' => '已录单',
                '8' => '已装袋',
                '9' => '装袋完成',
                '10' => '已加挂',
                '11' => '物流完成',
                '12' => '物流发货',
                '13' => '已签收',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

     /**
     * @客服跟踪状态
     * @param string $lang
     * @return array
     */
    public static function trackingStatus($lang = 'zh_CN')
    {

        $tmp = array(
            'zh_CN' => array(
                '0' => '无异常',
                '1' => '发货异常',
                '2' => '上网异常',
                '3' => '清关异常',
                '4' => '派送异常',
                '5' => '索赔异常',
            ),
            'en_US' => array(
                '0' => '无异常',
                '1' => '发货异常',
                '2' => '上网异常',
                '3' => '清关异常',
                '4' => '派送异常',
                '5' => '索赔异常',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }
    /**
     * @desc 拦截状态
     * @param string $lang
     */
    public static function interceptOrderStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '无',
                '1' => '申请拦截',
                '2' => '拦截处理中',
                '3' => '截单完成',
            ),
            'en_US' => array(
                '0' => '无',
                '1' => '申请拦截',
                '2' => '拦截处理中',
                '3' => '截单完成',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单是否异常
     * @param string $lang
     * @return array
     */
    public static function orderProblemStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '无',
                '1' => '有',
            ),
            'en_US' => array(
                '0' => 'No',
                '1' => 'Yes',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单异常类型
     * @param string $lang
     * @return array
     */
    public static function orderUnderReviewStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '无',
                '1' => '余额不足',
                '2' => '库存不足',
                '3' => '已截单',
            ),
            'en_US' => array(
                '0' => '无',
                '1' => '余额不足',
                '2' => '库存不足',
                '3' => '已截单',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单类型
     * @param string $lang
     * @return array
     */
    public static function orderType($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '普通',
                '1' => '转仓',
                '2' => '退货',
            ),
            'en_US' => array(
                '0' => '普通',
                '1' => '转仓',
                '2' => '退货',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单下架类型
     * @param string $lang
     * @return array
     */
    public static function orderPickType($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '一票一件',
                '1' => '一票一件多个',
                '2' => '一票多件',
            ),
            'en_US' => array(
                '0' => '一票一件',
                '1' => '一票一件多个',
                '2' => '一票多件',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单装袋状态
     * @param string $lang
     * @return array
     */
    public static function bagStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '草稿',
                '1' => '已完成',
                '2' => '已加挂',
                '3' => '物流完成',
                '4' => '已出货',
            ),
            'en_US' => array(
                '0' => '草稿',
                '1' => '已完成',
                '2' => '已加挂',
                '3' => '物流完成',
                '4' => '已出货',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @订单装袋状态
     * @param string $lang
     * @return array
     */
    public static function shipBatchStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '草稿',
                '1' => '已完成',
                '2' => '已审核',
                '3' => '已出货'
            ),
            'en_US' => array(
                '0' => '草稿',
                '1' => '已完成',
                '2' => '已审核',
                '3' => '已出货'
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @配货单 状态
     * @param string $lang
     * @return array
     */
    public static function pickStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '草稿',
                '1' => '已完成',
            ),
            'en_US' => array(
                '0' => '草稿',
                '1' => '已完成',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @配货Item状态
     * @param string $lang
     * @return array
     */
    public static function pickDetailStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '未配货',
                '1' => '已配货',
            ),
            'en_US' => array(
                '0' => '未配货',
                '1' => '已配货',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }


    /**
     * @配货Item状态
     * @param string $lang
     * @return array
     */
    public static function customerStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '未完成注册',
                '1' => '待审核',
                '2' => '正常',
                '3' => '停用',
            ),
            'en_US' => array(
                '0' => '未完成注册',
                '1' => '待审核',
                '2' => '正常',
                '3' => '停用',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @运输方式
     * @param string $lang
     * @return array
     */
    public static function SMStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '不可用',
                '1' => '可用',
            ),
            'en_US' => array(
                '0' => 'disabled',
                '1' => 'Enabled',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @YorN
     * @param string $lang
     * @return array
     */
    public static function YesOrNo($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '否',
                '1' => '是',
            ),
            'en_US' => array(
                '0' => 'No',
                '1' => 'Yes',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @借用领用状态
     * @param string $lang
     * @return array
     */
    public static function ceiveUseStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '草稿',
                '1' => '确认',
                '2' => '完成'
            ),
            'en_US' => array(
                '0' => '草稿',
                '1' => '确认',
                '2' => '完成'
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @借用领用类型
     * @param string $lang
     * @return array
     */
    public static function ceiveUseType($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '借用',
                '1' => '领用',
            ),
            'en_US' => array(
                '0' => '借用',
                '1' => '领用',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @ASN 入库单状态
     * @param string $lang
     * @return array
     */
    public static function receivingStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                '0' => '删除',
                '1' => '草稿',
                '2' => '确认',
                '3' => '待审核',
                '4' => '审核',
                '5' => '在途',
                '6' => '收货中',
                '7' => '收货完成'
            ),
            'en_US' => array(
                '0' => 'delete',
                '1' => 'draft',
                '2' => 'confirm',
                '3' => 'Pending',
                '4' => 'Review',
                '5' => 'onway',
                '6' => 'Receipting',
                '7' => 'Receipt complete'
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @ASN Detail 状态
     * @param string $lang
     * @return array
     */
    public static function receivingDetailStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                0 => '在途',
                1 => '收货中',
                2 => '收货完成',
            ),
            'en_US' => array(
                0 => '在途',
                1 => '收货中',
                2 => '收货完成',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @质检单 状态
     * @param string $lang
     * @return array
     */
    public static function qualityControlStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                0 => '草稿',
                1 => '完成',
                2 => '已上架'
            ),
            'en_US' => array(
                0 => '草稿',
                1 => '完成',
                2 => '已上架'
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @上架单Item状态
     * @param string $lang
     * @return array
     */
    public static function putawayDetailStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                0 => '草稿',
                1 => '已完成',
            ),
            'en_US' => array(
                0 => '草稿',
                1 => '已完成',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
     * @盘点单状态
     * @param string $lang
     * @return array
     */
    public static function takeStockStatus($lang = 'zh_CN')
    {
        $tmp = array(
            'zh_CN' => array(
                1 => '盘点中',
                2 => '确认中',
                3 => '已完成',
            ),
            'en_US' => array(
                1 => '盘点中',
                2 => '确认中',
                3 => '已完成',
            )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }
	/**
     * @todo 借用归还明细表状态
     */
    public static function backBatchStatus($lang = 'zh_CN'){
        $tmp = array(
                'zh_CN' => array(
                        0 => '草稿',
                        1 => '已完成',
                ),
                'en_US' => array(
                        0 => '草稿',
                        1 => '已完成',
                )
        );
        if ($lang == 'auto') {
            $lang = Ec::getLang();
        }
        return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }

    /**
	 * @todo 是否FBA状态
	 */
    public static function isFbaStatus($lang = 'zh_CN'){
    	$tmp = array(
    			'zh_CN' => array(
    					0 => '否',
    					1 => '是',
    			),
    			'en_US' => array(
    					0 => '否',
    					1 => '是',
    			)
    	);
    	if ($lang == 'auto') {
    		$lang = Ec::getLang();
    	}
    	return isset($tmp[$lang]) ? $tmp[$lang] : $tmp;
    }
    /**
     * @param $table
     * @param $field
     */
    public static  function getStatusMap($table,$field){
        $statusMapList = Service_TableStatusMap::getByCondition([
            'table_name'=>$table,
            'field_name'=>$field
        ]);
        $return = [];
        foreach ($statusMapList as $item){
            $return[$item['fields_value']] = $item['fields_note'];
        }
        return $return;
    }
}