# tax模块的升级脚本-“表结构”相关的SQL脚本
# 需要可重复执行，因为在自动构造流程中执行

CREATE TABLE IF not EXISTS `edf_area` (
	`id` BIGINT(18) NOT NULL COMMENT 'ID',
	`code` VARCHAR (150)DEFAULT NULL COMMENT '编码',
	`name` VARCHAR (150)DEFAULT NULL COMMENT '名称',
	`ts` TIMESTAMP ,
	  PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='地区表';

CREATE TABLE IF not EXISTS `edf_tax_check` (
	`id` BIGINT(18) NOT NULL COMMENT 'ID',
	`code` VARCHAR (150)DEFAULT NULL COMMENT '编码',
	 regionId BIGINT(18)DEFAULT NULL COMMENT '纳税省市ID',
	 industryId BIGINT(18)DEFAULT NULL COMMENT '行业ID',
	 vatTaxPayer BIGINT(18)DEFAULT NULL COMMENT '纳税类类型（小规模：2000010002L，一般纳税人：2000010001L）',
	 taxProjectId BIGINT(18)DEFAULT NULL COMMENT '税种ID',
	 formula TEXT DEFAULT NULL COMMENT '公式',
	 `message` VARCHAR (200)DEFAULT NULL COMMENT '公式检查提示信息',
	`name` VARCHAR (150)DEFAULT NULL COMMENT '公式名称',
	`ts` TIMESTAMP ,
	 PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='税务申报规则检查表';

DROP TABLE tx_vat_reduction_policy;
CREATE TABLE IF NOT EXISTS `tx_vat_reduction_policy` (
  `id` int(18) NOT NULL COMMENT 'id',
  `code` varchar(40) DEFAULT NULL COMMENT '减免性质代码',
  `projectName` varchar(200) DEFAULT NULL COMMENT '减免项目名称',
  `policyName` text COMMENT '政策名称',
  `benefitClause` text COMMENT '优惠条款',
  `isReduce` bit(1) DEFAULT NULL COMMENT '是否减税（减:1，免:0）',
  `showData` varchar(1000) DEFAULT NULL COMMENT '展示数据',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='减免税代码表';

CREATE TABLE IF NOT EXISTS `tx_vat_report_info` (
  `id` int(11) NOT NULL COMMENT 'id',
  `taypayerType` bigint(18) NOT NULL COMMENT '纳税类类型（小规模：2000010002L，一般纳税人：2000010001L）',
  `name` varchar(50) NOT NULL COMMENT '报表中文名称',
  `rows` int(11) NOT NULL COMMENT '行数',
  `cols` int(11) NOT NULL COMMENT '列数',
  `memo` varchar(50) DEFAULT NULL COMMENT '备注信息',
  `formClassify` varchar(20) DEFAULT NULL COMMENT '表单分类',
  `areaNum` int(4) DEFAULT NULL COMMENT '行政区划代码',
  `isCommon` tinyint(1) DEFAULT '1' COMMENT '是否通用',
  PRIMARY KEY (`id`,`taypayerType`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='增值税申报表-基础信息表';


# 征收项目表
DROP TABLE IF EXISTS `tax_project_preset`;
CREATE TABLE IF NOT EXISTS `tax_project_preset` (
  `id` BIGINT(18) NOT NULL COMMENT 'id',
  `code` VARCHAR(50) NOT NULL COMMENT '征收项目编码',
  `name` VARCHAR(100) NOT NULL COMMENT '征收项目名称',
  `showOrder` BIGINT(20) DEFAULT '0' COMMENT '显示顺序',
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='征收项目表';

# 征收项目详细报表表
DROP TABLE IF EXISTS `tax_project_report_preset`;
CREATE TABLE IF NOT EXISTS `tax_project_report_preset` (
  `id` BIGINT(18) NOT NULL COMMENT 'id',
  `projectId` BIGINT(18) NOT NULL COMMENT '征收项目id',
  `code` VARCHAR(50) NOT NULL COMMENT '征收项目报表编码',
  `name` VARCHAR(100) NOT NULL COMMENT '征收项目报表名称',
  `englishName` VARCHAR(100) NOT NULL COMMENT '征收项目报表英文名称',
  `showOrder` BIGINT(20) DEFAULT '0' COMMENT '显示顺序',
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='征收项目详细报表表';

#税务申报清册
DROP TABLE IF EXISTS `tax_appraisal`;
CREATE TABLE IF NOT EXISTS `tax_appraisal` (
  `orgId` BIGINT(18) NOT NULL COMMENT 'orgId',
  `id` BIGINT(18) NOT NULL COMMENT 'id',
  `year` int not null COMMENT '年',
  `month` int not null COMMENT '月',
  `taxProjectId` BIGINT(18) DEFAULT NULL COMMENT '征收项目ID',
  `taxAmount` DECIMAL(28,12) DEFAULT NULL COMMENT '应纳税额',
  `fromDate` varchar(10) DEFAULT NULL COMMENT '所属期起',
  `toDate` varchar(10) DEFAULT NULL COMMENT '所属期止',
  `voucherDate` varchar(10) DEFAULT NULL COMMENT '申报日期',
  `endDate` varchar(10) DEFAULT NULL COMMENT '申报截止日期',
  `state` BIGINT(18) DEFAULT NULL COMMENT '申报状态',
  `payState` BIGINT(18) DEFAULT NULL COMMENT '扣款状态',
  `cycleId` BIGINT(18) DEFAULT NULL COMMENT '周期ID',
  `accountingStandardsId` bigint(18) DEFAULT NULL COMMENT '会计准则ID',
  `reclassificationId` bigint(18) DEFAULT NULL COMMENT '重分类ID',
  `selfSystemDeclare` bit(1) NOT NULL DEFAULT 0 COMMENT '本系统申报',
  `ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
  PRIMARY KEY (`orgId`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='税务申报清册';

#税务申报清册 报表明细
DROP TABLE IF EXISTS `tax_appraisal_report`;
CREATE TABLE IF NOT EXISTS `tax_appraisal_report` (
  `orgId` BIGINT(18) NOT NULL COMMENT 'orgId',
  `id` BIGINT(18) NOT NULL COMMENT 'id',
  `appraisalId` BIGINT(18) DEFAULT NULL COMMENT '清册ID[tax_appraisal.id]',
  `projectReportId` DECIMAL(28,12) DEFAULT NULL COMMENT '征收项目id',
  `canDel` bit(1) NOT NULL DEFAULT 1 COMMENT '是否可删除',
  `ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
  PRIMARY KEY (`orgId`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='税务申报清册报表明细';
