<?php

class Service_DesMessageHead 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_DesMessageHead();
        }
        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 = "dmh_id") {
        $model = self::getModelInstance();
        return $model->update($row, $value, $field);
    }

    /**
     * @param $value
     * @param string $field
     * @return mixed
     */
    public static function delete($value, $field = "dmh_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 = 'dmh_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);
    }

    public static  function getStatus(){
        return [
            '0'=>'草稿',
            '1'=>'已申报'
        ];
    }
    /**
     * @param array $params
     * @return array
     */
    public function getFields() {
        $row = array(
            'E0' => 'dmh_id',
            'E1' => 'dmh_no',
            'E2' => 'seq_no',
            'E3' => 'ieflag',
            'E4' => 'type',
            'E5' => 'agent_code',
            'E6' => 'agent_name',
            'E7' => 'appr_no',
            'E8' => 'bill_no',
            'E9' => 'contr_no',
            'E10' => 'custom_master',
            'E11' => 'cut_mode',
            'E12' => 'distinate_port',
            'E13' => 'fee_curr',
            'E14' => 'fee_mark',
            'E15' => 'fee_rate',
            'E16' => 'gross_wet',
            'E17' => 'iedate',
            'E18' => 'ieport',
            'E19' => 'insur_curr',
            'E20' => 'insur_mark',
            'E21' => 'insur_rate',
            'E22' => 'license_no',
            'E23' => 'manual_no',
            'E24' => 'net_wt',
            'E25' => 'note_s',
            'E26' => 'other_curr',
            'E27' => 'other_mark',
            'E28' => 'other_rate',
            'E29' => 'owner_code',
            'E30' => 'owner_name',
            'E31' => 'pack_no',
            'E32' => 'trade_code',
            'E33' => 'trade_country',
            'E34' => 'trade_mode',
            'E35' => 'trade_name',
            'E36' => 'traf_mode',
            'E37' => 'traf_name',
            'E38' => 'trans_mode',
            'E39' => 'wrap_type',
            'E40' => 'entry_id',
            'E41' => 'pre_entry_id',
            'E42' => 'edi_id',
            'E43' => 'risk',
            'E44' => 'cop_name',
            'E45' => 'cop_code',
            'E46' => 'entry_type',
            'E47' => 'pdate',
            'E48' => 'typist_no',
            'E49' => 'inputer_name',
            'E50' => 'partener_id',
            'E51' => 'tgd_no',
            'E52' => 'data_source',
            'E53' => 'decl_trn_rel',
            'E54' => 'chk_surety',
            'E55' => 'bill_type',
            'E56' => 'cop_code_scc',
            'E57' => 'owner_code_scc',
            'E58' => 'agent_code_scc',
            'E59' => 'trade_co_scc',
            'E60' => 'promise_itmes',
            'E61' => 'trade_area_code',
            'E62' => 'check_flow',
            'E63' => 'tax_aamin_mark',
            'E64' => 'mark_no',
            'E65' => 'desp_port_code',
            'E66' => 'enty_port_code',
            'E67' => 'goods_place',
            'E68' => 'blno',
            'E69' => 'insp_org_code',
            'E70' => 'spec_decl_flag',
            'E71' => 'purp_org_code',
            'E72' => 'desp_date',
            'E73' => 'cmpl_dschrg_dt',
            'E74' => 'correlation_reason_flag',
            'E75' => 'vsa_org_code',
            'E76' => 'orig_box_flag',
            'E77' => 'declare_name',
            'E78' => 'no_other_pack',
            'E79' => 'org_code',
            'E80' => 'overseas_consignor_code',
            'E81' => 'overseas_consignor_cname',
            'E82' => 'overseas_consignor_ename',
            'E83' => 'overseas_consignor_addr',
            'E84' => 'overseas_consignee_code',
            'E85' => 'overseas_consignee_ename',
            'E86' => 'domestic_consignee_ename',
            'E87' => 'correlation_no',
            'E88' => 'edi_remark2',
            'E89' => 'edi_remark',
            'E90' => 'trade_ciq_code',
            'E91' => 'owner_ciq_code',
            'E92' => 'decl_ciq_code',
            'E93' => 'add_time',
            'E94'=>'des_status',
        );
        return $row;
    }

}