using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_EntityFramework.Script_Actualizacion
{
    class Scripts_Version_1209
    {
        public static Version G_VRS_VERSION = new Version("1.2.0.9");
        public static long G_LNG_VERSION = 1209;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                            //CREAR TABLA CTP_Contratos
                                            " IF not exists " +
                                            " ( " +
                                                " SELECT * " +
                                                " FROM INFORMATION_SCHEMA.TABLES " +
                                                " WHERE TABLE_NAME = 'CTP_Contratos' " +
                                            " ) " +
                                            " BEGIN " +
                                                " CREATE TABLE[dbo].[CTP_Contratos] " +
                                                " ( " +
                                                " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                                " [codigo] [varchar](50) NOT NULL, " +
                                                " [objetoContrato] [varchar](500) NOT NULL, " +
                                                " [fecha] [datetime] NOT NULL, " +
                                                " [regulacionArmonizada] [varchar](1) NOT NULL, " +
                                                " [directivaAplicacion] [varchar](5) NOT NULL, " +
                                                " [tipoContrato] [varchar](5) NOT NULL, " +
                                                " [subTipoContrato] [varchar](5) NOT NULL, " +
                                                " [compraPublicaInnovadora] [varchar](5) NOT NULL, " +
                                                " [procedimientoContratacion] [varchar](5) NOT NULL, " +
                                                " [sistemaContratacion] [varchar](5) NOT NULL, " +
                                                " [tipoTramitacion] [varchar](5) NOT NULL, " +
                                                " [tramitacionGasto] [varchar](5) NOT NULL, " +
                                                " [valorEstimado] [decimal](18,2) NULL, " +
                                                " [presupuestoBase] [decimal](18,2) NOT NULL, " +
                                                " [impuesto] [decimal](18,2) NULL, " +
                                                " [importeTotal] [decimal](18,2) NOT NULL, " +
                                                " [fechaPrevistaInicioAdjudicacion] [datetime] NULL, " +
                                                " [idPais] [bigint] NOT NULL, " +
                                                " [nuts] [varchar](5) NOT NULL, " +
                                                " [estado] [varchar](1) NOT NULL, " +
                                                " [plazoEjecucion_FechaInicio] [datetime] NULL, " +
                                                " [plazoEjecucion_FechaFin] [datetime] NULL, " +
                                                " [plazoEjecucion_Duracion] [int] NULL, " +
                                                " [plazoEjecucion_Duracion_Tipo] [varchar](5) NULL, " +
                                                " [fechaBorrado] [datetime] NULL, " +
                                                " CONSTRAINT[PK_CTP_Contratos] PRIMARY KEY CLUSTERED " +
                                                " ( " +
                                                " [id] ASC " +
                                                " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                                " ) ON[PRIMARY] " +

                                                //Relaciones
                                                " ALTER TABLE[dbo].[CTP_Contratos] WITH CHECK ADD CONSTRAINT[FK_CTP_Contratos_GEN_Paises] FOREIGN KEY([idPais]) REFERENCES[dbo].[GEN_Paises] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Contratos] CHECK CONSTRAINT[FK_CTP_Contratos_GEN_Paises] " +
                                            " END " +
                                            //CREAR TABLA CTP_Contratos_CPV
                                            " IF not exists " +
                                            " ( " +
                                                " SELECT * " +
                                                " FROM INFORMATION_SCHEMA.TABLES " +
                                                " WHERE TABLE_NAME = 'CTP_Contratos_CPV' " +
                                            " ) " +
                                            " BEGIN " +
                                                " CREATE TABLE[dbo].[CTP_Contratos_CPV] " +
                                                " ( " +
                                                " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                                " [idContrato] [bigint] NOT NULL, " +
                                                " [idCPV] [bigint] NOT NULL, " +
                                                " [principal] [bit] NOT NULL, " +
                                                " CONSTRAINT[PK_CTP_Contratos_CPV] PRIMARY KEY CLUSTERED " +
                                                " ( " +
                                                " [id] ASC " +
                                                " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                                " ) ON[PRIMARY] " +

                                                //Relaciones
                                                " ALTER TABLE[dbo].[CTP_Contratos_CPV] WITH CHECK ADD CONSTRAINT[FK_CTP_Contratos_CPV_CTP_Contratos] FOREIGN KEY([idContrato]) REFERENCES[dbo].[CTP_Contratos] ([id]) ON DELETE CASCADE " +
                                                " ALTER TABLE[dbo].[CTP_Contratos_CPV] CHECK CONSTRAINT[FK_CTP_Contratos_CPV_CTP_Contratos] " +

                                                " ALTER TABLE[dbo].[CTP_Contratos_CPV] WITH CHECK ADD CONSTRAINT[FK_CTP_Contratos_CPV_CTP_CPV] FOREIGN KEY([idCPV]) REFERENCES[dbo].[CTP_CPV] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Contratos_CPV] CHECK CONSTRAINT[FK_CTP_Contratos_CPV_CTP_CPV] " +
                                            " END " +
                                            //CREAR TABLA CTP_Licitadores
                                            " IF not exists " +
                                            " ( " +
                                                " SELECT * " +
                                                " FROM INFORMATION_SCHEMA.TABLES " +
                                                " WHERE TABLE_NAME = 'CTP_Licitadores' " +
                                            " ) " +
                                            " BEGIN " +
                                                " CREATE TABLE[dbo].[CTP_Licitadores] " +
                                                " ( " +
                                                " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                                " [idContrato] [bigint] NOT NULL, " +
                                                " [nombre] [varchar](100) NOT NULL, " +
                                                " [identificacion] [varchar](50) NOT NULL, " +
                                                " [identificacion_Tipo] [varchar](5) NOT NULL, " +
                                                " [UTE] [varchar](50) NULL, " +
                                                " [idPais] [bigint] NULL, " +
                                                " [idProvincia] [bigint] NULL, " +
                                                " [idMunicipio] [bigint] NULL, " +
                                                " [idPoblacion] [bigint] NULL, " +
                                                " [pais] [varchar](100) NULL, " +
                                                " [poblacion] [varchar](100) NULL, " +
                                                " [calle] [varchar](100) NULL, " +
                                                " [codigoPostal] [varchar](5) NULL, " +
                                                " [nuts] [varchar](5) NULL, " +
                                                " [autorizarComunicacionesElectronicas] [bit] NULL, " +
                                                " [emailContacto] [varchar] (100) NULL, " +
                                                " [fechaHoraOferta] [datetime]  NULL, " +
                                                " [fechaBorrado] [datetime]  NULL, " +
                                                " CONSTRAINT[PK_CTP_Licitadores] PRIMARY KEY CLUSTERED " +
                                                " ( " +
                                                " [id] ASC " +
                                                " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                                " ) ON[PRIMARY] " +

                                                //Relaciones
                                                " ALTER TABLE[dbo].[CTP_Licitadores] WITH CHECK ADD CONSTRAINT[FK_CTP_Licitadores_CTP_Contratos] FOREIGN KEY([idContrato]) REFERENCES[dbo].[CTP_Contratos] ([id]) ON DELETE CASCADE " +
                                                " ALTER TABLE[dbo].[CTP_Licitadores] CHECK CONSTRAINT[FK_CTP_Licitadores_CTP_Contratos] " +

                                                " ALTER TABLE[dbo].[CTP_Licitadores] WITH CHECK ADD CONSTRAINT[FK_CTP_Licitadores_GEN_Paises] FOREIGN KEY([idPais]) REFERENCES[dbo].[GEN_Paises] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Licitadores] CHECK CONSTRAINT[FK_CTP_Licitadores_GEN_Paises] " +

                                                " ALTER TABLE[dbo].[CTP_Licitadores] WITH CHECK ADD CONSTRAINT[FK_CTP_Licitadores_GEN_Provincias] FOREIGN KEY([idProvincia]) REFERENCES[dbo].[GEN_Provincias] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Licitadores] CHECK CONSTRAINT[FK_CTP_Licitadores_GEN_Provincias] " +

                                                " ALTER TABLE[dbo].[CTP_Licitadores] WITH CHECK ADD CONSTRAINT[FK_CTP_Licitadores_GEN_Municipios] FOREIGN KEY([idMunicipio]) REFERENCES[dbo].[GEN_Municipios] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Licitadores] CHECK CONSTRAINT[FK_CTP_Licitadores_GEN_Municipios] " +

                                                " ALTER TABLE[dbo].[CTP_Licitadores] WITH CHECK ADD CONSTRAINT[FK_CTP_Licitadores_GEN_Poblaciones] FOREIGN KEY([idPoblacion]) REFERENCES[dbo].[GEN_Poblaciones] ([id]) " +
                                                " ALTER TABLE[dbo].[CTP_Licitadores] CHECK CONSTRAINT[FK_CTP_Licitadores_GEN_Poblaciones] " +

                                            " END " +
                                            //CREAR OPCION CTP_CONTRATOS
                                            "IF not exists " +
                                            "( " +
                                                "SELECT * " +
                                                "FROM PRV_Opciones " +
                                                "WHERE opcion = 'CTP_CONTRATOS' " +
                                            ") " +
                                            "BEGIN " +
                                                "INSERT INTO " + nameof(PRV_OpcionesDetalle) + " (" + nameof(PRV_OpcionesDetalle.opcion) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloListado) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloMantenimiento) + "," + nameof(PRV_OpcionesDetalle.descripcion_Plural) + "," + nameof(PRV_OpcionesDetalle.descripcion_Singular) + "," + nameof(PRV_OpcionesDetalle.camposMostrar_TituloMantenimiento) + ") VALUES('CTP_CONTRATOS','Contratos (CTP)','Contrato (CTP)','Contratos (CTP)','Contrato (CTP)', 'codigo') " +
                                                "INSERT INTO " + nameof(PRV_Opciones) + " (" + nameof(PRV_Opciones.opcion) + "," + nameof(PRV_Opciones.libreria) + "," + nameof(PRV_Opciones.descripcionAMostrar) + "," + nameof(PRV_Opciones.mostrable_Arbol) + "," + nameof(PRV_Opciones.fechaCreacion) + ") VALUES('CTP_CONTRATOS','Exferia_ContratosPublicos','Contratos (CTP)',1,GETDATE()) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',1, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',2, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',3, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',4, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',5, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',6, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',7, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',8, NULL,NULL,1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS',9, NULL,NULL,1) " +
                                            " END " +
                                            //CREAR OPCION CTP_CONTRATOS_CPV
                                            "IF not exists " +
                                            "( " +
                                                "SELECT * " +
                                                "FROM PRV_Opciones " +
                                                "WHERE opcion = 'CTP_CONTRATOS_CPV' " +
                                            ") " +
                                            "BEGIN " +
                                                "INSERT INTO " + nameof(PRV_OpcionesDetalle) + " (" + nameof(PRV_OpcionesDetalle.opcion) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloListado) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloMantenimiento) + "," + nameof(PRV_OpcionesDetalle.descripcion_Plural) + "," + nameof(PRV_OpcionesDetalle.descripcion_Singular) + "," + nameof(PRV_OpcionesDetalle.camposMostrar_TituloMantenimiento) + ") VALUES('CTP_CONTRATOS_CPV','CPV del contrato (CTP)','CPV del contrato (CTP)','CPV del contrato (CTP)','CPV del contrato (CTP)', NULL) " +
                                                "INSERT INTO " + nameof(PRV_Opciones) + " (" + nameof(PRV_Opciones.opcion) + "," + nameof(PRV_Opciones.libreria) + "," + nameof(PRV_Opciones.descripcionAMostrar) + "," + nameof(PRV_Opciones.mostrable_Arbol) + "," + nameof(PRV_Opciones.fechaCreacion) + ") VALUES('CTP_CONTRATOS_CPV','Exferia_ContratosPublicos','CPV del contrato (CTP)',0,GETDATE()) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS_CPV',1, NULL,'CTP_CONTRATOS',1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS_CPV',2, NULL,'CTP_CONTRATOS',1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_CONTRATOS_CPV',4, NULL,'CTP_CONTRATOS',1) " +
                                            " END " +
                                            //CREAR OPCION CTP_LICITADORES
                                            "IF not exists " +
                                            "( " +
                                                "SELECT * " +
                                                "FROM PRV_Opciones " +
                                                "WHERE opcion = 'CTP_LICITADORES' " +
                                            ") " +
                                            "BEGIN " +
                                                "INSERT INTO " + nameof(PRV_OpcionesDetalle) + " (" + nameof(PRV_OpcionesDetalle.opcion) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloListado) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloMantenimiento) + "," + nameof(PRV_OpcionesDetalle.descripcion_Plural) + "," + nameof(PRV_OpcionesDetalle.descripcion_Singular) + "," + nameof(PRV_OpcionesDetalle.camposMostrar_TituloMantenimiento) + ") VALUES('CTP_LICITADORES','Licitadores (CTP)','Licitador (CTP)','Licitadores (CTP)','Licitador (CTP)', NULL) " +
                                                "INSERT INTO " + nameof(PRV_Opciones) + " (" + nameof(PRV_Opciones.opcion) + "," + nameof(PRV_Opciones.libreria) + "," + nameof(PRV_Opciones.descripcionAMostrar) + "," + nameof(PRV_Opciones.mostrable_Arbol) + "," + nameof(PRV_Opciones.fechaCreacion) + ") VALUES('CTP_LICITADORES','Exferia_ContratosPublicos','Licitadores (CTP)',0,GETDATE()) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_LICITADORES',1, NULL,'CTP_CONTRATOS',1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_LICITADORES',2, NULL,'CTP_CONTRATOS',1) " +
                                                "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('CTP_LICITADORES',4, NULL,'CTP_CONTRATOS',1) " +
                                            " END ";



    }
}
