<?php
class Service_InvtSb extends Common_Service
{
    /**
     * @var null
     */
    public static $_modelClass = null;

    /**
     * @return Table_Bank|null
     */
    public static function getModelInstance()
    {
        if (is_null(self::$_modelClass)) {
            self::$_modelClass = new Table_InvtSb();
        }
        return self::$_modelClass;
    }

    /**
     * @param $row
     * @return mixed
     */
    public static function add($row)
    {
        $model = self::getModelInstance();
        return $model->add($row);
    }


    /**
     * @param $row
     * @param $value
     * @param string $field
     * @return mixed
     */
    public static function update($row, $value, $field = "is_id")
    {
        $model = self::getModelInstance();
        return $model->update($row, $value, $field);
    }

    /**
     * @param $value
     * @param string $field
     * @return mixed
     */
    public static function delete($value, $field = "is_id")
    {
        $model = self::getModelInstance();
        return $model->delete($value, $field);
    }

    /**
     * @param $value
     * @param string $field
     * @param string $colums
     * @return mixed
     */
    public static function getByField($value, $field = 'is_id', $colums = "*")
    {
        $model = self::getModelInstance();
        return $model->getByField($value, $field, $colums);
    }
    /**
     * @todo 锁定核放单
     */
    public static function getByFieldLock($value, $field = 'is_id', $colums = "*"){
        $model = self::getModelInstance();
        return $model->getByField($value, $field, $colums);
    }

    /**
     * @return mixed
     */
    public static function getAll()
    {
        $model = self::getModelInstance();
        return $model->getAll();
    }

    /**
     * @param array $condition
     * @param string $type
     * @param int $pageSize
     * @param int $page
     * @param string $order
     * @return mixed
     */
    public static function getByCondition($condition = array(), $type = '*', $pageSize = 0, $page = 1, $order = "")
    {
        $model = self::getModelInstance();
        return $model->getByCondition($condition, $type, $pageSize, $page, $order);
    }

    /**
     * @param $val
     * @return array
     */
    public static function validator($val)
    {
        $validateArr = $error = array();

        return  Common_Validator::formValidator($validateArr);
    }


    /**
     * @param array $params
     * @return array
     */
    public  function getFields()
    {
        $row = array(
            'E0' => 'is_id',
            'E1' => 'is_status',
            'E2' => 'SeqNo',
            'E3' => 'PassportNo',
            'E4' => 'MasterCuscd',
            'E5' => 'DclTypecd',
            'E6' => 'IoTypecd',
            'E7' => 'BindTypecd',
            'E8' => 'RltTbTypecd',
            'E9' => 'RltNo',
            'E10' => 'AreainOriactNo',
            'E11' => 'AreainEtpsno',
            'E12' => 'AreainEtpsNm',
            'E13' => 'AreainEtpsSccd',
            'E14' => 'VehicleNo',
            'E15' => 'VehicleIcNo',
            'E16' => 'ContainerNo',
            'E17' => 'VehicleWt',
            'E18' => 'VehicleFrameNo',
            'E19' => 'VehicleFrameWt',
            'E20' => 'ContainerType',
            'E21' => 'ContainerWt',
            'E22' => 'TotalGrossWt',
            'E23' => 'TotalNetWt',
            'E24' => 'DclErConc',
            'E25' => 'DclTime',
            'E26' => 'DclEtpsno',
            'E27' => 'DclEtpsNm',
            'E28' => 'DclEtpsSccd',
            'E29' => 'InputCode',
            'E30' => 'InputSccd',
            'E31' => 'InputName',
            'E32' => 'EtpsPreentNo',
            'E33' => 'Rmk',
            'E34' => 'Col1',
            'E35' => 'Col2',
            'E36' => 'Col3',
            'E37' => 'Col4',
            'E38' => 'PassportTypecd',
            'E39' =>'sb_mode',
            'E40' =>'batch_code',

        );
        return $row;
    }
    /**
     * @note 获取核放单绑定类型
     */
    public static function getbindTypecd(){
        return [
            '1'=>'一车多票',
            '2'=>'一票一车',
            '3'=>'一票多车',
        ];
    }
    /**
     * @note 获取核放单类型
     */
    public static function getpassportTypecd(){
        return [
            '1'=>'先入区后报关',
            '2'=>'一线一体化进出区',
            '3'=>'二线进出区',
            '4'=>'非报关进出区',
            '5'=>'卡口登记货物',
            '6'=>'空车进出区',
        ];
    }
    /**
     * @note 关联单据类型
     */
    public static function getrltTbTypecd(){
        return [
            '1'=>'核注清单',
            '2'=>'出入库单',
            '3'=>'提运单',
        ];
    }

    /**
     * Note:综保回执状态
     * User: Yao
     * Date: 2021/6/18
     * Time: 18:20
     * @return array
     */
    public static function getZbStatus(){
        return [
            '1'=>'通过',
            '2'=>'转人工',
            '3'=>'退单',
            'Y'=>'入库成功',
            'Z'=>'入库失败'
        ];
    }
    /**
     * @note 进出标志
     */
    public static function getioTypecd(){
        return [
            'I'=>'进区',
            'E'=>'出区',
        ];
    }
    /**
     * @todo 获取状态
     */
    public static function getStatus(){
        return [
            '-1'=>'待申报',
            '0'=>'已作废',
            '1'=>'已发送',
            '2'=>'已经申报',
            '3'=>'已过卡',
            '4'=>'已退单'
        ];
    }
    /**
     * Note:核放单类型
     * User: Yao
     * Date: 2021/5/17
     * Time: 14:14
     * @return array
     */
    public static function getSbMode(){
        return [
            '-1'=>'普通不含赠品',
            '1'=>'含有赠品普通模式',
            '2'=>'含有赠品大促模式',
        ];
    }






}
