using Exferia_Aplicacion.General;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Exferia_Aplicacion.General.Enumerados;

namespace Exferia_EntityFramework.Script_Actualizacion
{
    public class Scripts_Version_1135
    {
        public static Version G_VRS_VERSION = new Version("1.1.3.5");
        public static long G_LNG_VERSION = 1135;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    //BORRAR TABLA MAE_TarifasPromociones_Detalles
                                    " IF exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MAE_TarifasPromociones_Detalles' " +
                                    " ) " +
                                    "BEGIN " +
                                        "DROP TABLE MAE_TarifasPromociones_Detalles" +
                                    " END " +
                                    //AÑADIR el campo precioFijoDinamico a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='precioFijoDinamico' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[precioFijoDinamico] int NOT NULL DEFAULT(1)" +
                                    "END " +
                                    //AÑADIR el campo precio a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='precio' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[precio] decimal(18,3) NULL " +
                                    "END " +
                                    //AÑADIR el campo idNomenclaturaPrecio a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idNomenclaturaPrecio' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[idNomenclaturaPrecio] bigint NULL " +
                                        //Relaciones
                                        " ALTER TABLE [MAE_TarifasPromociones] WITH CHECK ADD CONSTRAINT[FK_MAE_TarifasPromociones_MAE_NomenclaturasPrecios] FOREIGN KEY([idNomenclaturaPrecio]) REFERENCES [MAE_NomenclaturasPrecios] ([id]) " +
                                        " ALTER TABLE [MAE_TarifasPromociones] CHECK CONSTRAINT[FK_MAE_TarifasPromociones_MAE_NomenclaturasPrecios] " +
                                    "END " +
                                    //AÑADIR el campo descuentoMoneda a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='descuentoMoneda' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[descuentoMoneda] decimal(18,3) NULL " +
                                    "END " +
                                    //AÑADIR el campo AB_Cantidad_A a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='AB_Cantidad_A' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[AB_Cantidad_A] decimal(18,2) NULL " +
                                    "END " +
                                    //AÑADIR el campo AB_Cantidad_B a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='AB_Cantidad_B' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[AB_Cantidad_B] decimal(18,2) NULL " +
                                    "END " +
                                    //AÑADIR el campo AB_Porcentaje a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='AB_Porcentaje' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[AB_Porcentaje] decimal(18,2) NULL " +
                                    "END " +
                                    //AÑADIR el campo AB_idArticulo a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='AB_idArticulo' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[AB_idArticulo] bigint NULL " +
                                        //Relaciones
                                        " ALTER TABLE [MAE_TarifasPromociones] WITH CHECK ADD CONSTRAINT[FK_MAE_TarifasPromociones_MAE_Articulos] FOREIGN KEY([AB_idArticulo]) REFERENCES [MAE_Articulos] ([id]) " +
                                        " ALTER TABLE [MAE_TarifasPromociones] CHECK CONSTRAINT[FK_MAE_TarifasPromociones_MAE_Articulos] " +
                                    "END " +
                                    //AÑADIR el campo AB_idEmbalaje a la tabla MAE_TarifasPromociones
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='AB_idEmbalaje' AND TABLE_NAME = 'MAE_TarifasPromociones' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MAE_TarifasPromociones]ADD[AB_idEmbalaje] bigint NULL " +
                                        //Relaciones
                                        " ALTER TABLE [MAE_TarifasPromociones] WITH CHECK ADD CONSTRAINT[FK_MAE_TarifasPromociones_MAE_Embalajes] FOREIGN KEY([AB_idEmbalaje]) REFERENCES [MAE_Embalajes] ([id]) " +
                                        " ALTER TABLE [MAE_TarifasPromociones] CHECK CONSTRAINT[FK_MAE_TarifasPromociones_MAE_Embalajes] " +
                                    "END " +
                                    //CREAR TABLA MAE_PromocionesEsquema_Cabecera
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MAE_PromocionesEsquema_Cabecera' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MAE_PromocionesEsquema_Cabecera] " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [codigo] [varchar](10) NOT NULL, " +
                                            " [descripcion] [varchar](100) NOT NULL, " +
                                            " [clienteProveedor] [int] NOT NULL, " +
                                            " [noAplicarTarifa] [bit] NULL, " +
                                            " [fechaBorrado] [datetime] NULL, " +
                                        " CONSTRAINT[PK_MAE_PromocionesEsquema_Cabecera] 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 MAE_PromocionesEsquema_Lineas
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MAE_PromocionesEsquema_Lineas' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MAE_PromocionesEsquema_Lineas] " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [idPromocionEsquemaCabecera] [bigint] NOT NULL, " +
                                            " [idPromocionEsquemaLinea_Padre] [bigint] NULL, " +
                                            " [tipo] [int] NOT NULL, " +
                                            " [orden] [int] NOT NULL, " +
                                            " [descripcion] [varchar] (50) NULL, " +
                                            " [idTarifaPromocion] [bigint] NULL, " +
                                            " [condicionante_Cantidad_Desde_Operador] [varchar](1) NULL, " +
                                            " [condicionante_Cantidad_Desde_Valor] [decimal](18,3) NULL, " +
                                            " [condicionante_Cantidad_Hasta_Operador] [varchar](1) NULL, " +
                                            " [condicionante_Cantidad_Hasta_Valor] [decimal](18,3) NULL, " +
                                            " [condicionante_Y_O] [int] NULL, " +
                                            " [condicionante_Importe_Desde_Operador] [varchar](1) NULL, " +
                                            " [condicionante_Importe_Desde_Valor] [decimal](18,3) NULL, " +
                                            " [condicionante_Importe_Hasta_Operador] [varchar](1) NULL, " +
                                            " [condicionante_Importe_Hasta_Valor] [decimal](18,3) NULL, " +
                                        " CONSTRAINT[PK_MAE_PromocionesEsquema_Lineas] 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 [MAE_PromocionesEsquema_Lineas] WITH CHECK ADD CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_PromocionesEsquema_Cabecera] FOREIGN KEY([idPromocionEsquemaCabecera]) REFERENCES [MAE_PromocionesEsquema_Cabecera] ([id]) ON DELETE CASCADE " +
                                        " ALTER TABLE [MAE_PromocionesEsquema_Lineas] CHECK CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_PromocionesEsquema_Cabecera] " +

                                        " ALTER TABLE [MAE_PromocionesEsquema_Lineas] WITH CHECK ADD CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_PromocionesEsquema_Lineas] FOREIGN KEY([idPromocionEsquemaLinea_Padre]) REFERENCES [MAE_PromocionesEsquema_Lineas] ([id]) " +
                                        " ALTER TABLE [MAE_PromocionesEsquema_Lineas] CHECK CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_PromocionesEsquema_Lineas] " +

                                        " ALTER TABLE [MAE_PromocionesEsquema_Lineas] WITH CHECK ADD CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_TarifasPromociones] FOREIGN KEY([idTarifaPromocion]) REFERENCES [MAE_TarifasPromociones] ([id]) " +
                                        " ALTER TABLE [MAE_PromocionesEsquema_Lineas] CHECK CONSTRAINT[FK_MAE_PromocionesEsquema_Lineas_MAE_TarifasPromociones] " +
                                    " END " +
                                    //CREAR OPCION MAE_PROMOCIONESESQUEMA_CABECERA
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MAE_PROMOCIONESESQUEMA_CABECERA' " +
                                    ") " +
                                    "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('MAE_PROMOCIONESESQUEMA_CABECERA','Esquemas de promociones','Esquema de la promoción','Esquemas de promociones','Esquema de la promoción', 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('MAE_PROMOCIONESESQUEMA_CABECERA','Exferia_Maestros','Esquemas de promociones',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',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('MAE_PROMOCIONESESQUEMA_CABECERA',9, NULL,NULL,1) " +
                                    " END ";

    }
}
