DROP VIEW V_EMPLEADOS;
DROP VIEW V_PROVEEDORES;
DROP VIEW V_CLIENTES;
DROP VIEW V_CONTACTOS;



CREATE VIEW V_CONTACTOS(
    ID,
    ID_CATEGORIA,
    NIF_CIF,
    NOMBRE,
    PERSONA_CONTACTO,
    CALLE,
    POBLACION,
    PROVINCIA,
    CODIGO_POSTAL,
    TELEFONO_1,
    TELEFONO_2,
    MOVIL_1,
    MOVIL_2,
    FAX,
    EMAIL_1,
    EMAIL_2,
    PAGINA_WEB,
    NOTAS,
    FECHA_ALTA,
    FECHA_MODIFICACION,
    USUARIO,
    ID_EMPRESA,
    REFERENCIA)
AS
SELECT CONTACTOS.ID,
       CONTACTOS_CATEGORIAS.ID_CATEGORIA,
       CONTACTOS.NIF_CIF,
       CONTACTOS.NOMBRE,
       CONTACTOS.PERSONA_CONTACTO,
       CONTACTOS.CALLE,
       CONTACTOS.POBLACION,
       CONTACTOS.PROVINCIA,
       CONTACTOS.CODIGO_POSTAL,
       CONTACTOS.TELEFONO_1,
       CONTACTOS.TELEFONO_2,
       CONTACTOS.MOVIL_1,
       CONTACTOS.MOVIL_2,
       CONTACTOS.FAX,
       CONTACTOS.EMAIL_1,
       CONTACTOS.EMAIL_2,
       CONTACTOS.PAGINA_WEB,
       CONTACTOS.NOTAS,
       CONTACTOS.FECHA_ALTA,
       CONTACTOS.FECHA_MODIFICACION,
       CONTACTOS.USUARIO,
       EMPRESAS_CONTACTOS.ID_EMPRESA,
       CONTACTOS.REFERENCIA
FROM CONTACTOS
     INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO =
     CONTACTOS.ID)
     INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO =
     CONTACTOS.ID);


CREATE VIEW V_CLIENTES(
    ID,
    ID_CATEGORIA,
    NIF_CIF,
    NOMBRE,
    PERSONA_CONTACTO,
    CALLE,
    POBLACION,
    PROVINCIA,
    CODIGO_POSTAL,
    TELEFONO_1,
    TELEFONO_2,
    MOVIL_1,
    MOVIL_2,
    FAX,
    EMAIL_1,
    EMAIL_2,
    PAGINA_WEB,
    NOTAS,
    FECHA_ALTA,
    FECHA_MODIFICACION,
    USUARIO,
    ID_EMPRESA,
    REFERENCIA,
    GRUPO_CLIENTE,
    NOMBRE_COMERCIAL,
    VENCIMIENTO_FACTURAS,
    BLOQUEADO,
    REGIMEN_IVA,
    MOTIVO_BLOQUEO,
    RECARGO_EQUIVALENCIA,
    ID_TIPO_IVA,
    ID_FORMA_PAGO,
    TIENDA_WEB,
    CODIGO_ASIGNADO)
AS
SELECT
  V_CONTACTOS.ID,
  V_CONTACTOS.ID_CATEGORIA,
  V_CONTACTOS.NIF_CIF,
  V_CONTACTOS.NOMBRE,
  V_CONTACTOS.PERSONA_CONTACTO,
  V_CONTACTOS.CALLE,
  V_CONTACTOS.POBLACION,
  V_CONTACTOS.PROVINCIA,
  V_CONTACTOS.CODIGO_POSTAL,
  V_CONTACTOS.TELEFONO_1,
  V_CONTACTOS.TELEFONO_2,
  V_CONTACTOS.MOVIL_1,
  V_CONTACTOS.MOVIL_2,
  V_CONTACTOS.FAX,
  V_CONTACTOS.EMAIL_1,
  V_CONTACTOS.EMAIL_2,
  V_CONTACTOS.PAGINA_WEB,
  V_CONTACTOS.NOTAS,
  V_CONTACTOS.FECHA_ALTA,
  V_CONTACTOS.FECHA_MODIFICACION,
  V_CONTACTOS.USUARIO,
  V_CONTACTOS.ID_EMPRESA,
  V_CONTACTOS.REFERENCIA,
  CLIENTES_DATOS.GRUPO_CLIENTE,
  CLIENTES_DATOS.NOMBRE_COMERCIAL,
  CLIENTES_DATOS.VENCIMIENTO_FACTURAS,
  CLIENTES_DATOS.BLOQUEADO,
  CLIENTES_DATOS.REGIMEN_IVA,
  CLIENTES_DATOS.MOTIVO_BLOQUEO,
  CLIENTES_DATOS.RECARGO_EQUIVALENCIA,
  CLIENTES_DATOS.ID_TIPO_IVA,
  CLIENTES_DATOS.ID_FORMA_PAGO,
  CLIENTES_DATOS.TIENDA_WEB,
  CLIENTES_DATOS.CODIGO_ASIGNADO
FROM
  V_CONTACTOS
  LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE)
WHERE
  V_CONTACTOS.ID_CATEGORIA = 1;
  

CREATE VIEW V_PROVEEDORES(
    ID,
    ID_CATEGORIA,
    NIF_CIF,
    NOMBRE,
    PERSONA_CONTACTO,
    CALLE,
    POBLACION,
    PROVINCIA,
    CODIGO_POSTAL,
    TELEFONO_1,
    TELEFONO_2,
    MOVIL_1,
    MOVIL_2,
    FAX,
    EMAIL_1,
    EMAIL_2,
    PAGINA_WEB,
    NOTAS,
    FECHA_ALTA,
    FECHA_MODIFICACION,
    USUARIO,
    ID_EMPRESA,
    REFERENCIA,
    DESCUENTO,
    DESCRIPCION_PROVEEDOR,
    CODIGO_ASIGNADO,
    GRUPO_PROVEEDOR,
    REGIMEN_IVA,
    ID_TIPO_IVA,
    ID_FORMA_PAGO,
    TIENDA_WEB,
    HOMOLOGADO,
    CERTIFICACION)
AS
SELECT
  V_CONTACTOS.ID,
  V_CONTACTOS.ID_CATEGORIA,
  V_CONTACTOS.NIF_CIF,
  V_CONTACTOS.NOMBRE,
  V_CONTACTOS.PERSONA_CONTACTO,
  V_CONTACTOS.CALLE,
  V_CONTACTOS.POBLACION,
  V_CONTACTOS.PROVINCIA,
  V_CONTACTOS.CODIGO_POSTAL,
  V_CONTACTOS.TELEFONO_1,
  V_CONTACTOS.TELEFONO_2,
  V_CONTACTOS.MOVIL_1,
  V_CONTACTOS.MOVIL_2,
  V_CONTACTOS.FAX,
  V_CONTACTOS.EMAIL_1,
  V_CONTACTOS.EMAIL_2,
  V_CONTACTOS.PAGINA_WEB,
  V_CONTACTOS.NOTAS,
  V_CONTACTOS.FECHA_ALTA,
  V_CONTACTOS.FECHA_MODIFICACION,
  V_CONTACTOS.USUARIO,
  V_CONTACTOS.ID_EMPRESA,
  V_CONTACTOS.REFERENCIA,
  PROVEEDORES_DATOS.DESCUENTO,
  PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR,
  PROVEEDORES_DATOS.CODIGO_ASIGNADO,
  PROVEEDORES_DATOS.GRUPO_PROVEEDOR,
  PROVEEDORES_DATOS.REGIMEN_IVA,
  PROVEEDORES_DATOS.ID_TIPO_IVA,
  PROVEEDORES_DATOS.ID_FORMA_PAGO,
  PROVEEDORES_DATOS.TIENDA_WEB,
  PROVEEDORES_DATOS.HOMOLOGADO,
  PROVEEDORES_DATOS.CERTIFICACION
FROM
  PROVEEDORES_DATOS
  INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID)
WHERE
  V_CONTACTOS.ID_CATEGORIA = 2;
  

CREATE VIEW V_EMPLEADOS(
    ID,
    ID_CATEGORIA,
    NIF_CIF,
    NOMBRE,
    PERSONA_CONTACTO,
    CALLE,
    POBLACION,
    PROVINCIA,
    CODIGO_POSTAL,
    TELEFONO_1,
    TELEFONO_2,
    MOVIL_1,
    MOVIL_2,
    FAX,
    EMAIL_1,
    EMAIL_2,
    PAGINA_WEB,
    NOTAS,
    FECHA_ALTA,
    FECHA_MODIFICACION,
    USUARIO,
    ID_EMPRESA,
    REFERENCIA,
    FECHA_NACIMIENTO,
    CATEGORIA,
    FECHA_ALTA_EMPRESA,
    FORMACION_BASE,
    FORMACION_COMPLE,
    FORMACION_RECIBIDA,
    EXPERIENCIA)
AS
SELECT V_CONTACTOS.ID,
  V_CONTACTOS.ID_CATEGORIA,
  V_CONTACTOS.NIF_CIF,
  V_CONTACTOS.NOMBRE,
  V_CONTACTOS.PERSONA_CONTACTO,
  V_CONTACTOS.CALLE,
  V_CONTACTOS.POBLACION,
  V_CONTACTOS.PROVINCIA,
  V_CONTACTOS.CODIGO_POSTAL,
  V_CONTACTOS.TELEFONO_1,
  V_CONTACTOS.TELEFONO_2,
  V_CONTACTOS.MOVIL_1,
  V_CONTACTOS.MOVIL_2,
  V_CONTACTOS.FAX,
  V_CONTACTOS.EMAIL_1,
  V_CONTACTOS.EMAIL_2,
  V_CONTACTOS.PAGINA_WEB,
  V_CONTACTOS.NOTAS,
  V_CONTACTOS.FECHA_ALTA,
  V_CONTACTOS.FECHA_MODIFICACION,
  V_CONTACTOS.USUARIO,
  V_CONTACTOS.ID_EMPRESA, 
  V_CONTACTOS.REFERENCIA,
  
  EMPLEADOS_DATOS.FECHA_NACIMIENTO,
  EMPLEADOS_DATOS.CATEGORIA,
  EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA,
  EMPLEADOS_DATOS.FORMACION_BASE,
  EMPLEADOS_DATOS.FORMACION_COMPLE,
  EMPLEADOS_DATOS.FORMACION_RECIBIDA,
  EMPLEADOS_DATOS.EXPERIENCIA
  
FROM V_CONTACTOS
INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID)

WHERE V_CONTACTOS.ID_CATEGORIA = 3;





