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

namespace Exferia_EntityFramework.Script_Actualizacion
{
    class Scripts_Version_1269
    {
        public static Version G_VRS_VERSION = new Version("1.2.6.9");
        public static long G_LNG_VERSION = 1269;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    //BORRAR OPCION MYT_TERMINALES
                                    "IF exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MYT_TERMINALES' " +
                                    ") " +
                                    "BEGIN " +
                                        " DELETE FROM " + nameof(PRV_ArbolPrincipal_USR_Usuarios) + " WHERE " + nameof(PRV_ArbolPrincipal_USR_Usuarios.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_ArbolPrincipal) + " WHERE " + nameof(PRV_ArbolPrincipal.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_Productos_OpcionesDisponiblesParaCliente) + " WHERE " + nameof(PRV_Productos_OpcionesDisponiblesParaCliente.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_OpcionesDisponiblesParaCliente) + " WHERE " + nameof(PRV_OpcionesDisponiblesParaCliente.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_Opcion_Objeto_Permiso) + " WHERE " + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_Opciones_USR_Usuarios) + " WHERE " + nameof(PRV_Opciones_USR_Usuarios.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_OpcionesDetalle_USR_Usuarios) + " WHERE " + nameof(PRV_OpcionesDetalle_USR_Usuarios.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_Opciones) + " WHERE " + nameof(PRV_Opciones.opcion) + "='MYT_TERMINALES' " +
                                        " DELETE FROM " + nameof(PRV_OpcionesDetalle) + " WHERE " + nameof(PRV_OpcionesDetalle.opcion) + "='MYT_TERMINALES' " +
                                    " END  " +
                                     //BORRAR relacion FK_MYT_Partes_Fotos_MYT_Terminales a la tabla MYT_Partes_Fotos
                                     "IF exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_Fotos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_Fotos_MYT_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " UPDATE MYT_Partes_Fotos SET idTerminal=NULL " +
                                        " ALTER TABLE MYT_Partes_Fotos DROP CONSTRAINT[FK_MYT_Partes_Fotos_MYT_Terminales] " +
                                    "END " +
                                     //BORRAR relacion FK_MYT_Partes_Notas_MYT_Terminales a la tabla MYT_Partes_Notas
                                     "IF exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_Notas' AND CONSTRAINT_NAME = 'FK_MYT_Partes_Notas_MYT_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " UPDATE MYT_Partes_Notas SET idTerminal=NULL " +
                                        " ALTER TABLE MYT_Partes_Notas DROP CONSTRAINT[FK_MYT_Partes_Notas_MYT_Terminales] " +
                                    "END " +
                                     //BORRAR relacion FK_MYT_Partes_PeticionDatos_MYT_Terminales a la tabla MYT_Partes_PeticionDatos
                                     "IF exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_PeticionDatos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_PeticionDatos_MYT_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " UPDATE MYT_Partes_PeticionDatos SET idTerminal=NULL " +
                                        " ALTER TABLE MYT_Partes_PeticionDatos DROP CONSTRAINT[FK_MYT_Partes_PeticionDatos_MYT_Terminales] " +
                                    "END " +
                                     //BORRAR relacion FK_MYT_Partes_ProtocolosRellenos_MYT_Terminales a la tabla MYT_Partes_ProtocolosRellenos
                                     "IF exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_ProtocolosRellenos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_ProtocolosRellenos_MYT_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " UPDATE MYT_Partes_ProtocolosRellenos SET idTerminal=NULL " +
                                        " ALTER TABLE MYT_Partes_ProtocolosRellenos DROP CONSTRAINT[FK_MYT_Partes_ProtocolosRellenos_MYT_Terminales] " +
                                    "END " +
                                     //BORRAR relacion FK_MYT_Partes_TrabajosRealizados_MYT_Terminales a la tabla MYT_Partes_TrabajosRealizados
                                     "IF exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_TrabajosRealizados' AND CONSTRAINT_NAME = 'FK_MYT_Partes_TrabajosRealizados_MYT_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " UPDATE MYT_Partes_TrabajosRealizados SET idTerminal=NULL " +
                                        " ALTER TABLE MYT_Partes_TrabajosRealizados DROP CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_Terminales] " +
                                    "END " +
                                    //BORRAR TABLA MYT_Terminales
                                    " IF exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_Terminales' " +
                                    " ) " +
                                    "BEGIN " +
                                        " DROP TABLE MYT_Terminales " +
                                    "END " +
                                    //CREAR TABLA GEN_Terminales
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'GEN_Terminales' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE GEN_Terminales " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY (1,1) NOT NULL, " +
                                            " [codigo] varchar(10) NOT NULL, " +
                                            " [descripcion] [varchar] (50) NOT NULL, " +
                                            " [tipo] [int] NOT NULL, " +
                                            " [tipoPantalla] [int] NULL, " +
                                            " [fechaBorrado] datetime NULL, " +
                                         " CONSTRAINT[PK_GEN_Terminales] 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] " +
                                    " END " +
                                    //CREAR TABLA GEN_Terminales_Opciones
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'GEN_Terminales_Opciones' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE GEN_Terminales_Opciones " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY (1,1) NOT NULL, " +
                                            " [idTerminal] [bigint] NOT NULL, " +
                                            " [opcion] varchar(20) NOT NULL, " +
                                            " [valores] [varchar] (200) NOT NULL " +
                                         " CONSTRAINT[PK_GEN_Terminales_Opciones] 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[GEN_Terminales_Opciones] WITH CHECK ADD  CONSTRAINT[FK_GEN_Terminales_Opciones_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[GEN_Terminales_Opciones] CHECK CONSTRAINT[FK_GEN_Terminales_Opciones_GEN_Terminales] " +
                                    " END " +
                                     //AÑADIR relacion idTerminal a la tabla MYT_Partes_Fotos
                                     "IF not exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_Fotos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_Fotos_GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_Fotos] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_Fotos_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_Fotos] CHECK CONSTRAINT[FK_MYT_Partes_Fotos_GEN_Terminales] " +
                                    "END " +
                                     //AÑADIR relacion idTerminal a la tabla MYT_Partes_Notas
                                     "IF not exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_Notas' AND CONSTRAINT_NAME = 'FK_MYT_Partes_Notas_GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_Notas] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_Notas_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_Notas] CHECK CONSTRAINT[FK_MYT_Partes_Notas_GEN_Terminales] " +
                                    "END " +
                                     //AÑADIR relacion idTerminal a la tabla MYT_Partes_PeticionDatos
                                     "IF not exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_PeticionDatos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_PeticionDatos_GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_PeticionDatos] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_PeticionDatos_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_PeticionDatos] CHECK CONSTRAINT[FK_MYT_Partes_PeticionDatos_GEN_Terminales] " +
                                    "END " +
                                     //AÑADIR relacion idTerminal a la tabla MYT_Partes_ProtocolosRellenos
                                     "IF not exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_ProtocolosRellenos' AND CONSTRAINT_NAME = 'FK_MYT_Partes_ProtocolosRellenos_GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_ProtocolosRellenos] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_ProtocolosRellenos_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_ProtocolosRellenos] CHECK CONSTRAINT[FK_MYT_Partes_ProtocolosRellenos_GEN_Terminales] " +
                                    "END " +
                                     //AÑADIR relacion idTerminal a la tabla MYT_Partes_TrabajosRealizados
                                     "IF not exists " +
                                      "( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE " +
                                        " WHERE  COLUMN_NAME='idTerminal' and TABLE_NAME = 'MYT_Partes_TrabajosRealizados' AND CONSTRAINT_NAME = 'FK_MYT_Partes_TrabajosRealizados_GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_GEN_Terminales] " +
                                    "END " +
                                     //AÑADIR campo estadoInterno a la tabla MYT_PartesEstados
                                     "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='estadoInterno' AND TABLE_NAME = 'MYT_PartesEstados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_PartesEstados]ADD[estadoInterno] varchar(2) NULL  " +
                                    "END " +
                                    //CREAR OPCION GEN_TERMINALES
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'GEN_TERMINALES' " +
                                    ") " +
                                    "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('GEN_TERMINALES','Terminales','Terminales','Terminales','Terminales', 'codigo,descripcion') " +
                                        "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('GEN_TERMINALES','Exferia_General','Terminales',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',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('GEN_TERMINALES',9, NULL,NULL,1) " +
                                    " END  " ;


    }
}
