/**
 * Company Name : 中贸促信息技术有限责任公司
 * Project Name:memberManageSys
 * File Name:RegisterInfo.java
 * Package Name:org.ccpit.business.registerManage
 * Date:2015年11月9日下午5:33:37
 * Copyright (c) 2015, dingwei@ccpit.org All Rights Reserved.
 */

package org.ccpit.business.registerManage;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.*;

import org.ccpit.base.user.User;
import org.ccpit.business.phase.Phase;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.Where;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * ClassName:RegisterInfo <br/>
 * Function: TODO ADD FUNCTION. <br/>
 * Reason:	 TODO ADD REASON. <br/>
 * Date:     2015年11月9日 下午5:33:37 <br/>
 *
 * @author dingwei
 * @see
 * @since JDK 1.6
 */
@Entity
@Table(name = "reg_registerInfo")
@Where(clause = "whetherDelete='false'")
public class RegisterInfo implements Serializable {

    /**
     * serialVersionUID:TODO(用一句话描述这个变量表示什么).
     *
     * @since JDK 1.6
     */
    private static final long serialVersionUID = 1L;

    private long id;
    /**
     * 提交时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date submitTime;
    /**
     * 城市
     */
    private String city;
    /**
     * 姓名
     */
    private String name;
    /**
     * 密码
     */
    private String password;

    /**
     * 性别
     */
    private String gender;
    /**
     * 出生日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    /**
     * 电话
     */
    private String telphone;
    /**
     * 手机
     */
    private String mobileTel;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 工作单位
     */
    private String company;
    /**
     * 发票抬头
     */
    private String invoiceTitle;
    /**
     * 发票类型 :CDCS考试费 | 培训费 | 培训服务费
     */
    private Integer invoiceType;
    /**
     * 是否购买CDCS/CSDG考前培训  1 表示 是 | 2 表示否
     */
    private Integer ifBuyFee;
    /**
     * 省
     */
    private String province;
    /**
     * 市
     */
    private String chengshi;
    /**
     * 区
     */
    private String district;
    /**
     * 地址
     */
    private String address;
    /**
     * MR | MS
     */
    private String title;
    /**
     * 邮箱
     */
    private String email_en;
    /**
     *
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateOfBirth;
    /**
     * 性别  male | female
     */
    private String gender_en;
    /**
     *Family NAME
     */
    private String name_en;
    /**
     * Given NAME
     */
    private String name_en_last;

    /**
     *
     */
    private String company_en;



    /**
     *
     */
    private String address_en;
    /**
     * CHINA
     */
    private String country;
    /**
     * DC号
     */
    private String dcNumber;
    /**
     * 缴费时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date payTime;
    /**
     * 电话
     */
    private String phone;
    /**
     * 城市（英）
     */
    private String city_en;
    /**
     * 考试科目 ： 单证信用专家(CDCS)首次报名 |单证信用专家(CDCS)补考报名 | 保函与备用证专家(CSDG)首次报名 | 保函与备用证专家(CSDG)补考报名 | 国际贸易金融专家(CITF)首次报名 |国际贸易金融专家(CITF)补考报名
     */
    private Integer subject;
    /**
     * 考试科目 ： 单证信用专家(CDCS) 延考| 保函与备用证专家(CSDG) 延考| 国际贸易金融专家(CITF) 延考|单证信用专家(CDCS) 恢复| 保函与备用证专家(CSDG) 恢复| 国际贸易金融专家(CITF)恢复
     */

    private Integer subject2;


    /**
     * 注册类型   true:首次报名或补考    false：延考或恢复
     */
    @Type(type="no_yes")
    private boolean regType;

    /**
     * 报名状态 ： 报名成功 | 缴费成功 | 书籍发放 | DC号 | 准考证打印 | 发票寄送 | 证书寄送
     */
    private Integer registerStatus;
    /**
     * 报名状态 ： 报名成功，缴费成功，延考受理，发票寄送
     */
    private Integer registerStatus2;
    /**
     * 排序号
     */
    private Integer sort;
    /**
     * 是否删除
     */
    private boolean whetherDelete;
    /**
     * 创建人
     */
    private User creator;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    /**
     * 修改人
     */
    private User modifyBy;
    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date modifyTime;

    /**
     * 注册对应的期数
     */
    private Phase phase;

    /**
     * 备注 填写给考生的备注
     */
    private String standby1;
    /**
     * 备用字段2
     */
    private String standby2;
    /**
     * 发票  增值税发票类型  1 表示 增值税普通发票 | 2 表示增值税专用发票
     */
    private Integer appreciationTaxType;
    /**
     * 发票 纳税人识别号
     */
    private String taxpayerNum;
    /**
     * 发票 公司地址
     */
    private String addressName;
    /**
     * 发票 公司电话
     */
    private String telephone;
    /**
     * 发票 开户行
     */
    private String bankAddress;
    /**
     * 银行账号
     */
    private String bankAccount;
    /**
     * 证书照1
     */
    private String img1;
    /**
     * 证书照2
     */
    private String img2;
    /**
     * 证书照3
     */
    private String img3;
    /**
     * 发票开具时间
     */
    private Integer taxIssue;
    /**
     * 发票内容
     */
    private String invoiceInfo;
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Date getSubmitTime() {
        return submitTime;
    }

    public void setSubmitTime(Date submitTime) {
        this.submitTime = submitTime;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getTelphone() {
        return telphone;
    }

    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }

    public String getMobileTel() {
        return mobileTel;
    }

    public void setMobileTel(String mobileTel) {
        this.mobileTel = mobileTel;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    public void setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
    }

    public Integer getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(Integer invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOrBirth) {
        this.dateOfBirth = dateOrBirth;
    }

    public String getGender_en() {
        return gender_en;
    }

    public void setGender_en(String gender_en) {
        this.gender_en = gender_en;
    }

    public String getName_en() {
        return name_en;
    }

    public void setName_en(String name_en) {
        this.name_en = name_en;
    }

    public String getCompany_en() {
        return company_en;
    }

    public void setCompany_en(String company_en) {
        this.company_en = company_en;
    }

    public String getAddress_en() {
        return address_en;
    }

    public void setAddress_en(String address_en) {
        this.address_en = address_en;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCity_en() {
        return city_en;
    }

    public void setCity_en(String city_en) {
        this.city_en = city_en;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public boolean isWhetherDelete() {
        return whetherDelete;
    }

    public void setWhetherDelete(boolean whetherDelete) {
        this.whetherDelete = whetherDelete;
    }

    @ManyToOne
    public User getCreator() {
        return creator;
    }

    public void setCreator(User creator) {
        this.creator = creator;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @ManyToOne
    public User getModifyBy() {
        return modifyBy;
    }

    public void setModifyBy(User modifyBy) {
        this.modifyBy = modifyBy;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public String getStandby1() {
        return standby1;
    }

    public void setStandby1(String standby1) {
        this.standby1 = standby1;
    }

    public String getStandby2() {
        return standby2;
    }

    public void setStandby2(String standby2) {
        this.standby2 = standby2;
    }

    public Integer getSubject() {
        return subject;
    }

    public void setSubject(Integer subject) {
        this.subject = subject;
    }

    public Integer getRegisterStatus() {
        return registerStatus;
    }

    public void setRegisterStatus(Integer registerStatus) {
        this.registerStatus = registerStatus;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDcNumber() {
        return dcNumber;
    }

    public void setDcNumber(String dcNumber) {
        this.dcNumber = dcNumber;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Integer getSubject2() {
        return subject2;
    }

    public void setSubject2(Integer subject2) {
        this.subject2 = subject2;
    }

    public boolean isRegType() {
        return regType;
    }

    public void setRegType(boolean regType) {
        this.regType = regType;
    }
    @ManyToOne
    public Phase getPhase() {
        return phase;
    }

    public void setPhase(Phase phase) {
        this.phase = phase;
    }

    public String getEmail_en() {
        return email_en;
    }

    public void setEmail_en(String email_en) {
        this.email_en = email_en;
    }

    public Integer getRegisterStatus2() {
        return registerStatus2;
    }

    public void setRegisterStatus2(Integer registerStatus2) {
        this.registerStatus2 = registerStatus2;
    }

	public Integer getAppreciationTaxType() {
		return appreciationTaxType;
	}

	public void setAppreciationTaxType(Integer appreciationTaxType) {
		this.appreciationTaxType = appreciationTaxType;
	}

	public String getTaxpayerNum() {
		return taxpayerNum;
	}

	public void setTaxpayerNum(String taxpayerNum) {
		this.taxpayerNum = taxpayerNum;
	}

	public String getAddressName() {
		return addressName;
	}

	public void setAddressName(String addressName) {
		this.addressName = addressName;
	}

	public String getBankAccount() {
		return bankAccount;
	}

	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public String getBankAddress() {
		return bankAddress;
	}

	public void setBankAddress(String bankAddress) {
		this.bankAddress = bankAddress;
	}

	public String getImg1() {
		return img1;
	}

	public void setImg1(String img1) {
		this.img1 = img1;
	}

	public String getImg2() {
		return img2;
	}

	public void setImg2(String img2) {
		this.img2 = img2;
	}

	public String getImg3() {
		return img3;
	}

	public void setImg3(String img3) {
		this.img3 = img3;
	}

    public Integer getTaxIssue() {
        return taxIssue;
    }

    public void setTaxIssue(Integer taxIssue) {
        this.taxIssue = taxIssue;
    }

    public String getName_en_last() {
        return name_en_last;
    }

    public void setName_en_last(String name_en_last) {
        this.name_en_last = name_en_last;
    }

    public String getInvoiceInfo() {
        return invoiceInfo;
    }

    public void setInvoiceInfo(String invoiceInfo) {
        this.invoiceInfo = invoiceInfo;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getChengshi() {
        return chengshi;
    }

    public void setChengshi(String chengshi) {
        this.chengshi = chengshi;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public Integer getIfBuyFee() {
        return ifBuyFee;
    }

    public void setIfBuyFee(Integer ifBuyFee) {
        this.ifBuyFee = ifBuyFee;
    }
}

