git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES2/trunk@20 40301925-124e-1c4e-b97d-170ad7a8785b
310 lines
9.1 KiB
SQL
310 lines
9.1 KiB
SQL
crear tablas para migrar
|
||
|
||
CREATE TABLE PRESUPUESTOSVIEJOS (
|
||
CODIGOEMPRESA SMALLINT ,
|
||
CODIGO INTEGER ,
|
||
FECHAALTA DATE ,
|
||
USUARIO VARCHAR(100) ,
|
||
CODIGOCONTACTO INTEGER ,
|
||
TIPO VARCHAR(10) NOT NULL,
|
||
FECHAPRESUPUESTO DATE ,
|
||
VIGENCIAPRESUPUESTO DATE ,
|
||
SITUACION VARCHAR(30) ,
|
||
FECHADECISION DATE ,
|
||
BASEIMPONIBLE NUMERIC(11,2) DEFAULT 0 ,
|
||
DESCUENTO FLOAT ,
|
||
IMPORTEDESCUENTO NUMERIC(11,2) DEFAULT 0 ,
|
||
IVA FLOAT ,
|
||
IMPORTEIVA NUMERIC(11,2) DEFAULT 0 ,
|
||
IMPORTETOTAL NUMERIC(11,2) DEFAULT 0 ,
|
||
OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
PLAZOENTREGA BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
FORMAPAGO BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
OPCION VARCHAR(100) ,
|
||
BAJA CHAR(1) DEFAULT 'N',
|
||
SITUACION_MONTAJE VARCHAR(30) ,
|
||
CODIGO_CONTACTO INTEGER ,
|
||
NIFCIF VARCHAR(10) ,
|
||
NOMBRE VARCHAR(100) ,
|
||
NOTAS VARCHAR(2000) ,
|
||
CALLE VARCHAR(150) ,
|
||
PROVINCIA VARCHAR(30) ,
|
||
CODIGOPOSTAL VARCHAR(5) ,
|
||
POBLACION VARCHAR(40) ,
|
||
TELEFONO1 VARCHAR(30) ,
|
||
TELEFONO2 VARCHAR(30) ,
|
||
MOVIL VARCHAR(30) ,
|
||
FAX VARCHAR(30) ,
|
||
CORREO1 VARCHAR(60) ,
|
||
CORREO2 VARCHAR(60) ,
|
||
PAGINAWEB VARCHAR(100) ,
|
||
PERSONACONTACTO VARCHAR(100) ,
|
||
BAJA_LOGICA SMALLINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
|
||
CREATE TABLE PRESUPUESTOSVIEJOS_DETALLES (
|
||
CODIGOPRESUPUESTO INTEGER ,
|
||
NUMCONCEPTO SMALLINT ,
|
||
POSICION SMALLINT NOT NULL,
|
||
TIPO CHAR(1),
|
||
DESCRIPCION VARCHAR(2000) ,
|
||
CANTIDAD NUMERIC(9,0) ,
|
||
PUNTOS INTEGER ,
|
||
IMPORTEPUNTOS NUMERIC(11,2) DEFAULT 0 ,
|
||
IMPORTEUNIDAD NUMERIC(11,2) DEFAULT 0 ,
|
||
IMPORTETOTAL NUMERIC(11,2) DEFAULT 0 ,
|
||
VISIBLE CHAR(1) DEFAULT 'S' NOT NULL ,
|
||
VALORADO CHAR(1) NOT NULL
|
||
);
|
||
|
||
|
||
|
||
//CARGAMOS LAS TABLAS
|
||
|
||
insert into presupuestosviejos
|
||
select
|
||
presupuestos.CODIGOEMPRESA,
|
||
presupuestos.CODIGO,
|
||
presupuestos.FECHAALTA,
|
||
presupuestos.USUARIO,
|
||
CODIGOCONTACTO,
|
||
TIPO,
|
||
FECHAPRESUPUESTO,
|
||
VIGENCIAPRESUPUESTO,
|
||
SITUACION,
|
||
FECHADECISION,
|
||
BASEIMPONIBLE,
|
||
DESCUENTO,
|
||
IMPORTEDESCUENTO,
|
||
IVA,
|
||
IMPORTEIVA,
|
||
IMPORTETOTAL,
|
||
OBSERVACIONES,
|
||
PLAZOENTREGA,
|
||
FORMAPAGO,
|
||
OPCION,
|
||
BAJA,
|
||
SITUACION_MONTAJE,
|
||
contactos.CODIGO as CODIGO_CONTACTO,
|
||
NIFCIF,
|
||
NOMBRE,
|
||
NOTAS,
|
||
CALLE,
|
||
PROVINCIA,
|
||
CODIGOPOSTAL,
|
||
POBLACION,
|
||
TELEFONO1,
|
||
TELEFONO2,
|
||
MOVIL,
|
||
FAX,
|
||
CORREO1,
|
||
CORREO2,
|
||
PAGINAWEB,
|
||
PERSONACONTACTO,
|
||
BAJA_LOGICA
|
||
from presupuestos
|
||
left join contactos on (contactos.codigo = presupuestos.codigocontacto)
|
||
where fechapresupuesto > '2020.01.01'
|
||
|
||
|
||
insert into PRESUPUESTOSVIEJOS_DETALLES
|
||
select *
|
||
from detallespresupuestos
|
||
where codigopresupuesto in (select codigo from presupuestosviejos);
|
||
|
||
|
||
|
||
migramos las dos tablas a la nueva base de datos
|
||
|
||
creamos las tablas
|
||
|
||
|
||
CREATE TABLE PRESUPUESTOSVIEJOS (
|
||
CODIGOEMPRESA SMALLINT,
|
||
CODIGO INTEGER,
|
||
FECHAALTA DATE,
|
||
USUARIO VARCHAR(100),
|
||
CODIGOCONTACTO INTEGER,
|
||
TIPO VARCHAR(10) NOT NULL,
|
||
FECHAPRESUPUESTO DATE ,
|
||
VIGENCIAPRESUPUESTO DATE ,
|
||
SITUACION VARCHAR(30) ,
|
||
FECHADECISION DATE ,
|
||
BASEIMPONIBLE NUMERIC(11,2) DEFAULT 0 ,
|
||
DESCUENTO FLOAT ,
|
||
IMPORTEDESCUENTO NUMERIC(11,2) DEFAULT 0 ,
|
||
IVA FLOAT ,
|
||
IMPORTEIVA NUMERIC(11,2) DEFAULT 0 ,
|
||
IMPORTETOTAL NUMERIC(11,2) DEFAULT 0 ,
|
||
OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
PLAZOENTREGA BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
FORMAPAGO BLOB SUB_TYPE 1 SEGMENT SIZE 100 ,
|
||
OPCION VARCHAR(100) ,
|
||
BAJA CHAR(1) DEFAULT 'N',
|
||
SITUACION_MONTAJE VARCHAR(30) ,
|
||
CODIGO_CONTACTO INTEGER ,
|
||
NIFCIF VARCHAR(10) ,
|
||
NOMBRE VARCHAR(100) ,
|
||
NOTAS VARCHAR(2000) ,
|
||
CALLE VARCHAR(150) ,
|
||
PROVINCIA VARCHAR(30) ,
|
||
CODIGOPOSTAL VARCHAR(5) ,
|
||
POBLACION VARCHAR(40) ,
|
||
TELEFONO1 VARCHAR(30) ,
|
||
TELEFONO2 VARCHAR(30) ,
|
||
MOVIL VARCHAR(30) ,
|
||
FAX VARCHAR(30) ,
|
||
CORREO1 VARCHAR(60) ,
|
||
CORREO2 VARCHAR(60) ,
|
||
PAGINAWEB VARCHAR(100) ,
|
||
PERSONACONTACTO VARCHAR(100) ,
|
||
BAJA_LOGICA SMALLINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
CREATE TABLE PRESUPUESTOSVIEJOS_DETALLES (
|
||
CODIGOPRESUPUESTO INTEGER,
|
||
NUMCONCEPTO SMALLINT ,
|
||
POSICION SMALLINT NOT NULL,
|
||
TIPO CHAR(1),
|
||
DESCRIPCION VARCHAR(2000),
|
||
CANTIDAD NUMERIC(9,0),
|
||
PUNTOS INTEGER,
|
||
IMPORTEPUNTOS NUMERIC(11,2) DEFAULT 0,
|
||
IMPORTEUNIDAD NUMERIC(11,2) DEFAULT 0,
|
||
IMPORTETOTAL NUMERIC(11,2) DEFAULT 0,
|
||
VISIBLE CHAR(1) DEFAULT 'S' NOT NULL,
|
||
VALORADO CHAR(1) NOT NULL
|
||
);
|
||
|
||
|
||
exportamos metadata e importamos en la nueva
|
||
|
||
//INSERTAMOS LOS PRESUPUESTO EN LOS CONTRATOS
|
||
insert into contratos_cliente
|
||
select GEN_ID(GEN_PRESUPUESTOS_CLI_ID, 1), 1, null, nifcif, nombre, calle, poblacion, provincia, codigopostal, 'PRE20/000' || GEN_ID(GEN_EMPRESAS_ID, 1), FECHAPRESUPUESTO, SITUACION,
|
||
FORMAPAGO, PLAZOENTREGA, OBSERVACIONES, null, 0, fechaalta, fechaalta, 'carga_inicial',
|
||
baseimponible, null, descuento, importedescuento, baseimponible - importedescuento, iva, importeiva, importetotal, 6, 1, null,
|
||
case
|
||
when iva is null then 4
|
||
when iva = 21 then 7
|
||
else 4
|
||
end,
|
||
|
||
codigo_contacto,
|
||
0,
|
||
0,
|
||
0,
|
||
null, null, null, tipo, null, null, opcion, fechadecision, null, codigo
|
||
|
||
from presupuestosviejos
|
||
|
||
|
||
|
||
update contratos_cliente
|
||
set importe_descuento = 0
|
||
where importe_descuento is null
|
||
|
||
update contratos_cliente
|
||
set importe_porte = 0
|
||
where importe_porte is null
|
||
|
||
|
||
|
||
create view V_clientesViejos(
|
||
nifcif, nombre, calle, poblacion, provincia, codigopostal,
|
||
telefono1, telefono2, movil, movil2, fax,
|
||
correo1, correo2, paginaweb, notas,
|
||
fechaalta, fechamodificacion, codigo_contacto
|
||
)
|
||
as
|
||
|
||
select distinct nifcif, nombre, calle, poblacion, provincia, codigopostal,
|
||
substr(telefono1,1,24), substr(telefono2,1,24), substr(movil,1,24), substr(fax,1,24), substr(fax,1,24),
|
||
correo1, correo2, paginaweb, notas,
|
||
current_date , current_date , codigo_contacto
|
||
from presupuestosviejos;
|
||
|
||
|
||
|
||
//CREAMOS LOS CONTACTOS NUEVOS
|
||
insert into contactos
|
||
select GEN_ID(GEN_CONTACTOS_ID, 1), nifcif, nombre, calle, poblacion, provincia, codigopostal,
|
||
telefono1, telefono2, movil, movil2, fax,
|
||
correo1, correo2, paginaweb, notas,
|
||
fechaalta, fechaalta, 'carga_inicial', 'CL20/000' || GEN_ID(GEN_PRESUPUESTOS_CLI_ID, 1), codigo_contacto, 1
|
||
|
||
from V_clientesViejos
|
||
|
||
|
||
//A<EFBFBD>adimos como clientes
|
||
insert into contactos_categorias
|
||
select id, 1
|
||
from contactos
|
||
where id < 10000
|
||
|
||
//A<EFBFBD>adimos el premiso para la empreas
|
||
insert into empresas_contactos
|
||
select GEN_ID(GEN_EMPRESAS_CONTACTOS_ID, 1), 1, id
|
||
from contactos
|
||
where id < 10000
|
||
|
||
//Insertamos tupla vacia de clientes_datos a todos los clientes
|
||
insert into clientes_datos (id_cliente)
|
||
select id
|
||
from contactos
|
||
where usuario = 'carga_inicial';
|
||
|
||
|
||
|
||
//Enlazamos los clientes
|
||
update contratos_cliente
|
||
set contratos_cliente.id_cliente = (select contactos.ID from contactos where ((contactos.PERSONA_CONTACTO is not null) and (contactos.PERSONA_CONTACTO = contratos_cliente.persona_contacto))),
|
||
situacion = upper(situacion)
|
||
where contratos_cliente.id_cliente is null;
|
||
|
||
|
||
|
||
|
||
|
||
insert into contratos_cliente_detalles
|
||
select GEN_ID(GEN_CONTRATOS_CLI_DETALLE_ID, 1),
|
||
(select contratos_cliente.ID from contratos_cliente where ((contratos_cliente.campo_libre is not null) and (contratos_cliente.campo_libre = presupuestosviejos_detalles.codigopresupuesto))),
|
||
presupuestosviejos_detalles.posicion,
|
||
case
|
||
when tipo = 'C' then 'Concepto'
|
||
when tipo = 'T' then 'Titulo'
|
||
when tipo = 'S' then 'Subtotal'
|
||
end,
|
||
null,
|
||
'C',
|
||
null,
|
||
descripcion,
|
||
case
|
||
when importeunidad is null then null
|
||
else cantidad
|
||
end,
|
||
importeunidad,
|
||
null,
|
||
null,
|
||
importetotal,
|
||
case
|
||
when visible = 'S' then 1
|
||
when visible = 'N' then 0
|
||
end,
|
||
current_date,
|
||
current_date,
|
||
case
|
||
when valorado = 'S' then 1
|
||
when valorado = 'N' then 0
|
||
end
|
||
|
||
from presupuestosviejos_detalles
|
||
|
||
|
||
|
||
|
||
update contratos_cliente_detalles
|
||
set posicion = posicion-1
|
||
where posicion is not null
|
||
and id_contrato < 4235 |