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

namespace Exferia_EntityFramework.Script_Actualizacion
{
    class Scripts_Version_1242
    {
        public static Version G_VRS_VERSION = new Version("1.2.4.2");
        public static long G_LNG_VERSION = 1242;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    
                                    //CREAR OPCION VTA_COBROALBARAN
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'VTA_COBROALBARAN' " +
                                    ") " +
                                    "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('VTA_COBROALBARAN','Cobros albaran','Cobro albaran','Cobros albaran','Cobro albaran', 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('VTA_COBROALBARAN','Exferia_Ventas','Cobros albaran',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',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('VTA_COBROALBARAN',8, NULL,NULL,1) " +
                                    " END " +
                                    //CREAR TABLA VTA_CobrosAlbaranes
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'VTA_CobrosAlbaranes' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE[dbo].[VTA_CobrosAlbaranes] " +
                                        " ( " +
                                            " [id][bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [codigo] [bigint]NOT NULL, " +
                                            " [idAlbaranCabecera] [bigint]NOT NULL, " +
                                            " [fecha] [datetime]NOT NULL, " +
                                            " [idTesoreria] [bigint]NULL, " +
                                            " [comision][decimal](18, 2) NULL, " +
                                            " [correo][decimal](18, 2) NULL, " +
                                            " [porcentajeComision][decimal](18, 2) NULL, " +
                                            " [importeComision][decimal](18, 2) NULL, " +
                                            " [observaciones][varchar](250) NULL, " +
                                            " [fechaVencimientoTalon][datetime]NULL, " +
                                            " [efecto][bit]NULL, " +
                                            " [idTipoPago][bigint]NULL, " +
                                            " [idVendedor][bigint]NULL, " +
                                            " [idClaveAnalitica][bigint]NULL, " +
                                            " [idPredefinidoCabecera_Cobro][bigint]NULL, " +
                                            " [importe][decimal](18, 2) NOT NULL, " +
                                            " [estado][varchar](1) NOT NULL, " +
                                            " [fechaBorrado] [datetime]NULL, " +
                                            " [confirmado][datetime]NULL, " +
                                            " [tipoPantalla][int] NULL, " +
                                            " [mantenerPendiente][bit]NULL, " +
                                        " CONSTRAINT[PK_VTA_CobrosAlbaranes] 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].[VTA_CobrosAlbaranes] WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_CTA_ClavesAnaliticas] FOREIGN KEY([idClaveAnalitica])REFERENCES[dbo].[CTA_ClavesAnaliticas] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_CTA_ClavesAnaliticas] " +

                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_CTA_PredefinidosCabeceras] FOREIGN KEY([idPredefinidoCabecera_Cobro])REFERENCES[dbo].[CTA_PredefinidosCabeceras] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_CTA_PredefinidosCabeceras] " +
                 
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_Tesorerias] FOREIGN KEY([idTesoreria]) REFERENCES[dbo].[MAE_Tesorerias] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_Tesorerias] " +

                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes]WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_TiposPagos] FOREIGN KEY([idTipoPago]) REFERENCES[dbo].[MAE_TiposPagos] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_TiposPagos] " +

                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_Vendedores] FOREIGN KEY([idVendedor]) REFERENCES[dbo].[MAE_Vendedores] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_MAE_Vendedores] " +

                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] WITH CHECK ADD CONSTRAINT[FK_VTA_CobrosAlbaranes_VTA_AlbaranesCabecera] FOREIGN KEY([idAlbaranCabecera]) REFERENCES[dbo].[VTA_AlbaranesCabecera] ([id]) " +
                                        " ALTER TABLE[dbo].[VTA_CobrosAlbaranes] CHECK CONSTRAINT[FK_VTA_CobrosAlbaranes_VTA_AlbaranesCabecera] " +
                                    " END " +
                                    //AÑADIR campo tipoPantalla a la tabla VTA_AlbaranesCabecera
                                    " IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='tipoPantalla' AND TABLE_NAME = 'VTA_AlbaranesCabecera' " +
                                      ") " +
                                    " BEGIN " +
                                        " ALTER TABLE [VTA_AlbaranesCabecera]ADD[tipoPantalla] int NULL  " +
                                    " END " +
                                    //AÑADIR campo importe a la tabla VTA_AlbaranesCabecera
                                    " IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='importe' AND TABLE_NAME = 'VTA_AlbaranesCabecera' " +
                                      ") " +
                                    " BEGIN " +
                                        " ALTER TABLE [VTA_AlbaranesCabecera]ADD[importe] decimal(18,2) NULL  " +
                                    " END " +
                                    //AÑADIR campo permiteCobrarAlbaran a la tabla GEN_Empresas
                                    " IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='permiteCobrarAlbaran' AND TABLE_NAME = 'GEN_Empresas' " +
                                      ") " +
                                    " BEGIN " +
                                        " ALTER TABLE [GEN_Empresas]ADD[permiteCobrarAlbaran] bit NULL  " +
                                    " END " +
                                    //AÑADIR campo permiteCobrarAlbaran a la tabla MAE_Clientes
                                    " IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='permiteCobrarAlbaran' AND TABLE_NAME = 'MAE_Clientes' " +
                                      ") " +
                                    " BEGIN " +
                                        " ALTER TABLE [MAE_Clientes]ADD[permiteCobrarAlbaran] bit NULL  " +
                                    " END "; 
                                   



    }
}
