
# This is a fix for InnoDB in MySQL >= 4.1.x
# It "suspends judgement" for fkey relationships until are tables are set.
SET FOREIGN_KEY_CHECKS = 0;

#-----------------------------------------------------------------------------
#-- sf_guard_user_profile
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `sf_guard_user_profile`;


CREATE TABLE `sf_guard_user_profile`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`user_id` INTEGER  NOT NULL,
	`nombrecompleto` VARCHAR(255),
	`email` VARCHAR(255),
	`solo_consulta` TINYINT default 0,
	PRIMARY KEY (`id`),
	INDEX `sf_guard_user_profile_FI_1` (`user_id`),
	CONSTRAINT `sf_guard_user_profile_FK_1`
		FOREIGN KEY (`user_id`)
		REFERENCES `sf_guard_user` (`id`)
		ON DELETE CASCADE
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- control_stock
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `control_stock`;


CREATE TABLE `control_stock`
(
	`id` INTEGER  NOT NULL,
	`tipo_ayuda_id` INTEGER  NOT NULL,
	`orden_compra_id` INTEGER  NOT NULL,
	`total` BIGINT,
	`disponible` BIGINT,
	`comprometido` BIGINT,
	`entregado` BIGINT,
	PRIMARY KEY (`id`),
	INDEX `control_stock_FI_1` (`tipo_ayuda_id`),
	CONSTRAINT `control_stock_FK_1`
		FOREIGN KEY (`tipo_ayuda_id`)
		REFERENCES `tipo_ayuda` (`id`),
	INDEX `control_stock_FI_2` (`orden_compra_id`),
	CONSTRAINT `control_stock_FK_2`
		FOREIGN KEY (`orden_compra_id`)
		REFERENCES `orden_compra` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- encuesta
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `encuesta`;


CREATE TABLE `encuesta`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`id_grupo_censo` INTEGER,
	`numero` INTEGER,
	`genera_novedad` DATETIME,
	`fecha_ultima_consulta` DATETIME,
	`titular_id` INTEGER,
	`nrofolio` INTEGER,
	`fecha` DATETIME,
	`usuario_id` INTEGER,
	`usuario_ts` INTEGER,
	`observacion_gral` TEXT,
	`motivo_id` INTEGER,
	`procedencia_id` INTEGER,
	`marca_id` INTEGER,
	`modelo_id` INTEGER,
	`patente` VARCHAR(10),
	`km_inicial` INTEGER,
	PRIMARY KEY (`id`),
	UNIQUE KEY `encuesta_U_1` (`nrofolio`),
	INDEX `encuesta_FI_1` (`titular_id`),
	CONSTRAINT `encuesta_FK_1`
		FOREIGN KEY (`titular_id`)
		REFERENCES `persona` (`id`),
	INDEX `encuesta_FI_2` (`usuario_id`),
	CONSTRAINT `encuesta_FK_2`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `encuesta_FI_3` (`usuario_ts`),
	CONSTRAINT `encuesta_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `encuesta_FI_4` (`motivo_id`),
	CONSTRAINT `encuesta_FK_4`
		FOREIGN KEY (`motivo_id`)
		REFERENCES `motivos` (`id`),
	INDEX `encuesta_FI_5` (`procedencia_id`),
	CONSTRAINT `encuesta_FK_5`
		FOREIGN KEY (`procedencia_id`)
		REFERENCES `procedencia` (`id`),
	INDEX `encuesta_FI_6` (`marca_id`),
	CONSTRAINT `encuesta_FK_6`
		FOREIGN KEY (`marca_id`)
		REFERENCES `marca` (`id`),
	INDEX `encuesta_FI_7` (`modelo_id`),
	CONSTRAINT `encuesta_FK_7`
		FOREIGN KEY (`modelo_id`)
		REFERENCES `modelos` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- situacion_socioeconomica
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `situacion_socioeconomica`;


CREATE TABLE `situacion_socioeconomica`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`jubilacion_id` INTEGER,
	`trabaja` TEXT,
	`rubro` TEXT,
	`otrosingresos` TEXT,
	PRIMARY KEY (`id`),
	INDEX `situacion_socioeconomica_FI_1` (`usuario_id`),
	CONSTRAINT `situacion_socioeconomica_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_socioeconomica_FI_2` (`encuesta_id`),
	CONSTRAINT `situacion_socioeconomica_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `situacion_socioeconomica_FI_3` (`usuario_ts`),
	CONSTRAINT `situacion_socioeconomica_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_socioeconomica_FI_4` (`jubilacion_id`),
	CONSTRAINT `situacion_socioeconomica_FK_4`
		FOREIGN KEY (`jubilacion_id`)
		REFERENCES `jubilacion` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- situacion_sanitaria
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `situacion_sanitaria`;


CREATE TABLE `situacion_sanitaria`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`osocial_id` INTEGER,
	`nrosegurosocial` TEXT,
	`discapacidad` TEXT,
	`cert_discapacidad` TEXT,
	`problematicaSalud` TEXT,
	`recibeatencion` TEXT,
	`lugarrecibe` TEXT,
	PRIMARY KEY (`id`),
	INDEX `situacion_sanitaria_FI_1` (`usuario_id`),
	CONSTRAINT `situacion_sanitaria_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_sanitaria_FI_2` (`encuesta_id`),
	CONSTRAINT `situacion_sanitaria_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `situacion_sanitaria_FI_3` (`usuario_ts`),
	CONSTRAINT `situacion_sanitaria_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_sanitaria_FI_4` (`osocial_id`),
	CONSTRAINT `situacion_sanitaria_FK_4`
		FOREIGN KEY (`osocial_id`)
		REFERENCES `o_social` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- cuidadores
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `cuidadores`;


CREATE TABLE `cuidadores`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`municipal` TINYINT,
	`particular` TINYINT,
	`osocial` TINYINT,
	PRIMARY KEY (`id`),
	INDEX `cuidadores_FI_1` (`usuario_id`),
	CONSTRAINT `cuidadores_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `cuidadores_FI_2` (`encuesta_id`),
	CONSTRAINT `cuidadores_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `cuidadores_FI_3` (`usuario_ts`),
	CONSTRAINT `cuidadores_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- ejes_abordados
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `ejes_abordados`;


CREATE TABLE `ejes_abordados`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`did` TINYINT,
	`did1` TINYINT,
	`did2` TINYINT,
	`frf` TINYINT,
	`frf1` TINYINT,
	`frf2` TINYINT,
	`frf3` TINYINT,
	`frf4` TINYINT,
	`frf5` TINYINT,
	`spnv` TINYINT,
	`spnv1` TINYINT,
	`spnv2` TINYINT,
	`spnv3` TINYINT,
	`di` TINYINT,
	`di1` TINYINT,
	`di2` TINYINT,
	`di3` TINYINT,
	`ss` TINYINT,
	`ss1` TINYINT,
	`ss2` TINYINT,
	`ss3` TINYINT,
	`ss4` TINYINT,
	`ss5` TINYINT,
	`asal` TINYINT,
	`asal1` TINYINT,
	`asal2` TINYINT,
	`asal3` TINYINT,
	`asal4` TINYINT,
	`asal5` TINYINT,
	`dvd` TINYINT,
	`dvd1` TINYINT,
	`dvd2` TINYINT,
	`dvd3` TINYINT,
	`apj` TINYINT,
	`apj1` TINYINT,
	`apj2` TINYINT,
	`apj3` TINYINT,
	PRIMARY KEY (`id`),
	INDEX `ejes_abordados_FI_1` (`usuario_id`),
	CONSTRAINT `ejes_abordados_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `ejes_abordados_FI_2` (`encuesta_id`),
	CONSTRAINT `ejes_abordados_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `ejes_abordados_FI_3` (`usuario_ts`),
	CONSTRAINT `ejes_abordados_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- institucionalizacion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `institucionalizacion`;


CREATE TABLE `institucionalizacion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`hogar_ave` TINYINT,
	`osocial` TINYINT,
	`prepaga` TINYINT,
	`privado` TINYINT,
	`organismo_nacional` TINYINT,
	`organismo_provincial` TINYINT,
	PRIMARY KEY (`id`),
	INDEX `institucionalizacion_FI_1` (`usuario_id`),
	CONSTRAINT `institucionalizacion_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `institucionalizacion_FI_2` (`encuesta_id`),
	CONSTRAINT `institucionalizacion_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `institucionalizacion_FI_3` (`usuario_ts`),
	CONSTRAINT `institucionalizacion_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- situacion_habitacional
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `situacion_habitacional`;


CREATE TABLE `situacion_habitacional`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`vivienda_id` INTEGER,
	`condicionvivienda_id` INTEGER,
	`cantpersonas` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `situacion_habitacional_FI_1` (`usuario_id`),
	CONSTRAINT `situacion_habitacional_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_habitacional_FI_2` (`encuesta_id`),
	CONSTRAINT `situacion_habitacional_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `situacion_habitacional_FI_3` (`usuario_ts`),
	CONSTRAINT `situacion_habitacional_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `situacion_habitacional_FI_4` (`vivienda_id`),
	CONSTRAINT `situacion_habitacional_FK_4`
		FOREIGN KEY (`vivienda_id`)
		REFERENCES `vivienda` (`id`),
	INDEX `situacion_habitacional_FI_5` (`condicionvivienda_id`),
	CONSTRAINT `situacion_habitacional_FK_5`
		FOREIGN KEY (`condicionvivienda_id`)
		REFERENCES `condicion_vivienda` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- observacion_profesional
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `observacion_profesional`;


CREATE TABLE `observacion_profesional`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	`hijos` TEXT,
	`nietos` TEXT,
	`otro` TEXT,
	`participacioncomu` TEXT,
	`lugar` TEXT,
	PRIMARY KEY (`id`),
	INDEX `observacion_profesional_FI_1` (`usuario_id`),
	CONSTRAINT `observacion_profesional_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `observacion_profesional_FI_2` (`encuesta_id`),
	CONSTRAINT `observacion_profesional_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `observacion_profesional_FI_3` (`usuario_ts`),
	CONSTRAINT `observacion_profesional_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- resena_historica
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `resena_historica`;


CREATE TABLE `resena_historica`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`fecha` DATETIME,
	`texto` TEXT,
	`usuario_id` INTEGER,
	`encuesta_id` INTEGER,
	`usuario_ts` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `resena_historica_FI_1` (`usuario_id`),
	CONSTRAINT `resena_historica_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `resena_historica_FI_2` (`encuesta_id`),
	CONSTRAINT `resena_historica_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `resena_historica_FI_3` (`usuario_ts`),
	CONSTRAINT `resena_historica_FK_3`
		FOREIGN KEY (`usuario_ts`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- intervencion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `intervencion`;


CREATE TABLE `intervencion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`numero_remito` INTEGER default 0,
	`fecha_alta` DATETIME,
	`periodos` INTEGER,
	`fecha_ingreso_adm` DATETIME,
	`fecha_enviado_galpon` DATETIME,
	`fecha_recibido_galpon` DATETIME,
	`fecha_regreso_adm` DATETIME,
	`fecha_entrega` DATETIME,
	`fecha_cancelado` DATETIME,
	`usuario_operador_id` INTEGER,
	`tipo_ayuda_id` INTEGER,
	`cantidad_ayuda` INTEGER,
	`comentario` TEXT,
	`motivo_cancelacion` TEXT,
	`cantidad_ayuda_original` INTEGER,
	`asignado_a_partida` TINYINT default 0,
	`orden_de_compra` VARCHAR(255),
	`bolsacolostomia` TINYINT default 0,
	`usuario_id` INTEGER,
	`presupuesto_id` INTEGER,
	`estado_id` INTEGER,
	`incendio` TINYINT default 0,
	`orden_trabajo` VARCHAR(1) default 'N',
	`importe_repuesto` DECIMAL,
	`mano_obra` DECIMAL,
	`enviado` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `intervencion_FI_1` (`usuario_operador_id`),
	CONSTRAINT `intervencion_FK_1`
		FOREIGN KEY (`usuario_operador_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `intervencion_FI_2` (`tipo_ayuda_id`),
	CONSTRAINT `intervencion_FK_2`
		FOREIGN KEY (`tipo_ayuda_id`)
		REFERENCES `tipo_ayuda` (`id`),
	INDEX `intervencion_FI_3` (`usuario_id`),
	CONSTRAINT `intervencion_FK_3`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `intervencion_FI_4` (`presupuesto_id`),
	CONSTRAINT `intervencion_FK_4`
		FOREIGN KEY (`presupuesto_id`)
		REFERENCES `presupuesto` (`id`),
	INDEX `intervencion_FI_5` (`estado_id`),
	CONSTRAINT `intervencion_FK_5`
		FOREIGN KEY (`estado_id`)
		REFERENCES `estado_intervencion` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- estado_intervencion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `estado_intervencion`;


CREATE TABLE `estado_intervencion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- grupo_familiar
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `grupo_familiar`;


CREATE TABLE `grupo_familiar`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`encuesta_id` INTEGER,
	`persona_id` INTEGER,
	`vinculo_id` INTEGER,
	`fecha_alta` DATETIME,
	`fecha_baja` DATETIME,
	PRIMARY KEY (`id`),
	INDEX `grupo_familiar_FI_1` (`encuesta_id`),
	CONSTRAINT `grupo_familiar_FK_1`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `grupo_familiar_FI_2` (`persona_id`),
	CONSTRAINT `grupo_familiar_FK_2`
		FOREIGN KEY (`persona_id`)
		REFERENCES `persona` (`id`),
	INDEX `grupo_familiar_FI_3` (`vinculo_id`),
	CONSTRAINT `grupo_familiar_FK_3`
		FOREIGN KEY (`vinculo_id`)
		REFERENCES `vinculo` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- vinculo
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `vinculo`;


CREATE TABLE `vinculo`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- jubilacion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `jubilacion`;


CREATE TABLE `jubilacion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- condicion_vivienda
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `condicion_vivienda`;


CREATE TABLE `condicion_vivienda`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- o_social
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `o_social`;


CREATE TABLE `o_social`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- pension
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `pension`;


CREATE TABLE `pension`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- conflictiva
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `conflictiva`;


CREATE TABLE `conflictiva`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- situacion_previsional
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `situacion_previsional`;


CREATE TABLE `situacion_previsional`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(100),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- marca
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `marca`;


CREATE TABLE `marca`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`slag` VARCHAR(255),
	`activo` TINYINT default 1,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- modelos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `modelos`;


CREATE TABLE `modelos`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`marca_id` INTEGER,
	`descripcion` VARCHAR(255),
	`slag` VARCHAR(255),
	`activo` TINYINT default 1,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- vivienda
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `vivienda`;


CREATE TABLE `vivienda`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- motivos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `motivos`;


CREATE TABLE `motivos`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(100),
	`activo` TINYINT default 1,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- categoria_repuesto
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `categoria_repuesto`;


CREATE TABLE `categoria_repuesto`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(100),
	`activo` TINYINT default 1,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- situacion_documentacion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `situacion_documentacion`;


CREATE TABLE `situacion_documentacion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(100),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- procedencia
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `procedencia`;


CREATE TABLE `procedencia`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(100),
	`activo` TINYINT default 1,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- persona
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `persona`;


CREATE TABLE `persona`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	`apellido` VARCHAR(255),
	`sexo` VARCHAR(1) default 'F' NOT NULL,
	`tipo_documento_id` INTEGER,
	`numero_documento` BIGINT,
	`fecha_nacimiento` DATETIME,
	`edad` INTEGER,
	`estado_civil_id` INTEGER,
	`documentacion_id` INTEGER,
	`previsional_id` INTEGER,
	`nivel_educativo_id` INTEGER,
	`oficio` VARCHAR(255),
	`lugar_nacimiento` VARCHAR(255),
	`provincia` VARCHAR(255),
	`calle` VARCHAR(255),
	`gis_calle` VARCHAR(255),
	`numero` VARCHAR(255),
	`entre_calles` VARCHAR(255),
	`piso` VARCHAR(255),
	`depto` VARCHAR(255),
	`barrio` VARCHAR(255),
	`municipalidad` VARCHAR(20) default 'QUILMES',
	`telefono` VARCHAR(60),
	`telefono_alternativo` VARCHAR(60),
	`email` VARCHAR(200),
	`facebook` VARCHAR(200),
	`gis_latitud` DOUBLE,
	`gis_longitud` DOUBLE,
	`observacion` VARCHAR(300),
	`osocial_id` INTEGER,
	`nrosegurosocial` TEXT,
	PRIMARY KEY (`id`),
	INDEX `persona_FI_1` (`tipo_documento_id`),
	CONSTRAINT `persona_FK_1`
		FOREIGN KEY (`tipo_documento_id`)
		REFERENCES `tipo_documento` (`id`),
	INDEX `persona_FI_2` (`estado_civil_id`),
	CONSTRAINT `persona_FK_2`
		FOREIGN KEY (`estado_civil_id`)
		REFERENCES `estado_civil` (`id`),
	INDEX `persona_FI_3` (`documentacion_id`),
	CONSTRAINT `persona_FK_3`
		FOREIGN KEY (`documentacion_id`)
		REFERENCES `situacion_documentacion` (`id`),
	INDEX `persona_FI_4` (`previsional_id`),
	CONSTRAINT `persona_FK_4`
		FOREIGN KEY (`previsional_id`)
		REFERENCES `situacion_previsional` (`id`),
	INDEX `persona_FI_5` (`nivel_educativo_id`),
	CONSTRAINT `persona_FK_5`
		FOREIGN KEY (`nivel_educativo_id`)
		REFERENCES `nivel_educativo` (`id`),
	INDEX `persona_FI_6` (`osocial_id`),
	CONSTRAINT `persona_FK_6`
		FOREIGN KEY (`osocial_id`)
		REFERENCES `o_social` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- tipo_documento
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `tipo_documento`;


CREATE TABLE `tipo_documento`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- observacion_cuidadores
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `observacion_cuidadores`;


CREATE TABLE `observacion_cuidadores`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`encuesta_id` INTEGER,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	`texto` TEXT,
	`salud` TEXT,
	`higiene` TEXT,
	`alimentacion` TEXT,
	`tramites` TEXT,
	`recreacion` TEXT,
	`vincular` TEXT,
	`observacion` TEXT,
	PRIMARY KEY (`id`),
	INDEX `observacion_cuidadores_FI_1` (`encuesta_id`),
	CONSTRAINT `observacion_cuidadores_FK_1`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `observacion_cuidadores_FI_2` (`usuario_id`),
	CONSTRAINT `observacion_cuidadores_FK_2`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- estado_civil
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `estado_civil`;


CREATE TABLE `estado_civil`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	`orden` VARCHAR(2),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- nivel_educativo
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `nivel_educativo`;


CREATE TABLE `nivel_educativo`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	`orden` VARCHAR(2),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- tipo_ayuda
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `tipo_ayuda`;


CREATE TABLE `tipo_ayuda`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`categoria_repuesto_id` INTEGER,
	`codigo` VARCHAR(255),
	`codigo_exportacion` VARCHAR(255),
	`descripcion` TEXT,
	`activo` TINYINT default 1,
	`orden` VARCHAR(2),
	`stock_actual` INTEGER,
	`stock_minimo` INTEGER,
	`entrega_galpon` TINYINT default 0,
	`controlar_stock` TINYINT default 1,
	`entrega_directa` TINYINT default 0,
	`precio_unitario` DECIMAL,
	`precio_inventario` DECIMAL,
	`precio` DECIMAL,
	PRIMARY KEY (`id`),
	INDEX `tipo_ayuda_FI_1` (`categoria_repuesto_id`),
	CONSTRAINT `tipo_ayuda_FK_1`
		FOREIGN KEY (`categoria_repuesto_id`)
		REFERENCES `categoria_repuesto` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- orden_pedido
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `orden_pedido`;


CREATE TABLE `orden_pedido`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	`tipo_ayuda_id` INTEGER,
	`cantidad` INTEGER,
	`nro_solicitud_pedido` VARCHAR(200),
	`fecha_recibido_compras` DATETIME,
	`compra_id` INTEGER,
	`expediente` VARCHAR(255),
	`fuente_financiamiento_id` INTEGER,
	`observacion` TEXT,
	PRIMARY KEY (`id`),
	INDEX `orden_pedido_FI_1` (`usuario_id`),
	CONSTRAINT `orden_pedido_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `orden_pedido_FI_2` (`tipo_ayuda_id`),
	CONSTRAINT `orden_pedido_FK_2`
		FOREIGN KEY (`tipo_ayuda_id`)
		REFERENCES `tipo_ayuda` (`id`),
	INDEX `orden_pedido_FI_3` (`compra_id`),
	CONSTRAINT `orden_pedido_FK_3`
		FOREIGN KEY (`compra_id`)
		REFERENCES `orden_compra` (`id`),
	INDEX `orden_pedido_FI_4` (`fuente_financiamiento_id`),
	CONSTRAINT `orden_pedido_FK_4`
		FOREIGN KEY (`fuente_financiamiento_id`)
		REFERENCES `fuente_financiamiento_ayuda_social_monitoreo` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- fuente_financiamiento_ayuda_social_monitoreo
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `fuente_financiamiento_ayuda_social_monitoreo`;


CREATE TABLE `fuente_financiamiento_ayuda_social_monitoreo`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	PRIMARY KEY (`id`),
	UNIQUE KEY `fuente_financiamiento_ayuda_social_monitoreo_U_1` (`nombre`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- proveedor
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `proveedor`;


CREATE TABLE `proveedor`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	`direccion` VARCHAR(255),
	`telefono` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- orden_compra
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `orden_compra`;


CREATE TABLE `orden_compra`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	`fecha_recibido_galpon` DATETIME,
	`proveedor_id` INTEGER,
	`nro_orden_compra` VARCHAR(255),
	PRIMARY KEY (`id`),
	INDEX `orden_compra_FI_1` (`usuario_id`),
	CONSTRAINT `orden_compra_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `orden_compra_FI_2` (`proveedor_id`),
	CONSTRAINT `orden_compra_FK_2`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedor` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- ordenes_recibidas
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `ordenes_recibidas`;


CREATE TABLE `ordenes_recibidas`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	`orden_pedido_id` INTEGER  NOT NULL,
	`cantidad` INTEGER,
	`factura_nro` VARCHAR(255),
	`factura_fecha` DATETIME,
	`remito_nro` VARCHAR(255),
	`remito_fecha` DATETIME,
	PRIMARY KEY (`id`),
	INDEX `ordenes_recibidas_FI_1` (`usuario_id`),
	CONSTRAINT `ordenes_recibidas_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `ordenes_recibidas_FI_2` (`orden_pedido_id`),
	CONSTRAINT `ordenes_recibidas_FK_2`
		FOREIGN KEY (`orden_pedido_id`)
		REFERENCES `orden_pedido` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- stock
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `stock`;


CREATE TABLE `stock`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`tipo_ayuda_id` INTEGER  NOT NULL,
	`orden_compra_id` INTEGER  NOT NULL,
	`intervencion_id` INTEGER,
	`estado_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `stock_FI_1` (`tipo_ayuda_id`),
	CONSTRAINT `stock_FK_1`
		FOREIGN KEY (`tipo_ayuda_id`)
		REFERENCES `tipo_ayuda` (`id`),
	INDEX `stock_FI_2` (`orden_compra_id`),
	CONSTRAINT `stock_FK_2`
		FOREIGN KEY (`orden_compra_id`)
		REFERENCES `orden_compra` (`id`),
	INDEX `stock_FI_3` (`intervencion_id`),
	CONSTRAINT `stock_FK_3`
		FOREIGN KEY (`intervencion_id`)
		REFERENCES `intervencion` (`id`),
	INDEX `stock_FI_4` (`estado_id`),
	CONSTRAINT `stock_FK_4`
		FOREIGN KEY (`estado_id`)
		REFERENCES `estado_stock` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- estado_stock
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `estado_stock`;


CREATE TABLE `estado_stock`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(100),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- stock_productos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `stock_productos`;


CREATE TABLE `stock_productos`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`tipo_ayuda_id` INTEGER,
	`intervencion_id` INTEGER,
	`orden_compra_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `stock_productos_FI_1` (`tipo_ayuda_id`),
	CONSTRAINT `stock_productos_FK_1`
		FOREIGN KEY (`tipo_ayuda_id`)
		REFERENCES `tipo_ayuda` (`id`),
	INDEX `stock_productos_FI_2` (`intervencion_id`),
	CONSTRAINT `stock_productos_FK_2`
		FOREIGN KEY (`intervencion_id`)
		REFERENCES `intervencion` (`id`),
	INDEX `stock_productos_FI_3` (`orden_compra_id`),
	CONSTRAINT `stock_productos_FK_3`
		FOREIGN KEY (`orden_compra_id`)
		REFERENCES `orden_compra` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- auditoria_asignar_partida
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `auditoria_asignar_partida`;


CREATE TABLE `auditoria_asignar_partida`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`intervencion_id` INTEGER,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	PRIMARY KEY (`id`),
	INDEX `auditoria_asignar_partida_FI_1` (`intervencion_id`),
	CONSTRAINT `auditoria_asignar_partida_FK_1`
		FOREIGN KEY (`intervencion_id`)
		REFERENCES `intervencion` (`id`),
	INDEX `auditoria_asignar_partida_FI_2` (`usuario_id`),
	CONSTRAINT `auditoria_asignar_partida_FK_2`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- presupuesto
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `presupuesto`;


CREATE TABLE `presupuesto`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	`texto` TEXT,
	`kilometraje` INTEGER,
	`encuesta_id` INTEGER,
	`fecha_egreso` DATETIME,
	PRIMARY KEY (`id`),
	INDEX `presupuesto_FI_1` (`usuario_id`),
	CONSTRAINT `presupuesto_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `presupuesto_FI_2` (`encuesta_id`),
	CONSTRAINT `presupuesto_FK_2`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- auditoria_encuesta_exportada
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `auditoria_encuesta_exportada`;


CREATE TABLE `auditoria_encuesta_exportada`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`encuesta_id` INTEGER,
	`usuario_id` INTEGER,
	`fecha` DATETIME,
	PRIMARY KEY (`id`),
	INDEX `auditoria_encuesta_exportada_FI_1` (`encuesta_id`),
	CONSTRAINT `auditoria_encuesta_exportada_FK_1`
		FOREIGN KEY (`encuesta_id`)
		REFERENCES `encuesta` (`id`),
	INDEX `auditoria_encuesta_exportada_FI_2` (`usuario_id`),
	CONSTRAINT `auditoria_encuesta_exportada_FK_2`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- buffer_busqueda
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `buffer_busqueda`;


CREATE TABLE `buffer_busqueda`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre_apellido` VARCHAR(255),
	`documento` VARCHAR(255),
	`calle` VARCHAR(255),
	`numero` VARCHAR(255),
	`piso` VARCHAR(255),
	`depto` VARCHAR(255),
	`fecha_nacimiento` VARCHAR(255),
	`usuario_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `buffer_busqueda_FI_1` (`usuario_id`),
	CONSTRAINT `buffer_busqueda_FK_1`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- nacionalidad
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `nacionalidad`;


CREATE TABLE `nacionalidad`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`nombre` VARCHAR(255),
	`descripcion` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

# This restores the fkey checks, after having unset them earlier
SET FOREIGN_KEY_CHECKS = 1;
