IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_movimientos]'))
DROP VIEW [dbo].V_Mov_movimientos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosNombre]'))
DROP VIEW [dbo].V_ArticulosNombre
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasSoloNombre]'))
DROP VIEW [dbo].V_PersonasSoloNombre
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraEstados]'))
DROP VIEW [dbo].[V_AlbCompraEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbVentaEstados]'))
DROP VIEW [dbo].[V_AlbVentaEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_articulo]'))
DROP VIEW [dbo].[V_estoc_articulo]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Necesidades]'))
DROP VIEW [dbo].[V_Necesidades]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_lote]'))
DROP VIEW [dbo].[V_estoc_lote]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_lote_temporal]'))
DROP VIEW [dbo].[V_estoc_lote_temporal]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraEstados]'))
DROP VIEW [dbo].[V_PedCompraEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PresVentaEstados]'))
DROP VIEW [dbo].[V_PresVentaEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedVentaEstados]'))
DROP VIEW [dbo].[V_PedVentaEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedVentaDatosExpedicion]'))
DROP VIEW [dbo].V_PedVentaDatosExpedicion
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc]'))
DROP VIEW [dbo].[V_Movimientos_estoc]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc_temporal]'))
DROP VIEW [dbo].[V_Movimientos_estoc_temporal]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosAlbCompra]'))
DROP VIEW [dbo].[V_DocLinEstadosAlbCompra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos]'))
DROP VIEW [dbo].[V_Movimientos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosAlbVenta]'))
DROP VIEW [dbo].[V_DocLinEstadosAlbVenta]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPedCompra]'))
DROP VIEW [dbo].[V_DocLinEstadosPedCompra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPedVenta]'))
DROP VIEW [dbo].[V_DocLinEstadosPedVenta]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPresVenta]'))
DROP VIEW [dbo].[V_DocLinEstadosPresVenta]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstados]'))
DROP VIEW [dbo].[V_DocLinEstados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_albaranes_compra]'))
DROP VIEW [dbo].[V_Mov_albaranes_compra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_albaranes_venta]'))
DROP VIEW [dbo].[V_Mov_albaranes_venta]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_alb_liq]'))
DROP VIEW [dbo].[V_Mov_alb_liq]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_facturas_compra]'))
DROP VIEW [dbo].[V_Mov_facturas_compra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_facturas_venta]'))
DROP VIEW [dbo].[V_Mov_facturas_venta]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_facturas_simpl]'))
DROP VIEW [dbo].V_Mov_facturas_simpl
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasImpuestos]'))
DROP VIEW [dbo].[FacturasVentaLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasLotes]'))
DROP VIEW [dbo].[FacturasVentaLineasLotes]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaImpuestos]'))
DROP VIEW [dbo].[FacturasVentaImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[FacturasVentaLineasIvasImpuestos]'))
DROP VIEW [FacturasVentaLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasRepartos]'))
DROP VIEW [dbo].[FacturasVentaLineasRepartos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineas]'))
DROP VIEW [dbo].FacturasVentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaIvas]'))
DROP VIEW [dbo].[FacturasVentaIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaVencimientos]'))
DROP VIEW [dbo].[FacturasVentaVencimientos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVenta]'))
DROP VIEW [dbo].[FacturasVenta]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasImpuestos]'))
DROP VIEW [dbo].[FacturasCompraLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasLotes]'))
DROP VIEW [dbo].[FacturasCompraLineasLotes]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraImpuestos]'))
DROP VIEW [dbo].[FacturasCompraImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[FacturasCompraLineasIvasImpuestos]'))
DROP VIEW [FacturasCompraLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasRepartos]'))
DROP VIEW [dbo].[FacturasCompraLineasRepartos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineas]'))
DROP VIEW [dbo].FacturasCompraLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraIvas]'))
DROP VIEW [dbo].[FacturasCompraIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraVencimientos]'))
DROP VIEW [dbo].[FacturasCompraVencimientos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompra]'))
DROP VIEW [dbo].[FacturasCompra]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasImpuestos]'))
DROP VIEW [dbo].[AlbaranesCompraLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasLotes]'))
DROP VIEW [dbo].[AlbaranesCompraLineasLotes]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraImpuestos]'))
DROP VIEW [dbo].[AlbaranesCompraImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[AlbaranesCompraLineasIvasImpuestos]'))
DROP VIEW [AlbaranesCompraLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasRepartos]'))
DROP VIEW [dbo].[AlbaranesCompraLineasRepartos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineas]'))
DROP VIEW [dbo].AlbaranesCompraLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraIvas]'))
DROP VIEW [dbo].[AlbaranesCompraIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompra]'))
DROP VIEW [dbo].[AlbaranesCompra]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasImpuestos]'))
DROP VIEW [dbo].[AlbaranesVentaLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasLotes]'))
DROP VIEW [dbo].[AlbaranesVentaLineasLotes]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaImpuestos]'))
DROP VIEW [dbo].[AlbaranesVentaImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[AlbaranesVentaLineasIvasImpuestos]'))
DROP VIEW [AlbaranesVentaLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasRepartos]'))
DROP VIEW [dbo].[AlbaranesVentaLineasRepartos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineas]'))
DROP VIEW [dbo].AlbaranesVentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaIvas]'))
DROP VIEW [dbo].[AlbaranesVentaIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVenta]'))
DROP VIEW [dbo].[AlbaranesVenta]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasLotes]'))
DROP VIEW [dbo].[PedidosVentaLineasLotes]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasLotes]'))
DROP VIEW [dbo].PedidosCompraLineasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasLotesVariedades]'))
DROP VIEW [dbo].PedidosCompraLineasLotesVariedades
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasImpuestos]'))
DROP VIEW [dbo].[PedidosVentaLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaImpuestos]'))
DROP VIEW [dbo].[PedidosVentaImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[PedidosVentaLineasIvasImpuestos]'))
DROP VIEW [PedidosVentaLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineas]'))
DROP VIEW [dbo].PedidosVentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaIvas]'))
DROP VIEW [dbo].[PedidosVentaIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVenta]'))
DROP VIEW [dbo].[PedidosVenta]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasImpuestos]'))
DROP VIEW [dbo].[PedidosCompraLineasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraImpuestos]'))
DROP VIEW [dbo].[PedidosCompraImpuestos]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraImpuestos]'))
DROP VIEW [dbo].ContratosCompraImpuestos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[PedidosCompraLineasIvasImpuestos]'))
DROP VIEW [PedidosCompraLineasIvasImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineas]'))
DROP VIEW [dbo].PedidosCompraLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraIvas]'))
DROP VIEW [dbo].[PedidosCompraIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraIvas]'))
DROP VIEW [dbo].[ContratosCompraIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaIvas]'))
DROP VIEW [dbo].[ContratosVentaIvas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompra]'))
DROP VIEW [dbo].[PedidosCompra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinAsociados]'))
DROP VIEW [dbo].[V_DocLinAsociados]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesCompra]'))
DROP VIEW [dbo].[V_AlbaranesCompra]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PresupuestosVenta]'))
DROP VIEW [dbo].[V_PresupuestosVenta]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosCompra]'))
DROP VIEW [dbo].[V_PedidosCompra]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosDescripciones]'))
DROP VIEW [dbo].[V_VencimientosDescripciones]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasMesCliente]'))
DROP VIEW [dbo].[V_VentasMesCliente]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasMesClienteArticulo]'))
DROP VIEW [dbo].[V_VentasMesClienteArticulo]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AsientosCabecera]'))
DROP VIEW [dbo].[V_AsientosCabecera]
GO



IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovimientosN43Descripciones]'))
DROP VIEW [dbo].[V_MovimientosN43Descripciones]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_IncidenciasDescripciones]'))
DROP VIEW [dbo].[V_IncidenciasDescripciones]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PlantillasPreciosLiquidacion]'))
DROP VIEW [dbo].[V_PlantillasPreciosLiquidacion]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Clientes]'))
DROP VIEW [dbo].[Clientes]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Clientes_seccion_credito]'))
DROP VIEW [dbo].[Clientes_seccion_credito]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Socios]'))
DROP VIEW [dbo].[Socios]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Proveedores]'))
DROP VIEW [dbo].[Proveedores]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Representantes]'))
DROP VIEW [dbo].[Representantes]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Personas]'))
DROP VIEW [dbo].[V_Personas]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasShort]'))
DROP VIEW [dbo].[V_PersonasShort]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Municipios]'))
DROP VIEW [dbo].[V_Municipios]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasMunicipios]'))
DROP VIEW [dbo].[V_FincasMunicipios]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_IvasPersonasArticulos]'))
DROP VIEW [dbo].V_IvasPersonasArticulos
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosEstadistica]'))
DROP VIEW [dbo].[V_SegurosEstadistica]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosNoRenovados]'))
DROP VIEW [dbo].[V_SegurosNoRenovados]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosNuevos]'))
DROP VIEW [dbo].[V_SegurosNuevos]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosVisitas]'))
DROP VIEW [dbo].[V_SegurosVisitas]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TipoInformeParametroDescripciones]'))
DROP VIEW [dbo].[V_TipoInformeParametroDescripciones]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiq]'))
DROP VIEW [dbo].V_AlbLiq
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLin]'))
DROP VIEW [dbo].V_AlbLiqLin
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinPartSociosUnidos]'))
DROP VIEW [dbo].V_AlbLiqLinPartSociosUnidos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ALbLiqLinPartEstados]'))
DROP VIEW [dbo].V_ALbLiqLinPartEstados 

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinTotal]'))
DROP VIEW [dbo].V_AlbLiqLinTotal
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinPart]'))
DROP VIEW [dbo].V_AlbLiqLinPart
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParam]'))
DROP VIEW [dbo].V_AlbLiqLinParam
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VisitasClienteThreeYears]'))
DROP VIEW [dbo].V_VisitasClienteThreeYears
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VisitasClienteYear]'))
DROP VIEW [dbo].V_VisitasClienteYear
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosClientes]'))
DROP VIEW [dbo].[V_SegurosClientes]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Dtos_articulo_persona]'))
DROP VIEW [dbo].V_Dtos_articulo_persona
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Denom_origen_sellos]'))
DROP VIEW [dbo].V_Denom_origen_sellos
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Tarifas_articulo_cliente]'))
DROP VIEW [dbo].V_Tarifas_articulo_cliente
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Tarifas_articulo_persona]'))
DROP VIEW [dbo].V_Tarifas_articulo_persona
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ped_venta_previo]'))
DROP VIEW [dbo].V_Ped_venta_previo
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ped_venta_previo_lineas]'))
DROP VIEW [dbo].V_Ped_venta_previo_lineas
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Productores]'))
DROP VIEW [dbo].V_Productores
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProductoresDescripciones]'))
DROP VIEW [dbo].V_ProductoresDescripciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasProductoresDescripciones]'))
DROP VIEW [dbo].V_FincasProductoresDescripciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CampañasAbiertasAlb]'))
DROP VIEW [dbo].V_CampañasAbiertasAlb
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Campañas]'))
DROP VIEW [dbo].V_Campañas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Op]'))
DROP VIEW [dbo].V_Op
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCierres]'))
DROP VIEW [dbo].V_OpCierres
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesLotes]'))
DROP VIEW [dbo].V_OpComponentesLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesLotesReales]'))
DROP VIEW [dbo].V_OpComponentesLotesReales
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCierresProductoLEtiqueta]'))
DROP VIEW [dbo].V_OpCierresProductoLEtiqueta
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentes]'))
DROP VIEW [dbo].V_OpComponentes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Copages]'))
DROP VIEW [dbo].V_Copages
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesLineas]'))
DROP VIEW [dbo].V_CopagesLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVenta]'))
DROP VIEW [dbo].PresupuestosVenta
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaImpuestos]'))
DROP VIEW [dbo].[PresupuestosVentaImpuestos]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaLineas]'))
DROP VIEW [dbo].PresupuestosVentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaIvas]'))
DROP VIEW [dbo].[PresupuestosVentaIvas]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FT_articulos]'))
DROP VIEW [dbo].V_FT_articulos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OP_Control_pesos_cabecera]'))
DROP VIEW [dbo].V_OP_Control_pesos_cabecera
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasVentaClientesArticulos]'))
DROP VIEW [dbo].V_FacturasVentaClientesArticulos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesMovimientos]'))
DROP VIEW [dbo].V_CopagesMovimientos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlmacenesGraficos]'))
DROP VIEW [dbo].V_AlmacenesGraficos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Liquidaciones]'))
DROP VIEW [dbo].V_Liquidaciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLineas]'))
DROP VIEW [dbo].V_LiquidacionesLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLineasParametros]'))
DROP VIEW [dbo].V_LiquidacionesLineasParametros
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLineasParametrosImporte]'))
DROP VIEW [dbo].V_LiquidacionesLineasParametrosImporte
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLinParam]'))
DROP VIEW [dbo].V_LiquidacionesLinParam
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesIvas]'))
DROP VIEW [dbo].V_LiquidacionesIvas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesRetenciones]'))
DROP VIEW [dbo].V_LiquidacionesRetenciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosCabecera]'))
DROP VIEW [dbo].V_EscandallosCabecera
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosLineas]'))
DROP VIEW [dbo].V_EscandallosLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_sellos]'))
DROP VIEW [dbo].V_estoc_sellos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[A_AlbLiqLinLiquidados]'))
DROP VIEW [dbo].A_AlbLiqLinLiquidados
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[A_AlbLiqLinGrupLiquidados]'))
DROP VIEW [dbo].A_AlbLiqLinGrupLiquidados
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[A_AlbLiqTransGrupLiquidados]'))
DROP VIEW [dbo].A_AlbLiqTransGrupLiquidados
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_HojasCargaCabecera]'))
DROP VIEW [dbo].V_HojasCargaCabecera
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ServiciosRepartidor]'))
DROP VIEW [dbo].V_ServiciosRepartidor
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_HojasCargaLinea]'))
DROP VIEW [dbo].V_HojasCargaLinea
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ServiciosRepartidorLinea]'))
DROP VIEW [dbo].V_ServiciosRepartidorLinea
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Traspasos]'))
DROP VIEW [dbo].V_Traspasos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TraspasosLineas]'))
DROP VIEW [dbo].V_TraspasosLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplCabecera]'))
DROP VIEW [dbo].V_FacturasSimplCabecera
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosFacVentaNoCobrados]'))
DROP VIEW [dbo].V_VencimientosFacVentaNoCobrados
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonaInformacion]'))
DROP VIEW [dbo].V_PersonaInformacion
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParametrosFijosSociosColumnas]'))
DROP VIEW [dbo].V_AlbLiqLinParametrosFijosSociosColumnas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesAsociados]'))
DROP VIEW [dbo].V_DocLinLotesAsociados
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesEstados]'))
DROP VIEW [dbo].V_DocLinLotesEstados
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesEstadosPedVenta]'))
DROP VIEW [dbo].V_DocLinLotesEstadosPedVenta
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Safata]'))
DROP VIEW [dbo].V_Safata
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionEnvioHabitual]'))
DROP VIEW [dbo].V_PersonasDireccionEnvioHabitual
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosMovimientos]'))
DROP VIEW [dbo].V_LibrosMovimientos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosMovimientosEntradasPendientes]'))
DROP VIEW [dbo].V_LibrosMovimientosEntradasPendientes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosEstocActual]'))
DROP VIEW [dbo].V_LibrosEstocActual
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosVentaReservasLotes]'))
DROP VIEW [dbo].V_PedidosVentaReservasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_HojasCargaReservasLotes]'))
DROP VIEW [dbo].V_HojasCargaReservasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TraspasosReservasLotes]'))
DROP VIEW [dbo].V_TraspasosReservasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpsReservasLotes]'))
DROP VIEW [dbo].V_OpsReservasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CantidadesReservadas]'))
DROP VIEW [dbo].V_CantidadesReservadas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocAsociaciones]'))
DROP VIEW [dbo].V_DocAsociaciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VolumenesClienteSerieExpedientes]'))
DROP VIEW [dbo].V_VolumenesClienteSerieExpedientes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesUltimosVigentes]'))
DROP VIEW [dbo].V_ExpedientesUltimosVigentes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Expedientes]'))
DROP VIEW [dbo].V_Expedientes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesSinPreFact]'))
DROP VIEW [dbo].V_ExpedientesSinPreFact
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesTareasEstado]'))
DROP VIEW [dbo].V_ExpedientesTareasEstado
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesTareasEstadoActivas]'))
DROP VIEW [dbo].V_ExpedientesTareasEstadoActivas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesMarcas]'))
DROP VIEW [dbo].V_ExpedientesMarcas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Documentacion]'))
DROP VIEW [dbo].V_Documentacion
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDirecciones]'))
DROP VIEW [dbo].V_PersonasDirecciones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PagosCuenta]'))
DROP VIEW [dbo].V_PagosCuenta
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PagosCuentaLineas]'))
DROP VIEW [dbo].V_PagosCuentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedienteMarcas]'))
DROP VIEW [dbo].V_ExpedienteMarcas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Previsiones]'))
DROP VIEW [dbo].V_Previsiones
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PrevisionesLineas]'))
DROP VIEW [dbo].V_PrevisionesLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Lotes]'))
DROP VIEW [dbo].V_Lotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Gastos]'))
DROP VIEW [dbo].V_Gastos
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplLineas]'))
DROP VIEW [dbo].V_FacturasSimplLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplFormasPago]'))
DROP VIEW [dbo].V_FacturasSimplFormasPago
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraLineas]'))
DROP VIEW [dbo].V_AlbCompraLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PresVentaLineas]'))
DROP VIEW [dbo].V_PresVentaLineas
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PersonasNombre]'))
DROP VIEW [dbo].[PersonasNombre]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasNombre]'))
DROP VIEW [dbo].[V_PersonasNombre]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplDiario]'))
DROP VIEW [dbo].[V_FacturasSimplDiario]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_InventarioLineas]'))
DROP VIEW [dbo].[V_InventarioLineas]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionFiscal]'))
DROP VIEW [dbo].V_PersonasDireccionFiscal
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccion]'))
DROP VIEW [dbo].V_ExpedientesAccion
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccionRespuesta]'))
DROP VIEW [dbo].V_ExpedientesAccionRespuesta
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones]'))
DROP VIEW [dbo].[V_Fincas_parcelas_operaciones]
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones_lista]'))
DROP VIEW [dbo].[V_Fincas_parcelas_operaciones_lista]
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MiniMovsEstoc]'))
DROP VIEW [dbo].V_MiniMovsEstoc 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MiniMovsEstoc]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MiniMovsEstoc] AS 
SELECT Fecha_hora, SerieTipoDoc+''-'' + Tipo_movimiento + ''/'' +  CAST(Movimiento as nvarchar) AS ID_Mov, Articulo, Almacen, Lote
, CASE E_S_N WHEN ''E'' THEN Cantidad ELSE -Cantidad END AS Cantidad, Fk_centro
FROM Movimientos WITH (NOLOCK)
WHERE ISNULL(no_inventariable, 0) = 0 AND Fecha_consolidacion_inventario IS NULL
UNION ALL SELECT Fecha_hora, ''AV-'' + AV.Serie + ''/'' +  CAST(AV.Numero as nvarchar) AS ID_Mov, Fk_articulo AS Articulo, Almacen, Lote, 
-ISNULL(AVLL.Cantidad, AVL.Cantidad) AS Cantidad, Fk_centro
FROM Alb_venta AS AV WITH (NOLOCK)
INNER JOIN Alb_venta_lineas AS AVL WITH (NOLOCK) 
ON AVL.Serie = AV.Serie 
AND AVL.Numero = AV.Numero 
LEFT OUTER JOIN Alb_venta_lineas_lotes AS AVLL WITH (NOLOCK) 
ON AVL.Id = AVLL.fk_Id_linea 
WHERE ISNULL(no_inventariable, 0) = 0 AND Fecha_consolidacion_inventario IS NULL
UNION ALL SELECT Fecha AS Fecha_hora, ''AL-'' + AL.Serie + ''/'' +  CAST(AL.Numero as nvarchar) AS ID_Mov, Articulo, Almacen, Lote, 
LIN.Cantidad_bruta AS Cantidad, Fk_centro
FROM Alb_liq AS AL WITH (NOLOCK) 
INNER JOIN Alb_liq_lin AS LIN WITH (NOLOCK) 
ON AL.Serie = LIN.Serie 
AND AL.Numero = LIN.Numero 
WHERE ISNULL(no_inventariable, 0) = 0 AND Fecha_consolidacion_inventario IS NULL
UNION ALL SELECT Fecha_hora, ''AC-'' + AC.Serie + ''/'' +  CAST(AC.Numero as nvarchar) AS ID_Mov, Fk_articulo AS Articulo, Almacen, Lote, 
ISNULL(ACLL.Cantidad, ACL.Cantidad) AS Cantidad, fk_centro
FROM Alb_compra AS AC WITH (NOLOCK) 
INNER JOIN Alb_compra_lineas AS ACL WITH (NOLOCK) 
ON ACL.Serie = AC.Serie 
AND ACL.Numero = AC.Numero 
LEFT OUTER JOIN Alb_compra_lineas_lotes AS ACLL WITH (NOLOCK) 
ON ACL.Id = ACLL.fk_Id_linea 
WHERE ISNULL(no_inventariable, 0) = 0 AND Fecha_consolidacion_inventario IS NULL
UNION ALL SELECT Fecha_hora, ''FS-'' + FS.Serie + ''/'' +  CAST(FS.Numero as nvarchar) AS ID_Mov, Fk_articulo AS Articulo, Fk_almacen AS Almacen, Lote, 
-Cantidad, Fk_centro
FROM Facturas_simpl_cabecera AS FS WITH (NOLOCK) 
INNER JOIN Facturas_simpl_lineas AS FSL WITH (NOLOCK) 
ON FS.Serie = FSL.Serie 
AND FS.Numero = FSL.Numero 
WHERE ISNULL(no_inventariable, 0) = 0 AND Fecha_consolidacion_inventario IS NULL'
GO
IF EXISTS(SELECT* FROM sysobjects WHERE id = object_id(N'fn_GetTipoPrecioDesc') 
AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_GetTipoPrecioDesc'
GO
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_GetTipoPrecioDesc] ( @Valor tinyint )
										RETURNS VarChar(Max)
										AS
										BEGIN
											RETURN 
												(SELECT TpDesc=
												(CASE @Valor
													WHEN null THEN null
													WHEN 4 THEN ''A Precio Campañas anteriores Coops.asociadas''
													WHEN 1 THEN ''A Precio Campaña actual Coops.asociadas''
													WHEN 5 THEN ''A Precio Prov.Externos''
													WHEN 3 THEN ''A Resultas''
													WHEN 2 THEN ''Envasar''
													ELSE  ''''
												END))
										END
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplDiario]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacturasSimplDiario] AS 
SELECT        dbo.Facturas_simpl_cabecera.Serie, dbo.Facturas_simpl_cabecera.Numero, dbo.Formas_de_pago.Descripcion as Forma_pago_descripcion, dbo.Facturas_simpl_formas_pago.Importe, 
						 dbo.Facturas_simpl_cabecera.Importe_total_entregado, dbo.Facturas_simpl_cabecera.Fecha_hora, dbo.Facturas_simpl_cabecera.Fk_cliente, dbo.Personas.Nombre as Cliente_nombre, dbo.Formas_de_pago.Codigo as Forma_pago_codigo, 
						 dbo.Facturas_simpl_cabecera.Total_factura, dbo.Facturas_simpl_cabecera.Dto_pp, dbo.Facturas_simpl_cabecera.Dto_esp, dbo.Facturas_simpl_cabecera.Fk_serie_relacionada, 
						 dbo.Facturas_simpl_cabecera.Fk_numero_relacionada , Lineas.Importe_irpf, Lineas.Importe_neto, Lineas.Importe_iva, Lineas.Valor_iva, Lineas.Valor_irpf, 
						 dbo.Facturas_venta.Serie AS Serie_factura_generada, dbo.Facturas_venta.Numero AS Numero_factura_generada
FROM            dbo.Facturas_simpl_cabecera LEFT OUTER JOIN
						 dbo.Facturas_simpl_formas_pago ON dbo.Facturas_simpl_cabecera.Serie = dbo.Facturas_simpl_formas_pago.Serie AND 
						 dbo.Facturas_simpl_cabecera.Numero = dbo.Facturas_simpl_formas_pago.Numero LEFT OUTER JOIN
						 dbo.Facturas_venta ON dbo.Facturas_simpl_cabecera.Serie_factura = dbo.Facturas_venta.Serie AND dbo.Facturas_simpl_cabecera.Numero_factura = dbo.Facturas_venta.Numero LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Facturas_simpl_formas_pago.Fk_forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
							 (SELECT        SUM(Importe_irpf) AS Importe_irpf, SUM(Importe_neto) AS Importe_neto, SUM(Importe_iva) AS Importe_iva, Serie, Numero, Valor_iva, Valor_irpf
							   FROM            dbo.Facturas_simpl_lineas
							   GROUP BY Serie, Numero, Valor_iva, Valor_irpf) AS Lineas ON Lineas.Serie = dbo.Facturas_simpl_cabecera.Serie AND Lineas.Numero = dbo.Facturas_simpl_cabecera.Numero INNER JOIN
						 dbo.Personas ON dbo.Personas.Codigo = dbo.Facturas_simpl_cabecera.Fk_cliente
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PersonasNombre]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PersonasNombre]
AS 
SELECT        pd.Codigo_postal, pd.Municipio, p.Codigo, p.Razon_social, p.Persona_juridica, p.Socio, p.Cliente, p.Proveedor, p.Transportista, p.Representante, p.Representante_master, p.Cliente_seccion_credito, p.Nombre, p.Apellido1, p.Apellido2,
p.Tipo_identificacion, p.Identificacion, p.Fecha_alta, p.Fecha_modificacion, p.Fecha_baja, p.Fecha_nacimiento, p.Estado_codigo, p.Estado_descripcion, p.Estado_civil_codigo, p.Estado_civil_desc,
p.Sexo_codigo, p.Hijos, p.Telefono_particular, p.Telefono_trabajo, p.Movil, p.Fax, p.Email1, p.Email2, p.Web, p.Cuenta_twitter, p.Cuenta_facebook, p.Grupo_iva_emitido, p.Grupo_iva_recibido,
p.Notas, p.Cuenta_predeterminada, p.Bloqueo, p.Codigo_barras, p.Op_agricultura_eco, p.Divisa, p.Cuenta_contable_cliente, p.Cuenta_contable_proveedor, p.Fk_cc_efectos_pendientes_proveedor,
p.Fk_cc_efectos_pendientes_cliente, p.Tarifa_habitual, p.Tags, p.Fk_grupo_cont_ingresos, p.Fk_grupo_cont_gastos, p.Fk_forma_pago_cliente, p.Fk_forma_pago_proveedor, p.Nuestro_cod_proveedor,
p.Nuestro_cod_cliente, p.Fk_idioma, p.Fk_incoterm, p.Fk_representante1, p.Fk_representante2, p.Descuento_pp, p.Descuento_esp, p.Regimen_ss_codigo, p.Regimen_ss, p.Tipo_facturacion,
p.Tipo_facturacion_desc, p.Fk_transportista_habitual, p.Fk_portes, p.Fk_grupo_dto_cliente, p.Fk_grupo_dto_proveedor, p.Fk_grupo_persona, p.Dia_pago1, p.Codigo_externo, p.Dia_pago2, p.Dia_pago3,
p.Codigo_socio_colaborador, p.Fk_serie_liquidacion, p.Contador_facturas_liq, p.Fk_cargo_habitual, p.Porcentaje_IRPF, p.Aplicacion_IRPF, p.Admite_factura_electronica, p.Correo_electronico_facturas,
p.Ruta_transporte, p.Tarifa_tpv, p.Fk_c_contable_cliente_tpv, p.Codigo_cliente_datisa, p.Fk_banco_habitual_cliente, p.Fk_banco_habitual_proveedor, p.Num_carnet_aplicador,p.Codigo_ropo, p.Estado_tpv,
p.Forma_pago_TPV,p.Fecha_caducidad_carnet_aplicador,p.Dni_propietario_carnet_aplicador,p.Codigo_autorizacion_eco, p.Codigo_autorizacion_ria, p.Id_agencia_aceite, p.Albaran_valorado, p.Codigo_mandato, p.Fecha_mandato, p.Fk_serie_fac_venta, p.Fk_serie_pres_venta, p.Fk_serie_ped_venta,
p.Fk_serie_alb_venta, p.Fk_serie_ped_compra, p.Fk_serie_alb_compra, p.Fk_serie_fac_compra, p.Fk_serie_hoja_carga, p.Riesgo_concedido, p.Permiso_access_olives, p.Usar_serie_habitual_factura_aut,
p.Codigo_cyc, p.Fk_tipo_cyc, p.Ped_compra_valorado, p.Ped_venta_valorado, CASE WHEN ISNULL(p.Razon_social, '''') <> '''' THEN p.Razon_social ELSE ISNULL(p.Nombre, '''') + CASE WHEN ISNULL(p.Apellido1, 
						 '''') = '''' THEN '''' ELSE '' '' + p.Apellido1 END + CASE WHEN ISNULL(p.Apellido2, '''') = '''' THEN '''' ELSE '' '' + p.Apellido2 END END AS NombreCompleto, pc.Iban AS Iban_cliente, p.Tipo_impresion_documentos, 
						 CONCAT(LEFT(p.Nombre, 1), LEFT(p.Apellido1, 1), LEFT(p.Apellido2, 1)) AS Iniciales,p.Codigo_secundario,p.Entidad
FROM            dbo.Personas AS p LEFT OUTER JOIN
						 dbo.Personas_direcciones AS pd ON pd.Codigo =
							 (SELECT        TOP (1) Codigo
							   FROM            dbo.Personas_direcciones
							   WHERE        (Codigo_persona = p.Codigo)
							   ORDER BY Predeterminada DESC, Codigo_postal DESC, Municipio DESC) LEFT OUTER JOIN
						 dbo.Personas_cuentas AS pc ON pc.Codigo =
							 (SELECT        TOP (1) Codigo
							   FROM            dbo.Personas_cuentas
							   WHERE        (Codigo_persona = p.Codigo)
							   ORDER BY Predeterminada DESC)
							   '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionFiscal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasDireccionFiscal]
AS
SELECT dbo.Personas_direcciones.Codigo, dbo.Personas_direcciones.Codigo_persona, dbo.Personas_direcciones.Descripcion, dbo.Personas_direcciones.Via_publica, dbo.Personas_direcciones.Direccion, dbo.Personas_direcciones.Numero, dbo.Personas_direcciones.Piso, 
             dbo.Personas_direcciones.Puerta, dbo.Personas_direcciones.Municipio, dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Comarca, CASE WHEN ISNULL(dbo.Personas_direcciones.Provincia,'''')='''' THEN Provincias.Descripcion ELSE dbo.Personas_direcciones.Provincia END as Provincia, dbo.Personas_direcciones.Pais, dbo.Personas_direcciones.Fiscal_habitual, 
             dbo.Personas_direcciones.Envio_habitual, dbo.Personas_direcciones.Predeterminada, dbo.Personas_direcciones.fk_comarca, dbo.Personas_direcciones.fk_provincia, dbo.Personas_direcciones.fk_pais, dbo.Personas_direcciones.fk_municipio, dbo.Personas_direcciones.Cae, 
             dbo.Personas_direcciones.Telefono, dbo.Personas_direcciones.email, dbo.Personas_direcciones.Notas, dbo.Personas_direcciones.Direccion2, dbo.Personas_direcciones.Descripcion2, dbo.Personas_direcciones.Warehouse, dbo.Personas_direcciones.Rc, 
             dbo.Personas_direcciones.Tipo_direccion, dbo.Personas_direcciones.Vat, dbo.Personas_direcciones.Inactiva, dbo.Personas_direcciones.Dir_postal_facturas, dbo.Personas_direcciones.Id_auxiliar, dbo.Personas_direcciones.Codigo_chep, dbo.Personas_direcciones.Id_numero, 
             dbo.Personas_direcciones.Codigos_ean, dbo.Personas_direcciones.Estado, dbo.Personas_direcciones.Fecha_estado, dbo.Personas_direcciones.Usuario_estado
FROM   dbo.Personas_direcciones INNER JOIN
                 (SELECT Codigo_persona, MAX(CAST(Codigo AS varchar(36))) AS Codigo
                 FROM    dbo.Personas_direcciones
                 WHERE (Fiscal_habitual = 1)
                 GROUP BY Codigo_persona) AS DirEnv 
				 ON dbo.Personas_direcciones.Codigo_persona = DirEnv.Codigo_persona AND dbo.Personas_direcciones.Codigo = DirEnv.Codigo
				 LEFT OUTER JOIN Provincias ON dbo.Personas_direcciones.fk_provincia=Provincias.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionEnvioHabitual]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasDireccionEnvioHabitual]
AS
SELECT dbo.Personas_direcciones.Codigo, dbo.Personas_direcciones.Codigo_persona, dbo.Personas_direcciones.Descripcion, dbo.Personas_direcciones.Via_publica, dbo.Personas_direcciones.Direccion, dbo.Personas_direcciones.Numero, dbo.Personas_direcciones.Piso, 
             dbo.Personas_direcciones.Puerta, dbo.Personas_direcciones.Municipio, dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Comarca, CASE WHEN ISNULL(dbo.Personas_direcciones.Provincia,'''')='''' THEN Provincias.Descripcion ELSE dbo.Personas_direcciones.Provincia END as Provincia, dbo.Personas_direcciones.Pais, dbo.Personas_direcciones.Fiscal_habitual, 
             dbo.Personas_direcciones.Envio_habitual, dbo.Personas_direcciones.Predeterminada, dbo.Personas_direcciones.fk_comarca, dbo.Personas_direcciones.fk_provincia, dbo.Personas_direcciones.fk_pais, dbo.Personas_direcciones.fk_municipio, dbo.Personas_direcciones.Cae, 
             dbo.Personas_direcciones.Telefono, dbo.Personas_direcciones.email, dbo.Personas_direcciones.Notas, dbo.Personas_direcciones.Direccion2, dbo.Personas_direcciones.Descripcion2, dbo.Personas_direcciones.Warehouse, dbo.Personas_direcciones.Rc, 
             dbo.Personas_direcciones.Tipo_direccion, dbo.Personas_direcciones.Vat, dbo.Personas_direcciones.Inactiva, dbo.Personas_direcciones.Dir_postal_facturas, dbo.Personas_direcciones.Id_auxiliar, dbo.Personas_direcciones.Codigo_chep, dbo.Personas_direcciones.Id_numero, 
             dbo.Personas_direcciones.Codigos_ean, dbo.Personas_direcciones.Estado, dbo.Personas_direcciones.Fecha_estado, dbo.Personas_direcciones.Usuario_estado
FROM   dbo.Personas_direcciones INNER JOIN
                 (SELECT Codigo_persona, MAX(CAST(Codigo AS varchar(36))) AS Codigo
                 FROM    dbo.Personas_direcciones
                 WHERE (Envio_habitual = 1)
                 GROUP BY Codigo_persona) AS DirEnv 
				 ON dbo.Personas_direcciones.Codigo_persona = DirEnv.Codigo_persona AND dbo.Personas_direcciones.Codigo = DirEnv.Codigo
				 LEFT OUTER JOIN Provincias ON dbo.Personas_direcciones.fk_provincia=Provincias.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasNombre]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasNombre]
AS 
SELECT P.Codigo
, CASE 
	WHEN ISNULL(P.Razon_social, '''') <> '''' THEN P.Razon_social 
	ELSE ISNULL(P.Nombre, '''') + CASE 
									WHEN ISNULL(P.Apellido1, '''') = '''' THEN '''' 
									ELSE '' '' + P.Apellido1 
								END + CASE 
										WHEN ISNULL(P.Apellido2, '''') = '''' THEN '''' 
										ELSE '' '' + P.Apellido2 
									END 
								END Collate SQL_Latin1_General_CP1253_CI_AI AS NombreCompleto
 ,Nombre, apellido1, apellido2, sexo_codigo, Persona_juridica, Cliente, Socio, Proveedor, Es_acreedor, CAST(ISNULL(P.No_confidencial,0) AS Bit) AS No_confidencial, CAST(ISNULL(P.No_efectuar_liq_inmediata,0) AS Bit) AS No_efectuar_liq_inmediata
 ,Transportista,Representante, Tercero,P.Entidad
 , (SELECT TOP 1 Codigo FROM Personas_cuentas AS PPCC WHERE PPCC.Codigo_persona=P.Codigo ORDER BY Predeterminada DESC) AS Fk_cuenta_cliente
 , Tipo_identificacion, Identificacion, Email1, Email2, Telefono_particular, Telefono_trabajo, Movil, Codigo_barras, P.Tarifa_autoconsumo, P.Usar_serie_habitual_factura_aut
 ,Fk_representante1,Fk_representante2, Cliente_generico_tpv,SSCC_propio_cliente,ventas_habitual_emcs
 , ISNULL(Estado_codigo,0) As Estado_codigo, ISNULL(Estado_tpv,0) As Estado_tpv,Fk_serie_fac_venta ,P.Tipo_facturacion,P.Tipo_facturacion_compras
 ,Fk_grupo_dto_proveedor,Fk_grupo_dto_cliente,Grupo_iva_recibido,Grupo_iva_emitido,Forma_pago_TPV,Descuento_pp,Descuento_esp,Tarifa_tpv
 ,Fecha_caducidad_carnet_aplicador,Num_carnet_aplicador,Dni_propietario_carnet_aplicador,VPDEH.Codigo as Env_codigo
 ,VPDF.Codigo as Fis_codigo,PP.Descripcion as Desc_pais,P.Fk_empresa
 ,VPDF.Municipio as Municipio,P.Cuenta_contable_proveedor
 ,P.Fk_forma_pago_cliente,P.Fk_forma_pago_proveedor,P.Cuenta_contable_cliente,P.Dia_pago1,P.Dia_pago2,P.Dia_pago3,P.Dia_pago_prov1,P.Dia_pago_prov2,P.Dia_pago_prov3
 ,P.Fk_cc_efectos_pendientes_cliente,P.Fk_cc_efectos_pendientes_proveedor,P.Fk_banco_habitual_proveedor,P.Fk_banco_habitual_cliente ,Fk_grupo_comision_proveedor,Fk_grupo_comision_cliente
 ,P.Codigo_ropo,P.Codigos_ean, P.Codigo_externo, VPDF.Codigo_postal, CAST(0 AS bit) AS IsChecked,P.No_facturar
 , (SELECT TOP 1 PG.Color_codigo_persona 
		FROM Personas_grupos AS PG 
		INNER JOIN Personas_agrupaciones AS PA
		ON PA.Codigo_grupo=PG.Codigo
		WHERE PA.Codigo_persona =P.Codigo 
		AND Color_codigo_persona Is Not Null
	) AS Color_codigo_persona
, P.Fk_transportista_habitual, P.Matricula_habitual, P.Conductor_nombre_habitual, P.Conductor_dni_habitual,P.Punto_operacional,P.Gln_Destino_mensaje
 FROM Personas AS P 
 LEFT OUTER JOIN V_PersonasDireccionFiscal AS VPDF
 ON P.Codigo = VPDF.Codigo_persona 
 LEFT OUTER JOIN Paises AS PP
 ON PP.Id_isonum = VPDF.fk_pais 
 LEFT OUTER JOIN V_PersonasDireccionEnvioHabitual AS VPDEH
 ON P.Codigo = VPDEH.Codigo_persona'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasSoloNombre]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasSoloNombre]
AS
SELECT Codigo, Nombre, Apellido1, Apellido2
	, CASE 
		WHEN ISNULL(Razon_social, '''') <> '''' THEN Razon_social 
		ELSE 
			CASE 
				WHEN ISNULL(Apellido1, '''') = '''' THEN '''' 
				ELSE Apellido1 
			END 
	+ CASE 
		WHEN ISNULL(Apellido2, '''') = '''' THEN '''' 
		ELSE '' '' + Apellido2 
	END + 
	CASE 
		WHEN ISNULL(Apellido1,'''')='''' AND ISNULL(Apellido2,'''')='''' THEN '''' 
		ELSE  '', '' 
	END
	+ ISNULL(Nombre, '''')  END AS NombreCompleto
	, Tipo_identificacion, Identificacion, Email1, Email2, Telefono_particular, Telefono_trabajo, Sexo_codigo, Fk_representante1, Persona_juridica
FROM Personas'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDirecciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasDirecciones]
AS
SELECT        dbo.Personas_direcciones.Codigo, dbo.Personas_direcciones.Codigo_persona, dbo.Personas_direcciones.Descripcion, dbo.Personas_direcciones.Via_publica, 
						 dbo.vias_publicas.Descripcion AS Desc_via_publica, dbo.Personas_direcciones.Direccion, dbo.Personas_direcciones.Numero, dbo.Personas_direcciones.Piso, dbo.Personas_direcciones.Puerta, 
						 dbo.Personas_direcciones.Municipio, dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Fiscal_habitual, dbo.Personas_direcciones.Envio_habitual, 
						 dbo.Personas_direcciones.Predeterminada, dbo.Personas_direcciones.fk_comarca, dbo.Personas_direcciones.fk_provincia, dbo.Personas_direcciones.fk_pais, dbo.Personas_direcciones.fk_municipio, 
						 dbo.Personas_direcciones.Cae, dbo.Personas_direcciones.Telefono, dbo.Personas_direcciones.email, dbo.Personas_direcciones.Notas, dbo.Personas_direcciones.Direccion2, 
						 dbo.Personas_direcciones.Descripcion2, dbo.Paises.Descripcion AS Pais, dbo.Comarcas.Descripcion AS Comarca, dbo.Provincias.Descripcion AS Provincia, dbo.Personas_direcciones.Warehouse, 
						 dbo.Personas_direcciones.Id_auxiliar,dbo.Personas_direcciones.Id_numero,
						 dbo.Personas_direcciones.Rc, dbo.Personas_direcciones.Vat, dbo.Personas.Nombre, dbo.Personas.Email1, dbo.Personas.Telefono_particular, dbo.Personas.Telefono_trabajo,  dbo.Personas.Identificacion
						 ,CASE Personas.Estado_codigo WHEN 0 THEN ''ACTIVO'' WHEN 1 THEN ''INACTIVO'' ELSE '''' END AS Estado_descripcion
						 ,dbo.Personas_direcciones.Tipo_direccion,  CASE WHEN ISNULL( dbo.Personas.Razon_social, '''') <> '''' THEN  dbo.Personas.Razon_social ELSE ISNULL( dbo.Personas.Nombre, '''') + CASE WHEN ISNULL( dbo.Personas.Apellido1, '''') = '''' THEN '''' ELSE '' '' +  dbo.Personas.Apellido1 END + CASE WHEN ISNULL( dbo.Personas.Apellido2, '''') 
                         = '''' THEN '''' ELSE '' '' +  dbo.Personas.Apellido2 END END AS NombreCompleto, Dir_postal_facturas,dbo.Personas_direcciones.Codigo_chep,dbo.Personas_direcciones.Codigos_ean,
						 STUFF((
							SELECT '', '' + CAST(Descripcion AS varchar(MAX))
							FROM Denom_origen LEFT OUTER JOIN
							Personas_direcciones_DOs ON Personas_direcciones_DOs.Fk_DO = Denom_origen.Codigo
							WHERE ( Personas_direcciones_DOs.Fk_personas_direcciones = Personas_direcciones.Codigo )
							FOR XML PATH ('''')) 
							,1,2,'''') as DOs, Personas.No_confidencial, Personas.Fk_representante1
							, Personas.Cliente, Personas.Proveedor, Personas.Transportista, Personas.Representante, Personas.Cliente_seccion_credito, Personas.Socio, Personas.Tercero
							,dbo.Personas_direcciones.Inactiva,	dbo.Personas_direcciones.Estado,dbo.Personas_direcciones.Fecha_estado,dbo.Personas_direcciones.Usuario_estado
							,dbo.Paises.Identificacion_empresa1,dbo.Paises.Identificacion_empresa2
FROM            dbo.Personas_direcciones LEFT OUTER JOIN
						 dbo.Paises ON dbo.Personas_direcciones.fk_pais = dbo.Paises.Id_isonum LEFT OUTER JOIN
						 dbo.Provincias ON dbo.Personas_direcciones.fk_provincia = dbo.Provincias.Codigo LEFT OUTER JOIN
						 dbo.vias_publicas ON dbo.Personas_direcciones.Via_publica = dbo.vias_publicas.Codigo LEFT OUTER JOIN
						 dbo.Comarcas ON dbo.Personas_direcciones.fk_comarca = dbo.Comarcas.Codigo LEFT OUTER JOIN
						 dbo.Personas ON dbo.Personas.Codigo = dbo.Personas_direcciones.Codigo_persona'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CargaDescarga]'))
DROP VIEW [dbo].V_CargaDescarga
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CargaDescarga]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CargaDescarga] AS 
SELECT        dbo.Cargas_descargas.Id, dbo.Cargas_descargas.Serie, dbo.Cargas_descargas.Numero, dbo.Cargas_descargas.Usuario_modificacion, dbo.Cargas_descargas.Tara, dbo.Cargas_descargas.Peso_bruto_entrada, dbo.Cargas_descargas.Fecha_entrada, 
						 dbo.Cargas_descargas.Fecha_salida, dbo.Cargas_descargas.Fk_articulo, dbo.Cargas_descargas.Fk_maquina, dbo.Cargas_descargas.Tipo, dbo.Cargas_descargas.Fk_persona, 
						 dbo.Cargas_descargas.Fk_transportista, dbo.Cargas_descargas.Precinto, dbo.Cargas_descargas.Peso_contenedor_entrada, dbo.Cargas_descargas.DNI_conductor, dbo.Cargas_descargas.Nombre_conductor, 
						 dbo.Cargas_descargas.Peso_bruto_salida, dbo.Cargas_descargas.Peso_contenedor_salida, dbo.Cargas_descargas.Matricula_contendor, dbo.Cargas_descargas.Matricula, dbo.Cargas_descargas.Usuario, 
						 dbo.Cargas_descargas.Fecha_modificacion, dbo.Cargas_descargas.Comentario, dbo.Cargas_descargas.Fk_centro, dbo.Cargas_descargas.Comentario_interno, dbo.Cargas_descargas.Cerrada, 
						 dbo.Articulos.Descripcion, dbo.Maquinas.Descripcion AS Desc_maquina, dbo.Maquinas.Marca, dbo.Maquinas.Modelo, dbo.Maquinas.Num_serie, dbo.Maquinas.Num_certificado_ENAC, 
						 dbo.Maquinas.Num_certificado_verif_periodica, cliprov.NombreCompleto AS Cliente_proveedor, trans.NombreCompleto AS Transportista, dbo.Centros.Descripcion AS NombreCentro,

CASE 
WHEN dbo.Cargas_descargas.Peso_bruto_entrada IS NULL OR dbo.Cargas_descargas.Peso_bruto_entrada <= 0 THEN ''Propuesta''
WHEN dbo.Cargas_descargas.Peso_bruto_entrada  > 0 AND (dbo.Cargas_descargas.Peso_bruto_salida IS NULL OR dbo.Cargas_descargas.Peso_bruto_salida <= 0 ) THEN ''En tránsito''
ELSE ''Cerrado''
END AS Estado, dbo.Cargas_descargas.Nombre_cliente, dbo.Cargas_descargas.Nombre_consignatario
,dbo.Cargas_descargas.Acta_m_observaciones,dbo.Cargas_descargas.Acta_m_rep_vendedor,dbo.Cargas_descargas.Acta_m_rep_comprador,dbo.Cargas_descargas.Acta_m_fecha
						 ,ABS(ISNULL(dbo.cargas_descargas.Peso_bruto_entrada,0) + ISNULL(dbo.Cargas_descargas.Peso_contenedor_entrada,0)-ISNULL(dbo.cargas_descargas.Peso_bruto_salida,0)-ISNULL(dbo.Cargas_descargas.Peso_contenedor_salida,0)) AS Peso_carga
						 ,CASE WHEN AC.Serie IS NOT NULL THEN ''AC'' ELSE CASE WHEN AV.Serie IS NOT NULL THEN ''AV'' ELSE NULL END END As SerieTipoDoc_asociado
						 ,ISNULL(AC.Serie,ISNULL(AV.Serie,NULL)) AS Serie_asociado
						 ,ISNULL(AC.Numero,ISNULL(AV.Numero,NULL)) AS Numero_asociado

FROM            dbo.Cargas_descargas INNER JOIN
						 dbo.Maquinas ON dbo.Cargas_descargas.Fk_maquina = dbo.Maquinas.Codigo INNER JOIN
						 dbo.Centros ON dbo.Cargas_descargas.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre AS cliprov ON dbo.Cargas_descargas.Fk_persona = cliprov.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre AS trans ON dbo.Cargas_descargas.Fk_transportista = trans.Codigo LEFT OUTER JOIN
						 dbo.Articulos ON dbo.Cargas_descargas.Fk_articulo = dbo.Articulos.Codigo AND dbo.Centros.Codigo = dbo.Articulos.Fk_centro_habitual
						 LEFT OUTER JOIN Alb_compra AC ON dbo.Cargas_descargas.id=AC.Fk_carga_descarga
						 LEFT OUTER JOIN Alb_venta AV ON dbo.Cargas_descargas.Id=AV.Fk_carga_descarga
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionPostal]'))
DROP VIEW [dbo].V_PersonasDireccionPostal  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasDireccionPostal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasDireccionPostal]
AS
SELECT        dbo.Personas_direcciones.*
FROM            dbo.Personas_direcciones INNER JOIN
								(SELECT        Codigo_persona, MAX(CAST(Codigo AS varchar(36))) AS Codigo
								FROM            dbo.Personas_direcciones
								WHERE        (Dir_postal_facturas = 1)
								GROUP BY Codigo_persona) AS DirEnv ON dbo.Personas_direcciones.Codigo_persona = DirEnv.Codigo_persona AND dbo.Personas_direcciones.Codigo = DirEnv.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CuentasBancoEmpresa]'))
DROP VIEW [dbo].V_CuentasBancoEmpresa  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CuentasBancoEmpresa]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CuentasBancoEmpresa] AS 
SELECT dbo.Cuentas_banco_empresa.Codigo, dbo.Cuentas_banco_empresa.Entidad, dbo.Entidades_bancarias.Descripcion AS Desc_entidad, dbo.Cuentas_banco_empresa.Oficina, dbo.Cuentas_banco_empresa.Digito_control, dbo.Cuentas_banco_empresa.Cuenta, 
             dbo.Cuentas_banco_empresa.Fk_cuenta_contable, dbo.Cuentas_banco_empresa.Alta_automatica_n43, dbo.Cuentas_banco_empresa.Descripcion, dbo.Cuentas_banco_empresa.Iban, dbo.Cuentas_banco_empresa.Swift, dbo.Cuentas_banco_empresa.Fk_cuenta_contable2, 
             dbo.Cuentas_banco_empresa.Sufijo_identificador_persona_sepa, dbo.Cuentas_banco_empresa.Fecha_cierre, dbo.Cuentas_banco_empresa.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa
			 ,Importe_concedido_poliza,Liquidacion_cada,Interes_corriente,Interes_excedido
FROM   dbo.Entidades_bancarias INNER JOIN
             dbo.Cuentas_banco_empresa ON dbo.Entidades_bancarias.Codigo = dbo.Cuentas_banco_empresa.Entidad LEFT OUTER JOIN
             dbo.Empresas ON dbo.Cuentas_banco_empresa.Fk_empresa = dbo.Empresas.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Personas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Personas]
							AS 
							SELECT        P.Codigo, CASE WHEN ISNULL(p.Razon_social, '''') <> '''' THEN p.Razon_social 
							ELSE CASE WHEN ISNULL(p.Apellido1, '''') = '''' THEN '''' ELSE p.Apellido1 END 
							+ CASE WHEN ISNULL(p.Apellido2, '''') = '''' THEN '''' ELSE '' '' + p.Apellido2 END + 
							CASE WHEN ISNULL(p.Apellido1,'''')='''' AND ISNULL(p.Apellido2,'''')='''' THEN '''' ELSE  '', '' END
							+ ISNULL(p.Nombre, '''')  END AS NombreCompleto
							, P.Razon_social, P.Persona_juridica, P.Socio, P.Tercero, P.Cliente, P.Proveedor, P.Es_acreedor, P.Transportista, P.Representante, P.Cliente_seccion_credito, P.Safata,
                         P.Nombre, P.Apellido1, P.Apellido2, P.Tipo_identificacion, P.Identificacion, P.Fecha_alta, P.Fecha_modificacion, P.Fecha_baja, P.Fecha_nacimiento, P.Estado_codigo, CASE WHEN P.Cliente_generico_tpv IS NULL 
                         THEN CAST(0 AS bit) ELSE P.Cliente_generico_tpv END AS Cliente_generico_tpv,CASE P.Estado_codigo WHEN 0 THEN ''ACTIVO'' WHEN 1 THEN ''INACTIVO'' ELSE '''' END AS Estado_descripcion, P.Estado_civil_codigo, P.Estado_civil_desc, P.Sexo_codigo, P.Hijos, P.Telefono_particular, P.Telefono_trabajo, P.Movil, 
                         P.Fax, P.Email1, P.Email2, P.Web, P.Cuenta_twitter, P.Cuenta_facebook, P.Grupo_iva_emitido, P.Grupo_iva_recibido, P.Notas, P.Cuenta_predeterminada, P.Bloqueo, P.Codigo_barras, P.Op_agricultura_eco, P.Divisa, 
                         P.Cuenta_contable_cliente, P.Cuenta_contable_proveedor, P.Fk_cc_efectos_pendientes_proveedor, P.Fk_cc_efectos_pendientes_cliente, P.Tarifa_habitual, P.Tags, P.Fk_grupo_cont_ingresos, P.Fk_grupo_cont_gastos, 
                         P.Fk_forma_pago_cliente, P.Fk_forma_pago_proveedor, P.Nuestro_cod_proveedor, P.Nuestro_cod_cliente, P.Fk_idioma, P.Fk_incoterm, P.Fk_representante1, P.Fk_representante2, P.Descuento_pp, P.Descuento_esp, 
                         P.Regimen_ss_codigo, P.Regimen_ss, P.Tipo_facturacion, P.Tipo_facturacion_desc, P.Tipo_facturacion_compras, P.Tipo_facturacion_compras_desc, P.Fk_transportista_habitual, P.Fk_portes,dbo.Portes.Descripcion as Desc_portes, P.Fk_grupo_dto_cliente, 
                         P.Fk_grupo_dto_proveedor, P.Fk_grupo_persona, P.Dia_pago1, P.Codigo_externo, P.Dia_pago2, P.Dia_pago3,P.Dia_pago_prov1,P.Dia_pago_prov2,P.Dia_pago_prov3, P.Codigo_socio_colaborador, P.Fk_serie_liquidacion, P.Contador_facturas_liq, P.Fk_cargo_habitual, 
                         P.Porcentaje_IRPF, P.Aplicacion_IRPF, P.Admite_factura_electronica, P.Correo_electronico_facturas, P.Ruta_transporte, P.Tarifa_tpv, P.Fk_c_contable_cliente_tpv, P.Codigo_cliente_datisa, P.Fk_banco_habitual_cliente, 
                         P.Fk_banco_habitual_proveedor, P.Num_carnet_aplicador,P.Codigo_ropo, P.Estado_tpv, P.Codigo_autorizacion_eco, P.Codigo_autorizacion_ria, P.Id_agencia_aceite, P.Albaran_valorado, P.Codigo_mandato, P.Fecha_mandato, 
                         P.Fk_serie_fac_venta, P.Fk_serie_pres_venta, P.Fk_serie_ped_venta, P.Fk_serie_alb_venta, P.Fk_serie_ped_compra, P.Fk_serie_alb_compra, P.Fk_serie_fac_compra, P.Fk_serie_hoja_carga, P.Riesgo_concedido, 
                         P.Permiso_access_olives, P.Usar_serie_habitual_factura_aut, P.Codigo_cyc, P.Fk_tipo_cyc, dbo.Tipos_cyc.Descripcion AS Desc_tipo_cyc, P.Ped_compra_valorado, P.No_mostrar_vencimientos, P.Ped_venta_valorado, 
                         pc.Iban AS Iban_cliente, P.Tipo_impresion_documentos, P.Mostrar_dir_fiscal_facturas, P.Codigo_secundario, PN1.NombreCompleto AS Representante1_nombre, PN2.NombreCompleto AS Representante2_nombre, 
                         dbo.V_PersonasDireccionEnvioHabitual.Codigo AS Env_codigo, dbo.V_PersonasDireccionEnvioHabitual.Via_publica AS Env_via_publica, dbo.V_PersonasDireccionEnvioHabitual.Descripcion AS Env_descripcion, 
                         dbo.V_PersonasDireccionEnvioHabitual.Direccion AS Env_direccion, dbo.V_PersonasDireccionEnvioHabitual.Numero AS Env_numero, dbo.V_PersonasDireccionEnvioHabitual.Piso AS Env_piso, 
                         dbo.V_PersonasDireccionEnvioHabitual.Puerta AS Env_puerta, dbo.V_PersonasDireccionEnvioHabitual.Municipio AS Env_municipio, dbo.V_PersonasDireccionEnvioHabitual.Codigo_postal AS Env_codigo_postal, 
                         dbo.V_PersonasDireccionEnvioHabitual.Comarca AS Env_comarca, dbo.V_PersonasDireccionEnvioHabitual.Provincia AS Env_provincia, dbo.V_PersonasDireccionFiscal.Via_publica AS Fis_via_publica, 
                         dbo.V_PersonasDireccionFiscal.Descripcion AS Fis_descripcion, dbo.V_PersonasDireccionFiscal.Codigo AS Fis_codigo, dbo.V_PersonasDireccionFiscal.Direccion AS Fis_direccion, 
                         dbo.V_PersonasDireccionFiscal.Numero AS Fis_numero, dbo.V_PersonasDireccionFiscal.Piso AS Fis_piso, dbo.V_PersonasDireccionFiscal.Puerta AS Fis_puerta, dbo.V_PersonasDireccionFiscal.Municipio AS Fis_municipio, 
                         dbo.V_PersonasDireccionFiscal.Codigo_postal AS Fis_codigo_postal, dbo.V_PersonasDireccionFiscal.Comarca AS Fis_comarca, dbo.V_PersonasDireccionFiscal.Provincia AS Fis_provincia, 
                         dbo.V_PersonasDireccionFiscal.Pais AS Fis_pais, dbo.Paises.Id_iso2 AS Fis_pais_iso2, LEFT(ISNULL(P.Nombre, ''''), 1) + LEFT(ISNULL(P.Apellido1, ''''), 1) + LEFT(ISNULL(P.Apellido2, ''''), 1) AS Iniciales, 
                         pc.Codigo AS Codigo_bh_cliente, pc.Entidad AS Entidad_bh_cliente, dbo.Entidades_bancarias.Descripcion AS Desc_entidad_bh_cliente, dbo.Entidades_bancarias.Direccion1 AS Dir_entidad_bh_cliente, 
                         P.Mostrar_grado_documentos, P.Mostrar_añada_documentos,P.Mostrar_fecha_cad_documentos, P.Dni_propietario_carnet_aplicador, P.Fecha_caducidad_carnet_aplicador, P.No_incluir_tesoreria, P.Cliente_interno, P.Idioma_reportes, P.Usuario, P.Fk_operario, 
                         dbo.Operarios.Nombre AS NombreOperario, dbo.Operarios.Identificacion AS IdOperario, P.Cuenta_contable_ventas, P.Cuenta_contable_compras, P.Entidad, P.SSCC_propio_cliente, P.ventas_habitual_emcs, P.Iva_criterio_caja, 
                         P.No_mostrar_lotes, P.Ultimo_num_autofactura, P.Forma_pago_TPV, P.Fk_cc_retencion_desp_imp, P.Fk_iva_forzado, P.Forzar_iva, P.Fk_pais,PAISPERSONA.Descripcion AS Desc_pais, dbo.V_PersonasDireccionFiscal.Telefono AS Fis_telefono, Arquitecto, P.rpt_etiqueta_palet,
                         P.Constructor, P.Distribuidor, P.Promotor, P.Interiorista,P.Serie_su_factura,P.Ult_num_su_factura,p.Tarifa_autoconsumo, dbo.Personas_tipos.Descripcion as DescTipoPersona,  dbo.Personas_tipos.Codigo as Fk_tipo_persona,
						 P.Dias_periodicidad_pedidos,P.Fecha_cyc_ult_modif,PAISPERSONA.Latitud,PAISPERSONA.Longitud,P.Descuento_pp_prov,P.Descuento_esp_prov,P.Nombre_rep_legal,P.Nif_rep_legal,P.Apellido1_rep_legal,P.Apellido2_rep_legal,P.Sexo_rep_legal
						 ,P.Ult_fecha_firma_LOPD,P.Fk_empresa,P.Mod_190_clave_percepcion,P.Mod_190_subclave_percepcion ,dbo.V_PersonasDireccionFiscal.Fk_municipio AS Fis_fk_municipio
						 ,P.Dias_cierre_semanal,	P.Dia_preferente_visita_comercial, P.Hora_preferente_visita_comercial_1, P.Hora_preferente_visita_comercial_2, P.Ampliacion_horario_visita_comercial, P.Frecuencia_preferente_visita_comercial, P.Comentarios_visita_comercial
						 ,P.Fk_grupo_comision_cliente,P.Fk_grupo_comision_proveedor,P.Dias_entrega_ped_compra,P.Codigo_plant_precios_cosecha,P.Tipo_etiqueta_palet
						 ,P.Emcs_idioma,P.Emcs_Tipo_emcs, P.Emcs_tipo_destino_interno,P.Emcs_tipo_destino_intra,P.Usuario_intranet,P.Fk_contacto_admin,PN3.NombreCompleto as Nombre_contacto_admin
						 ,Elaborador,Envasador,Comercializador,Fecha_modificacion_web,P.Registro_sanitario,P.Certificador,P.Entidad_certificadora,P.Info_relevante_produccion
						 ,P.Nombre_etiqueta_caja,P.Nombre_etiqueta_caja_clarisoft,P.Nombre_etiqueta_palet,P.Nombre_etiqueta_palet_clarisoft
						 , Firmafy_nombre,Firmafy_nif,Firmafy_cargo,Firmafy_email,Firmafy_telefono,Firmafy_tipo_notificacion,Firmafy_cif,Firmafy_empresa,P.Fecha_cambio_pw_web 
						 ,P.No_facturar,P.Tarifas_permitidas,P.Codigo_bp_SAP
						 ,CASE WHEN P.Constructor=1 THEN ''[CONSTRUCTOR] '' ELSE '''' END + 
						 CASE WHEN P.Arquitecto=1 THEN ''[ARQUITECTO] '' ELSE '''' END + 
						 CASE WHEN P.Distribuidor=1 THEN ''[DISTRIBUIDOR] '' ELSE '''' END + 
						 CASE WHEN P.Promotor=1 THEN ''[PROMOTOR] '' ELSE '''' END + 
						 CASE WHEN P.Interiorista=1 THEN ''[INTERIORISTA] '' ELSE '''' END AS Clasificacion
						 , CAST
                             ((SELECT        ''['' + CAST(Codigo_grupo AS varchar) + ''] ''
                                 FROM            Personas_agrupaciones
                                 WHERE        Personas_agrupaciones.Codigo_persona = P.Codigo
                                 ORDER BY Personas_agrupaciones.Codigo_grupo FOR XML PATH('''')) AS varchar(1000)) AS GruposPersona, CAST
                             ((SELECT        ''['' + Personas_grupos.Descripcion + ''] ''
                                 FROM            Personas_agrupaciones INNER JOIN
                                                          Personas_grupos ON Personas_agrupaciones.Codigo_grupo = Personas_grupos.Codigo
                                 WHERE        Personas_agrupaciones.Codigo_persona = P.Codigo
                                 ORDER BY Personas_agrupaciones.Codigo_grupo FOR XML PATH('''')) AS varchar(1000)) AS NombresGruposPersona, No_confidencial,P.Generar_edi_hoja_carga
								 , P.Dtos_monedero,P.Fecha_cad_op_agri_eco,P.Lote_km0_prioritario
								 , P.Firma_digital_tpv, P.Firma_digital_tpv_alb
								 , P.Matricula_habitual, P.Conductor_nombre_habitual, P.Conductor_dni_habitual, P.Id_regepa,P.No_calcular_otros_impuestos_pv,P.Activar_envio_seres,P.Codigo_rea
			FROM            dbo.Personas AS P LEFT OUTER JOIN
                         dbo.Personas_cuentas AS pc ON pc.Codigo =
                             (SELECT        TOP (1) Codigo
                               FROM            dbo.Personas_cuentas
                               WHERE        (Codigo_persona = P.Codigo)
                               ORDER BY Predeterminada DESC) LEFT OUTER JOIN
                         dbo.Entidades_bancarias ON pc.Entidad = dbo.Entidades_bancarias.Codigo LEFT OUTER JOIN
                         dbo.Operarios ON P.Fk_operario = dbo.Operarios.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDireccionFiscal ON P.Codigo = dbo.V_PersonasDireccionFiscal.Codigo_persona LEFT OUTER JOIN
                         dbo.Paises ON dbo.Paises.Id_isonum = dbo.V_PersonasDireccionFiscal.fk_pais LEFT OUTER JOIN
                         dbo.V_PersonasDireccionEnvioHabitual ON P.Codigo = dbo.V_PersonasDireccionEnvioHabitual.Codigo_persona LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS PN2 ON P.Fk_representante2 = PN2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS PN1 ON P.Fk_representante1 = PN1.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre AS PN3 ON P.Fk_contacto_admin = PN3.Codigo LEFT OUTER JOIN
                         dbo.Tipos_cyc ON P.Fk_tipo_cyc = dbo.Tipos_cyc.Codigo LEFT OUTER JOIN
						 dbo.Personas_tipos ON dbo.Personas_tipos.Codigo = P.Fk_tipo_persona LEFT OUTER JOIN 
						 dbo.Paises PAISPERSONA ON P.Fk_pais=PAISPERSONA.Id_isonum LEFT OUTER JOIN 
						 dbo.Portes ON P.Fk_portes=dbo.Portes.Codigo
						 '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasShort]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasShort]
							AS 
SELECT P.Codigo
	, CASE WHEN ISNULL(p.Razon_social, '''') <> '''' THEN p.Razon_social ELSE CASE WHEN ISNULL(p.Apellido1, '''') = '''' THEN '''' ELSE p.Apellido1 END + CASE WHEN ISNULL(p.Apellido2, '''') = '''' THEN '''' ELSE '' '' + p.Apellido2 END + CASE WHEN ISNULL(p.Apellido1, '''') = '''' AND ISNULL(p.Apellido2, '''') = '''' THEN '''' ELSE '', '' END + ISNULL(p.Nombre, '''') END AS NombreCompleto
	,P.Socio, P.Tercero, P.Cliente, P.Proveedor, P.Es_acreedor, P.Transportista, P.Representante, P.Cliente_seccion_credito, P.Safata, P.Entidad
	, CASE P.Estado_codigo WHEN 0 THEN ''ACTIVO'' WHEN 1 THEN ''INACTIVO'' ELSE '''' END AS Estado_descripcion
	, P.Identificacion, P.Tags, P.Fk_serie_fac_venta, P.Telefono_particular, P.Telefono_trabajo, P.Movil, P.Email1, P.Email2, P.Regimen_ss
	, CAST((SELECT ''['' + Personas_grupos.Descripcion + ''] '' 
			FROM Personas_agrupaciones INNER JOIN Personas_grupos ON Personas_agrupaciones.Codigo_grupo = Personas_grupos.Codigo 
			WHERE Personas_agrupaciones.Codigo_persona = P.Codigo
            ORDER BY Personas_agrupaciones.Codigo_grupo FOR XML PATH('''')) AS varchar(1000)) AS NombresGruposPersona
	, P.Admite_factura_electronica
FROM Personas AS P'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasCuentas]'))
DROP VIEW [dbo].V_PersonasCuentas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasCuentas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasCuentas] AS 
SELECT        P.Codigo + ''-'' + CAST(ISNULL(PC.Codigo, 0) AS nvarchar) AS Id, P.Codigo AS Codigo_persona, P.NombreCompleto, PC.Codigo, PC.Entidad, dbo.Entidades_bancarias.Descripcion AS Desc_entidad, PC.Descripcion, PC.Iban, 
                         PC.Bic, dbo.Entidades_bancarias.S_credito, PC.Cuenta,CAST(ISNULL(PC.Predeterminada,0) as BIT) as Predeterminada
						,P.GruposPersona,p.NombresGruposPersona,p.Email1,p.Telefono_particular as Telefono1,p.Telefono_trabajo as Telefono2, P.No_confidencial, P.Fk_representante1
						, P.Cliente, P.Proveedor, P.Transportista, P.Representante, P.Cliente_seccion_credito, P.Socio, P.Tercero
FROM            dbo.V_Personas AS P LEFT OUTER JOIN
                         dbo.Personas_cuentas AS PC ON P.Codigo = PC.Codigo_persona LEFT OUTER JOIN
                         dbo.Entidades_bancarias ON PC.Entidad = dbo.Entidades_bancarias.Codigo
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosVenta]'))
DROP VIEW [dbo].V_ContratosVenta
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosVenta]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ContratosVenta] AS
SELECT        dbo.Contratos_venta.Serie, dbo.Contratos_venta.Numero, dbo.Contratos_venta.Fecha_hora, dbo.Contratos_venta.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto, SUM(dbo.Contratos_venta_lineas.Cantidad) 
						 AS Cantidad, dbo.Contratos_venta.Total_factura
FROM            dbo.Contratos_venta INNER JOIN
						 dbo.Contratos_venta_lineas ON dbo.Contratos_venta.Serie = dbo.Contratos_venta_lineas.Serie AND dbo.Contratos_venta.Numero = dbo.Contratos_venta_lineas.Numero INNER JOIN
						 dbo.V_PersonasSoloNombre ON dbo.Contratos_venta.Codigo_persona = dbo.V_PersonasSoloNombre.Codigo
GROUP BY dbo.Contratos_venta.Serie, dbo.Contratos_venta.Numero, dbo.Contratos_venta.Fecha_hora, dbo.Contratos_venta.Fecha_prevista_entrega, dbo.Contratos_venta.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto, 
						 dbo.Contratos_venta.Total_factura'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVenta]'))
DROP VIEW [dbo].ContratosVenta
GO
 

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineas]'))
DROP VIEW [dbo].ContratosVentaLineas
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasLotes]'))
DROP VIEW [dbo].ContratosVentaLineasLotes
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasImpuestos]'))
DROP VIEW [dbo].ContratosVentaLineasImpuestos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaLineasImpuestos] AS
SELECT        dbo.Contratos_venta_lineas_impuestos.Id, dbo.Contratos_venta_lineas_impuestos.fk_Id_linea, dbo.Contratos_venta_lineas_impuestos.Codigo_impuesto, dbo.Contratos_venta_lineas_impuestos.Cantidad, 
						 dbo.Contratos_venta_lineas_impuestos.Tipo_valor, dbo.Contratos_venta_lineas_impuestos.Valor_impuesto, dbo.Contratos_venta_lineas_impuestos.Importe_base, dbo.Contratos_venta_lineas_impuestos.Codigo_iva, 
						 dbo.Contratos_venta_lineas_impuestos.Valor_iva, dbo.Contratos_venta_lineas_impuestos.Importe_iva, dbo.Contratos_venta_lineas_impuestos.Valor_recargo, dbo.Contratos_venta_lineas_impuestos.Importe_recargo, 
						 dbo.Contratos_venta_lineas_impuestos.Valor_irpf, dbo.Contratos_venta_lineas_impuestos.Importe_irpf, dbo.Contratos_venta_lineas_impuestos.Aplicacion_irpf, dbo.Contratos_venta_lineas_impuestos.Importe_total, 
						 dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto, dbo.Impuestos.Tipo_impuesto, dbo.Contratos_venta_lineas.Serie, dbo.Contratos_venta_lineas.Numero
FROM            dbo.Contratos_venta_lineas RIGHT OUTER JOIN
						 dbo.Contratos_venta_lineas_impuestos ON dbo.Contratos_venta_lineas.Id = dbo.Contratos_venta_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
						 dbo.Impuestos_tipos RIGHT OUTER JOIN
						 dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Contratos_venta_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasIvasImpuestos]'))
DROP VIEW [dbo].ContratosVentaLineasIvasImpuestos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasIvasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaLineasIvasImpuestos] AS
SELECT        Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva, SUM(Importe_iva) AS Importe_iva, Valor_recargo, 
						 SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf, SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, 
						 SUM(Importe_bruto) AS Importe_bruto
FROM            dbo.Contratos_venta_lineas AS iva
GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosVentaEstados]'))
DROP VIEW [dbo].V_ContratosVentaEstados
GO








							
							GO
							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosSoloNombre]'))
							DROP VIEW [dbo].V_ArticulosSoloNombre
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosSoloNombre]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosSoloNombre]
							AS
							SELECT        dbo.Articulos.Codigo, dbo.Articulos.Descripcion, dbo.Articulos.Descripcion_abreviada, dbo.Articulos.Tipo_seccion,
							dbo.Tipos_secciones.Descripcion AS Desc_tipo_seccion
							FROM            dbo.Articulos LEFT OUTER JOIN
							dbo.Articulos AS Articulos_1 ON dbo.Articulos.Fk_envase = Articulos_1.Codigo LEFT OUTER JOIN
							dbo.Tipos_secciones ON dbo.Articulos.Tipo_seccion = dbo.Tipos_secciones.Codigo
							'
							GO
							

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Municipios]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Municipios]
							AS
							SELECT        dbo.Municipios.Id, dbo.Municipios.Descripcion, dbo.Municipios.Codigo_provincia, dbo.Provincias.Descripcion AS Desc_provincia, dbo.Municipios.Codigo_pais, dbo.Municipios.Codigo_catastral,
							dbo.Paises.Descripcion AS Desc_pais,dbo.Municipios.Latitud,dbo.Municipios.Longitud,dbo.Municipios.Ine, dbo.Municipios.Autorizado_siurana
							,dbo.Municipios.Fk_comarca,dbo.Comarcas.Descripcion as Desc_comarca
							, CAST
                             ((SELECT        ''['' + CAST(C.Codigo_postal AS varchar) + ''] ''
                                 FROM            Codigos_postales C
                                 WHERE        C.Id_municipio= Municipios.Id
                                 ORDER BY C.Id_municipio FOR XML PATH('''')) AS varchar(1000)) AS CodigosPostales
							FROM            dbo.Municipios LEFT OUTER JOIN
							dbo.Paises ON dbo.Municipios.Codigo_pais = dbo.Paises.Id_isonum LEFT OUTER JOIN
							dbo.Provincias ON dbo.Municipios.Codigo_provincia = dbo.Provincias.Codigo
							LEFT OUTER JOIN dbo.Comarcas ON dbo.Municipios.Fk_comarca=dbo.Comarcas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Representantes]'))
							EXEC dbo.sp_executesql @statement = N'
							CREATE VIEW [dbo].[Representantes] AS SELECT * FROM dbo.Personas WHERE representante=1
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Proveedores]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Proveedores] AS SELECT * FROM dbo.Personas WHERE Proveedor=1'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Socios]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Socios] AS SELECT * FROM dbo.Personas WHERE Socio=1'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Clientes_seccion_credito]'))
							EXEC dbo.sp_executesql @statement = N'
							CREATE VIEW [dbo].[Clientes_seccion_credito] AS SELECT * FROM dbo.Personas WHERE Cliente_seccion_credito=1
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Clientes]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Clientes]
							AS
							SELECT     Codigo, Nombre + '' '' + Apellido1 + '' '' + Apellido2 AS Nombre_completo, Persona_juridica, Socio, Cliente, Proveedor, Transportista, Representante,
							Cliente_seccion_credito, Nombre, Apellido1, Apellido2, Tipo_identificacion, Identificacion
							FROM         dbo.Personas
							WHERE     (Cliente = 1)
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PlantillasPreciosLiquidacion]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PlantillasPreciosLiquidacion]
							AS
							SELECT     dbo.Plantilla_precios_liquidacion.Codigo, dbo.Plantilla_precios_liquidacion.Descripcion, dbo.Campañas.Descripcion AS Campana,
							dbo.Secciones.Descripcion AS Seccion, dbo.Articulos.Descripcion AS Articulo, dbo.Parametros_analisis.Descripcion AS Parametro
							FROM         dbo.Plantilla_precios_liquidacion INNER JOIN
							dbo.Campañas ON dbo.Plantilla_precios_liquidacion.Fk_campana = dbo.Campañas.Codigo INNER JOIN
							dbo.Secciones ON dbo.Plantilla_precios_liquidacion.Fk_seccion = dbo.Secciones.Codigo INNER JOIN
							dbo.Articulos ON dbo.Plantilla_precios_liquidacion.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
							dbo.Parametros_analisis ON dbo.Plantilla_precios_liquidacion.Fk_parametro = dbo.Parametros_analisis.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_IncidenciasDescripciones]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_IncidenciasDescripciones]
							AS
							SELECT        dbo.Incidencia.Tipo_registro, 
                         CASE WHEN dbo.Incidencia.Tipo_registro = 0 THEN ''PROYECTOS'' WHEN dbo.Incidencia.Tipo_registro = 1 THEN ''GESTION NC'' WHEN dbo.Incidencia.Tipo_registro = 2 THEN ''COMERCIAL'' WHEN dbo.Incidencia.Tipo_registro = 3
                          THEN ''MANTENIMIENTOS'' ELSE ''INDEFINIDO'' END AS Desc_tipo_Registro, dbo.Incidencia.Id, dbo.Incidencia.Fk_cliente, dbo.Personas_direcciones.Municipio, dbo.Incidencia.Fecha_inicio, dbo.Incidencia.Fecha_fin, 
                         dbo.Incidencia.Fk_usuario, dbo.Incidencia.Fk_proyecto, dbo.Incidencia.Fk_tipo_incidencia, dbo.Incidencia.Visita, dbo.Incidencia.Fecha_aviso, dbo.Incidencia.Nota, dbo.Incidencia.Nota_interna, dbo.Incidencia.Tiempo_facturado, 
                         dbo.Incidencia.Tags, dbo.Incidencia.Importe, dbo.Proyecto.Descripcion AS ProyectoDescripcion, dbo.Tipo_incidencia.Descripcion AS TipoIncidenciaDescripcion, dbo.Users.Username, 
                         dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Incidencia.Tiempo_actividad, CASE isnull(dbo.Incidencia.Visita, 0) WHEN 0 THEN 0 ELSE dbo.Incidencia.Tiempo_actividad END AS Tiempo_visita, 
                         CASE isnull(dbo.Incidencia.Tiempo_facturado, 0) WHEN 0 THEN 0 ELSE 1 END AS Facturado, CASE isnull(dbo.Incidencia.Tiempo_facturado, 0) WHEN 0 THEN ISNULL(dbo.Incidencia.Tiempo_actividad, 0) 
                         ELSE 0 END AS Tiempo_hotline, dbo.Incidencia.Fk_codigo_reparto, CASE ISNULL(dbo.Incidencia.Fecha_cierre, 0) WHEN 0 THEN 0 ELSE 1 END AS Cerrado, dbo.Incidencia.Documento, dbo.Incidencia.Fecha_cierre, 
                         dbo.Incidencia.Kilometros, dbo.Incidencia.Dietas, dbo.Incidencia.Peajes, dbo.Incidencia.Fecha_control, dbo.Incidencia.Notificar, dbo.Incidencia.Persona_contacto, 
                         dbo.Asientos_codigos_reparto.descripcion AS RepartoDescripcion, dbo.Incidencia.Fk_cliente2, V_Personas2.NombreCompleto AS NombreCompleto2, dbo.Incidencia.Fk_usuario2, USERS2.Username AS Nombre_usuario2, 
                         dbo.Incidencia.No_mostrar_en_calendario, dbo.Incidencia.SerieTipoDoc, dbo.Incidencia.Tipo_doc, dbo.Incidencia.Numero_doc, dbo.Incidencia.Resolucion, dbo.Incidencia.Fk_tipo_resolucion, 
                         TR.Descripcion AS Desc_tipo_resolucion, dbo.Incidencia.Cantidad, dbo.Incidencia.Bultos, dbo.Incidencia.Usuario_creacion, dbo.Incidencia.Usuario_modificacion, dbo.Incidencia.Fecha_creacion, 
                         dbo.Incidencia.Fecha_ultima_modificacion, dbo.Incidencia.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Incidencia.Fk_maquina, dbo.Maquinas.Descripcion AS Desc_maquina, dbo.Incidencia.Fk_operacion, 
                         dbo.Operaciones.Descripcion AS Desc_operacion
						 ,CASE WHEN Prioridad=0 THEN ''Alta'' WHEN Prioridad=1 THEN ''Media'' WHEN Prioridad=2 THEN ''Baja'' ELSE ''Sin Prioridad'' END as Desc_prioridad, 
                         dbo.Incidencia.Fk_centro, dbo.Centros.Descripcion AS Desc_Centro, dbo.Incidencia.Interna
						 ,dbo.Incidencia.Fk_proceso_tiquet,Procesos_tiquets.Descripcion as Desc_proceso_tiquet, dbo.Incidencia.Eliminada, dbo.Incidencia.Remesa,dbo.Incidencia.Fk_incidencia
FROM            dbo.Incidencia LEFT OUTER JOIN
                         dbo.Centros ON dbo.Incidencia.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Maquinas ON dbo.Incidencia.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
                         dbo.Operaciones ON dbo.Incidencia.Fk_operacion = dbo.Operaciones.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Incidencia.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.Proyecto ON dbo.Incidencia.Fk_proyecto = dbo.Proyecto.Codigo LEFT OUTER JOIN
                         dbo.Tipo_incidencia ON dbo.Incidencia.Fk_tipo_incidencia = dbo.Tipo_incidencia.Codigo LEFT OUTER JOIN
                         dbo.Users ON dbo.Incidencia.Fk_usuario = dbo.Users.Codigo LEFT OUTER JOIN
                         dbo.Users AS USERS2 ON dbo.Incidencia.Fk_usuario2 = USERS2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Incidencia.Fk_cliente = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_Personas2 ON dbo.Incidencia.Fk_cliente2 = V_Personas2.Codigo LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto ON dbo.Incidencia.Fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
                         dbo.Tipo_incidencia AS TR ON dbo.Incidencia.Fk_tipo_resolucion = TR.Codigo LEFT OUTER JOIN
						 dbo.Procesos_tiquets ON dbo.Incidencia.Fk_proceso_tiquet=dbo.Procesos_tiquets.Numero LEFT OUTER JOIN
                         dbo.Personas_direcciones ON dbo.Personas_direcciones.Codigo =
                             (SELECT        TOP (1) Codigo
                               FROM            dbo.Personas_direcciones
                               WHERE        (Codigo_persona = dbo.Incidencia.Fk_cliente)
                               ORDER BY Predeterminada DESC, Codigo_postal DESC, Municipio DESC)
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovimientosN43Descripciones]'))
							EXEC dbo.sp_executesql @statement = N'

							/****** Object:  View [dbo].[V_MovimientosN43Descripciones]    Script Date: 01/20/2012 12:12:20 ******/
							CREATE VIEW [dbo].[V_MovimientosN43Descripciones]
							AS
							SELECT     dbo.Movimientos_N43.Codigo, dbo.Movimientos_N43.Entidad, dbo.Movimientos_N43.Oficina, dbo.Movimientos_N43.Numero_cuenta,
							dbo.Movimientos_N43.Fk_cuenta_contable, dbo.Movimientos_N43.Fk_contrapartida, dbo.Movimientos_N43.Clave_oficina_origen,
							dbo.Movimientos_N43.Fecha_operacion, dbo.Movimientos_N43.Fecha_valor, dbo.Movimientos_N43.Concepto_comun, dbo.Movimientos_N43.Concepto_propio,
							dbo.Movimientos_N43.Debe_haber, dbo.Movimientos_N43.Importe, dbo.Movimientos_N43.Num_documento, dbo.Movimientos_N43.Referencia1,
							dbo.Movimientos_N43.Referencia2, dbo.Movimientos_N43.Concepto1_1, dbo.Movimientos_N43.Concepto2_1, dbo.Movimientos_N43.Concepto1_2,
							dbo.Movimientos_N43.Concepto2_2, dbo.Movimientos_N43.Concepto1_3, dbo.Movimientos_N43.Concepto2_3, dbo.Movimientos_N43.Concepto1_4,
							dbo.Movimientos_N43.Concepto2_4, dbo.Movimientos_N43.Concepto1_5, dbo.Movimientos_N43.Concepto2_5, dbo.Movimientos_N43.Pendiente_saldar,
							dbo.Movimientos_N43.fk_control_importacion, Conceptos_1.Descripcion AS NuestroConcepto,
							dbo.Asientos_cuentas_contables.Descripcion AS DescripcionCuentaContable, dbo.Asientos_cuentas_contables.Codigo AS CodigoCuentaContable,
							dbo.Relacion_Conceptos_propios_banco.Nif_reg23_desde, dbo.Relacion_Conceptos_propios_banco.Nif_reg23_hasta,
							dbo.Relacion_Conceptos_propios_banco.Busquedas_dias_atras, dbo.Relacion_Conceptos_propios_banco.Busquedas_dias_adelante,
							dbo.Relacion_Conceptos_propios_banco.Fk_concepto_agrocoop, dbo.Conceptos.Descripcion
							FROM         dbo.Conceptos INNER JOIN
							dbo.Relacion_Conceptos_propios_banco ON dbo.Conceptos.Codigo = dbo.Relacion_Conceptos_propios_banco.Fk_concepto_agrocoop RIGHT OUTER JOIN
							dbo.Movimientos_N43 LEFT OUTER JOIN
							dbo.Cuentas_banco_empresa ON dbo.Movimientos_N43.Fk_cuenta_contable = dbo.Cuentas_banco_empresa.Codigo LEFT OUTER JOIN
							dbo.Asientos_cuentas_contables ON dbo.Cuentas_banco_empresa.Fk_cuenta_contable = dbo.Asientos_cuentas_contables.Codigo ON
							dbo.Relacion_Conceptos_propios_banco.Fk_Entidad = dbo.Movimientos_N43.Entidad AND
							dbo.Relacion_Conceptos_propios_banco.Id_Concepto_banco = dbo.Movimientos_N43.Concepto_propio LEFT OUTER JOIN
							dbo.Conceptos AS Conceptos_1 ON Conceptos_1.Codigo = dbo.Relacion_Conceptos_propios_banco.Fk_concepto_agrocoop

							'
							GO



							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AsientosCabecera]'))
							EXEC dbo.sp_executesql @statement = N'
							CREATE VIEW [dbo].[V_AsientosCabecera]
							AS
							SELECT     dbo.Asientos_linea.id, dbo.Asientos_cabecera.fecha AS fecha_cabecera,dbo.Asientos_cabecera.Fecha_integracion, dbo.Asientos_cabecera.Ejercicio_origen, dbo.Asientos_cabecera.Numero_asiento_origen, CASE isnull(dbo.Asientos_linea.fk_cuenta_debe, '''')
							WHEN '''' THEN dbo.Asientos_linea.fk_cuenta_haber ELSE dbo.Asientos_linea.fk_cuenta_debe END AS codigoCuenta,
							dbo.Asientos_cuentas_contables.Descripcion AS descCuenta, CASE isnull(dbo.Asientos_linea.fk_cuenta_debe, '''') WHEN '''' THEN NULL
							ELSE dbo.Asientos_linea.importe END AS importe_debe, CASE isnull(dbo.Asientos_linea.fk_cuenta_haber, '''') WHEN '''' THEN NULL
							ELSE dbo.Asientos_linea.importe END AS importe_haber, dbo.Asientos_linea.fecha, dbo.Asientos_linea.concepto, dbo.Asientos_linea.SerieTipoDoc, dbo.Asientos_linea.serie,
							dbo.Asientos_linea.num_documento, dbo.Asientos_cabecera.numero_asiento, dbo.Asientos_linea.Num_linea, dbo.Asientos_linea.fk_asientos_cabecera,
							dbo.Asientos_linea.Saldo, dbo.Asientos_cabecera.fk_ejercicio_contable, dbo.Asientos_cabecera.no_integrar, dbo.Asientos_cabecera.Usuario_modificacion, dbo.Asientos_cabecera.Fecha_modificacion
							,dbo.Asientos_cabecera.Fecha_validar_integracion
							FROM         dbo.Asientos_cabecera INNER JOIN
							dbo.Asientos_linea ON dbo.Asientos_cabecera.id = dbo.Asientos_linea.fk_asientos_cabecera INNER JOIN
							dbo.Asientos_cuentas_contables ON dbo.Asientos_linea.fk_cuenta_haber = dbo.Asientos_cuentas_contables.Codigo OR
							dbo.Asientos_linea.fk_cuenta_debe = dbo.Asientos_cuentas_contables.Codigo

							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasMesCliente]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasMesCliente]
							AS
							SELECT        dbo.Facturas_venta.Codigo_cliente, YEAR(dbo.Facturas_venta.Fecha_hora) AS Year, MONTH(dbo.Facturas_venta.Fecha_hora) AS Month
							,ISNULL(SUM(dbo.Facturas_venta_lineas.Importe_base), 0) AS Importe_Total
							,ISNULL(SUM(dbo.Facturas_venta_lineas.Cantidad), 0) AS Cantidad_total
							FROM            dbo.Facturas_venta INNER JOIN
							dbo.Facturas_venta_lineas ON dbo.Facturas_venta.Serie = dbo.Facturas_venta_lineas.Serie 
							AND dbo.Facturas_venta.Numero = dbo.Facturas_venta_lineas.Numero
							GROUP BY dbo.Facturas_venta.Codigo_cliente, YEAR(dbo.Facturas_venta.Fecha_hora), MONTH(dbo.Facturas_venta.Fecha_hora)
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasMesClienteArticulo]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasMesClienteArticulo]
							AS
							SELECT        dbo.Facturas_venta.Codigo_cliente, dbo.Facturas_venta_lineas.Articulo, YEAR(dbo.Facturas_venta.Fecha_hora) AS Year, MONTH(dbo.Facturas_venta.Fecha_hora) AS Month,
							ISNULL(SUM(dbo.Facturas_venta_lineas.Importe_base), 0) AS Importe_Total, ISNULL(SUM(dbo.Facturas_venta_lineas.Cantidad), 0) AS Cantidad
							FROM            dbo.Facturas_venta INNER JOIN
							dbo.Facturas_venta_lineas ON dbo.Facturas_venta.Serie = dbo.Facturas_venta_lineas.Serie AND dbo.Facturas_venta.Numero = dbo.Facturas_venta_lineas.Numero
							GROUP BY dbo.Facturas_venta.Codigo_cliente, dbo.Facturas_venta_lineas.Articulo, YEAR(dbo.Facturas_venta.Fecha_hora), MONTH(dbo.Facturas_venta.Fecha_hora)
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosCompra]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedidosCompra]
							AS
							SELECT     dbo.Ped_compra.Serie, dbo.Ped_compra.Numero, dbo.Ped_compra.Fecha_hora, dbo.Ped_compra.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto,
							SUM(dbo.Ped_compra_lineas.Cantidad) AS Cantidad, dbo.Ped_compra.Total_factura
							FROM         dbo.Ped_compra INNER JOIN
							dbo.Ped_compra_lineas ON dbo.Ped_compra.Serie = dbo.Ped_compra_lineas.Serie AND dbo.Ped_compra.Numero = dbo.Ped_compra_lineas.Numero INNER JOIN
							dbo.V_PersonasSoloNombre ON dbo.Ped_compra.Codigo_persona = dbo.V_PersonasSoloNombre.Codigo
							GROUP BY dbo.Ped_compra.Serie, dbo.Ped_compra.Numero, dbo.Ped_compra.Fecha_hora,dbo.Ped_compra.Fecha_prevista_entrega, dbo.Ped_compra.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto,
							dbo.Ped_compra.Total_factura
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinAsociados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinAsociados]
							AS
SELECT  Fk_persona, Fk_centro, Id, Serie, Numero, Fecha_hora, Linea, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_anulada, Id_doc_asociado, Importe_total_linea, Tipo_doc, Tipo_doc_asociado, Serie_doc_asociado, Numero_doc_asociado, Su_referencia_cabecera
FROM     (SELECT dbo.Alb_venta.Codigo_cliente as Fk_persona,  dbo.Alb_venta.Fk_centro, dbo.Alb_venta_lineas.Id, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero, dbo.Alb_venta.Fecha_hora, dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, dbo.Alb_venta_lineas.Articulo_descripcion, dbo.Alb_venta_lineas.Bultos, dbo.Alb_venta_lineas.Cantidad, 
                           ISNULL(dbo.Alb_venta_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Alb_venta_lineas.Id_doc_asociado, dbo.Alb_venta_lineas.Importe_total_linea, ''AV'' AS Tipo_doc, dbo.Alb_venta_lineas.Tipo_doc_asociado, dbo.Alb_venta_lineas.Serie_doc_asociado, dbo.Alb_venta_lineas.Numero_doc_asociado, 
                           dbo.Alb_venta.Su_referencia AS Su_referencia_cabecera
             FROM      dbo.Alb_venta_lineas INNER JOIN
                           dbo.Alb_venta ON dbo.Alb_venta_lineas.Serie = dbo.Alb_venta.Serie AND dbo.Alb_venta_lineas.Numero = dbo.Alb_venta.Numero
             UNION ALL
             SELECT dbo.Ped_venta.Codigo_cliente as Fk_persona,  dbo.Ped_venta.Fk_centro, dbo.Ped_venta_lineas.Id, dbo.Ped_venta_lineas.Serie, dbo.Ped_venta_lineas.Numero, dbo.Ped_venta.Fecha_hora, dbo.Ped_venta_lineas.Linea, dbo.Ped_venta_lineas.Fk_articulo, dbo.Ped_venta_lineas.Articulo_descripcion, dbo.Ped_venta_lineas.Bultos, dbo.Ped_venta_lineas.Cantidad, 
                          ISNULL(dbo.Ped_venta_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Ped_venta_lineas.Id_doc_asociado, dbo.Ped_venta_lineas.Importe_total_linea, ''PV'' AS Tipo_doc, dbo.Ped_venta_lineas.Tipo_doc_asociado, dbo.Ped_venta_lineas.Serie_doc_asociado, dbo.Ped_venta_lineas.Numero_doc_asociado, 
                          dbo.Ped_venta.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Ped_venta_lineas INNER JOIN
                          dbo.Ped_venta ON dbo.Ped_venta_lineas.Serie = dbo.Ped_venta.Serie AND dbo.Ped_venta_lineas.Numero = dbo.Ped_venta.Numero
						  WHERE ISNULL(Ped_venta_lineas.Automatica,0) = 0
             UNION ALL
             SELECT  dbo.Pres_venta.Codigo_cliente as Fk_persona, dbo.Pres_venta.Fk_centro, dbo.Pres_venta_lineas.Id, dbo.Pres_venta_lineas.Serie, dbo.Pres_venta_lineas.Numero, dbo.Pres_venta.Fecha_hora, dbo.Pres_venta_lineas.Linea, dbo.Pres_venta_lineas.Fk_articulo, dbo.Pres_venta_lineas.Articulo_descripcion, dbo.Pres_venta_lineas.Bultos, dbo.Pres_venta_lineas.Cantidad, 
                          ISNULL(dbo.Pres_venta_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, NULL AS Id_doc_asociado, dbo.Pres_venta_lineas.Importe_total_linea, ''PR'' AS Tipo_doc, NULL AS Tipo_doc_asociado, NULL AS Serie_doc_asociado, NULL AS Numero_doc_asociado, dbo.Pres_venta.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Pres_venta_lineas INNER JOIN
                          dbo.Pres_venta ON dbo.Pres_venta_lineas.Serie = dbo.Pres_venta.Serie AND dbo.Pres_venta_lineas.Numero = dbo.Pres_venta.Numero
             UNION ALL
             SELECT dbo.Facturas_venta.Codigo_cliente as Fk_persona,  dbo.Facturas_venta.Fk_centro, dbo.Facturas_venta_lineas.Id, dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero, dbo.Facturas_venta.Fecha_hora, dbo.Facturas_venta_lineas.Linea, dbo.Facturas_venta_lineas.Articulo AS Fk_articulo, dbo.Facturas_venta_lineas.Articulo_descripcion, 
                          dbo.Facturas_venta_lineas.Bultos, dbo.Facturas_venta_lineas.Cantidad, ISNULL(dbo.Facturas_venta_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Facturas_venta_lineas.Id_doc_asociado, dbo.Facturas_venta_lineas.Importe_total_linea, ''FV'' AS Tipo_doc, dbo.Facturas_venta_lineas.Tipo_doc_asociado, 
                          dbo.Facturas_venta_lineas.Serie_doc_asociado, dbo.Facturas_venta_lineas.Numero_doc_asociado, dbo.Facturas_venta.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Facturas_venta_lineas INNER JOIN
                          dbo.Facturas_venta ON dbo.Facturas_venta_lineas.Serie = dbo.Facturas_venta.Serie AND dbo.Facturas_venta_lineas.Numero = dbo.Facturas_venta.Numero
             UNION ALL
             SELECT dbo.Fac_compra.Codigo_persona as Fk_persona,  dbo.Fac_compra.Fk_centro, dbo.Fac_compra_lineas.Id, dbo.Fac_compra_lineas.Serie, dbo.Fac_compra_lineas.Numero, dbo.Fac_compra.Fecha_hora, dbo.Fac_compra_lineas.Linea, dbo.Fac_compra_lineas.Fk_articulo, dbo.Fac_compra_lineas.Articulo_descripcion, dbo.Fac_compra_lineas.Bultos, dbo.Fac_compra_lineas.Cantidad, 
                          ISNULL(dbo.Fac_compra_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Fac_compra_lineas.Id_doc_asociado, dbo.Fac_compra_lineas.Importe_total_linea, ''FC'' AS Tipo_doc, dbo.Fac_compra_lineas.Tipo_doc_asociado, dbo.Fac_compra_lineas.Serie_doc_asociado, dbo.Fac_compra_lineas.Numero_doc_asociado, 
                          dbo.Fac_compra.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Fac_compra_lineas INNER JOIN
                          dbo.Fac_compra ON dbo.Fac_compra_lineas.Serie = dbo.Fac_compra.Serie AND dbo.Fac_compra_lineas.Numero = dbo.Fac_compra.Numero
             UNION ALL
             SELECT  dbo.Ped_compra.Codigo_persona as Fk_persona, dbo.Ped_compra.Fk_centro, dbo.Ped_compra_lineas.Id, dbo.Ped_compra_lineas.Serie, dbo.Ped_compra_lineas.Numero, dbo.Ped_compra.Fecha_hora, dbo.Ped_compra_lineas.Linea, dbo.Ped_compra_lineas.Fk_articulo, dbo.Ped_compra_lineas.Articulo_descripcion, dbo.Ped_compra_lineas.Bultos, dbo.Ped_compra_lineas.Cantidad, 
                          ISNULL(dbo.Ped_compra_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Ped_compra_lineas.Id_doc_asociado, dbo.Ped_compra_lineas.Importe_total_linea, ''PC'' AS Tipo_doc, dbo.Ped_compra_lineas.Tipo_doc_asociado, dbo.Ped_compra_lineas.Serie_doc_asociado, dbo.Ped_compra_lineas.Numero_doc_asociado, 
                          dbo.Ped_compra.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Ped_compra_lineas INNER JOIN
                          dbo.Ped_compra ON dbo.Ped_compra_lineas.Serie = dbo.Ped_compra.Serie AND dbo.Ped_compra_lineas.Numero = dbo.Ped_compra.Numero
             UNION ALL
             SELECT  dbo.Alb_compra.Codigo_persona as Fk_persona, dbo.Alb_compra.Fk_centro, dbo.Alb_compra_lineas.Id, dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, dbo.Alb_compra.Fecha_hora, dbo.Alb_compra_lineas.Linea, dbo.Alb_compra_lineas.Fk_articulo, dbo.Alb_compra_lineas.Articulo_descripcion, dbo.Alb_compra_lineas.Bultos, dbo.Alb_compra_lineas.Cantidad, 
                          ISNULL(dbo.Alb_compra_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Alb_compra_lineas.Id_doc_asociado, dbo.Alb_compra_lineas.Importe_total_linea, ''AC'' AS Tipo_doc, dbo.Alb_compra_lineas.Tipo_doc_asociado, dbo.Alb_compra_lineas.Serie_doc_asociado, dbo.Alb_compra_lineas.Numero_doc_asociado, 
                          dbo.Alb_compra.Su_referencia AS Su_referencia_cabecera
             FROM     dbo.Alb_compra_lineas INNER JOIN
                          dbo.Alb_compra ON dbo.Alb_compra_lineas.Serie = dbo.Alb_compra.Serie AND dbo.Alb_compra_lineas.Numero = dbo.Alb_compra.Numero
             UNION ALL
             SELECT  CAST(NULL as nvarchar) as Fk_persona, dbo.Alb_liq.Fk_centro, dbo.Alb_liq_lin.Id, dbo.Alb_liq_lin.Serie, dbo.Alb_liq_lin.Numero, dbo.Alb_liq.Fecha AS Fecha_hora, dbo.Alb_liq_lin.Linea, dbo.Alb_liq_lin.Articulo, dbo.Alb_liq_lin.Articulo_descripcion, dbo.Alb_liq_lin.Bultos, dbo.Alb_liq_lin.Cantidad_bruta, 0 AS Cantidad_anulada, NULL AS Id_doc_asociado, 
                          dbo.Alb_liq_lin.Importe_bruto, ''AL'' AS Tipo_doc, NULL AS Tipo_doc_asociado, NULL AS Serie_doc_asociado, NULL AS Numero_doc_asociado, '''' AS Su_referencia_cabecera
             FROM     dbo.Alb_liq_lin INNER JOIN
                          dbo.Alb_liq ON dbo.Alb_liq_lin.Serie = dbo.Alb_liq.Serie AND dbo.Alb_liq_lin.Numero = dbo.Alb_liq.Numero) AS derivedtbl_1
UNION ALL
SELECT  dbo.Contratos_compra.Codigo_persona as Fk_persona, dbo.Contratos_compra.Fk_centro, dbo.Contratos_compra_lineas.Id, dbo.Contratos_compra_lineas.Serie, dbo.Contratos_compra_lineas.Numero, dbo.Contratos_compra.Fecha_hora, dbo.Contratos_compra_lineas.Linea, dbo.Contratos_compra_lineas.Fk_articulo, dbo.Contratos_compra_lineas.Articulo_descripcion, 
             dbo.Contratos_compra_lineas.Bultos, dbo.Contratos_compra_lineas.Cantidad, ISNULL(dbo.Contratos_compra_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Contratos_compra_lineas.Id_doc_asociado, dbo.Contratos_compra_lineas.Importe_total_linea, ''CC'' AS Tipo_doc, dbo.Contratos_compra_lineas.Tipo_doc_asociado, 
             dbo.Contratos_compra_lineas.Serie_doc_asociado, dbo.Contratos_compra_lineas.Numero_doc_asociado, dbo.Contratos_compra.Su_referencia AS Su_referencia_cabecera
FROM     dbo.Contratos_compra_lineas INNER JOIN
             dbo.Contratos_compra ON dbo.Contratos_compra_lineas.Serie = dbo.Contratos_compra.Serie AND dbo.Contratos_compra_lineas.Numero = dbo.Contratos_compra.Numero
UNION ALL
SELECT  dbo.Contratos_venta.Codigo_persona as Fk_persona, dbo.Contratos_venta.Fk_centro, dbo.Contratos_venta_lineas.Id, dbo.Contratos_venta_lineas.Serie, dbo.Contratos_venta_lineas.Numero, dbo.Contratos_venta.Fecha_hora, dbo.Contratos_venta_lineas.Linea, dbo.Contratos_venta_lineas.Fk_articulo, dbo.Contratos_venta_lineas.Articulo_descripcion, dbo.Contratos_venta_lineas.Bultos, 
             dbo.Contratos_venta_lineas.Cantidad, ISNULL(dbo.Contratos_venta_lineas.Cantidad_anulada, 0) AS Cantidad_anulada, dbo.Contratos_venta_lineas.Id_doc_asociado, dbo.Contratos_venta_lineas.Importe_total_linea, ''CV'' AS Tipo_doc, dbo.Contratos_venta_lineas.Tipo_doc_asociado, dbo.Contratos_venta_lineas.Serie_doc_asociado, 
             dbo.Contratos_venta_lineas.Numero_doc_asociado, dbo.Contratos_venta.Su_referencia AS Su_referencia_cabecera
FROM     dbo.Contratos_venta_lineas INNER JOIN
             dbo.Contratos_venta ON dbo.Contratos_venta_lineas.Serie = dbo.Contratos_venta.Serie AND dbo.Contratos_venta_lineas.Numero = dbo.Contratos_venta.Numero
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstados]
							AS
							SELECT     Fk_persona, Fk_centro, Tipo_doc, Id, Fecha_hora, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente, Importe_total_linea, (CASE WHEN (Cantidad <> 0 AND 
                         Cantidad - Cantidad_pendiente = 0 AND Cantidad_asociada = 0 AND Cantidad_anulada = 0) THEN 1 ELSE 0 END) AS Pendiente,
						 CASE WHEN Cantidad_pendiente>0 AND Cantidad_anulada<>0 THEN 1 ELSE 0 END as PendienteAnuladoParte
						 ,(CASE WHEN (Cantidad = 0) OR
                         (ABS(Cantidad - Cantidad_asociada) >= 0 AND Cantidad_anulada = 0 AND Cantidad_pendiente = 0) THEN 1 ELSE 0 END) AS AsociadoTotal, (CASE WHEN (Cantidad <> 0 AND 
                         Cantidad - (Cantidad_asociada + Cantidad_pendiente + Cantidad_anulada) = 0 AND Cantidad_pendiente <> 0 AND Cantidad_asociada <> 0) THEN 1 ELSE 0 END) AS AsociadoParcial, (CASE WHEN (Cantidad <> 0 AND 
                         Cantidad - Cantidad_anulada = 0 AND Cantidad_asociada = 0 AND Cantidad_pendiente = 0) THEN 1 ELSE 0 END) AS AnuladoTotal, (CASE WHEN (Cantidad <> 0 AND ABS(Cantidad - (Cantidad_asociada + Cantidad_anulada)) 
                         >= 0 AND Cantidad_pendiente = 0 AND Cantidad_anulada <> 0 AND Cantidad_asociada <> 0) THEN 1 ELSE 0 END) AS AsociadoAnuladoTotal
FROM            (SELECT      Fk_persona,  Fk_centro, Tipo_doc, Id,Fecha_hora, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_asociada, Cantidad_anulada, Importe_total_linea, 
                                                    CASE WHEN Cantidad > 0 THEN CASE WHEN Cantidad - Cantidad_asociada - Cantidad_anulada < 0 THEN 0 ELSE Cantidad - Cantidad_asociada - Cantidad_anulada END ELSE CASE WHEN Cantidad - Cantidad_asociada
                                                     - Cantidad_anulada > 0 THEN 0 ELSE Cantidad - Cantidad_asociada - Cantidad_anulada END END AS Cantidad_pendiente
                          FROM            (SELECT       Fk_persona, Fk_centro, Id,Fecha_hora, Serie, Numero, Linea, Bultos, ISNULL(Cantidad, 0) AS Cantidad, Fk_articulo, Articulo_descripcion, ISNULL(Cantidad_anulada, 0) AS Cantidad_anulada, Importe_total_linea, Tipo_doc,
                                                                                  (SELECT        ISNULL(SUM(Cantidad), 0) AS Expr1
                                                                                    FROM            dbo.V_DocLinAsociados AS v
                                                                                    WHERE        (Id_doc_asociado = V_DocLinAsociados_1.Id)) AS Cantidad_asociada
                                                    FROM            dbo.V_DocLinAsociados AS V_DocLinAsociados_1) AS derivedtbl_1) AS derivedtbl_2
'
GO


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosContratosVenta]'))
DROP VIEW [dbo].V_DocLinEstadosContratosVenta
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosContratosVenta]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosContratosVenta] AS
SELECT        Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente, Pendiente, AsociadoTotal, AsociadoParcial, AnuladoTotal, 
						 AsociadoAnuladoTotal,PendienteAnuladoParte
FROM            dbo.V_DocLinEstados
WHERE        (Tipo_doc = ''CV'')'
GO

 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVenta]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVenta] AS
SELECT        ISNULL(dbo.Contratos_venta.Serie, '''') AS Serie, ISNULL(dbo.Contratos_venta.Numero, 0) AS Numero, dbo.Contratos_venta.Fecha_hora, dbo.Contratos_venta.Fecha_hora_real, dbo.Contratos_venta.Codigo_persona, 
						 dbo.Contratos_venta.Divisa, dbo.Contratos_venta.Forma_pago, dbo.Contratos_venta.Forma_envio, dbo.Contratos_venta.Dia_pago1, dbo.Contratos_venta.Dia_pago2, dbo.Contratos_venta.Dia_pago3, 
						 dbo.Contratos_venta.Codigo_direccion_fiscal, dbo.Contratos_venta.Codigo_direccion_envio, dbo.Contratos_venta.Codigo_transportista, dbo.Contratos_venta.Representante1, dbo.Contratos_venta.Representante2, 
						 dbo.Contratos_venta.Dto_pp, dbo.Contratos_venta.Dto_esp, dbo.Contratos_venta.Su_referencia, dbo.Contratos_venta.Notas_internas, dbo.Contratos_venta.Notas_factura, dbo.Contratos_venta.Bloqueo, 
						 Personas_direcciones_1.Descripcion AS Dir_fiscal_desc, Personas_direcciones_1.Via_publica AS Dir_fiscal_via, Personas_direcciones_1.Direccion AS Dir_fiscal_direccion, 
						 Personas_direcciones_1.Numero AS Dir_fiscal_numero, Personas_direcciones_1.Piso AS Dir_fiscal_piso, Personas_direcciones_1.Puerta AS Dir_fiscal_puerta, 
						 Personas_direcciones_1.Municipio AS Dir_fiscal_municipio, Personas_direcciones_1.Codigo_postal AS Dir_fiscal_cp, Personas_direcciones_1.Comarca AS Dir_fiscal_comarca, 
						 Personas_direcciones_1.Provincia AS Dir_fiscal_provincia, Personas_direcciones_1.Pais AS Dir_fiscal_pais, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, 
						 dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Contratos_venta.Matricula, dbo.V_Personas.NombreCompleto AS Nombre_cliente, 
						 V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, 
						 dbo.Contratos_venta.Total_factura, dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.Personas_direcciones.Descripcion AS Dir_envio_desc, dbo.Personas_direcciones.Via_publica AS Dir_envio_via, 
						 dbo.Personas_direcciones.Direccion AS Direccion_envio, dbo.Personas_direcciones.Numero AS Dir_envio_numero, dbo.Personas_direcciones.Piso AS Dir_envio_piso, 
						 dbo.Personas_direcciones.Puerta AS Dir_envio_puerta, dbo.Personas_direcciones.Codigo_postal AS Dir_envio_cp, dbo.Personas_direcciones.Municipio AS Dir_envio_municipio, 
						 dbo.Personas_direcciones.Comarca AS Dir_envio_comarca, dbo.Personas_direcciones.Provincia AS Dir_envio_provincia, dbo.Personas_direcciones.Pais AS Dir_envio_pais, 
						 dbo.Personas_direcciones.Warehouse AS Dir_envio_warehouse, dbo.Personas_direcciones.Rc AS Dir_envio_rc, dbo.Personas_direcciones.Cae AS Dir_envio_cae, dbo.V_Personas.Nuestro_cod_cliente, 
						 dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_contratos_venta.Descripcion AS Desc_serie, dbo.Contratos_venta.Fk_centro, 
						 dbo.Centros.Via_publica AS Centros_via_publica, dbo.Centros.Direccion AS Centros_direccion, dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta AS Centros_puerta, 
						 dbo.Centros.Municipio AS Centro_municipio, dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, 
						 dbo.Centros.Telefono_1 AS Centro_telefono1, dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, 
						 dbo.Centros.Piso AS Centro_piso, dbo.Contratos_venta.Fecha_prevista_entrega, dbo.Contratos_venta.Valorado, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, 
						 A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_asociado,
						 dbo.Contratos_venta.Fecha_inicio, dbo.Contratos_venta.Fecha_fin,dbo.Contratos_venta.Persona_contacto,
						 dbo.Contratos_venta.Fecha_modificacion, dbo.Contratos_venta.Usuario_creacion, dbo.Contratos_venta.Usuario_modificacion, dbo.Contratos_venta.Fecha_creacion, dbo.Contratos_venta.Fk_empresa
						 , dbo.Contratos_venta.Desc_incoterm_extension, dbo.Contratos_venta.Fk_incoterm, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.V_Personas.Idioma_reportes
FROM            dbo.V_Personas RIGHT OUTER JOIN
						 dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
						 dbo.V_Personas AS V_Personas_1 RIGHT OUTER JOIN
						 dbo.Personas_direcciones RIGHT OUTER JOIN
						 dbo.Contratos_venta LEFT OUTER JOIN
						 dbo.Series_contratos_venta ON dbo.Contratos_venta.Serie = dbo.Series_contratos_venta.Serie LEFT OUTER JOIN
						 dbo.Centros ON dbo.Contratos_venta.Fk_centro = dbo.Centros.Codigo ON dbo.Personas_direcciones.Codigo = dbo.Contratos_venta.Codigo_direccion_envio ON 
						 V_Personas_1.Codigo = dbo.Contratos_venta.Representante2 ON V_Personas_3.Codigo = dbo.Contratos_venta.Representante1 LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_2 ON dbo.Contratos_venta.Codigo_transportista = V_Personas_2.Codigo ON dbo.V_Personas.Codigo = dbo.Contratos_venta.Codigo_persona LEFT OUTER JOIN
						 dbo.Personas_direcciones AS Personas_direcciones_1 ON dbo.Contratos_venta.Codigo_direccion_fiscal = Personas_direcciones_1.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Contratos_venta.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Contratos_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Divisas ON dbo.Contratos_venta.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
						dbo.Incoterm ON dbo.Incoterm.Codigo = dbo.Contratos_venta.Fk_incoterm  LEFT OUTER JOIN 
							 (SELECT        dbo.Contratos_venta_lineas.Serie, dbo.Contratos_venta_lineas.Numero, SUM(dbo.Contratos_venta_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Contratos_venta_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Contratos_venta_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Contratos_venta_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Contratos_venta_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Contratos_venta_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Contratos_venta_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Contratos_venta_lineas.Importe_dto2) 
														 AS Importe_dto2, SUM(dbo.Contratos_venta_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Contratos_venta_lineas.Importe_comision2) AS Importe_comision2, 
														 SUM(dbo.Contratos_venta_lineas.Importe_base) AS Importe_base, SUM(dbo.Contratos_venta_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Contratos_venta_lineas.Importe_recargo) AS Importe_recargo, 
														 CASE WHEN SUM(dbo.V_DocLinEstadosContratosVenta.Pendiente) = COUNT(dbo.V_DocLinEstadosContratosVenta.Linea) THEN 0 WHEN SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoTotal) 
														 = COUNT(dbo.V_DocLinEstadosContratosVenta.Linea) THEN 1 WHEN SUM(dbo.V_DocLinEstadosContratosVenta.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosContratosVenta.Linea) 
														 THEN 3 WHEN SUM(dbo.V_DocLinEstadosContratosVenta.Pendiente) + SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoParcial) 
														 = COUNT(dbo.V_DocLinEstadosContratosVenta.Linea) THEN 2 WHEN SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosContratosVenta.AnuladoTotal) 
														 + SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosContratosVenta.Linea) THEN 4 WHEN (SUM(dbo.V_DocLinEstadosContratosVenta.Pendiente) 
														 + SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoParcial)) > 0 AND (SUM(dbo.V_DocLinEstadosContratosVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosContratosVenta.AsociadoAnuladoTotal)) 
														 > 0 THEN 5 ELSE 6 END AS Estado_asociado, SUM(dbo.Contratos_venta_lineas.Importe_irpf) AS Importe_irpf
							   FROM            dbo.Contratos_venta_lineas LEFT OUTER JOIN
														 dbo.V_DocLinEstadosContratosVenta ON dbo.Contratos_venta_lineas.Id = dbo.V_DocLinEstadosContratosVenta.Id
							   GROUP BY dbo.Contratos_venta_lineas.Serie, dbo.Contratos_venta_lineas.Numero) AS A ON dbo.Contratos_venta.Serie = A.Serie AND dbo.Contratos_venta.Numero = A.Numero'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosVentaEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ContratosVentaEstados] AS
SELECT        v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_persona, v.Total_factura, v.Fk_centro,
							 (SELECT        CASE WHEN SUM(Pendiente) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosVenta
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Pendiente,
							 (SELECT        CASE WHEN SUM(AsociadoParcial) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosVenta
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS AsociadoParcial,
							 (SELECT        ISNULL(SUM(Cantidad), 0) AS Expr1
							   FROM            dbo.Alb_venta_lineas
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
							 (SELECT        ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
							   FROM            dbo.Alb_venta_lineas AS Alb_venta_lineas_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
							 (SELECT        ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosVenta
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
							 (SELECT        ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosVenta AS V_DocLinEstadosContratosVenta_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente, dbo.V_Personas.NombreCompleto
FROM            dbo.Contratos_venta AS v INNER JOIN
						 dbo.V_Personas ON v.Codigo_persona = dbo.V_Personas.Codigo'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPresVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosPresVenta]
AS
SELECT     Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente,Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte
FROM         dbo.V_DocLinEstados
WHERE     (Tipo_doc = ''PR'')
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPedVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosPedVenta]
AS
SELECT        Fk_centro, Tipo_doc, Id, Serie,Fecha_hora, Numero, Linea, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente, Cantidad_cargada, Importe_total_linea, 
						 Importe_total_pendiente, Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte,
						 CASE WHEN Cantidad_asociada > Cantidad_cargada THEN Cantidad - Cantidad_asociada - cantidad_anulada ELSE Cantidad - cantidad_cargada - cantidad_anulada END AS Cantidad_pendiente_cargar
FROM            (SELECT        Fk_centro, Tipo_doc, Id,Fecha_hora, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Bultos, ISNULL(Cantidad, 0) AS Cantidad, ISNULL(Cantidad_asociada, 0) AS Cantidad_asociada, 
													ISNULL(Cantidad_anulada, 0) AS Cantidad_anulada, ISNULL(Cantidad_pendiente, 0) AS Cantidad_pendiente,Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte, ISNULL
														((SELECT        SUM(ISNULL(Cantidad, 0)) AS Expr1
															FROM            dbo.Hoja_carga_linea
															WHERE        (Fk_linea_ped_asociado = v.Id)), 0) AS Cantidad_cargada, CAST(ISNULL(Importe_total_linea, 0) AS Decimal(15, 2)) AS Importe_total_linea, CAST(CASE WHEN ISNULL(Cantidad, 0) 
													= 0 THEN 0 ELSE (ISNULL(Importe_total_linea, 0) / ISNULL(Cantidad, 0)) * ISNULL(Cantidad_pendiente, 0) END AS Decimal(15, 2)) AS Importe_total_pendiente
						  FROM            dbo.V_DocLinEstados AS v
						  WHERE        (Tipo_doc = ''PV'')) AS derivedtbl_1
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosAlbVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosAlbVenta]
AS
SELECT        Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, ISNULL(Cantidad_pendiente, 0) AS Cantidad_pendiente, ISNULL(Importe_total_linea, 0)
						 AS Importe_total_linea, CAST(CASE WHEN ISNULL(Cantidad, 0) = 0 THEN 0 ELSE (ISNULL(Importe_total_linea, 0) / ISNULL(Cantidad, 0)) * ISNULL(Cantidad_pendiente, 0) END AS Decimal(15, 2)) 
						 AS Importe_total_pendiente,Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte
FROM            dbo.V_DocLinEstados
WHERE        (Tipo_doc = ''AV'')
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosPedCompra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosPedCompra]
AS
SELECT     Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente,Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte
FROM         dbo.V_DocLinEstados
WHERE     (Tipo_doc = ''PC'')
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosAlbCompra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosAlbCompra]
AS
SELECT     Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente,Pendiente,AsociadoTotal,AsociadoParcial,AnuladoTotal,AsociadoAnuladoTotal,PendienteAnuladoParte
FROM         dbo.V_DocLinEstados
WHERE     (Tipo_doc = ''AC'')
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaVencimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaVencimientos]
AS
SELECT        dbo.cartera_vencimientos.fecha_vencimiento, dbo.cartera_vencimientos.importe_vencimiento, dbo.cartera_vencimientos.observaciones, dbo.Divisas.Descripcion_breve AS Desc_divisa, 
						 dbo.cartera_vencimientos.serie_documento, dbo.cartera_vencimientos.numero_documento, dbo.cartera_vencimientos.Fk_cuenta_banco_empresa, dbo.cartera_vencimientos.Fk_cuenta_cliente, 
						 dbo.cartera_vencimientos.id, dbo.cartera_vencimientos.Cerrado, dbo.cartera_vencimientos.fk_forma_pago, dbo.cartera_vencimientos.fecha_documento, dbo.Personas_cuentas.Cuenta_seccion_credito,FP.Descripcion as Desc_forma_pago
FROM            dbo.cartera_vencimientos LEFT OUTER JOIN
						 dbo.Personas_cuentas ON dbo.cartera_vencimientos.Fk_cuenta_cliente = dbo.Personas_cuentas.Codigo AND dbo.cartera_vencimientos.fk_persona = dbo.Personas_cuentas.Codigo_persona LEFT OUTER JOIN
						 dbo.Divisas ON dbo.cartera_vencimientos.fk_divisa = dbo.Divisas.Codigo
						 LEFT OUTER JOIN Formas_de_pago FP ON dbo.cartera_vencimientos.fk_forma_pago=FP.Codigo
WHERE        (dbo.cartera_vencimientos.SerieTipoDoc = ''FV'')
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaIvas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaIvas]
AS
SELECT     dbo.Facturas_venta_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
FROM         dbo.Facturas_venta_ivas INNER JOIN
dbo.Ivas ON dbo.Facturas_venta_ivas.Codigo_iva = dbo.Ivas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaImpuestos]
AS
SELECT     dbo.Facturas_venta_impuestos.Id, dbo.Facturas_venta_impuestos.Serie, dbo.Facturas_venta_impuestos.Numero, dbo.Facturas_venta_impuestos.Codigo_impuesto,
dbo.Facturas_venta_impuestos.Importe_base, dbo.Facturas_venta_impuestos.Valor_iva, dbo.Facturas_venta_impuestos.Importe_iva,
dbo.Facturas_venta_impuestos.Valor_recargo, dbo.Facturas_venta_impuestos.Importe_recargo, dbo.Facturas_venta_impuestos.Valor_irpf,
dbo.Facturas_venta_impuestos.Importe_irpf, dbo.Facturas_venta_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto, dbo.Impuestos.Repercutir_total_documento,dbo.Impuestos.No_imprimir_en_documentos
, dbo.Impuestos_tipos.Agrupar_en_documentos
FROM         dbo.Facturas_venta_impuestos INNER JOIN
dbo.Impuestos ON dbo.Facturas_venta_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVenta]
AS
SELECT ISNULL(dbo.Facturas_venta.Serie, '''') AS Serie, ISNULL(dbo.Facturas_venta.Numero, 0) AS Numero, dbo.Facturas_venta.Fk_empresa, dbo.Facturas_venta.Fecha_hora, dbo.Facturas_venta.Fecha_hora_real, CONVERT(date, dbo.Facturas_venta.Fecha_hora, 103) AS Fecha, 
             CONVERT(varchar, dbo.Facturas_venta.Fecha_hora, 108) AS Hora, dbo.Facturas_venta.Codigo_cliente, dbo.Facturas_venta.Divisa, dbo.Facturas_venta.Forma_pago, dbo.Facturas_venta.Forma_envio, dbo.Facturas_venta.Dia_pago1, dbo.Facturas_venta.Dia_pago2, 
             dbo.Facturas_venta.Dia_pago3, dbo.Facturas_venta.Codigo_direccion_fiscal, dbo.Facturas_venta.Codigo_direccion_envio, dbo.Facturas_venta.Codigo_transportista, dbo.Facturas_venta.Representante1, dbo.Facturas_venta.Representante2, dbo.Facturas_venta.Dto_pp, 
             dbo.Facturas_venta.Dto_esp, dbo.Facturas_venta.Su_referencia, dbo.Facturas_venta.Notas_internas, dbo.Facturas_venta.Notas_factura, dbo.Facturas_venta.Bloqueo, dbo.Facturas_venta.Horario_entrega, dbo.Facturas_venta.Fecha_recogida, 
             dbo.Facturas_venta.Fecha_limite_entrega, dbo.Facturas_venta.Fecha_entrega_concreta, dbo.Facturas_venta.Ref_alternativa, dbo.Facturas_venta.Dias_entrega, dbo.Facturas_venta.Desc_incoterm_extension, dbo.Facturas_venta.Contenedores, dbo.Facturas_venta.Precintos, 
             dbo.V_Personas.Num_carnet_aplicador AS Num_carnet_aplicador_ficha_persona, dbo.V_Personas.Codigo_ropo AS Codigo_ropo_ficha_persona, V_PersonasDirecciones_1.Descripcion AS Dir_fiscal_desc, V_PersonasDirecciones_1.Via_publica AS Dir_fiscal_via, 
             V_PersonasDirecciones_1.Direccion AS Dir_fiscal_direccion, V_PersonasDirecciones_1.Direccion2 AS Dir_fiscal_direccion2, V_PersonasDirecciones_1.Numero AS Dir_fiscal_numero, V_PersonasDirecciones_1.Piso AS Dir_fiscal_piso, 
             V_PersonasDirecciones_1.Puerta AS Dir_fiscal_puerta, V_PersonasDirecciones_1.Municipio AS Dir_fiscal_municipio, V_PersonasDirecciones_1.Codigo_postal AS Dir_fiscal_cp, V_PersonasDirecciones_1.Comarca AS Dir_fiscal_comarca, 
             V_PersonasDirecciones_1.Provincia AS Dir_fiscal_provincia, V_PersonasDirecciones_1.Pais AS Dir_fiscal_pais, V_PersonasDirecciones_1.Identificacion_empresa1 AS Dir_fiscal_id_empresa1, V_PersonasDirecciones_1.Identificacion_empresa2 AS Dir_fiscal_id_empresa2, 
             V_PersonasDirecciones_1.Cae AS Dir_fiscal_cae, V_PersonasDirecciones_1.Warehouse AS Dir_fiscal_warehouse, V_PersonasDirecciones_1.Rc AS Dir_fiscal_rc, CASE WHEN ISNULL(FVFP.FormasPagoMultiples, '''') 
             <> '''' THEN FVFP.FormasPagoMultiples ELSE dbo.Formas_de_pago.Descripcion END AS Desc_forma_pago, dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Facturas_venta.Matricula, 
             dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Facturas_venta.Total_factura, 
             dbo.V_Personas.Tipo_identificacion AS Tipo_identificacion_cliente, dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.V_Personas.Tipo_impresion_documentos, dbo.V_PersonasDirecciones.Descripcion AS Dir_envio_desc, 
             dbo.V_PersonasDirecciones.Via_publica AS Dir_envio_via, dbo.V_PersonasDirecciones.Direccion AS Direccion_envio, dbo.V_PersonasDirecciones.Direccion2 AS Direccion_envio2, dbo.V_PersonasDirecciones.Numero AS Dir_envio_numero, 
             dbo.V_PersonasDirecciones.Piso AS Dir_envio_piso, dbo.V_PersonasDirecciones.Puerta AS Dir_envio_puerta, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_envio_cp, dbo.V_PersonasDirecciones.Municipio AS Dir_envio_municipio, 
             dbo.V_PersonasDirecciones.Comarca AS Dir_envio_comarca, dbo.V_PersonasDirecciones.Provincia AS Dir_envio_provincia, dbo.V_PersonasDirecciones.Pais AS Dir_envio_pais, dbo.V_PersonasDirecciones.Warehouse AS Dir_envio_warehouse, 
             dbo.V_PersonasDirecciones.Telefono AS Dir_envio_telefono, dbo.V_PersonasDirecciones.Rc AS Dir_envio_rc, dbo.V_PersonasDirecciones.Cae AS Dir_envio_cae, PAIS_ENVIO.Latitud AS Latitud_pais_envio, PAIS_ENVIO.Longitud AS Longitud_pais_envio, 
             dbo.V_Personas.Nuestro_cod_cliente, dbo.V_Personas.Nuestro_cod_proveedor, dbo.V_Personas.Desc_pais, dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_facturas_venta.Descripcion AS Desc_serie, dbo.Facturas_venta.Fk_centro, 
             dbo.Facturas_venta.Dev_serie, dbo.Facturas_venta.Dev_numero, dbo.Facturas_venta.Dev_fecha, dbo.Facturas_venta.Dev_descripcion, dbo.Facturas_venta.Fk_mot_devolucion, dbo.Facturas_venta.Fecha_integracion, dbo.Facturas_venta.Contador AS Contador_integracion, 
             dbo.Facturas_venta.Total_cobrar_pagar, dbo.Facturas_venta.Ultima_fecha_impresion, dbo.Portes.Descripcion AS Desc_portes, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.Facturas_venta.Fk_incoterm, dbo.Facturas_venta.Cae, dbo.Facturas_venta.Porte, 
             dbo.Facturas_venta.Peso_bruto, dbo.Facturas_venta.Peso_bruto_arc, dbo.Facturas_venta.Peso_neto, dbo.Cuentas_banco_empresa.Iban AS Iban_empresa, dbo.Facturas_venta.Importe_entrega_cuenta, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, 
             A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, 
             CAST(CASE WHEN FVFP.Recoger_banco_cliente = 1 THEN FVFP.Recoger_banco_cliente ELSE ISNULL(dbo.Formas_de_pago.Recoger_banco_cliente, 0) END AS BIT) AS Recoger_banco_cliente, 
             CAST(CASE WHEN FVFP.Recoger_banco_empresa = 1 THEN FVFP.Recoger_banco_empresa ELSE ISNULL(dbo.Formas_de_pago.Recoger_banco_empresa, 0) END AS BIT) AS Recoger_banco_empresa, dbo.Divisas.Decimales_precio, dbo.Divisas.Decimales_importes, 
             dbo.Divisas.Decimales_total_doc, dbo.V_Personas.Codigo_secundario, dbo.Cuentas_banco_empresa.Descripcion AS Desc_banco_empresa, dbo.Cuentas_banco_empresa.Swift AS Bic_swift_banco_empresa, dbo.Motivos_devolucion.Descripcion AS Desc_motivo_devolucion, 
             dbo.V_Personas.Mostrar_dir_fiscal_facturas, CASE WHEN isnull
                 ((SELECT SUM(importe_vencimiento)
                  FROM    cartera_vencimientos
                  WHERE SerieTipoDoc = ''FV'' AND serie_documento = dbo.Facturas_venta.Serie AND numero_documento = dbo.Facturas_venta.Numero AND Cerrado = 1), 0) = dbo.Facturas_venta.Total_factura THEN ''C'' ELSE ''P'' END AS Estado, dbo.V_Personas.Iban_cliente, 
             dbo.V_Personas.Entidad_bh_cliente, dbo.V_Personas.Desc_entidad_bh_cliente, dbo.V_Personas.Dir_entidad_bh_cliente, dbo.V_Personas.Mostrar_grado_documentos, dbo.V_Personas.Mostrar_añada_documentos, dbo.Facturas_venta.Total_pales, dbo.Facturas_venta.Total_bultos, 
             dbo.Facturas_venta.Total_cantidad, V_Personas_4.NombreCompleto AS Nombre_consignatario, DC.Descripcion AS Dir_consig_desc, DC.Via_publica AS Dir_consig_via, DC.Direccion AS Dir_consig_envio, DC.Codigo_postal AS Dir_consig_cp, DC.Municipio AS Dir_consig_municipio, 
             DC.Comarca AS Dir_consig_comarca, DC.Provincia AS Dir_consig_provincia, DC.Pais AS Dir_consig_pais, DC.Cae AS Dir_consig_cae, DC.Warehouse AS Dir_consig_warehouse, DC.Rc AS Dir_consig_rc, dbo.Facturas_venta.Dni_propietario_carnet_aplicador, 
             dbo.Facturas_venta.num_carnet_aplicador, dbo.Facturas_venta.Codigo_ropo, A.HayFitosanitarios, A.NecesitaCarnetFito, dbo.Paises.Texto_factura, dbo.Facturas_venta.Numero_EMCS, dbo.Facturas_venta.Contenido_neto, dbo.Empresas.FDA, dbo.Paises.Id_iso2, 
             dbo.V_Personas.No_mostrar_vencimientos, dbo.V_Personas.Idioma_reportes, dbo.Facturas_venta.Fecha_operacion, dbo.Facturas_venta.Fecha_ultimo_envio, dbo.Facturas_venta.Id, dbo.Facturas_venta.Id_filtro, 
             dbo.Facturas_venta.Iva_criterio_caja, dbo.V_Personas.Ruta_transporte, dbo.V_Personas.No_mostrar_lotes, dbo.Facturas_venta.Persona_contacto, 
             dbo.Series_facturas_venta.Cae AS Cae_serie, dbo.Centros.Cae AS Cae_centro, dbo.Facturas_venta.Fecha_modificacion, dbo.Facturas_venta.Usuario_creacion, dbo.Facturas_venta.Usuario_modificacion, dbo.Facturas_venta.Fecha_creacion, 
             dbo.Facturas_venta.Fk_buzon_documentos, PDP.Descripcion AS Dir_postal_desc, PDP.Via_publica AS Dir_postal_via, PDP.Direccion AS Dir_postal_direccion, PDP.Direccion2 AS Dir_postal_direccion2, PDP.Numero AS Dir_postal_numero, PDP.Piso AS Dir_postal_piso, 
             PDP.Puerta AS Dir_postal_puerta, PDP.Municipio AS Dir_postal_municipio, PDP.Codigo_postal AS Dir_postal_cp, PDP.Comarca AS Dir_postal_comarca, PDP.Provincia AS Dir_postal_provincia, PDP.Pais AS Dir_postal_pais, dbo.Facturas_venta.SerieTipoDoc_link, 
             dbo.Facturas_venta.Serie_link, dbo.Facturas_venta.Numero_link, dbo.Facturas_venta.Fk_campana, dbo.Campañas.Descripcion AS Desc_campaña, dbo.Facturas_venta.Numero_remesa, dbo.V_Personas.Mostrar_fecha_cad_documentos, dbo.Facturas_venta.Gen_otra_empresa, 
             dbo.V_Personas.Telefono_particular AS Persona_telefono1, dbo.V_Personas.Email1 AS Persona_email1, dbo.Facturas_venta.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Facturas_venta.Fk_divisa_cliente, DivCliente.Descripcion AS Desc_divisa_cliente, 
             DivCliente.Descripcion_breve AS Desc_breve_divisa_cliente, dbo.Facturas_venta.Cambio_divisa_cliente
			 ,dbo.Facturas_venta.SII_Fecha, dbo.Facturas_venta.SII_CSV, dbo.Facturas_venta.SII_Estado , dbo.Empresas.CIF_SII,dbo.Facturas_venta.Fecha_envio_seres,dbo.Facturas_venta.Tipo_cambio_local
FROM   dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
             dbo.V_PersonasDirecciones RIGHT OUTER JOIN
             dbo.Centros RIGHT OUTER JOIN
             dbo.Series_facturas_venta RIGHT OUTER JOIN
             dbo.Facturas_venta LEFT OUTER JOIN
             dbo.Divisas AS DivCliente ON dbo.Facturas_venta.Fk_divisa_cliente = DivCliente.Codigo LEFT OUTER JOIN
             dbo.Secciones ON dbo.Facturas_venta.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
             dbo.Campañas ON dbo.Facturas_venta.Fk_campana = dbo.Campañas.Codigo LEFT OUTER JOIN
             dbo.Cuentas_banco_empresa ON dbo.Facturas_venta.Fk_cuenta_banco_empresa = dbo.Cuentas_banco_empresa.Codigo LEFT OUTER JOIN
             dbo.Entidades_bancarias ON dbo.Cuentas_banco_empresa.Entidad = dbo.Entidades_bancarias.Codigo LEFT OUTER JOIN
             dbo.Incoterm ON dbo.Facturas_venta.Fk_incoterm = dbo.Incoterm.Codigo LEFT OUTER JOIN
             dbo.Portes ON dbo.Facturas_venta.Porte = dbo.Portes.Codigo ON dbo.Series_facturas_venta.Serie = dbo.Facturas_venta.Serie ON dbo.Centros.Codigo = dbo.Facturas_venta.Fk_centro ON 
             dbo.V_PersonasDirecciones.Codigo = dbo.Facturas_venta.Codigo_direccion_envio LEFT OUTER JOIN
             dbo.Paises AS PAIS_ENVIO ON dbo.V_PersonasDirecciones.fk_pais = PAIS_ENVIO.Id_isonum LEFT OUTER JOIN
             dbo.V_Personas AS V_Personas_1 ON dbo.Facturas_venta.Representante2 = V_Personas_1.Codigo ON V_Personas_3.Codigo = dbo.Facturas_venta.Representante1 LEFT OUTER JOIN
             dbo.V_Personas AS V_Personas_2 ON dbo.Facturas_venta.Codigo_transportista = V_Personas_2.Codigo LEFT OUTER JOIN
             dbo.V_Personas ON dbo.Facturas_venta.Codigo_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
             dbo.V_Personas AS V_Personas_4 ON dbo.Facturas_venta.Fk_destinatario = V_Personas_4.Codigo LEFT OUTER JOIN
             dbo.V_PersonasDirecciones AS DC ON dbo.Facturas_venta.Fk_direccion_destinatario = DC.Codigo LEFT OUTER JOIN
             dbo.V_PersonasDirecciones AS V_PersonasDirecciones_1 ON dbo.Facturas_venta.Codigo_direccion_fiscal = V_PersonasDirecciones_1.Codigo LEFT OUTER JOIN
             dbo.V_PersonasDireccionPostal AS PDP ON dbo.Facturas_venta.Codigo_cliente = PDP.Codigo_persona LEFT OUTER JOIN
             dbo.Paises ON V_PersonasDirecciones_1.fk_pais = dbo.Paises.Id_isonum LEFT OUTER JOIN
             dbo.Empresas ON dbo.Empresas.Codigo = dbo.Facturas_venta.Fk_empresa LEFT OUTER JOIN
             dbo.Formas_de_pago ON dbo.Facturas_venta.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
                 (SELECT FVFP.Serie, FVFP.Numero, STRING_AGG(FP.Descripcion, '','') AS FormasPagoMultiples, MAX(CAST(ISNULL(FP.Recoger_banco_cliente, 0) AS int)) AS Recoger_banco_cliente, MAX(CAST(ISNULL(FP.Recoger_banco_empresa, 0) AS int)) AS Recoger_banco_empresa
                 FROM    dbo.Facturas_venta_fp AS FVFP LEFT OUTER JOIN
                              dbo.Formas_de_pago AS FP ON FVFP.Fk_forma_pago = FP.Codigo
                 GROUP BY FVFP.Serie, FVFP.Numero) AS FVFP ON FVFP.Serie = dbo.Facturas_venta.Serie AND FVFP.Numero = dbo.Facturas_venta.Numero LEFT OUTER JOIN
             dbo.Formas_envio ON dbo.Facturas_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
             dbo.Divisas ON dbo.Facturas_venta.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
             dbo.Motivos_devolucion ON dbo.Facturas_venta.Fk_mot_devolucion = dbo.Motivos_devolucion.Codigo LEFT OUTER JOIN
                 (SELECT dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero, SUM(dbo.Facturas_venta_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Facturas_venta_lineas.Cantidad, 0)) = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Facturas_venta_lineas.Importe_bruto, 
                              0)) / SUM(ISNULL(dbo.Facturas_venta_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Facturas_venta_lineas.Linea) AS Numero_lineas, SUM(dbo.Facturas_venta_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Facturas_venta_lineas.Importe_dto1) 
                              AS Importe_dto1, SUM(dbo.Facturas_venta_lineas.Importe_dto2) AS Importe_dto2, SUM(dbo.Facturas_venta_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Facturas_venta_lineas.Importe_comision2) AS Importe_comision2, 
                              SUM(dbo.Facturas_venta_lineas.Importe_base) AS Importe_base, SUM(dbo.Facturas_venta_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Facturas_venta_lineas.Importe_recargo) AS Importe_recargo, SUM(dbo.Facturas_venta_lineas.Importe_irpf) AS Importe_irpf, 
                              CAST(CASE WHEN SUM(CASE WHEN ISNULL(dbo.Articulos.Fito_registro, '''') <> '''' THEN 1 ELSE 0 END) >= 1 THEN 1 ELSE 0 END AS bit) AS HayFitosanitarios, CAST(CASE WHEN SUM(CASE WHEN ISNULL(dbo.Cat_fitosanitarios.Carnet_aplicador, '''') <> '''' THEN 1 ELSE 0 END) 
                              >= 1 THEN 1 ELSE 0 END AS bit) AS NecesitaCarnetFito
                 FROM    dbo.Facturas_venta_lineas INNER JOIN
                              dbo.Articulos ON dbo.Facturas_venta_lineas.Articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                              dbo.Cat_fitosanitarios ON dbo.Articulos.Fito_categoria = dbo.Cat_fitosanitarios.Codigo
                 GROUP BY dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero) AS A ON dbo.Facturas_venta.Serie = A.Serie AND dbo.Facturas_venta.Numero = A.Numero
'
GO






IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaLineasLotes]
AS
SELECT     dbo.Facturas_venta_lineas_lotes.Id, dbo.Facturas_venta_lineas_lotes.fk_Id_linea, dbo.Facturas_venta_lineas_lotes.Almacen, dbo.Facturas_venta_lineas_lotes.Lote,
dbo.Facturas_venta_lineas_lotes.Lote_etiqueta, dbo.Facturas_venta_lineas_lotes.Precio_coste_lote, dbo.Facturas_venta_lineas_lotes.Cantidad,
dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero,dbo.Lotes.Añada,dbo.Lotes.Fecha_caducidad,dbo.Lotes.Fecha_consumo_preferente
,dbo.Lotes.Grado,dbo.Lotes.Grado_oficial,dbo.Lotes.Km0
FROM         dbo.Facturas_venta_lineas_lotes LEFT OUTER JOIN
dbo.Facturas_venta_lineas ON dbo.Facturas_venta_lineas_lotes.fk_Id_linea = dbo.Facturas_venta_lineas.Id LEFT OUTER JOIN
dbo.Almacenes ON dbo.Facturas_venta_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
dbo.Lotes ON dbo.Facturas_venta_lineas.Articulo=dbo.Lotes.Fk_articulo AND dbo.Facturas_venta_lineas_lotes.Lote=dbo.Lotes.Lote
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaLineasImpuestos]
AS
SELECT     dbo.Facturas_venta_lineas_impuestos.Id, dbo.Facturas_venta_lineas_impuestos.fk_Id_linea, dbo.Facturas_venta_lineas_impuestos.Codigo_impuesto,
dbo.Facturas_venta_lineas_impuestos.Cantidad, dbo.Facturas_venta_lineas_impuestos.Tipo_valor, dbo.Facturas_venta_lineas_impuestos.Valor_impuesto,
dbo.Facturas_venta_lineas_impuestos.Importe_base, dbo.Facturas_venta_lineas_impuestos.Codigo_iva, dbo.Facturas_venta_lineas_impuestos.Valor_iva,
dbo.Facturas_venta_lineas_impuestos.Importe_iva, dbo.Facturas_venta_lineas_impuestos.Valor_recargo, dbo.Facturas_venta_lineas_impuestos.Importe_recargo,
dbo.Facturas_venta_lineas_impuestos.Valor_irpf, dbo.Facturas_venta_lineas_impuestos.Importe_irpf, dbo.Facturas_venta_lineas_impuestos.Aplicacion_irpf,
dbo.Facturas_venta_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero
FROM         dbo.Facturas_venta_lineas RIGHT OUTER JOIN
dbo.Facturas_venta_lineas_impuestos ON dbo.Facturas_venta_lineas.Id = dbo.Facturas_venta_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
dbo.Impuestos_tipos RIGHT OUTER JOIN
dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Facturas_venta_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[FacturasVentaLineasIvasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [FacturasVentaLineasIvasImpuestos]
AS
SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva, 
					  SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf, 
					  SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
FROM         dbo.Facturas_venta_lineas AS iva
GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
'
GO


IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraVencimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraVencimientos]
AS
SELECT     dbo.cartera_vencimientos.fecha_vencimiento, dbo.cartera_vencimientos.importe_vencimiento, dbo.cartera_vencimientos.observaciones,
dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.cartera_vencimientos.serie_documento, dbo.cartera_vencimientos.numero_documento
FROM         dbo.cartera_vencimientos LEFT OUTER JOIN
dbo.Divisas ON dbo.cartera_vencimientos.fk_divisa = dbo.Divisas.Codigo
WHERE     (dbo.cartera_vencimientos.SerieTipoDoc = ''FC'')
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraIvas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraIvas]
AS
SELECT     dbo.Fac_compra_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
FROM         dbo.Fac_compra_ivas INNER JOIN
dbo.Ivas ON dbo.Fac_compra_ivas.Codigo_iva = dbo.Ivas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraImpuestos]
AS
SELECT     dbo.Fac_compra_impuestos.Id, dbo.Fac_compra_impuestos.Serie, dbo.Fac_compra_impuestos.Numero, dbo.Fac_compra_impuestos.Codigo_impuesto,
dbo.Fac_compra_impuestos.Importe_base, dbo.Fac_compra_impuestos.Valor_iva, dbo.Fac_compra_impuestos.Importe_iva,
dbo.Fac_compra_impuestos.Valor_recargo, dbo.Fac_compra_impuestos.Importe_recargo, dbo.Fac_compra_impuestos.Valor_irpf,
dbo.Fac_compra_impuestos.Importe_irpf, dbo.Fac_compra_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
FROM         dbo.Fac_compra_impuestos INNER JOIN
dbo.Impuestos ON dbo.Fac_compra_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompra]
AS
SELECT        dbo.Fac_compra.Serie, dbo.Fac_compra.Numero, dbo.Fac_compra.Fecha_hora, dbo.Fac_compra.Fecha_hora_real, dbo.Fac_compra.Fecha_recepcion, dbo.Fac_compra.Codigo_persona, dbo.Fac_compra.Divisa, 
                         dbo.Fac_compra.Forma_pago, dbo.Fac_compra.Forma_envio, dbo.Fac_compra.Dia_pago1, dbo.Fac_compra.Dia_pago2, dbo.Fac_compra.Dia_pago3, dbo.Fac_compra.Codigo_direccion_fiscal, 
                         dbo.Fac_compra.Codigo_direccion_envio, dbo.Fac_compra.Codigo_transportista, dbo.Fac_compra.Representante1, dbo.Fac_compra.Representante2, dbo.Fac_compra.Dto_pp, dbo.Fac_compra.Dto_esp, 
                         dbo.Fac_compra.Su_referencia, dbo.Fac_compra.Notas_internas, dbo.Fac_compra.Notas_factura, dbo.Fac_compra.Bloqueo, dbo.Personas_direcciones.Descripcion AS Desc_direccion, dbo.Personas_direcciones.Via_publica, 
                         dbo.Personas_direcciones.Direccion, dbo.Personas_direcciones.Numero AS Numero_portal, dbo.Personas_direcciones.Piso, dbo.Personas_direcciones.Puerta, dbo.Personas_direcciones.Municipio, 
                         dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Comarca, dbo.Personas_direcciones.Provincia, dbo.Personas_direcciones.Pais, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, 
                         dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Fac_compra.Matricula, dbo.V_Personas.NombreCompleto AS Nombre_cliente, 
                         V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, Parametros_1.Via_publica AS ViaEmpresa, 
                         Parametros_1.Descripcion AS DescEmpresa, Parametros_1.Direccion AS DireccionEmpresa, Parametros_1.Numero AS NumeroEmpresa, Parametros_1.Puerta AS PuertaEmpresa, 
                         Parametros_1.Codigo_municipio AS CodigoMunEmpresa, Parametros_1.Municipio AS MunicipioEmpresa, Parametros_1.Codigo_postal AS CPEmpresa, Parametros_1.Codigo_comarca AS CodigoComEmpresa, 
                         Parametros_1.Comarca AS ComarcaEmpresa, Parametros_1.Codigo_provincia AS CodigoProvEmpresa, Parametros_1.Provincia AS ProvinciaEmpresa, Parametros_1.Codigo_pais AS CodigoPaisEmpresa, 
                         Parametros_1.Pais AS PaisEmpresa, dbo.Fac_compra.Total_factura, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, 
                         IVASUM.Importe_base, IVASUM.Importe_iva, IVASUM.Importe_recargo, IVASUM.Importe_irpf, IVASUM.Importe_base_irpf, dbo.Fac_compra.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Divisas.Decimales_importes, 
                         dbo.Divisas.Decimales_total_doc, dbo.Fac_compra.Tipo_factura, dbo.Fac_compra.Serie_fac_proveedor, dbo.Fac_compra.Numero_fac_proveedor, dbo.Fac_compra.Dev_serie, dbo.Fac_compra.Dev_numero, 
                         dbo.Fac_compra.Fk_buzon_documentos,dbo.Fac_compra.Dev_descripcion, dbo.Fac_compra.Dev_fecha, dbo.Fac_compra.Fecha_integracion, dbo.Fac_compra.Id, dbo.Fac_compra.Regimen_ss, dbo.V_Personas.Identificacion, CASE WHEN isnull
                             ((SELECT        SUM(importe_vencimiento)
                                 FROM            cartera_vencimientos
                                 WHERE        SerieTipoDoc = ''FC'' AND serie_documento = dbo.Fac_compra.Serie AND numero_documento = dbo.Fac_compra.Numero AND Cerrado = 1), 0) = dbo.Fac_compra.Total_factura THEN ''C'' ELSE ''P'' END AS Estado, 
                         dbo.Fac_compra.Fecha_operacion,dbo.Fac_compra.Fecha_registro, dbo.Fac_compra.Fecha_ultimo_envio,
                         dbo.Fac_compra.Iva_criterio_caja, 
                         dbo.Fac_compra.Numero_autofactura_persona, dbo.Fac_compra.Persona_contacto, dbo.V_Personas.No_mostrar_lotes, dbo.V_Personas.No_mostrar_vencimientos, dbo.V_Personas.Mostrar_grado_documentos, 
                         dbo.V_Personas.Mostrar_añada_documentos, dbo.Fac_compra.Total_cobrar_pagar, dbo.Fac_compra.Usuario_creacion, dbo.Fac_compra.Usuario_modificacion, dbo.Fac_compra.Cae, dbo.Fac_compra.Fecha_creacion, 
                         dbo.Fac_compra.Observaciones, dbo.Fac_compra.Observaciones_internas,dbo.Fac_compra.Fecha_modificacion, dbo.V_Personas.Idioma_reportes,dbo.Fac_compra.Numero_EMCS,dbo.Fac_compra.Numero_remesa
						 ,dbo.Fac_compra.Fk_seccion,SEC.Descripcion as Desc_seccion, dbo.Fac_compra.Fk_campanya,CAMP.Descripcion as Desc_campaña, dbo.Fac_compra.Fk_empresa,dbo.Fac_compra.Id_filtro
						 ,V_Personas.Telefono_particular as Persona_telefono1,V_Personas.Email1 as Persona_email1, dbo.Formas_de_pago.Recoger_banco_cliente,dbo.Formas_de_pago.Recoger_banco_empresa, dbo.Fac_compra.Serie_numero_factura_sii
FROM            dbo.V_Personas RIGHT OUTER JOIN
                         dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
                         dbo.V_Personas AS V_Personas_1 RIGHT OUTER JOIN
                         dbo.Fac_compra INNER JOIN
                         dbo.Centros ON dbo.Fac_compra.Fk_centro = dbo.Centros.Codigo ON V_Personas_1.Codigo = dbo.Fac_compra.Representante2 ON V_Personas_3.Codigo = dbo.Fac_compra.Representante1 LEFT OUTER JOIN
                         dbo.V_Personas AS V_Personas_2 ON dbo.Fac_compra.Codigo_transportista = V_Personas_2.Codigo ON dbo.V_Personas.Codigo = dbo.Fac_compra.Codigo_persona LEFT OUTER JOIN
                         dbo.Personas_direcciones ON dbo.Fac_compra.Codigo_direccion_fiscal = dbo.Personas_direcciones.Codigo LEFT OUTER JOIN
                         dbo.Divisas ON dbo.Fac_compra.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.Formas_de_pago ON dbo.Fac_compra.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
                         dbo.Formas_envio ON dbo.Fac_compra.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Secciones SEC ON dbo.Fac_compra.Fk_seccion=SEC.Codigo LEFT OUTER JOIN
						 dbo.Campañas CAMP ON dbo.Fac_compra.Fk_campanya=CAMP.Codigo LEFT OUTER JOIN
                         dbo.Parametros AS Parametros_1 ON
                             (SELECT        1 AS Codigo
                               FROM            dbo.Parametros) = Parametros_1.Codigo LEFT OUTER JOIN
                             (SELECT        Serie, Numero, SUM(Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Fac_compra_lineas.Cantidad, 0)) = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Fac_compra_lineas.Importe_bruto, 0)) 
                                                         / SUM(ISNULL(dbo.Fac_compra_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(Linea) AS Numero_lineas, SUM(Importe_bruto) AS Importe_bruto, SUM(Importe_dto1) AS Importe_dto1, SUM(Importe_dto2) 
                                                         AS Importe_dto2, SUM(Importe_comision1) AS Importe_comision1, SUM(Importe_comision2) AS Importe_comision2
                               FROM            dbo.Fac_compra_lineas
                               GROUP BY Serie, Numero) AS A ON dbo.Fac_compra.Serie = A.Serie AND dbo.Fac_compra.Numero = A.Numero LEFT OUTER JOIN
                             (SELECT        Serie, Numero, SUM(Importe_base) AS Importe_base, SUM(Importe_iva) AS Importe_iva, SUM(Importe_recargo) AS Importe_recargo, SUM(Importe_irpf) AS Importe_irpf
							 , SUM(CASE WHEN ISNULL(Importe_irpf,0)=0 THEN 0 ELSE ISNULL(Importe_base_irpf,0) END) AS Importe_base_irpf
                               FROM            dbo.Fac_compra_ivas
                               GROUP BY Serie, Numero) AS IVASUM ON dbo.Fac_compra.Serie = IVASUM.Serie AND dbo.Fac_compra.Numero = IVASUM.Numero
'
GO



IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraLineasLotes]
AS
SELECT     dbo.Fac_compra_lineas_lotes.Id, dbo.Fac_compra_lineas_lotes.fk_Id_linea, dbo.Fac_compra_lineas_lotes.Almacen, dbo.Fac_compra_lineas_lotes.Lote,
dbo.Fac_compra_lineas_lotes.Lote_etiqueta, dbo.Fac_compra_lineas_lotes.Precio_coste_lote, dbo.Fac_compra_lineas_lotes.Cantidad,
dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Fac_compra_lineas.Serie, dbo.Fac_compra_lineas.Numero
FROM         dbo.Fac_compra_lineas_lotes LEFT OUTER JOIN
dbo.Fac_compra_lineas ON dbo.Fac_compra_lineas_lotes.fk_Id_linea = dbo.Fac_compra_lineas.Id LEFT OUTER JOIN
dbo.Almacenes ON dbo.Fac_compra_lineas_lotes.Almacen = dbo.Almacenes.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraLineasImpuestos]
AS
SELECT     dbo.Fac_compra_lineas_impuestos.Id, dbo.Fac_compra_lineas_impuestos.fk_Id_linea, dbo.Fac_compra_lineas_impuestos.Codigo_impuesto,
dbo.Fac_compra_lineas_impuestos.Cantidad, dbo.Fac_compra_lineas_impuestos.Tipo_valor, dbo.Fac_compra_lineas_impuestos.Valor_impuesto,
dbo.Fac_compra_lineas_impuestos.Importe_base, dbo.Fac_compra_lineas_impuestos.Codigo_iva, dbo.Fac_compra_lineas_impuestos.Valor_iva,
dbo.Fac_compra_lineas_impuestos.Importe_iva, dbo.Fac_compra_lineas_impuestos.Valor_recargo, dbo.Fac_compra_lineas_impuestos.Importe_recargo,
dbo.Fac_compra_lineas_impuestos.Valor_irpf, dbo.Fac_compra_lineas_impuestos.Importe_irpf, dbo.Fac_compra_lineas_impuestos.Aplicacion_irpf,
dbo.Fac_compra_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Fac_compra_lineas.Serie, dbo.Fac_compra_lineas.Numero
FROM         dbo.Fac_compra_lineas RIGHT OUTER JOIN
dbo.Fac_compra_lineas_impuestos ON dbo.Fac_compra_lineas.Id = dbo.Fac_compra_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
dbo.Impuestos_tipos RIGHT OUTER JOIN
dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Fac_compra_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[FacturasCompraLineasIvasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [FacturasCompraLineasIvasImpuestos]
AS
SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva, 
					  SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf, 
					  SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
FROM         dbo.Fac_compra_lineas AS iva
GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
'
GO


IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraIvas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraIvas]
AS
SELECT     dbo.Alb_compra_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
FROM         dbo.Alb_compra_ivas INNER JOIN
dbo.Ivas ON dbo.Alb_compra_ivas.Codigo_iva = dbo.Ivas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraImpuestos]
AS
SELECT     dbo.Alb_compra_impuestos.Id, dbo.Alb_compra_impuestos.Serie, dbo.Alb_compra_impuestos.Numero, dbo.Alb_compra_impuestos.Codigo_impuesto,
dbo.Alb_compra_impuestos.Importe_base, dbo.Alb_compra_impuestos.Valor_iva, dbo.Alb_compra_impuestos.Importe_iva,
dbo.Alb_compra_impuestos.Valor_recargo, dbo.Alb_compra_impuestos.Importe_recargo, dbo.Alb_compra_impuestos.Valor_irpf,
dbo.Alb_compra_impuestos.Importe_irpf, dbo.Alb_compra_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
FROM         dbo.Alb_compra_impuestos INNER JOIN
dbo.Impuestos ON dbo.Alb_compra_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompra]
AS
SELECT        ISNULL(dbo.Alb_compra.Serie, '''') AS Serie, ISNULL(dbo.Alb_compra.Numero, 0) AS Numero,dbo.Alb_compra.Bascula, dbo.Alb_compra.Fecha_hora, dbo.Alb_compra.Fecha_hora_real, dbo.Alb_compra.Codigo_persona, 
						 dbo.Alb_compra.Divisa, dbo.Alb_compra.Forma_pago, dbo.Alb_compra.Forma_envio, dbo.Alb_compra.Dia_pago1, dbo.Alb_compra.Dia_pago2, dbo.Alb_compra.Dia_pago3, 
						 dbo.Alb_compra.Codigo_direccion_fiscal, dbo.Alb_compra.Codigo_direccion_envio, dbo.Alb_compra.Codigo_transportista, dbo.Alb_compra.Representante1, dbo.Alb_compra.Representante2, 
						 dbo.Alb_compra.Dto_pp, dbo.Alb_compra.Dto_esp, dbo.Alb_compra.Su_referencia, dbo.Alb_compra.Notas_internas, dbo.Alb_compra.Notas_factura, dbo.Alb_compra.Bloqueo, 
						 Personas_direcciones_1.Descripcion AS Dir_fiscal_desc, Personas_direcciones_1.Via_publica AS Dir_fiscal_via, Personas_direcciones_1.Direccion AS Dir_fiscal_direccion, 
						 Personas_direcciones_1.Numero AS Dir_fiscal_numero, Personas_direcciones_1.Piso AS Dir_fiscal_piso, Personas_direcciones_1.Puerta AS Dir_fiscal_puerta, 
						 Personas_direcciones_1.Municipio AS Dir_fiscal_municipio, Personas_direcciones_1.Codigo_postal AS Dir_fiscal_cp, Personas_direcciones_1.Comarca AS Dir_fiscal_comarca, 
						 Personas_direcciones_1.Provincia AS Dir_fiscal_provincia, Personas_direcciones_1.Pais AS Dir_fiscal_pais, 
						 Personas_direcciones_1.Cae AS Dir_fiscal_cae, Personas_direcciones_1.Warehouse AS Dir_fiscal_warehouse, Personas_direcciones_1.Rc AS Dir_fiscal_rc,
						 dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, 
						 dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Alb_compra.Matricula, 
						 dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, 
						 V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Alb_compra.Total_factura, dbo.V_Personas.Tipo_identificacion as Tipo_identificacion_cliente, dbo.V_Personas.Identificacion AS Identificacion_cliente, 
						 dbo.Personas_direcciones.Descripcion AS Dir_envio_desc, dbo.Personas_direcciones.Via_publica AS Dir_envio_via, dbo.Personas_direcciones.Direccion AS Direccion_envio, 
						 dbo.Personas_direcciones.Numero AS Dir_envio_numero, dbo.Personas_direcciones.Piso AS Dir_envio_piso, dbo.Personas_direcciones.Puerta AS Dir_envio_puerta, 
						 dbo.Personas_direcciones.Codigo_postal AS Dir_envio_cp, dbo.Personas_direcciones.Municipio AS Dir_envio_municipio, dbo.Personas_direcciones.Comarca AS Dir_envio_comarca, 
						 dbo.Personas_direcciones.Provincia AS Dir_envio_provincia, dbo.Personas_direcciones.Pais AS Dir_envio_pais, 
						 dbo.Personas_direcciones.Warehouse as Dir_envio_warehouse, dbo.Personas_direcciones.Rc as Dir_envio_rc, dbo.Personas_direcciones.Cae as Dir_envio_cae,
						 dbo.V_Personas.Nuestro_cod_cliente, dbo.V_Personas.Tags AS Tags_cliente, 
						 dbo.Centros.Descripcion AS Desc_centro, dbo.Series_albaranes_compra.Descripcion AS Desc_serie, dbo.Alb_compra.Fk_centro, dbo.Alb_compra.Dev_serie, dbo.Alb_compra.Dev_numero, 
						 dbo.Alb_compra.Dev_descripcion, dbo.Alb_compra.Fk_mot_devolucion,dbo.Centros.Via_publica AS Centros_via_publica, 
						 dbo.Centros.Direccion AS Centros_direccion, dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta AS Centros_puerta, dbo.Centros.Municipio AS Centro_municipio, 
						 dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, dbo.Centros.Telefono_1 AS Centro_telefono1, 
						 dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Centros.Piso AS Centro_piso
						 , A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, 
						 A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_asociado,dbo.V_Personas.Cliente_interno, dbo.Alb_compra.Fk_calidad
						 ,dbo.Alb_compra.Acta_m_observaciones,dbo.Alb_compra.Acta_m_rep_vendedor,dbo.Alb_compra.Acta_m_rep_comprador
						 ,dbo.Alb_compra.Acta_m_fecha,dbo.Alb_compra.Conductor_nombre,dbo.Alb_compra.Conductor_dni, dbo.Alb_compra.Usuario_creacion, dbo.Alb_compra.Usuario_modificacion, dbo.Alb_compra.Fecha_creacion, 
						 dbo.Alb_compra.Fecha_modificacion, dbo.Alb_compra.Tipo_precio, dbo.fn_GetTipoPrecioDesc(dbo.Alb_compra.Tipo_precio) AS Tipo_precio_descripcion
						 ,CD.Serie as Serie_carga_descarga,CD.Numero as Numero_carga_descarga ,dbo.Alb_compra.Persona_contacto,dbo.Alb_compra.Fecha_cierre_inv
						 ,Numero_EMCS,Precintos,Contenedores, dbo.Alb_compra.Fecha_alb_proveedor, dbo.Alb_compra.Fk_empresa,dbo.Alb_compra.Id_filtro
						 ,  dbo.V_Personas.Op_agricultura_eco,  dbo.V_Personas.Codigo_autorizacion_eco,dbo.Alb_compra.Asociacion_cosecha, dbo.Alb_compra.Fecha_integracion
FROM            dbo.V_Personas RIGHT OUTER JOIN
						 dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
						 dbo.V_Personas AS V_Personas_1 RIGHT OUTER JOIN
						 dbo.Personas_direcciones RIGHT OUTER JOIN
						 dbo.Alb_compra LEFT OUTER JOIN
						 dbo.Series_albaranes_compra ON dbo.Alb_compra.Serie = dbo.Series_albaranes_compra.Serie LEFT OUTER JOIN
						 dbo.Centros ON dbo.Alb_compra.Fk_centro = dbo.Centros.Codigo ON dbo.Personas_direcciones.Codigo = dbo.Alb_compra.Codigo_direccion_envio ON 
						 V_Personas_1.Codigo = dbo.Alb_compra.Representante2 ON V_Personas_3.Codigo = dbo.Alb_compra.Representante1 LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_2 ON dbo.Alb_compra.Codigo_transportista = V_Personas_2.Codigo ON dbo.V_Personas.Codigo = dbo.Alb_compra.Codigo_persona LEFT OUTER JOIN
						 dbo.Personas_direcciones AS Personas_direcciones_1 ON dbo.Alb_compra.Codigo_direccion_fiscal = Personas_direcciones_1.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Alb_compra.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Alb_compra.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Cargas_descargas CD ON dbo.Alb_compra.Fk_carga_descarga=CD.Id LEFT OUTER JOIN
						 dbo.Divisas ON dbo.Alb_compra.Divisa = dbo.Divisas.Codigo
						 LEFT OUTER JOIN
							 (SELECT        dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, SUM(dbo.Alb_compra_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Alb_compra_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Alb_compra_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Alb_compra_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Alb_compra_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Alb_compra_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Alb_compra_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Alb_compra_lineas.Importe_dto2) 
														 AS Importe_dto2, SUM(dbo.Alb_compra_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Alb_compra_lineas.Importe_comision2) AS Importe_comision2, 
														 SUM(dbo.Alb_compra_lineas.Importe_base) AS Importe_base, SUM(dbo.Alb_compra_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Alb_compra_lineas.Importe_recargo) AS Importe_recargo, 
														CASE WHEN SUM(dbo.V_DocLinEstadosAlbCompra.Pendiente) = COUNT(dbo.V_DocLinEstadosAlbCompra.Linea) THEN 0 
														WHEN SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoTotal) = COUNT(dbo.V_DocLinEstadosAlbCompra.Linea) THEN 1 
														WHEN SUM(dbo.V_DocLinEstadosAlbCompra.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosAlbCompra.Linea) THEN 3 
														WHEN SUM(dbo.V_DocLinEstadosAlbCompra.Pendiente) + SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoTotal) + SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoParcial) = COUNT(dbo.V_DocLinEstadosAlbCompra.Linea) THEN 2 
														WHEN SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoTotal) + SUM(dbo.V_DocLinEstadosAlbCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosAlbCompra.Linea) THEN 4 
														WHEN (SUM(dbo.V_DocLinEstadosAlbCompra.Pendiente) + SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoParcial)) > 0 AND (SUM(dbo.V_DocLinEstadosAlbCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosAlbCompra.AsociadoAnuladoTotal))> 0 THEN 5 
														ELSE 6 
														END AS Estado_asociado, 
														 SUM(dbo.Alb_compra_lineas.Importe_irpf) AS Importe_irpf
							   FROM            dbo.Alb_compra_lineas LEFT OUTER JOIN
														 dbo.V_DocLinEstadosAlbCompra ON dbo.Alb_compra_lineas.Id = dbo.V_DocLinEstadosAlbCompra.Id
							   GROUP BY dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero) AS A ON dbo.Alb_compra.Serie = A.Serie AND dbo.Alb_compra.Numero = A.Numero

'
GO




IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraLineasLotes]
AS
SELECT     dbo.Alb_compra_lineas_lotes.Id, dbo.Alb_compra_lineas_lotes.fk_Id_linea, dbo.Alb_compra_lineas_lotes.Almacen, dbo.Alb_compra_lineas_lotes.Lote, dbo.Alb_compra_lineas_lotes.Lote_etiqueta, 
                         dbo.Alb_compra_lineas_lotes.Precio_coste_lote, dbo.Alb_compra_lineas_lotes.Cantidad, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, 
                         dbo.Alb_compra_lineas_lotes.Grado, dbo.Alb_compra_lineas_lotes.Añada, dbo.Alb_compra_lineas_lotes.Fecha_caducidad, dbo.Alb_compra_lineas_lotes.Fecha_consumo_preferente, 
                         dbo.Alb_compra_lineas_lotes.Fecha_lote, dbo.Alb_compra_lineas_lotes.Grado_oficial,dbo.Alb_compra_lineas_lotes.Obs_lote,dbo.Alb_compra_lineas_lotes.Km0
FROM         dbo.Alb_compra_lineas_lotes LEFT OUTER JOIN
dbo.Alb_compra_lineas ON dbo.Alb_compra_lineas_lotes.fk_Id_linea = dbo.Alb_compra_lineas.Id LEFT OUTER JOIN
dbo.Almacenes ON dbo.Alb_compra_lineas_lotes.Almacen = dbo.Almacenes.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraLineasImpuestos]
AS
SELECT     dbo.Alb_compra_lineas_impuestos.Id, dbo.Alb_compra_lineas_impuestos.fk_Id_linea, dbo.Alb_compra_lineas_impuestos.Codigo_impuesto,
dbo.Alb_compra_lineas_impuestos.Cantidad, dbo.Alb_compra_lineas_impuestos.Tipo_valor, dbo.Alb_compra_lineas_impuestos.Valor_impuesto,
dbo.Alb_compra_lineas_impuestos.Importe_base, dbo.Alb_compra_lineas_impuestos.Codigo_iva, dbo.Alb_compra_lineas_impuestos.Valor_iva,
dbo.Alb_compra_lineas_impuestos.Importe_iva, dbo.Alb_compra_lineas_impuestos.Valor_recargo, dbo.Alb_compra_lineas_impuestos.Importe_recargo,
dbo.Alb_compra_lineas_impuestos.Valor_irpf, dbo.Alb_compra_lineas_impuestos.Importe_irpf, dbo.Alb_compra_lineas_impuestos.Aplicacion_irpf,
dbo.Alb_compra_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
dbo.Impuestos.Tipo_impuesto, dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero
FROM         dbo.Alb_compra_lineas RIGHT OUTER JOIN
dbo.Alb_compra_lineas_impuestos ON dbo.Alb_compra_lineas.Id = dbo.Alb_compra_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
dbo.Impuestos_tipos RIGHT OUTER JOIN
dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Alb_compra_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[AlbaranesCompraLineasIvasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [AlbaranesCompraLineasIvasImpuestos]
AS
SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva, 
					  SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf, 
					  SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
FROM         dbo.Alb_compra_lineas AS iva
GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
'
GO



IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_movimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_movimientos]
AS
SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, 
Movimiento AS Num_movimiento, Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, V_ArticulosSoloNombre.Descripcion as Articulo_descripcion, 
Precio_coste_articulo, Precio, Precio_coste_lote, + Cantidad AS Cantidad, Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, E_S_N,
NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote, NULL AS Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv,Fk_op_cierre
,Forzar_precio
FROM            dbo.Movimientos WITH (NOLOCK) 
INNER JOIN V_ArticulosSoloNombre  WITH (NOLOCK) ON Movimientos.Articulo=V_ArticulosSoloNombre.Codigo'
GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_Mov_facturas_simpl]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_Mov_facturas_simpl]
AS SELECT        dbo.Facturas_simpl_lineas.Id, ''FS'' AS SerieTipoDoc, NULLIF (dbo.Facturas_simpl_lineas.Serie, N'''') AS Serie, NULLIF (dbo.Facturas_simpl_lineas.Numero, 0) AS Numero, 
						 NULLIF (dbo.Facturas_simpl_lineas.Linea, 0) AS Linea, dbo.Facturas_simpl_lineas.Fk_articulo, ISNULL(dbo.Facturas_simpl_lineas.Articulo_descripcion, dbo.Articulos.Descripcion) AS Articulo_descripcion, 
						 dbo.Facturas_simpl_lineas.Precio_coste_articulo, dbo.Facturas_simpl_lineas.Precio_bruto, dbo.Facturas_simpl_lineas.Precio_neto, dbo.Facturas_simpl_lineas.Fk_almacen, 
						 NULLIF (dbo.Facturas_simpl_lineas.Lote, N'''') AS Lote, dbo.Facturas_simpl_lineas.Lote_etiqueta, dbo.Facturas_simpl_lineas.Precio_coste_lote, NULLIF (dbo.Facturas_simpl_lineas.Cantidad, 0) AS Cantidad, 
						 dbo.Facturas_simpl_lineas.Importe_base, dbo.Facturas_simpl_cabecera.Fecha_hora, dbo.Facturas_simpl_cabecera.Fecha_operacion AS Fecha_hora_real, dbo.Facturas_simpl_lineas.No_inventariable, 
						 dbo.Facturas_simpl_lineas.Tipo_doc_asociado, dbo.Facturas_simpl_lineas.Serie_doc_asociado, dbo.Facturas_simpl_lineas.Numero_doc_asociado, dbo.Facturas_simpl_lineas.Pmp, dbo.Facturas_simpl_lineas.Pmp_lote, 
						 dbo.Facturas_simpl_cabecera.Fk_cliente AS Codigo_persona, dbo.Facturas_simpl_cabecera.Fk_centro, dbo.Facturas_simpl_cabecera.Fecha_consolidacion_inventario, dbo.Facturas_simpl_cabecera.Fecha_cierre_inv
						 ,P.Fk_pais,dbo.Facturas_simpl_cabecera.Vales_desde,dbo.Facturas_simpl_cabecera.Vales_hasta,dbo.Facturas_simpl_cabecera.Fecha_modificacion
FROM            dbo.Facturas_simpl_cabecera  WITH (NOLOCK) INNER JOIN
						 dbo.Facturas_simpl_lineas  WITH (NOLOCK) ON dbo.Facturas_simpl_cabecera.Serie = dbo.Facturas_simpl_lineas.Serie AND dbo.Facturas_simpl_cabecera.Numero = dbo.Facturas_simpl_lineas.Numero INNER JOIN
						 dbo.Articulos  WITH (NOLOCK) ON dbo.Facturas_simpl_lineas.Fk_articulo = dbo.Articulos.Codigo
						 LEFT OUTER JOIN Personas P  WITH (NOLOCK) ON dbo.Facturas_simpl_cabecera.Fk_cliente=P.codigo
						 '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_facturas_venta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_facturas_venta]
AS
SELECT        CASE WHEN dbo.Facturas_venta_lineas_lotes.Id IS NULL THEN dbo.Facturas_venta_lineas.Id ELSE dbo.Facturas_venta_lineas_lotes.Id END AS Id,
''FV'' AS SerieTipoDoc, NULLIF (dbo.Facturas_venta_lineas.Serie, '''') AS Serie, NULLIF (dbo.Facturas_venta_lineas.Numero, 0) AS Numero,
NULLIF (dbo.Facturas_venta_lineas.Linea, 0) AS Linea, dbo.Facturas_venta_lineas.Articulo, dbo.V_ArticulosSoloNombre.Descripcion as Articulo_descripcion,
dbo.Facturas_venta_lineas.Precio_coste_articulo, dbo.Facturas_venta_lineas.Precio_bruto, dbo.Facturas_venta_lineas.Precio_neto,
dbo.Facturas_venta_lineas_lotes.Almacen, NULLIF (dbo.Facturas_venta_lineas_lotes.Lote, '''') AS Lote, dbo.Facturas_venta_lineas_lotes.Lote_etiqueta,
dbo.Facturas_venta_lineas_lotes.Precio_coste_lote, CASE WHEN ISNULL(dbo.Facturas_venta_lineas_lotes.Cantidad, 0)
= 0 THEN dbo.Facturas_venta_lineas.Cantidad ELSE NULLIF (dbo.Facturas_venta_lineas_lotes.Cantidad, 0) END AS Cantidad,
CASE WHEN ISNULL(dbo.Facturas_venta_lineas_lotes.Cantidad, 0)
= 0 THEN dbo.Facturas_venta_lineas.Importe_base ELSE ISNULL(dbo.Facturas_venta_lineas.Importe_base, 0) / ISNULL(dbo.Facturas_venta_lineas.Cantidad, 0)
* ISNULL(dbo.Facturas_venta_lineas_lotes.Cantidad, 0) END AS Importe_base, dbo.Facturas_venta.Fecha_hora, dbo.Facturas_venta.Fecha_hora_real,
ISNULL(dbo.Facturas_venta_lineas.No_inventariable, 0) AS No_inventariable, dbo.Facturas_venta_lineas.Tipo_doc_asociado,
dbo.Facturas_venta_lineas.Serie_doc_asociado, dbo.Facturas_venta_lineas.Numero_doc_asociado, dbo.Facturas_venta_lineas_lotes.Pmp,dbo.Facturas_venta_lineas_lotes.Pmp_lote,
dbo.Facturas_venta.Codigo_cliente,Facturas_venta.fk_centro,Facturas_venta.Fecha_consolidacion_inventario, Facturas_venta.Fecha_cierre_inv

FROM            dbo.Facturas_venta_lineas  WITH (NOLOCK) INNER JOIN
dbo.Facturas_venta  WITH (NOLOCK) ON dbo.Facturas_venta_lineas.Serie = dbo.Facturas_venta.Serie AND
dbo.Facturas_venta_lineas.Numero = dbo.Facturas_venta.Numero LEFT OUTER JOIN
dbo.Facturas_venta_lineas_lotes  WITH (NOLOCK) ON dbo.Facturas_venta_lineas.Id = dbo.Facturas_venta_lineas_lotes.fk_Id_linea
INNER JOIN V_ArticulosSoloNombre  WITH (NOLOCK) ON Facturas_venta_lineas.Articulo=V_ArticulosSoloNombre.codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_facturas_compra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_facturas_compra]
AS
SELECT        CASE WHEN dbo.Fac_compra_lineas_lotes.Id IS NULL THEN dbo.Fac_compra_lineas.Id ELSE dbo.Fac_compra_lineas_lotes.Id END AS Id, ''FC'' AS SerieTipoDoc,
NULLIF (dbo.Fac_compra_lineas.Serie, '''') AS Serie, NULLIF (dbo.Fac_compra_lineas.Numero, 0) AS Numero, NULLIF (dbo.Fac_compra_lineas.Linea, 0) AS Linea,
dbo.Fac_compra_lineas.Fk_articulo, dbo.V_ArticulosSoloNombre.Descripcion as Articulo_descripcion, dbo.Fac_compra_lineas.Precio_coste_articulo,
dbo.Fac_compra_lineas.Precio_bruto, dbo.Fac_compra_lineas.Precio_neto, dbo.Fac_compra_lineas_lotes.Almacen, NULLIF (dbo.Fac_compra_lineas_lotes.Lote, '''')
AS Lote, dbo.Fac_compra_lineas_lotes.Lote_etiqueta, dbo.Fac_compra_lineas_lotes.Precio_coste_lote, CASE WHEN ISNULL(dbo.Fac_compra_lineas_lotes.Cantidad,
0) = 0 THEN dbo.Fac_compra_lineas.Cantidad ELSE dbo.Fac_compra_lineas_lotes.Cantidad END AS Cantidad,
CASE WHEN ISNULL(dbo.Fac_compra_lineas_lotes.Cantidad, 0)
= 0 THEN dbo.Fac_compra_lineas.Importe_base ELSE ISNULL(dbo.Fac_compra_lineas.Importe_base, 0) / ISNULL(dbo.Fac_compra_lineas.Cantidad, 0)
* ISNULL(dbo.Fac_compra_lineas_lotes.Cantidad, 0) END AS Importe_base, dbo.Fac_compra.Fecha_hora, dbo.Fac_compra.Fecha_hora_real,
NULLIF (dbo.Fac_compra_lineas.No_inventariable, 0) AS No_inventariable, dbo.Fac_compra_lineas.Tipo_doc_asociado,
dbo.Fac_compra_lineas.Serie_doc_asociado, dbo.Fac_compra_lineas.Numero_doc_asociado, dbo.Fac_compra_lineas_lotes.Pmp,dbo.Fac_compra_lineas_lotes.Pmp_lote,
dbo.Fac_compra.Codigo_persona,Fac_compra.Fk_centro,Fac_compra.Fecha_consolidacion_inventario, Fac_compra.Fecha_cierre_inv,
CAST(CONVERT(VARCHAR(30), Fecha_hora, 112) + REPLACE(CONVERT(VARCHAR(30), Fecha_hora, 114), '':'', '''')  AS nvarchar) + CONVERT(nvarchar, dbo.Fac_compra.Numero) + CONVERT(nvarchar, Linea) AS FechaMaxId

FROM            dbo.Fac_compra_lineas  WITH (NOLOCK) INNER JOIN
dbo.Fac_compra  WITH (NOLOCK) ON dbo.Fac_compra_lineas.Serie = dbo.Fac_compra.Serie AND dbo.Fac_compra_lineas.Numero = dbo.Fac_compra.Numero LEFT OUTER JOIN
dbo.Fac_compra_lineas_lotes  WITH (NOLOCK) ON dbo.Fac_compra_lineas.Id = dbo.Fac_compra_lineas_lotes.fk_Id_linea
INNER JOIN V_ArticulosSoloNombre WITH (NOLOCK) ON Fac_compra_lineas.Fk_articulo=V_ArticulosSoloNombre.codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_albaranes_venta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_albaranes_venta]
AS
SELECT        CASE WHEN dbo.Alb_venta_lineas_lotes.Id IS NULL THEN dbo.Alb_venta_lineas.Id ELSE dbo.Alb_venta_lineas_lotes.Id END AS Id, ''AV'' AS SerieTipoDoc, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero, 
                         dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, ISNULL(dbo.Alb_venta_lineas.Articulo_descripcion, dbo.Articulos.Descripcion) AS Articulo_descripcion, dbo.Alb_venta_lineas.Precio_coste_articulo, dbo.Alb_venta_lineas.Precio_bruto, 
                         dbo.Alb_venta_lineas.Precio_neto, dbo.Alb_venta_lineas_lotes.Almacen, dbo.Alb_venta_lineas_lotes.Lote, dbo.Alb_venta_lineas_lotes.Lote_etiqueta, dbo.Alb_venta_lineas_lotes.Precio_coste_lote, 
                         CASE WHEN ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad, 0) = 0 THEN dbo.Alb_venta_lineas.Cantidad ELSE dbo.Alb_venta_lineas_lotes.Cantidad END AS Cantidad, CASE WHEN ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad, 
                         0) = 0 THEN dbo.Alb_venta_lineas.Importe_base ELSE ISNULL(dbo.Alb_venta_lineas.Importe_base, 0) / ISNULL(dbo.Alb_venta_lineas.Cantidad, 0) * ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad, 0) END AS Importe_base, 
                         dbo.Alb_venta.Fecha_hora, dbo.Alb_venta.Fecha_hora_real, ISNULL(dbo.Alb_venta_lineas.No_inventariable, 0) AS No_inventariable, dbo.Alb_venta_lineas.Tipo_doc_asociado, dbo.Alb_venta_lineas.Serie_doc_asociado, 
                         dbo.Alb_venta_lineas.Numero_doc_asociado, dbo.Alb_venta_lineas_lotes.Pmp, dbo.Alb_venta_lineas_lotes.Pmp_lote, dbo.Alb_venta.Codigo_cliente, dbo.Alb_venta.Fk_centro, dbo.Alb_venta.Fecha_consolidacion_inventario, 
                         dbo.Alb_venta.Fecha_cierre_inv,P.Fk_pais, dbo.Alb_venta.Fecha_modificacion
FROM            dbo.Alb_venta_lineas  WITH (NOLOCK) INNER JOIN
                         dbo.Alb_venta  WITH (NOLOCK) ON dbo.Alb_venta_lineas.Serie = dbo.Alb_venta.Serie AND dbo.Alb_venta_lineas.Numero = dbo.Alb_venta.Numero LEFT OUTER JOIN
                         dbo.Alb_venta_lineas_lotes  WITH (NOLOCK) ON dbo.Alb_venta_lineas.Id = dbo.Alb_venta_lineas_lotes.fk_Id_linea INNER JOIN
                         dbo.Articulos  WITH (NOLOCK) ON dbo.Alb_venta_lineas.Fk_articulo = dbo.Articulos.Codigo
						 LEFT OUTER JOIN Personas P  WITH (NOLOCK) ON dbo.Alb_venta.Codigo_cliente=P.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_albaranes_compra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_albaranes_compra]
AS
SELECT        CASE WHEN dbo.Alb_compra_lineas_lotes.Id IS NULL THEN dbo.Alb_compra_lineas.Id ELSE dbo.Alb_compra_lineas_lotes.Id END AS Id, ''AC'' AS SerieTipoDoc,
dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, dbo.Alb_compra_lineas.Linea, dbo.Alb_compra_lineas.Fk_articulo,
 ISNULL(dbo.Alb_compra_lineas.Articulo_descripcion, dbo.V_ArticulosSoloNombre.Descripcion) as Articulo_descripcion, dbo.Alb_compra_lineas.Precio_coste_articulo, dbo.Alb_compra_lineas.Precio_bruto,
dbo.Alb_compra_lineas.Precio_neto, dbo.Alb_compra_lineas_lotes.Almacen, dbo.Alb_compra_lineas_lotes.Lote, dbo.Alb_compra_lineas_lotes.Lote_etiqueta,
dbo.Alb_compra_lineas_lotes.Precio_coste_lote,
CASE WHEN dbo.Alb_compra_lineas_lotes.Cantidad IS NULL
THEN dbo.Alb_compra_lineas.Cantidad 
ELSE dbo.Alb_compra_lineas_lotes.Cantidad 
END AS Cantidad, 

CASE WHEN dbo.Alb_compra_lineas_lotes.Cantidad IS NULL THEN dbo.Alb_compra_lineas.Importe_base ELSE 
CASE WHEN dbo.Alb_compra_lineas.Cantidad = 0 THEN 0 ELSE ISNULL(dbo.Alb_compra_lineas.Importe_base, 0) / ISNULL(dbo.Alb_compra_lineas.Cantidad, 0) 
                         * ISNULL(dbo.Alb_compra_lineas_lotes.Cantidad, 0) END END AS Importe_base
, dbo.Alb_compra.Fecha_hora,
dbo.Alb_compra.Fecha_hora_real, ISNULL(dbo.Alb_compra_lineas.No_inventariable, 0) AS No_inventariable, dbo.Alb_compra_lineas.Tipo_doc_asociado,
dbo.Alb_compra_lineas.Serie_doc_asociado, dbo.Alb_compra_lineas.Numero_doc_asociado, dbo.Alb_compra_lineas_lotes.Pmp,dbo.Alb_compra_lineas_lotes.Pmp_lote,
dbo.Alb_compra.Codigo_persona,Alb_compra.fk_centro,Alb_compra.Fecha_consolidacion_inventario, Alb_compra.Fecha_cierre_inv,Alb_compra_lineas.Num_eti_desde,Alb_compra_lineas.Num_eti_hasta
,P.Fk_pais, dbo.Alb_compra.Fecha_modificacion
FROM            dbo.Alb_compra_lineas  WITH (NOLOCK) INNER JOIN
dbo.Alb_compra  WITH (NOLOCK) ON dbo.Alb_compra_lineas.Serie = dbo.Alb_compra.Serie AND dbo.Alb_compra_lineas.Numero = dbo.Alb_compra.Numero LEFT OUTER JOIN
dbo.Alb_compra_lineas_lotes  WITH (NOLOCK) ON dbo.Alb_compra_lineas.Id = dbo.Alb_compra_lineas_lotes.fk_Id_linea
INNER JOIN V_ArticulosSoloNombre  WITH (NOLOCK) ON Alb_compra_lineas.Fk_articulo=V_ArticulosSoloNombre.codigo
LEFT OUTER JOIN Personas P  WITH (NOLOCK) ON dbo.Alb_compra.Codigo_persona=P.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Mov_alb_liq]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Mov_alb_liq]
AS
SELECT        dbo.Alb_liq_lin.Id, ''AL'' AS SerieTipoDoc, NULLIF (dbo.Alb_liq_lin.Serie, N'''') AS Serie, NULLIF (dbo.Alb_liq_lin.Numero, 0) AS Numero, NULLIF (dbo.Alb_liq_lin.Linea, 0) AS Linea, dbo.Alb_liq_lin.Articulo, 
						 ISNULL(dbo.Alb_liq_lin.Articulo_descripcion, dbo.V_ArticulosSoloNombre.Descripcion) AS Articulo_descripcion, 0 AS Precio_coste_articulo, dbo.Alb_liq_lin.Precio AS Precio_bruto, dbo.Alb_liq_lin.Precio AS Precio_neto, dbo.Alb_liq_lin.Almacen, 
						 NULLIF (dbo.Alb_liq_lin.Lote, N'''') AS Lote, '''' AS Lote_etiqueta, NULL AS Precio_coste_lote, dbo.Alb_liq_lin.Cantidad_bruta AS Cantidad, dbo.Alb_liq_lin.Importe_bruto AS Importe_base, 
						 dbo.Alb_liq.Fecha AS Fecha_hora, dbo.Alb_liq.Fecha_operacion AS Fecha_hora_real, NULLIF (dbo.Alb_liq_lin.No_inventariable, 0) AS No_inventariable, dbo.Alb_liq_lin.Pmp,dbo.Alb_liq_lin.Pmp_lote, '''' AS Codigo_persona, 
						 dbo.Alb_liq.Fk_centro, dbo.Alb_liq.Fecha_consolidacion_inventario, dbo.Alb_liq.Fecha_cierre_inv,dbo.Alb_liq.Fk_campaña, dbo.Alb_liq.Fecha_modificacion
FROM            dbo.Alb_liq  WITH (NOLOCK) INNER JOIN
						 dbo.Alb_liq_lin  WITH (NOLOCK) ON dbo.Alb_liq.Serie = dbo.Alb_liq_lin.Serie AND dbo.Alb_liq.Numero = dbo.Alb_liq_lin.Numero INNER JOIN
						 dbo.V_ArticulosSoloNombre  WITH (NOLOCK) ON dbo.Alb_liq_lin.Articulo = dbo.V_ArticulosSoloNombre.Codigo						 
						 WHERE        (ISNULL(dbo.Alb_liq.Tipo, 0) = 0)'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_IvasPersonasArticulos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_IvasPersonasArticulos]
AS
SELECT        dbo.Ivas_personas_articulos.Grupo_persona, dbo.Ivas_personas_articulos.Grupo_articulo, dbo.Ivas_personas_articulos.Codigo_iva,
dbo.Ivas.Descripcion AS Desc_iva, dbo.Ivas_grupos_personas.Descripcion AS Desc_grupo_persona,
dbo.Ivas_grupos_articulos.Descripcion AS Desc_grupo_articulo, dbo.Ivas.Pc_iva, dbo.Ivas.Pc_re, dbo.Ivas.Pc_irpf
FROM            dbo.Ivas INNER JOIN
dbo.Ivas_personas_articulos ON dbo.Ivas.Codigo = dbo.Ivas_personas_articulos.Codigo_iva INNER JOIN
dbo.Ivas_grupos_personas ON dbo.Ivas_personas_articulos.Grupo_persona = dbo.Ivas_grupos_personas.Codigo INNER JOIN
dbo.Ivas_grupos_articulos ON dbo.Ivas_personas_articulos.Grupo_articulo = dbo.Ivas_grupos_articulos.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc_temporal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Movimientos_estoc_temporal]
AS
SELECT        ISNULL(Id, ''00000000-0000-0000-0000-000000000000'') AS Id, Fecha_hora, Fecha_hora_real, SerieTipoDoc, Serie_tipo_mov, Num_movimiento, Linea, Articulo,
Almacen, Lote, Lote_etiqueta, V_ArticulosSoloNombre.Descripcion as Articulo_descripcion, Precio_coste_articulo, Precio, Precio_coste_lote, Cantidad, Importe_base, No_Inventariable, Pmp,Pmp_lote,
Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
FROM            (
SELECT        Id, Fecha_hora, Fecha_hora_real, SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, Linea, NULLIF (Articulo, '''')
AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio, Precio_coste_lote, - Cantidad AS Cantidad,
- Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_Inventariable, NULL AS Pmp,NULL as Pmp_lote, NULL AS Codigo_persona,fk_centro,NULL as Fecha_consolidacion_inventario, NULL as Fecha_cierre_inv
FROM            dbo.Movimientos_temporales
WHERE        (E_S_N = ''S'') AND (No_inventariable = 0) AND (ISNULL(Tipo_doc_asociado, N'''') <> ''AV'') AND (ISNULL(Tipo_doc_asociado, N'''') <> ''AC'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, Linea, NULLIF (Articulo, '''') 
							AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio, Precio_coste_lote, Cantidad, Importe_base, 
							ISNULL(No_inventariable, 0) AS No_Inventariable, NULL AS Pmp,NULL as Pmp_lote, NULL AS Codigo_persona,fk_centro,NULL as Fecha_consolidacion_inventario, NULL as Fecha_cierre_inv
	FROM            dbo.Movimientos_temporales AS Movimientos_temporales_1
	WHERE        (E_S_N = ''E'') AND (No_inventariable = 0) AND (ISNULL(Tipo_doc_asociado, N'''') <> ''AV'') AND (ISNULL(Tipo_doc_asociado, N'''') <> ''AC'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, 
							Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio, Precio_coste_lote, 
							+ Cantidad AS Cantidad, Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, NULL AS Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.Movimientos
	WHERE        (E_S_N = ''E'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, 
							Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio, Precio_coste_lote, 
							- Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, NULL 
							AS Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.Movimientos AS Movimientos_1
	WHERE        (E_S_N = ''S'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, 
							NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, 
							- Cantidad AS Cantidad, + Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, 
							Codigo_cliente AS Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_facturas_venta
	WHERE        (ISNULL(Tipo_doc_asociado, N'''') <> ''AV'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''''''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, 
							NULLIF (Fk_articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, 
							- Cantidad AS Cantidad, + Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote,  
							Codigo_cliente AS Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_albaranes_venta
	 UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, 
							Lote_etiqueta,  Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, + Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable,0) 
							AS No_inventariable, NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote,  Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_alb_liq
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, 
							NULLIF (Fk_articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, 
							+ Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote,  Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_albaranes_compra
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, 
							NULLIF (Fk_articulo, '''') AS Articulo, Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, 
							+ Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote,  Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_facturas_compra
	WHERE        (ISNULL(Tipo_doc_asociado, N'''') <> ''AC'')
	UNION ALL
	SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, 
							NULLIF (Fk_articulo, '''') AS Articulo, Fk_almacen AS Almacen, Lote, Lote_etiqueta, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, 
							+ Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable,0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp,NULLIF (Pmp_lote, 0) AS Pmp_lote,  Codigo_persona,fk_centro,Fecha_consolidacion_inventario, Fecha_cierre_inv
	FROM            dbo.V_Mov_facturas_simpl
	) AS t
	LEFT OUTER JOIN V_ArticulosSoloNombre ON t.Articulo=V_ArticulosSoloNombre.Codigo
' 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosNombre]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosNombre]
							AS
SELECT   dbo.Articulos.Codigo, dbo.Articulos.Descripcion, dbo.Articulos.Descripcion_abreviada, dbo.Articulos.Tipo_seccion, dbo.Tipos_secciones.Descripcion AS Desc_tipo_seccion, dbo.Articulos.Estado_inventario, dbo.Articulos.Estado, dbo.Articulos.Estado_tpv, dbo.Articulos.Safata, dbo.Articulos.Fecha_alta, dbo.Articulos.Fecha_baja, 
             dbo.Articulos.Peso_neto, dbo.Articulos.Peso_bruto, dbo.Articulos.Fk_articulo_tipo, dbo.Articulos_tipos.Descripcion AS Desc_tipo_articulo, dbo.Articulos.Fk_envase, Articulos_1.Descripcion AS Desc_envase, dbo.Articulos.Capacidad, dbo.Articulos.Seleccion_lotes, dbo.Articulos.Opciones_fifo, dbo.Articulos.Tags, dbo.Articulos.Cantidad_por_bulto, 
             dbo.Articulos.Altura, dbo.Articulos.Longitud, dbo.Articulos.Anchura, dbo.Articulos.Diametro, dbo.Articulos.Grupo_iva_emitido, dbo.Articulos.Grupo_iva_recibido, dbo.Articulos.Peso_minimo, dbo.Articulos.Tara_teorica, dbo.Articulos.Peso_teorico, dbo.Articulos.Fk_proveedor_habitual, PROV_HABITUAL.NombreCompleto AS NomProveedorHabitual, 
             dbo.Articulos.Fk_cliente_habitual, CLIENTE_HABITUAL.NombreCompleto AS NomClienteHabitual, dbo.Articulos.Provisionamiento_habitual, dbo.Articulos.Fk_grupo_dto_ventas, dbo.Articulos.Fk_grupo_dto_compras, dbo.Articulos_grupos_dto.Descripcion AS Desc_grupo_dto_ventas, 
             Articulos_grupos_dto_1.Descripcion AS Desc_grupo_dto_compras, dbo.Articulos.Fk_grupo_comisiones_ventas, dbo.Articulos.Fk_grupo_comisiones_compras, dbo.Articulos.Unidades_optimas_produccion, dbo.Articulos.Dias_bloqueo_utilizacion, dbo.Articulos.Fito_categoria, dbo.Cat_fitosanitarios.Descripcion AS Desc_cat_fitosanitaria, 
             dbo.Articulos.Fito_registro, dbo.Articulos.Fk_cuenta_compras, dbo.Articulos.Fk_cuenta_ventas, dbo.Articulos.Seleccion_lotes_compras, dbo.Articulos.Lote_por_defecto_compras, dbo.Articulos.Fk_almacen_entradas, dbo.Articulos.Fk_almacen_salidas, dbo.Articulos.Tipo_recuperacion_precio,dbo.Articulos.Tipo_recuperacion_precio_inv, dbo.Articulos.Tipo_recuperacion_precio_ventas, 
             dbo.Articulos.Articulo_deposito, dbo.Articulos.Sistema_Control_Lotes, dbo.Articulos.Fk_codigo_arancelario, dbo.Articulos.Tipologia, dbo.Articulos.Articulo_cosecha, dbo.Articulos.Articulo_libros, dbo.Articulos.Perm_modif_desc_docs, dbo.Unidades.Descripcion AS Desc_unidad, dbo.Unidades.Descripcion_breve AS Desc_unidad_breve, 
             dbo.Articulos.Clasificacion_coste, dbo.Articulos.Cte_transformacion, dbo.Articulos.Tipo_articulo_libros, dbo.Articulos.Tipo_formato, dbo.Articulos.Fk_articulo_agrupacion, Articulos_2.Descripcion AS Desc_articulo_agrupacion, dbo.Articulos.Fk_do, dbo.Denom_origen.Descripcion AS Desc_do, dbo.Articulos.Aux_codigo, dbo.Articulos.Fk_color, 
             dbo.Articulos.Grado_alcoholico, dbo.Articulos.Fk_unidad_salida, dbo.Articulos.Codigo_secundario, dbo.Articulos.Tarifa1, dbo.Articulos.Tarifa2, dbo.Articulos.Tarifa3, dbo.Articulos.Tarifa4, dbo.Articulos.Tarifa5, dbo.Articulos.Tarifa6, dbo.Articulos.Tarifa7, dbo.Articulos.Tarifa8, dbo.Articulos.Tarifa9, dbo.Articulos.Tarifa10, 
             dbo.Articulos.Fecha_act_tarifa1, dbo.Articulos.Fecha_act_tarifa2, dbo.Articulos.Fecha_act_tarifa3, dbo.Articulos.Fecha_act_tarifa4, dbo.Articulos.Fecha_act_tarifa5, dbo.Articulos.Fecha_act_tarifa6, dbo.Articulos.Fecha_act_tarifa7, dbo.Articulos.Fecha_act_tarifa8, dbo.Articulos.Fecha_act_tarifa9, dbo.Articulos.Fecha_act_tarifa10, 
             dbo.Articulos.No_cantidad_en_estadisticas, dbo.Articulos.Opciones_fifo_prod, dbo.Articulos.Seleccion_lotes_prod, dbo.Libros_color.Descripcion AS Desc_color, dbo.Articulos.Usuario, dbo.Articulos.Fecha_modificacion, dbo.Articulos.Codigo_CN, dbo.Articulos.Epigrafe_IIEE, dbo.Articulos.Subepigrafe_clave_IIEE, dbo.Articulos.Dias_caducidad, 
             dbo.Articulos.Dias_consumo_preferente, dbo.Articulos.Clasificacion_ECO, dbo.Articulos.Fk_marca, dbo.Marca.Descripcion AS Desc_marca, dbo.Articulos.Producto_supervisor, dbo.Articulos.Variedad_cava, dbo.Articulos.Art_sello_do, dbo.Articulos.Estoc_maximo, dbo.Articulos.Estoc_minimo, dbo.Articulos.No_sumar_cantidades_en_copages, 
             dbo.Articulos.Pc_mermas_ops, dbo.Articulos.Cajas_por_palet, dbo.Articulos.No_imprimir_caducidad_docs, dbo.Articulos.No_mostrar_añada_en_docs, dbo.Articulos.No_incluir_pesos_listados, dbo.Articulos.Coste_minimo, dbo.Articulos.Coste_maximo, dbo.Articulos.Fk_categoria_libro_habitual, 
             dbo.Libros_categorias.Descripcion AS Desc_categoria_libro_habitual, dbo.articulos.Fk_libro_habitual, Libros.Descripcion AS Desc_libro_habitual, dbo.Articulos.Seleccion_lotes_tpv, dbo.Articulos.Opciones_fifo_tpv, dbo.Articulos.Pedidos_web, dbo.Articulos.Redondeo, dbo.Articulos.Notas_internas, dbo.Articulos.Notas, 
             dbo.Articulos.Fk_art_agrup_autoconsumo, dbo.ARticulos.Fk_grupo_iva_autoconsumo, GRUPO_HABITUAL.Codigo_grupo AS Codigo_grupo_habitual, Articulos_grupos.Descripcion AS Desc_grupo_habitual, ULTPRECIOCOMPRA.Precio AS Ult_precio_compra_alb, ULTPRECIOCOMPRA.Fecha_hora AS Ult_precio_compra_alb_fecha, 
             dbo.Articulos.No_incluir_en_cuadro_necesidades, dbo.ARticulos.Fk_centro_habitual, dbo.Articulos.Decimales_pvp, dbo.Articulos.Descripcion_caja, dbo.Articulos.Coste_produccion, dbo.Articulos.Precio_suma_desglose, dbo.Articulos.Precio_kit_es_desglose_fijo, dbo.Articulos.Articulo_kit, 
             CASE WHEN dbo.Articulos.Tipologia = 0 THEN ''Producto'' WHEN dbo.Articulos.Tipologia = 1 THEN ''Coste por unidad'' WHEN dbo.Articulos.Tipologia = 2 THEN ''Coste fijo'' WHEN dbo.Articulos.Tipologia = 3 THEN ''Coste por hora'' ELSE '''' END AS Desc_tipologia, dbo.Articulos.Tipo_control_pesos_generar, dbo.Articulos.Imprimir_lote_fac_simpl, 
             dbo.Articulos.Fk_articulo_referencia_coste, dbo.Articulos.Silicie_clave_producto, dbo.Articulos.Silicie_epigrafe_producto, dbo.Articulos.Precio_autoconsumo_1, dbo.Articulos.Precio_autoconsumo_excedido_1, dbo.Articulos.Precio_autoconsumo_2, dbo.Articulos.Precio_autoconsumo_excedido_2, dbo.Articulos.Regularizacion_maxima, 
             dbo.Articulos.Fk_unidad_c_neta_corregida, UNID_NETA.Descripcion AS Desc_unidad_c_neta_corregida, dbo.Centros.Descripcion AS Desc_centro_habitual, dbo.Articulos.Margen_compra_tarifa1, dbo.Articulos.Margen_compra_tarifa2, dbo.Articulos.Margen_compra_tarifa3, dbo.Articulos.Margen_compra_tarifa4, 
             dbo.Articulos.Formato_fruta_seca, dbo.Articulos.Margen_compra_tarifa5, dbo.Articulos.Margen_compra_tarifa6, dbo.Articulos.Margen_compra_tarifa7, dbo.Articulos.Margen_compra_tarifa8, dbo.Articulos.Margen_compra_tarifa9, dbo.Articulos.Margen_compra_tarifa10, dbo.Articulos.Margen_absoluto1, dbo.Articulos.Margen_absoluto2, 
             dbo.Articulos.Margen_absoluto3, dbo.Articulos.Margen_absoluto4, dbo.Articulos.Margen_absoluto5, dbo.Articulos.Margen_absoluto6, dbo.Articulos.Margen_absoluto7, dbo.Articulos.Margen_absoluto8, dbo.Articulos.Margen_absoluto9, dbo.Articulos.Margen_absoluto10, dbo.Articulos.No_imprimir_cant_precios_componentes, 
             dbo.Articulos.No_imprimir_componentes, dbo.Articulos.Tarifa11, dbo.Articulos.Tarifa12, dbo.Articulos.Tarifa13, dbo.Articulos.Tarifa14, dbo.Articulos.Tarifa15, dbo.Articulos.Tarifa16, dbo.Articulos.Tarifa17, dbo.Articulos.Tarifa18, dbo.Articulos.Tarifa19, dbo.Articulos.Tarifa20, dbo.Articulos.Fecha_act_tarifa11, dbo.Articulos.Fecha_act_tarifa12, 
             dbo.Articulos.Fecha_act_tarifa13, dbo.Articulos.Fecha_act_tarifa14, dbo.Articulos.Fecha_act_tarifa15, dbo.Articulos.Fecha_act_tarifa16, dbo.Articulos.Fecha_act_tarifa17, dbo.Articulos.Fecha_act_tarifa18, dbo.Articulos.Fecha_act_tarifa19, dbo.Articulos.Fecha_act_tarifa20, dbo.Articulos.Margen_compra_tarifa11, 
             dbo.Articulos.Margen_compra_tarifa12, dbo.Articulos.Margen_compra_tarifa13, dbo.Articulos.Margen_compra_tarifa14, dbo.Articulos.Margen_compra_tarifa15, dbo.Articulos.Margen_compra_tarifa16, dbo.Articulos.Margen_compra_tarifa17, dbo.Articulos.Margen_compra_tarifa18, dbo.Articulos.Margen_compra_tarifa19, 
             dbo.Articulos.Margen_compra_tarifa20, dbo.Articulos.Margen_absoluto11, dbo.Articulos.Margen_absoluto12, dbo.Articulos.Margen_absoluto13, dbo.Articulos.Margen_absoluto14, dbo.Articulos.Margen_absoluto15, dbo.Articulos.Margen_absoluto16, dbo.Articulos.Margen_absoluto17, dbo.Articulos.Margen_absoluto18, 
             dbo.Articulos.Margen_absoluto19, dbo.Articulos.Margen_absoluto20, dbo.Articulos.Fk_cc_existencias, dbo.Articulos.Tarifa1_anterior, dbo.Articulos.Tarifa2_anterior, dbo.Articulos.Tarifa3_anterior, dbo.Articulos.Tarifa4_anterior, dbo.Articulos.Tarifa5_anterior, dbo.Articulos.Tarifa6_anterior, dbo.Articulos.Tarifa7_anterior, 
             dbo.Articulos.Tarifa8_anterior, dbo.Articulos.Tarifa9_anterior, dbo.Articulos.Tarifa10_anterior, dbo.Articulos.Tarifa11_anterior, dbo.Articulos.Tarifa12_anterior, dbo.Articulos.Tarifa13_anterior, dbo.Articulos.Tarifa14_anterior, dbo.Articulos.Tarifa15_anterior, dbo.Articulos.Tarifa16_anterior, dbo.Articulos.Tarifa17_anterior, 
             dbo.Articulos.Tarifa18_anterior, dbo.Articulos.Tarifa19_anterior, dbo.Articulos.Tarifa20_anterior, dbo.Articulos.Entrada_web, dbo.Articulos.Fk_seccion_obligada, dbo.Articulos.Marcador_emcs_obligatorio
             ,AG.GruposArticulo,AG.NombresGruposArticulos,AI.Impuestos
			 , dbo.Articulos.Dias_cobertura_estoc_max, CASE WHEN dbo.Articulos.Clasificacion_ECO IS NULL THEN NULL 
             WHEN dbo.Articulos.Clasificacion_ECO = 1 THEN ''Convencional'' WHEN dbo.Articulos.Clasificacion_ECO = 2 THEN ''ECO'' WHEN dbo.Articulos.Clasificacion_ECO = 2 THEN ''IGP'' ELSE NULL END AS Desc_clasificacion_Eco, dbo.Articulos.disponible_est_repre, dbo.Articulos.Emcs_epigrafe, dbo.Articulos.Emcs_codigo_nc, 
             dbo.Articulos.Emcs_desc_comercial, dbo.Articulos.Emcs_categoria_vino, dbo.Articulos.Emcs_emp_externo_tipo_emb, dbo.Articulos.Emcs_emp_interno_tipo_emb, dbo.Articulos.Emcs_emp_externo_tipo_emb_exp, dbo.Articulos.Emcs_codigo_fiscal_producto_exp, dbo.Articulos.Emcs_codigo_nc_exp, dbo.Articulos.Emcs_zona_vinicola, 
             dbo.Articulos.Emcs_operacion_vino_1, dbo.Articulos.WebPuestasDisposicion, dbo.Articulos.Es_articulo_merma, dbo.Articulos.Reto_formulado, dbo.Articulos.Reto_fecha_cancelacion, dbo.Articulos.Reto_fecha_limite_venta, dbo.Articulos.Reto_denominacion_comun, dbo.Articulos.Reto_fecha_limite_almacenamiento, 
             dbo.Articulos.Reto_nombre_oficial, dbo.Articulos.Reto_titular, dbo.Articulos.Cerrar_op_sin_lote, dbo.Articulos.No_anotar_en_libros, dbo.Articulos.Fk_serie_copage_desde_cosechas, dbo.Articulos.Asignar_precio_cosecha_segun_plant_precio, dbo.Articulos.Tipo_mosto, dbo.Articulos.Clasif_calidad, dbo.Articulos.Fk_serie_ped_venta, 
             dbo.Articulos.Control_añada_variedad_compras, dbo.Articulos.Ruta_hc, dbo.Articulos.No_incluir_packing_list, dbo.Articulos.Recoger_peso_bascula,dbo.Articulos.Desc_tipo_prod_etiq_caja, dbo.Articulos.Ocultar_carga_componentes_intranet, dbo.Articulos.Tarifa1_compra, dbo.Articulos.Tarifa2_compra
			 ,dbo.Articulos.Tipo_pistacho,dbo.Articulos.Especie,dbo.Articulos.Texto_alb_fac, dbo.Articulos.Estadistica_powerbi,ARP.Ref_articulo_persona as Ref_articulo_proveedor,ARP.Desc_ref_articulo_persona as Desc_ref_articulo_proveedor
			 ,dbo.Articulos.Km0,dbo.Articulos.Desglose_salida_copage_con_entrada,dbo.Articulos.SAP,dbo.Articulos.Desc_SAP,dbo.Articulos.Obligatorio_lote_ref_salida_copage,dbo.Articulos.No_intercompany,dbo.Articulos.Tipo_precio_sobre_cantidad_liq,dbo.Articulos.Porcent_desviacion_prod,dbo.Articulos.Porcent_desviacion_prod_inferior
			 , dbo.Articulos.Reto_carta_portes, dbo.Articulos.Reto_categoria_transporte_adr, dbo.Articulos.Reto_carga_maxima_vehiculo, dbo.Articulos.Reto_codigo_UN , dbo.Articulos.Reto_grupo_embalaje, dbo.Articulos.Reto_cantidad_1_1_3_6
			 , dbo.Articulos.unidades_venta, dbo.Articulos.Porcent_nitrogeno, dbo.Articulos.Tpv_no_vender_sin_estoc
FROM     dbo.Articulos LEFT OUTER JOIN
             dbo.Articulos AS Articulos_2 ON dbo.Articulos.Fk_articulo_agrupacion = Articulos_2.Codigo LEFT OUTER JOIN
             dbo.Articulos AS Articulos_1 ON dbo.Articulos.Fk_envase = Articulos_1.Codigo LEFT OUTER JOIN
             dbo.Cat_fitosanitarios ON dbo.Articulos.Fito_categoria = dbo.Cat_fitosanitarios.Codigo LEFT OUTER JOIN
             dbo.Centros ON dbo.Articulos.Fk_centro_habitual = dbo.Centros.Codigo LEFT OUTER JOIN
             dbo.Libros_color ON dbo.Articulos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
             dbo.Denom_origen ON dbo.Articulos.Fk_do = dbo.Denom_origen.Codigo LEFT OUTER JOIN
             dbo.Tipos_secciones ON dbo.Articulos.Tipo_seccion = dbo.Tipos_secciones.Codigo LEFT OUTER JOIN
             dbo.Articulos_tipos ON dbo.Articulos.Fk_articulo_tipo = dbo.Articulos_tipos.Codigo LEFT OUTER JOIN
             dbo.Articulos_grupos_dto ON dbo.Articulos.Fk_grupo_dto_ventas = dbo.Articulos_grupos_dto.Codigo LEFT OUTER JOIN
             dbo.Articulos_grupos_dto AS Articulos_grupos_dto_1 ON dbo.Articulos.Fk_grupo_dto_compras = Articulos_grupos_dto_1.Codigo LEFT OUTER JOIN
             dbo.Unidades ON dbo.Articulos.Fk_unidad_salida = dbo.Unidades.Codigo LEFT OUTER JOIN
             dbo.Unidades AS UNID_NETA ON dbo.Articulos.Fk_unidad_c_neta_corregida = UNID_NETA.Codigo LEFT OUTER JOIN
             dbo.Libros ON dbo.ARticulos.Fk_libro_habitual = Libros.Codigo LEFT OUTER JOIN
             dbo.Libros_categorias ON dbo.ARticulos.Fk_categoria_libro_habitual = Libros_categorias.Codigo LEFT OUTER JOIN
             dbo.Marca ON dbo.articulos.Fk_marca = Marca.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre PROV_HABITUAL ON dbo.Articulos.Fk_proveedor_habitual = PROV_HABITUAL.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre CLIENTE_HABITUAL ON dbo.Articulos.Fk_cliente_habitual = CLIENTE_HABITUAL.Codigo LEFT OUTER JOIN
			 dbo.Articulos_referencia_persona ARP ON dbo.ARticulos.Fk_proveedor_habitual=ARP.Fk_persona AND dbo.Articulos.Codigo=ARP.Fk_articulo LEFT OUTER JOIN
                 (SELECT   FINAL.Articulo, FINAL.Codigo_grupo
                 FROM     (SELECT   AG.Codigo_Articulo AS Articulo, AG.Codigo_grupo, ROW_NUMBER() OVER (PARTITION BY AG.Codigo_Articulo
                              ORDER BY AG.Codigo_articulo, AG.Grupo_habitual_inventarios DESC) AS Rown
                 FROM     articulos_agrupaciones AG) AS FINAL
WHERE   Rown = 1) AS GRUPO_HABITUAL ON Articulos.Codigo = GRUPO_HABITUAL.Articulo LEFT OUTER JOIN
Articulos_grupos ON GRUPO_HABITUAL.Codigo_grupo = Articulos_grupos.Codigo LEFT OUTER JOIN
    (SELECT   FINAL.Articulo, FINAL.Precio, FINAL.Fecha_hora
    FROM     (SELECT   A.Fk_articulo AS Articulo, A.Precio_bruto AS Precio, C.Fecha_hora, ROW_NUMBER() OVER (PARTITION BY A.Fk_articulo
                 ORDER BY A.Fk_articulo, C.Fecha_hora DESC) AS Rown
    FROM     Alb_compra_lineas A WITH (NOLOCK) INNER JOIN
                 Alb_Compra C WITH (NOLOCK) ON A.Serie = C.Serie AND A.Numero = C.Numero LEFT OUTER JOIN
                 Articulos ON A.Fk_articulo = Articulos.Codigo
    WHERE   A.Cantidad > 0 AND A.Precio_bruto > 0) AS FINAL
WHERE   Rown = 1) AS ULTPRECIOCOMPRA ON dbo.Articulos.Codigo = ULTPRECIOCOMPRA.Articulo
LEFT OUTER JOIN
(SELECT ai.Codigo_articulo , STRING_AGG(''['' + CAST(CONVERT(varchar, ai.Codigo_impuesto)  + '' - '' + I.Descripcion + '' (Cantidad: '' + CONVERT(varchar, CONVERT(decimal(15, 2), ai.Unidades)) + '')'' AS varchar(MAX)) + '']'', '' '') AS Impuestos 
FROM Articulos_impuestos AI LEFT OUTER JOIN Impuestos I ON AI.Codigo_impuesto = I.Codigo GROUP BY AI.Codigo_articulo ) AI ON AI.Codigo_articulo=Articulos.Codigo
LEFT OUTER JOIN
(SELECT AAG.Codigo_articulo , STRING_AGG(''['' + CONVERT(varchar, AAG.Codigo_grupo) + '']'', '' '') AS GruposArticulo , STRING_AGG(''['' + CONVERT(varchar, AG.Descripcion) + '']'', '' '') AS NombresGruposArticulos 

FROM Articulos_agrupaciones AAG INNER JOIN  Articulos_grupos AG ON AAG.Codigo_grupo = AG.Codigo  GROUP BY AAG.Codigo_articulo ) AG ON AG.Codigo_articulo=Articulos.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Movimientos]
AS SELECT        T.Id, T.Fecha_hora, T.Fecha_hora_real, T.Fk_campaña, T.Fk_op_cierre, dbo.Campañas.Descripcion AS Desc_campaña, T.Fk_pais, P.Descripcion AS Desc_pais, T.SerieTipoDoc, T.Serie_tipo_mov, T.Num_movimiento, T.Linea, 
                         T.Articulo, T.Almacen, T.Lote, T.Articulo_descripcion, T.Precio_coste_articulo, T.Precio, T.Precio_coste_lote, T.Cantidad, T.Importe_base, T.No_inventariable, T.Pmp, T.Pmp_lote, T.Codigo_persona, T.Fk_centro, 
                         T.Fecha_consolidacion_inventario, T.Fecha_cierre_inv, T.SerieTipoDocDesc, T.Num_eti_desde, T.Num_eti_hasta, T.E_S_N, L.Lote_etiqueta, L.Añada, L.Fk_proveedor AS Codigo_proveedor_lote, dbo.Op.Fk_articulo AS CodigoArticuloFabricado, 
                         A.Descripcion AS DescArticuloFabricado, CAST(CONVERT(VARCHAR(30), T.Fecha_hora, 112) + REPLACE(CONVERT(VARCHAR(30), T.Fecha_hora, 114), '':'', '''') AS nvarchar) + CONVERT(nvarchar, T.Num_movimiento) 
                         + CONVERT(nvarchar, T.Linea) AS FechaMaxId, T.Kilos, T.Litros, T.Articulo_deposito, T.Desc_tipo_articulo, T.Fecha_modificacion, T.Forzar_precio
						 , ISNULL(T .Art_desc_linea, T .Articulo_descripcion) AS Art_desc_linea
FROM            (SELECT        ISNULL(t.Id, N''00000000-0000-0000-0000-000000000000'') AS Id, t.Cantidad * dbo.V_ArticulosNombre.Peso_neto AS Kilos, t.Cantidad * dbo.V_ArticulosNombre.Capacidad AS Litros, t.Fecha_hora, t.Fecha_hora_real, 
                                                    t.SerieTipoDoc, t.Serie_tipo_mov, t.Num_movimiento, t.Linea, t.Articulo, t.Almacen, t.Lote, dbo.V_ArticulosNombre.Descripcion AS Articulo_descripcion, t.Precio_coste_articulo, t.Precio, t.Precio_coste_lote, 
                                                    t.Cantidad, t.Importe_base, t.No_inventariable, t.Pmp, t.Pmp_lote, t.Codigo_persona, t.Fk_centro, t.Fecha_consolidacion_inventario, t.Fk_campaña, t.Fk_op_cierre, t.Fk_pais, t.Fecha_cierre_inv, 
                                                    dbo.V_ArticulosNombre.Articulo_deposito, dbo.V_ArticulosNombre.Desc_tipo_articulo, t.Fecha_modificacion, 
                                                    CASE t .SerieTipoDoc WHEN ''AL'' THEN ''Albarán cosecha'' WHEN ''AI'' THEN ''Ajuste inventario'' WHEN ''FV'' THEN ''Factura venta'' WHEN ''AV'' THEN ''Albarán venta'' WHEN ''AC'' THEN ''Albarán compra'' WHEN ''FC'' THEN ''Factura compra'' WHEN ''OP'' THEN ''Orden producción''
                                                     WHEN ''FS'' THEN ''Factura simplificada'' WHEN ''TC'' THEN ''Traspaso entre centros'' WHEN ''CP'' THEN ''Copage/Traslado''  WHEN ''CPRE'' THEN ''Cambio de precio''  ELSE '''' END AS SerieTipoDocDesc, t.Num_eti_desde, t.Num_eti_hasta, t.E_S_N, 
                                                    t.Forzar_precio,T.Articulo_descripcion as Art_desc_linea
                          FROM            (SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, 
                                                                              Lote, ISNULL(Movimientos.Articulo_descripcion, A.Descripcion) AS Articulo_descripcion, Precio_coste_articulo, Precio, Precio_coste_lote, + Cantidad AS Cantidad, Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, NULLIF (Pmp, 0) AS Pmp, 
                                                                              NULLIF (Pmp_lote, 0) AS Pmp_lote, Fk_persona AS Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, Num_eti_desde, Num_eti_hasta, ''E'' AS E_S_N, 
                                                                              Fk_pais_destino_origen AS Fk_pais, Fk_campaña, Fk_op_cierre, Fecha_hora_real AS Fecha_modificacion, Forzar_precio
                                                    FROM            dbo.Movimientos WITH (NOLOCK)
													LEFT OUTER JOIN dbo.V_ArticulosSoloNombre AS A WITH (NOLOCK) 
													ON dbo.Movimientos.Articulo = A.Codigo
                                                    WHERE        (E_S_N = ''E'')
                                                    UNION ALL
                                                    SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Tipo_movimiento AS Serie_tipo_mov, Movimiento AS Num_movimiento, Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, 
                                                                             Lote, ISNULL(Movimientos_1.Articulo_descripcion, A.Descripcion) AS Articulo_descripcion, Precio_coste_articulo, Precio, Precio_coste_lote, - Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, NULLIF (Pmp, 0) 
                                                                             AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, Fk_persona AS Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, Num_eti_desde, Num_eti_hasta, ''S'' AS E_S_N, 
                                                                             Fk_pais_destino_origen AS Fk_pais, Fk_campaña, Fk_op_cierre, Fecha_hora_real AS Fecha_modificacion, Forzar_precio
                                                    FROM            dbo.Movimientos AS Movimientos_1 WITH (NOLOCK)
													LEFT OUTER JOIN dbo.V_ArticulosSoloNombre AS A WITH (NOLOCK) 
													ON Movimientos_1.Articulo = A.Codigo
                                                    WHERE        (E_S_N = ''S'')
                                                    UNION ALL
                                                    SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, NULLIF (Fk_articulo, '''') AS Articulo, Almacen, Lote, 
                                                                             Articulo_descripcion, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, - Cantidad AS Cantidad, + Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, 
                                                                             NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, Codigo_cliente AS Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, NULL AS Num_eti_desde, NULL 
                                                                             AS Num_eti_hasta, ''S'' AS E_S_N, Fk_pais, NULL AS Fk_campaña, NULL AS Fk_op_cierre, ISNULL(Fecha_modificacion, Fecha_hora) AS Fecha_modificacion, CAST(NULL AS BIT) AS Forzar_precio
                                                    FROM            dbo.V_Mov_albaranes_venta WITH (NOLOCK)
                                                    UNION ALL
                                                    SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, NULLIF (Articulo, '''') AS Articulo, Almacen, Lote, 
                                                                             Articulo_descripcion, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, + Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, 
                                                                             NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, NULL AS Num_eti_desde, NULL AS Num_eti_hasta, 
                                                                             ''E'' AS E_S_N, NULL AS Fk_pais, Fk_campaña, NULL AS Fk_op_cierre, ISNULL(Fecha_modificacion, Fecha_hora) AS Fecha_modificacion, CAST(NULL AS BIT) AS Forzar_precio
                                                    FROM            dbo.V_Mov_alb_liq WITH (NOLOCK)
                                                    UNION ALL
                                                    SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, NULLIF (Fk_articulo, '''') AS Articulo, Almacen, Lote, 
                                                                             Articulo_descripcion, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, + Cantidad AS Cantidad, - Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, 
                                                                             NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, Codigo_persona, fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, Num_eti_desde, Num_eti_hasta, ''E'' AS E_S_N, 
                                                                             Fk_pais, NULL AS Fk_campaña, NULL AS Fk_op_cierre, ISNULL(Fecha_modificacion, Fecha_hora) AS Fecha_modificacion, CAST(NULL AS BIT) AS Forzar_precio
                                                    FROM            dbo.V_Mov_albaranes_compra WITH (NOLOCK)
                                                    UNION ALL
                                                    SELECT        Id, Fecha_hora, Fecha_hora_real, NULLIF (SerieTipoDoc, '''') AS SerieTipoDoc, Serie AS Serie_tipo_mov, Numero AS Num_movimiento, Linea, NULLIF (Fk_articulo, '''') AS Articulo, Fk_almacen AS Almacen, 
                                                                             Lote, Articulo_descripcion, Precio_coste_articulo, Precio_neto AS Precio, Precio_coste_lote, - Cantidad AS Cantidad, + Importe_base AS Importe_base, ISNULL(No_inventariable, 0) AS No_inventariable, 
                                                                             NULLIF (Pmp, 0) AS Pmp, NULLIF (Pmp_lote, 0) AS Pmp_lote, Codigo_persona, Fk_centro, Fecha_consolidacion_inventario, Fecha_cierre_inv, NULL AS Num_eti_desde, NULL AS Num_eti_hasta, 
                                                                             ''S'' AS E_S_N, Fk_pais, NULL AS Fk_campaña, NULL AS Fk_op_cierre, ISNULL(Fecha_modificacion, Fecha_hora) AS Fecha_modificacion, CAST(NULL AS BIT) AS Forzar_precio
                                                    FROM            dbo.V_Mov_facturas_simpl  WITH (NOLOCK)) AS t LEFT OUTER JOIN
                                                    dbo.V_ArticulosNombre ON t.Articulo = dbo.V_ArticulosNombre.Codigo) AS T
							LEFT OUTER JOIN	(SELECT Fk_articulo + ''-'' + Lote AS AT, Lote_etiqueta, Añada, Fk_proveedor FROM Lotes WITH (NOLOCK)) AS L
							ON L.AT = T.Articulo + ''-'' + T.Lote
							LEFT OUTER JOIN dbo.Op WITH (NOLOCK) 
							ON T.SerieTipoDoc = ''OP'' 
							AND T.Serie_tipo_mov = dbo.Op.Fk_serie 
							AND T.Num_movimiento = dbo.Op.Numero 
							LEFT OUTER JOIN dbo.V_ArticulosNombre AS A WITH (NOLOCK) 
							ON dbo.Op.Fk_articulo = A.Codigo 
							LEFT OUTER JOIN dbo.Campañas WITH (NOLOCK) 
							ON dbo.Campañas.Codigo = T.Fk_campaña 
							LEFT OUTER JOIN dbo.Paises AS P WITH (NOLOCK) 
							ON T.Fk_pais = P.Id_isonum
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Movimientos_estoc]
AS SELECT        Id, Fecha_hora, Fecha_hora_real, SerieTipoDoc, Serie_tipo_mov, Num_movimiento, Linea, Articulo, Almacen, Lote, Lote_etiqueta, Articulo_descripcion, Precio_coste_articulo, Precio, Precio_coste_lote, Cantidad, 
						 Importe_base, No_inventariable, Pmp,Pmp_lote, Codigo_persona, Fk_centro, CAST(CONVERT(VARCHAR(30), Fecha_hora, 112) + REPLACE(CONVERT(VARCHAR(30), Fecha_hora, 114), '':'', '''') AS nvarchar) 
						 + CONVERT(nvarchar, Num_movimiento) + CONVERT(nvarchar, Linea) AS FechaMaxId,Fecha_consolidacion_inventario, Fecha_cierre_inv, SerieTipoDocDesc,E_S_N,Fecha_modificacion
FROM            dbo.V_Movimientos  WITH (NOLOCK)
WHERE        (ISNULL(No_inventariable, 0) = 0)
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotal]'))
DROP VIEW [dbo].V_EstocTotal
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstocTotal]
					 AS SELECT ISNULL(Articulo, 0) AS Articulo, SUM(ISNULL(Cantidad, 0)) AS Cantidad
					FROM dbo.V_Movimientos_estoc
					WHERE        (Fecha_consolidacion_inventario IS NULL)
					GROUP BY Articulo'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaLineas] AS
SELECT        CONVERT(date, dbo.Contratos_venta.Fecha_hora, 103) AS Fecha, dbo.Contratos_venta.Codigo_persona, dbo.V_Personas.NombreCompleto, dbo.Contratos_venta_lineas.Id, dbo.Contratos_venta_lineas.Serie, 
						dbo.Contratos_venta_lineas.Numero, dbo.Contratos_venta_lineas.Linea, dbo.Contratos_venta_lineas.Fk_articulo, dbo.Contratos_venta_lineas.Articulo_descripcion, dbo.Contratos_venta_lineas.No_inventariable, 
						dbo.Contratos_venta_lineas.Fk_articulo_kit, dbo.Contratos_venta_lineas.Linea_kit, dbo.Contratos_venta_lineas.Precio_coste_articulo, dbo.Contratos_venta_lineas.Precio_bruto, dbo.Contratos_venta_lineas.Precio_neto, 
						dbo.Contratos_venta_lineas.Bultos, dbo.Contratos_venta_lineas.Cantidad, dbo.Contratos_venta_lineas.Importe_bruto, dbo.Contratos_venta_lineas.Imp_dto_pp, dbo.Contratos_venta_lineas.Imp_dto_esp, 
						dbo.Contratos_venta_lineas.Tipo_calculo_dto1, dbo.Contratos_venta_lineas.Valor_dto1, dbo.Contratos_venta_lineas.Importe_dto1, dbo.Contratos_venta_lineas.Tipo_calculo_dto2, dbo.Contratos_venta_lineas.Aplicacion_dto2, 
						dbo.Contratos_venta_lineas.Valor_dto2, dbo.Contratos_venta_lineas.Importe_dto2, dbo.Contratos_venta_lineas.Tipo_calculo_comisiones, dbo.Contratos_venta_lineas.Valor_comision1, 
						dbo.Contratos_venta_lineas.Importe_comision1, dbo.Contratos_venta_lineas.Valor_comision2, dbo.Contratos_venta_lineas.Importe_comision2, dbo.Contratos_venta_lineas.Importe_base, dbo.Contratos_venta_lineas.Valor_iva, 
						dbo.Contratos_venta_lineas.Importe_iva, dbo.Contratos_venta_lineas.Valor_recargo, dbo.Contratos_venta_lineas.Importe_recargo, dbo.Contratos_venta_lineas.Valor_irpf, dbo.Contratos_venta_lineas.Importe_irpf, 
						dbo.Contratos_venta_lineas.Importe_otros_impuestos, dbo.Contratos_venta_lineas.Importe_total_linea, dbo.Contratos_venta_lineas.Centro_analitico1, dbo.Contratos_venta_lineas.Centro_analitico2, 
						dbo.Contratos_venta_lineas.Codigo_iva, dbo.Contratos_venta_lineas.Aplicacion_irpf, dbo.Contratos_venta_lineas.Tipo_doc_asociado, dbo.Contratos_venta_lineas.Serie_doc_asociado, 
						dbo.Contratos_venta_lineas.Numero_doc_asociado, dbo.Contratos_venta_lineas.Id_doc_asociado, dbo.Contratos_venta_lineas.Cantidad_anulada, dbo.Contratos_venta_lineas.Anular_restante, 
						dbo.Contratos_venta_lineas.Observaciones, dbo.Contratos_venta_lineas.Observaciones_internas, dbo.Contratos_venta_lineas.Orden, dbo.Contratos_venta_lineas.Promocion, dbo.Contratos_venta_lineas.PVP, dbo.Contratos_venta_lineas.Importe_impuestos_incluidos, 
						dbo.Contratos_venta_lineas.Importe_neto, dbo.Contratos_venta_lineas.Tarifa_iva_incluido, dbo.Contratos_venta_lineas.Precio_tarifa, dbo.Contratos_venta_lineas.Precio_con_dtos_linea, dbo.V_ArticulosNombre.Aux_codigo, 
						dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion,dbo.Contratos_venta_lineas.Fecha_entrega
						, CASE WHEN ESTADOS.AsociadoAnuladoTotal=1 AND Pendiente=1 THEN 5
						 WHEN ESTADOS.Pendiente=1  THEN 0 
						 WHEN ESTADOS.AsociadoTotal=1 THEN 1 
						 WHEN ESTADOS.AnuladoTotal=1 THEN 3 
						 WHEN ESTADOS.AsociadoParcial=1 THEN 2
						 WHEN ESTADOS.AsociadoAnuladoTotal=1 THEN 4
						 ELSE 6 END AS Estado_asociado
FROM            dbo.Contratos_venta_lineas INNER JOIN
						dbo.V_ArticulosNombre ON dbo.Contratos_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo INNER JOIN
						dbo.Contratos_venta ON dbo.Contratos_venta_lineas.Serie = dbo.Contratos_venta.Serie AND dbo.Contratos_venta_lineas.Numero = dbo.Contratos_venta.Numero LEFT OUTER JOIN
						dbo.V_Personas ON dbo.Contratos_venta.Codigo_persona = dbo.V_Personas.Codigo
						LEFT OUTER JOIN V_DocLinEstadosContratosVenta ESTADOS ON dbo.Contratos_venta_lineas.Id=ESTADOS.Id
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaLineasLotes]
AS
SELECT     dbo.Contratos_venta_lineas_lotes.Id, dbo.Contratos_venta_lineas_lotes.fk_Id_linea, dbo.Contratos_venta_lineas_lotes.Almacen, dbo.Contratos_venta_lineas_lotes.Lote,
dbo.Contratos_venta_lineas_lotes.Lote_etiqueta, dbo.Contratos_venta_lineas_lotes.Precio_coste_lote, dbo.Contratos_venta_lineas_lotes.Cantidad,
dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Contratos_venta_lineas.Serie, dbo.Contratos_venta_lineas.Numero,dbo.Lotes.Añada,dbo.Lotes.Fecha_caducidad,dbo.Lotes.Fecha_consumo_preferente
FROM         dbo.Contratos_venta_lineas_lotes LEFT OUTER JOIN
dbo.Contratos_venta_lineas ON dbo.Contratos_venta_lineas_lotes.fk_Id_linea = dbo.Contratos_venta_lineas.Id LEFT OUTER JOIN
dbo.Almacenes ON dbo.Contratos_venta_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
dbo.Lotes ON dbo.Contratos_venta_lineas.Fk_articulo=dbo.Lotes.Fk_articulo AND dbo.Contratos_venta_lineas_lotes.Lote=dbo.Lotes.Lote
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaLineas]
AS
SELECT        CONVERT(date, dbo.Facturas_venta.Fecha_hora, 103) AS Fecha, dbo.Facturas_venta.Codigo_cliente, dbo.V_Personas.NombreCompleto, dbo.Facturas_venta_lineas.Id, dbo.Facturas_venta_lineas.Serie,SER.Descripcion as Desc_serie, dbo.Facturas_venta.Fk_centro, CEN.Descripcion as Desc_centro,
                         dbo.Facturas_venta_lineas.Numero, dbo.Facturas_venta_lineas.Linea, dbo.Facturas_venta_lineas.Articulo, dbo.Facturas_venta_lineas.Articulo_descripcion, dbo.Facturas_venta_lineas.No_inventariable, 
                         dbo.Facturas_venta_lineas.Articulo_kit, dbo.Facturas_venta_lineas.Linea_kit, dbo.Facturas_venta_lineas.Precio_tarifa, dbo.Facturas_venta_lineas.Precio_con_dtos_linea, 
                         dbo.Facturas_venta_lineas.Precio_coste_articulo, dbo.Facturas_venta_lineas.Precio_bruto, dbo.Facturas_venta_lineas.Precio_neto, dbo.Facturas_venta_lineas.Bultos, dbo.Facturas_venta_lineas.Cantidad, 
                         dbo.Facturas_venta_lineas.Importe_bruto, dbo.Facturas_venta_lineas.Imp_dto_pp, dbo.Facturas_venta_lineas.Imp_dto_esp, dbo.Facturas_venta_lineas.Tipo_calculo_dto1, 
                         dbo.Facturas_venta_lineas.Valor_dto1, dbo.Facturas_venta_lineas.Importe_dto1, dbo.Facturas_venta_lineas.Tipo_calculo_dto2, dbo.Facturas_venta_lineas.Aplicacion_dto2, 
                         dbo.Facturas_venta_lineas.Valor_dto2, dbo.Facturas_venta_lineas.Importe_dto2, dbo.Facturas_venta_lineas.Tipo_calculo_comisiones, dbo.Facturas_venta_lineas.Valor_comision1, 
                         dbo.Facturas_venta_lineas.Importe_comision1, dbo.Facturas_venta_lineas.Valor_comision2, dbo.Facturas_venta_lineas.Importe_comision2, dbo.Facturas_venta_lineas.Importe_base, dbo.Facturas_venta_lineas.Importe_base_incrementado, 
                         dbo.Facturas_venta_lineas.Valor_iva, dbo.Facturas_venta_lineas.Importe_iva, dbo.Facturas_venta_lineas.Valor_recargo, dbo.Facturas_venta_lineas.Importe_recargo, dbo.Facturas_venta_lineas.Valor_irpf, 
                         dbo.Facturas_venta_lineas.Importe_irpf, dbo.Facturas_venta_lineas.Importe_otros_impuestos, dbo.Facturas_venta_lineas.Importe_total_linea, dbo.Facturas_venta_lineas.Centro_analitico1, 
                         dbo.Facturas_venta_lineas.Centro_analitico2, dbo.Facturas_venta_lineas.Codigo_iva, dbo.Facturas_venta_lineas.Aplicacion_irpf, dbo.Facturas_venta_lineas.Tipo_doc_asociado, 
                         dbo.Facturas_venta_lineas.Serie_doc_asociado, dbo.Facturas_venta_lineas.Numero_doc_asociado, dbo.Facturas_venta_lineas.Id_doc_asociado, dbo.Facturas_venta_lineas.Cantidad_anulada, 
                         dbo.Facturas_venta_lineas.Anular_restante, dbo.Facturas_venta_lineas.Observaciones, dbo.Facturas_venta_lineas.Observaciones_internas, dbo.Facturas_venta_lineas.Fk_cuenta_contable,CC.Descripcion as Desc_cuenta_contable, dbo.Facturas_venta_lineas.Orden, 
                         dbo.Facturas_venta_lineas.Peso_bruto, dbo.Facturas_venta_lineas.Peso_neto, dbo.Facturas_venta_lineas.Descripcion_dto1, dbo.Facturas_venta_lineas.Descripcion_dto2, 
                         dbo.Facturas_venta_lineas.Promocion, dbo.Facturas_venta_lineas.PVP, dbo.Facturas_venta_lineas.Importe_impuestos_incluidos, dbo.Facturas_venta_lineas.Importe_neto, 
                         dbo.Facturas_venta_lineas.Fk_expediente, dbo.Facturas_venta_lineas.Serie_expediente, dbo.Facturas_venta_lineas.Numero_expediente, dbo.Facturas_venta_lineas.Tarifa_iva_incluido, 
                         dbo.Facturas_venta_lineas.Num_pales, dbo.Facturas_venta_lineas.Num_pisos_pale, dbo.V_ArticulosNombre.Fk_codigo_arancelario, dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, 
                         dbo.V_ArticulosNombre.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.V_ArticulosNombre.Grado_alcoholico, dbo.V_ArticulosNombre.Aux_codigo, dbo.V_ArticulosNombre.Fk_articulo_tipo, 
                         dbo.V_ArticulosNombre.Cantidad_por_bulto, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo_agrupacion, 
                         dbo.V_DocLinAsociados.Su_referencia_cabecera AS Su_referencia_doc_asociado, dbo.V_ArticulosNombre.Capacidad, dbo.V_DocLinAsociados.Fecha_hora AS Fecha_doc_asociado, 
                         dbo.V_ArticulosNombre.Codigo_secundario, dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Fito_registro, ADI.Traduccion AS Desc_articulo_traduccion, ARP.Ref_articulo_persona, 
                         ARP.Desc_ref_articulo_persona, dbo.Unidades.Descripcion_breve AS Desc_unidad_breve, CASE WHEN ISNULL(dbo.V_ArticulosNombre.Fito_registro, '''') <> '''' THEN 1 ELSE 0 END AS EsFitosanitario, 
                         ESTADO_REPARTOS.Reparto_completo, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_do, dbo.Expediente.Serie AS Expediente_serie, ISNULL(dbo.Expediente.Numero, 0 ) AS Expediente_numero, dbo.V_ArticulosNombre.No_imprimir_caducidad_docs,dbo.V_ArticulosNombre.No_mostrar_añada_en_docs
						 ,dbo.Facturas_venta_lineas.Cantidad2,dbo.Facturas_venta_lineas.Precio2
						 ,dbo.Facturas_venta.Representante1,dbo.Facturas_venta.Representante2,dbo.V_ArticulosNombre.Descripcion as Desc_articulo_original
						 ,dbo.Facturas_venta.Forma_pago,dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Notas, dbo.V_ArticulosNombre.Notas_internas
						 ,dbo.Facturas_venta_lineas.Autoconsumo0_excedido1,dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo,ARTAUTOCONSUMO.Descripcion as Desc_art_agrup_autoconsumo
						  ,CAST(dbo.Facturas_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad,0)  AS decimal(15,3)) AS Cantidad_litros
						  ,CAST(dbo.Facturas_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 0) AS decimal(15,3)) AS Cantidad_Kg,dbo.Facturas_venta.Id as Id_cabecera
						  ,dbo.Facturas_venta_lineas.Id_validacion1,dbo.Facturas_venta_lineas.Id_validacion2,dbo.Facturas_venta.Fk_campana
						  ,dbo.V_ArticulosNombre.Clasificacion_ECO,dbo.V_ArticulosNombre.Desc_clasificacion_Eco,dbo.Facturas_venta.Su_referencia,dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto
						  , ISNULL(dbo.V_ArticulosNombre.No_imprimir_cant_precios_componentes,ARTCOMP.No_imprimir_cant_precios_componentes) as  No_imprimir_cant_precios_componentes
						  , ISNULL(dbo.V_ArticulosNombre.No_imprimir_componentes,ARTCOMP.No_imprimir_componentes) as  No_imprimir_componentes
						  ,ISNULL(dbo.V_Personas.Desc_pais,dbo.V_Personas.Fk_pais) as Pais,dbo.V_Personas.Fis_municipio,dbo.V_Personas.Fis_provincia, VPD.Pais AS PaisEnv
						  ,V_Personas.Telefono_particular as Persona_telefono1,V_Personas.Email1 as Persona_email1, V_Personas.Tipo_identificacion AS Tipo_identificacion_cliente, V_Personas.Identificacion AS Identificacion_cliente
						  ,CASE WHEN dbo.Facturas_venta_lineas.Precio_tarifa IS NOT NULL THEN dbo.Facturas_venta_lineas.Precio_bruto-dbo.Facturas_venta_lineas.Precio_tarifa ELSE NULL END as Dif_precio_tarifa
						  ,dbo.V_ArticulosNombre.Texto_alb_fac
FROM            dbo.Facturas_venta_lineas LEFT OUTER JOIN
                         dbo.Facturas_venta ON dbo.Facturas_venta_lineas.Serie = dbo.Facturas_venta.Serie AND dbo.Facturas_venta_lineas.Numero = dbo.Facturas_venta.Numero LEFT OUTER JOIN
						 dbo.Series_facturas_venta SER ON dbo.Facturas_venta.Serie=SER.Serie LEFT OUTER JOIN
						 dbo.Centros CEN ON dbo.Facturas_venta.Fk_centro=CEN.codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = dbo.Facturas_venta.Codigo_cliente LEFT OUTER JOIN
                         dbo.Articulos_desc_idioma AS ADI ON ADI.Fk_articulo = dbo.Facturas_venta_lineas.Articulo AND ADI.Fk_idioma = dbo.V_Personas.Fk_idioma LEFT OUTER JOIN
                         dbo.Articulos_referencia_persona AS ARP ON ARP.Fk_persona = dbo.V_Personas.Codigo AND ARP.Fk_articulo = dbo.Facturas_venta_lineas.Articulo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Facturas_venta_lineas.Articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones AS VPD ON dbo.Facturas_venta.Codigo_direccion_envio = VPD.Codigo LEFT OUTER JOIN 
						 dbo.Articulos AS ARTCOMP ON dbo.Facturas_venta_lineas.Articulo_kit = ARTCOMP.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre AS ARTAUTOCONSUMO ON dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo = ARTAUTOCONSUMO.Codigo LEFT OUTER JOIN
                         dbo.Expediente ON dbo.Facturas_venta_lineas.Fk_expediente = dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.V_DocLinAsociados ON dbo.Facturas_venta_lineas.Id_doc_asociado = dbo.V_DocLinAsociados.Id LEFT OUTER JOIN
                         dbo.Libros_color ON dbo.V_ArticulosNombre.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
						 dbo.Asientos_cuentas_contables CC ON dbo.Facturas_venta_lineas.Fk_cuenta_contable=CC.Codigo LEFT OUTER JOIN
                         dbo.Unidades ON dbo.V_ArticulosNombre.Fk_unidad_salida = dbo.Unidades.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo LEFT OUTER JOIN
                             (SELECT        dbo.Facturas_venta_repartos.fk_linea, COUNT(dbo.Asientos_codigos_reparto.fk_tipo_reparto) AS Cuenta_tipos_reparto, SUM(ISNULL(dbo.Facturas_venta_repartos.Porcentaje, 0)) 
                                                         AS TotalPorcentaje, CASE WHEN SUM(ISNULL(porcentaje, 0)) / COUNT(Asientos_codigos_reparto.fk_tipo_reparto) = 100 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END AS Reparto_completo
                               FROM            dbo.Facturas_venta_repartos LEFT OUTER JOIN
                                                         dbo.Asientos_codigos_reparto ON dbo.Facturas_venta_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo
                               GROUP BY dbo.Facturas_venta_repartos.fk_linea) AS ESTADO_REPARTOS ON ESTADO_REPARTOS.fk_linea = dbo.Facturas_venta_lineas.Id
						 
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaLineasRepartos]
AS SELECT        NEWID() as Id_auto,dbo.FacturasVentaLineas.Id, ISNULL(dbo.Facturas_venta_repartos.id,NEWID()) AS Id_reparto, dbo.FacturasVentaLineas.Serie, dbo.FacturasVentaLineas.Numero, dbo.FacturasVenta.Fecha, dbo.FacturasVenta.Hora, 
                         dbo.FacturasVenta.Codigo_cliente, dbo.FacturasVenta.Nombre_cliente, dbo.FacturasVenta.Fk_centro, dbo.FacturasVenta.Desc_centro, dbo.FacturasVentaLineas.Linea, dbo.FacturasVentaLineas.Articulo, 
                         dbo.FacturasVentaLineas.Articulo_descripcion, dbo.FacturasVentaLineas.No_inventariable, dbo.FacturasVentaLineas.Articulo_kit, dbo.FacturasVentaLineas.Linea_kit, dbo.FacturasVentaLineas.Precio_coste_articulo, 
                         dbo.FacturasVentaLineas.Precio_bruto, dbo.FacturasVentaLineas.Precio_neto, dbo.FacturasVentaLineas.Bultos, dbo.FacturasVentaLineas.Cantidad, dbo.FacturasVentaLineas.Importe_bruto, 
                         dbo.FacturasVentaLineas.Imp_dto_pp, dbo.FacturasVentaLineas.Imp_dto_esp, dbo.FacturasVentaLineas.Tipo_calculo_dto1, dbo.FacturasVentaLineas.Valor_dto1, dbo.FacturasVentaLineas.Importe_dto1, 
                         dbo.FacturasVentaLineas.Tipo_calculo_dto2, dbo.FacturasVentaLineas.Aplicacion_dto2, dbo.FacturasVentaLineas.Valor_dto2, dbo.FacturasVentaLineas.Importe_dto2, dbo.FacturasVentaLineas.Tipo_calculo_comisiones, 
                         dbo.FacturasVentaLineas.Valor_comision1, dbo.FacturasVentaLineas.Importe_comision1, dbo.FacturasVentaLineas.Valor_comision2, dbo.FacturasVentaLineas.Importe_comision2, dbo.FacturasVentaLineas.Importe_base, 
                         dbo.FacturasVentaLineas.Valor_iva, dbo.FacturasVentaLineas.Importe_iva, dbo.FacturasVentaLineas.Valor_recargo, dbo.FacturasVentaLineas.Importe_recargo, dbo.FacturasVentaLineas.Valor_irpf, 
                         dbo.FacturasVentaLineas.Importe_irpf, dbo.FacturasVentaLineas.Importe_otros_impuestos, dbo.FacturasVentaLineas.Importe_total_linea, dbo.FacturasVentaLineas.Centro_analitico1, dbo.FacturasVentaLineas.Centro_analitico2, 
                         dbo.FacturasVentaLineas.Codigo_iva, dbo.FacturasVentaLineas.Aplicacion_irpf, dbo.FacturasVentaLineas.Tipo_doc_asociado, dbo.FacturasVentaLineas.Serie_doc_asociado, dbo.FacturasVentaLineas.Numero_doc_asociado, 
                         dbo.FacturasVentaLineas.Id_doc_asociado, dbo.FacturasVentaLineas.Cantidad_anulada, dbo.FacturasVentaLineas.Anular_restante, dbo.FacturasVentaLineas.Observaciones, dbo.FacturasVentaLineas.Fk_cuenta_contable, 
                         dbo.FacturasVentaLineas.Orden, dbo.FacturasVentaLineas.Peso_bruto, dbo.FacturasVentaLineas.Peso_neto, dbo.FacturasVentaLineas.Descripcion_dto1, dbo.FacturasVentaLineas.Descripcion_dto2, 
                         dbo.FacturasVentaLineas.Promocion, dbo.FacturasVentaLineas.PVP, dbo.FacturasVentaLineas.Importe_impuestos_incluidos, dbo.FacturasVentaLineas.Importe_neto, dbo.FacturasVentaLineas.Fk_expediente, 
                         dbo.FacturasVentaLineas.Serie_expediente, dbo.FacturasVentaLineas.Numero_expediente, dbo.FacturasVentaLineas.Tarifa_iva_incluido, dbo.FacturasVentaLineas.Aux_codigo, dbo.FacturasVentaLineas.Fk_articulo_tipo, 
                         dbo.FacturasVentaLineas.Cantidad_por_bulto, dbo.FacturasVentaLineas.Fk_articulo_agrupacion, dbo.FacturasVentaLineas.Desc_articulo_agrupacion, dbo.FacturasVentaLineas.Su_referencia_doc_asociado, 
                         dbo.FacturasVentaLineas.Fecha_doc_asociado, dbo.FacturasVentaLineas.Codigo_secundario, dbo.Facturas_venta_repartos.fk_codigo_reparto, dbo.Facturas_venta_repartos.importe AS ImporteReparto, 
                         dbo.Asientos_codigos_reparto.descripcion AS Desc_reparto, dbo.Asientos_codigos_reparto.fk_tipo_reparto, dbo.Asientos_tipo_reparto.descripcion AS Desc_tipo_reparto, dbo.Facturas_venta_repartos.Porcentaje, 
                         dbo.Asientos_codigos_reparto.Codigo_datisa, dbo.FacturasVenta.Representante1, dbo.Asientos_codigos_reparto.Fk_seccion, S.Descripcion AS Desc_seccion, dbo.Asientos_codigos_reparto.Fk_campaña, 
                         dbo.Campañas.Descripcion AS Desc_campaña
FROM            dbo.FacturasVentaLineas LEFT OUTER JOIN
                         dbo.FacturasVenta ON dbo.FacturasVentaLineas.Serie = dbo.FacturasVenta.Serie AND dbo.FacturasVentaLineas.Numero = dbo.FacturasVenta.Numero LEFT OUTER JOIN
                         dbo.Facturas_venta_repartos ON dbo.FacturasVentaLineas.Id = dbo.Facturas_venta_repartos.fk_linea LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto ON dbo.Facturas_venta_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
                         dbo.Asientos_tipo_reparto ON dbo.Asientos_codigos_reparto.fk_tipo_reparto = dbo.Asientos_tipo_reparto.codigo LEFT OUTER JOIN
                         dbo.Secciones AS S ON dbo.Asientos_codigos_reparto.Fk_seccion = S.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Asientos_codigos_reparto.Fk_campaña = dbo.Campañas.Codigo
						 '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraLineas]
AS
SELECT        CONVERT(date, dbo.Fac_compra.Fecha_hora, 103) AS Fecha, dbo.Fac_compra.Codigo_persona, dbo.V_Personas.NombreCompleto, dbo.Fac_compra_lineas.Id, dbo.Fac_compra_lineas.Serie, dbo.Fac_compra_lineas.Numero, 
                         dbo.Fac_compra_lineas.Linea, dbo.Fac_compra_lineas.Fk_articulo, dbo.Fac_compra_lineas.Articulo_descripcion, dbo.Fac_compra_lineas.No_inventariable, dbo.Fac_compra_lineas.Fk_articulo_kit, 
                         dbo.Fac_compra_lineas.Linea_kit, dbo.Fac_compra_lineas.Precio_coste_articulo, dbo.Fac_compra_lineas.Precio_bruto, dbo.Fac_compra_lineas.Precio_neto, dbo.Fac_compra_lineas.Bultos, dbo.Fac_compra_lineas.Cantidad, 
                         dbo.Fac_compra_lineas.Importe_bruto, dbo.Fac_compra_lineas.Imp_dto_pp, dbo.Fac_compra_lineas.Imp_dto_esp, dbo.Fac_compra_lineas.Tipo_calculo_dto1, dbo.Fac_compra_lineas.Valor_dto1, 
                         dbo.Fac_compra_lineas.Importe_dto1, dbo.Fac_compra_lineas.Tipo_calculo_dto2, dbo.Fac_compra_lineas.Aplicacion_dto2, dbo.Fac_compra_lineas.Valor_dto2, dbo.Fac_compra_lineas.Importe_dto2, 
                         dbo.Fac_compra_lineas.Tipo_calculo_comisiones, dbo.Fac_compra_lineas.Valor_comision1, dbo.Fac_compra_lineas.Importe_comision1, dbo.Fac_compra_lineas.Valor_comision2, dbo.Fac_compra_lineas.Importe_comision2, 
                         dbo.Fac_compra_lineas.Importe_base, dbo.Fac_compra_lineas.Valor_iva, dbo.Fac_compra_lineas.Importe_iva, dbo.Fac_compra_lineas.Valor_recargo, dbo.Fac_compra_lineas.Importe_recargo, 
                         dbo.Fac_compra_lineas.Valor_irpf, dbo.Fac_compra_lineas.Importe_irpf, dbo.Fac_compra_lineas.Importe_otros_impuestos, dbo.Fac_compra_lineas.Importe_total_linea, dbo.Fac_compra_lineas.Centro_analitico1, 
                         dbo.Fac_compra_lineas.Centro_analitico2, dbo.Fac_compra_lineas.Codigo_iva, dbo.Fac_compra_lineas.Aplicacion_irpf, dbo.Fac_compra_lineas.Tipo_doc_asociado, dbo.Fac_compra_lineas.Serie_doc_asociado, 
                         dbo.Fac_compra_lineas.Numero_doc_asociado, dbo.Fac_compra_lineas.Id_doc_asociado, dbo.Fac_compra_lineas.Cantidad_anulada, dbo.Fac_compra_lineas.Anular_restante, dbo.Fac_compra_lineas.Observaciones, 
                         dbo.Fac_compra_lineas.Observaciones_internas, dbo.Fac_compra_lineas.Orden, dbo.Fac_compra_lineas.Fk_do, dbo.Fac_compra_lineas.Num_eti_desde, dbo.Fac_compra_lineas.Num_eti_hasta, 
                         dbo.Fac_compra_lineas.Fk_cuenta_contable, CC.Descripcion AS Desc_cuenta_contable, dbo.Fac_compra_lineas.Promocion, dbo.Fac_compra_lineas.PVP, dbo.Fac_compra_lineas.Importe_impuestos_incluidos, 
                         dbo.Fac_compra_lineas.Importe_neto, dbo.Fac_compra_lineas.Tarifa_iva_incluido, dbo.Fac_compra_lineas.Precio_tarifa, dbo.Fac_compra_lineas.Precio_con_dtos_linea, dbo.V_ArticulosNombre.Aux_codigo, 
                         dbo.V_ArticulosNombre.Cantidad_por_bulto, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo_original, 
                         dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Capacidad, dbo.V_ArticulosNombre.Peso_neto, dbo.Fac_compra_lineas.Cantidad2, dbo.Fac_compra_lineas.Precio2, 
                         CAST(dbo.Fac_compra_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad, 0) AS decimal(15, 3)) AS Cantidad_litros, CAST(dbo.Fac_compra_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 0) 
                         AS decimal(15, 3)) AS Cantidad_Kg, dbo.Fac_compra.Fecha_recepcion, dbo.V_ArticulosNombre.Clasificacion_ECO, dbo.V_ArticulosNombre.Desc_clasificacion_Eco, dbo.Fac_compra_lineas.Fk_articulo2, 
                         ART2.Descripcion AS Desc_articulo2, dbo.Fac_compra.Representante1, dbo.Fac_compra.Representante2, dbo.Fac_compra.Id AS Id_cabecera, dbo.Fac_compra.Su_referencia
						 ,MOV.Fecha_hora as Fecha_doc_asociado,dbo.Fac_compra_lineas.Precio_fac_venta,dbo.Fac_compra_lineas.Margen_fac_venta
						 ,V_Personas.Telefono_particular as Persona_telefono1,V_Personas.Email1 as Persona_email1
						 ,dbo.Fac_compra_lineas.Fk_persona_tercero,TERCERO.NombreCompleto Nombre_tercero
						 ,CASE WHEN dbo.Fac_compra_lineas.Precio_tarifa IS NOT NULL THEN dbo.Fac_compra_lineas.Precio_bruto-dbo.Fac_compra_lineas.Precio_tarifa ELSE NULL END as Dif_precio_tarifa
FROM            dbo.Fac_compra_lineas INNER JOIN
                         dbo.Fac_compra ON dbo.Fac_compra_lineas.Serie = dbo.Fac_compra.Serie AND dbo.Fac_compra_lineas.Numero = dbo.Fac_compra.Numero LEFT OUTER JOIN
                         dbo.V_ArticulosNombre ON dbo.Fac_compra_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosNombre AS ART2 ON dbo.Fac_compra_lineas.Fk_articulo2 = ART2.Codigo LEFT OUTER JOIN
						 V_PersonasSoloNombre TERCERO ON dbo.Fac_compra_lineas.Fk_persona_tercero=TERCERO.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Fac_compra.Codigo_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC ON dbo.Fac_compra_lineas.Fk_cuenta_contable = CC.Codigo 
						 LEFT OUTER JOIN dbo.V_DocLinAsociados MOV ON dbo.Fac_compra_lineas.Id_doc_asociado = MOV.Id
						 
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasCompraLineasRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasCompraLineasRepartos]
AS SELECT        NEWID() as Id_auto,dbo.FacturasCompraLineas.*,ISNULL(dbo.Fac_compra_repartos.Id,NEWID()) as Id_reparto,dbo.Fac_compra_repartos.fk_codigo_reparto AS Fk_codigo_reparto, dbo.Fac_compra_repartos.importe AS ImporteReparto, 
						 dbo.Asientos_codigos_reparto.descripcion AS Desc_reparto, dbo.Asientos_codigos_reparto.fk_tipo_reparto AS Fk_tipo_reparto, 
						 dbo.Asientos_tipo_reparto.descripcion AS Desc_tipo_reparto,dbo.Asientos_codigos_reparto.Codigo_datisa
						 ,Asientos_codigos_reparto.Fk_seccion,S.Descripcion as Desc_seccion
						 ,Asientos_codigos_reparto.Fk_campaña,Campañas.Descripcion as Desc_campaña
FROM            dbo.FacturasCompraLineas LEFT OUTER JOIN
						 dbo.Fac_compra_repartos ON dbo.FacturasCompraLineas.Id = dbo.Fac_compra_repartos.fk_linea LEFT OUTER JOIN
						 dbo.Asientos_codigos_reparto ON dbo.Fac_compra_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
						 dbo.Asientos_tipo_reparto ON dbo.Asientos_codigos_reparto.fk_tipo_reparto = dbo.Asientos_tipo_reparto.codigo
						 LEFT OUTER JOIN Secciones S ON Asientos_codigos_reparto.Fk_seccion=S.Codigo
						 LEFT OUTER JOIN Campañas ON Asientos_codigos_reparto.Fk_campaña= Campañas.Codigo
						 '
GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosMovimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LibrosMovimientos]
AS
SELECT        dbo.Libros_movimientos.Id, dbo.Libros_movimientos.Fk_centro, dbo.Libros_movimientos.Fk_movimiento, dbo.Libros_grupo_mov.Fk_tipo_movimiento, dbo.Libros_tipos_movimientos.Descripcion AS Desc_tipo_movimiento, 
                         dbo.Libros_movimientos.Fk_libro, dbo.Libros.Descripcion AS Desc_libro, dbo.Libros_movimientos.Orden, dbo.Libros_movimientos.Fecha, dbo.Libros_movimientos.Fk_clase_doc_acomp, 
                         dbo.Libros_clase_doc_acomp.Descripcion AS Desc_clase_doc_acomp, dbo.Libros_movimientos.Fecha_doc_acomp, dbo.Libros_movimientos.Numero_doc_acomp, dbo.Libros_movimientos.Numero_control_validacion, 
                         dbo.Libros_movimientos.Fk_persona, dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Libros_movimientos.Fk_municipio, dbo.Libros_movimientos.Municipio_descripcion, dbo.Libros_movimientos.Fk_denom_origen, 
                         dbo.Denom_origen.Descripcion AS Desc_denom_origen, dbo.Libros_movimientos.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.Libros_movimientos.Fk_variedad, 
                         dbo.Articulos.Descripcion AS Desc_variedad, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Grado_adquirido, dbo.Libros_movimientos.Grado_total, dbo.Libros_movimientos.Fk_zona_vinicola, 
                         dbo.Libros_movimientos.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Libros_movimientos.Acidez_total, dbo.Libros_movimientos.Hierro_calcio, dbo.Libros_movimientos.Dosis, 
                         dbo.Libros_movimientos.Cantidad_entrada, dbo.Libros_movimientos.Cantidad_mermas, dbo.Libros_movimientos.Cantidad_Posos, dbo.Libros_movimientos.Cantidad_final, dbo.Libros_movimientos.Otros, 
                         dbo.Libros_movimientos.Numero_registro, dbo.Libros_movimientos.Lote, dbo.Libros_movimientos.Capacidad_unitaria, dbo.Libros_movimientos.Numero_botellas, dbo.Libros_movimientos.Fecha_cualificacion, 
                         dbo.Libros_movimientos.Descualificado, dbo.Libros_movimientos.Numero_doc_certificacion, dbo.Libros_movimientos.Tipo_prod_azucar_resifual, dbo.Libros_movimientos.Fk_tipo_practica, 
                         dbo.Libros_tipos_practicas.Descripcion AS Desc_tipo_practica, dbo.Libros_movimientos.Fk_id_origen, dbo.Libros_movimientos.E_S, dbo.Libros_movimientos.Linea, dbo.Libros_movimientos.Fk_categoria, 
                         dbo.Libros_categorias.Descripcion AS Desc_categoria, dbo.Libros_movimientos.Fk_tipo_producto, dbo.Libros_tipo_producto.Descripcion AS Desc_tipo_producto, dbo.Libros_movimientos.Fk_manipulacion, 
                         dbo.Libros_movimientos.Fk_formato, dbo.Libros_formatos.Descripcion AS Desc_formato, dbo.Libros_grupo_mov.Fk_campaña, dbo.Libros_manipulaciones.Descripcion AS Desc_manipulaciones, 
                         dbo.Zonas_vinicolas.Descripcion AS Desc_zona_vinicola, dbo.Libros_movimientos.SerieTipoDoc_asociado, dbo.Libros_movimientos.Serie_doc_asociado, dbo.Libros_movimientos.Numero_doc_asociado, 
                         dbo.Libros_movimientos.Linea_doc_asociado,dbo.Libros_movimientos.Id_doc_asociado,
						 dbo.Libros_movimientos.Silicie_diferencia_menos, dbo.Libros_movimientos.Silicie_tipo_movimiento, dbo.Libros_movimientos.Silicie_tipo_operacion, 
                         dbo.Libros_movimientos.Silicie_tipo_justificante, dbo.Libros_movimientos.Silicie_tipo_asiento,
						 dbo.Articulos.Silicie_clave_producto,dbo.Articulos.Silicie_epigrafe_producto,dbo.Libros_movimientos.Silicie_tipo_envase,Silicie_regimen_fiscal,
						 dbo.Unidades.Codigo_silicie as Silicie_unidad_medida, dbo.Personas.Tipo_identificacion,dbo.Libros_movimientos.Fk_art_agrocoop,dbo.Libros_movimientos.Silicie_num_operacion
FROM            dbo.Libros_grupo_mov RIGHT OUTER JOIN
                         dbo.Denom_origen RIGHT OUTER JOIN
                         dbo.Libros_manipulaciones RIGHT OUTER JOIN
                         dbo.Libros_formatos RIGHT OUTER JOIN
                         dbo.Libros_movimientos ON dbo.Libros_formatos.Codigo = dbo.Libros_movimientos.Fk_formato ON dbo.Libros_manipulaciones.Codigo = dbo.Libros_movimientos.Fk_manipulacion LEFT OUTER JOIN
                         dbo.Libros_tipo_producto ON dbo.Libros_movimientos.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
                         dbo.Libros_categorias ON dbo.Libros_movimientos.Fk_categoria = dbo.Libros_categorias.Codigo LEFT OUTER JOIN
                         dbo.Libros_tipos_practicas ON dbo.Libros_movimientos.Fk_tipo_practica = dbo.Libros_tipos_practicas.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Libros_movimientos.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Zonas_vinicolas ON dbo.Libros_movimientos.Fk_zona_vinicola = dbo.Zonas_vinicolas.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Libros_movimientos.Fk_variedad = dbo.Articulos.Codigo ON dbo.Denom_origen.Codigo = dbo.Libros_movimientos.Fk_denom_origen LEFT OUTER JOIN
                         dbo.Libros_color ON dbo.Libros_movimientos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Libros_movimientos.Fk_persona = dbo.V_PersonasSoloNombre.Codigo ON dbo.Libros_grupo_mov.Movimiento = dbo.Libros_movimientos.Fk_movimiento LEFT OUTER JOIN
                         dbo.Libros ON dbo.Libros_movimientos.Fk_libro = dbo.Libros.Codigo LEFT OUTER JOIN
                         dbo.Libros_clase_doc_acomp ON dbo.Libros_movimientos.Fk_clase_doc_acomp = dbo.Libros_clase_doc_acomp.Codigo LEFT OUTER JOIN
                         dbo.Libros_tipos_movimientos ON dbo.Libros_grupo_mov.Fk_tipo_movimiento = dbo.Libros_tipos_movimientos.Codigo
						 LEFT OUTER JOIN Unidades ON dbo.Articulos.Fk_unidad_salida=Unidades.Codigo
						 LEFT OUTER JOIN dbo.Personas ON dbo.Libros_movimientos.Fk_persona = dbo.Personas.Codigo
							   '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraLineas]
AS
SELECT        CONVERT(date, dbo.Alb_compra.Fecha_hora, 103) AS Fecha,CONVERT(date, dbo.Alb_compra.Fecha_alb_proveedor, 103) AS Fecha_alb_proveedor,  dbo.Alb_compra.Codigo_persona, dbo.V_Personas.NombreCompleto, dbo.Alb_compra.Su_referencia, dbo.Alb_compra.Bascula,
                         CASE WHEN ISNULL(dbo.Alb_compra_lineas.Tipo_doc_asociado, '''') <> '''' THEN ISNULL(dbo.Alb_compra_lineas.Tipo_doc_asociado, '''') + '' - '' + ISNULL(dbo.alb_compra_lineas.Serie_doc_asociado, '''') 
                         + ''/'' + CAST(ISNULL(dbo.Alb_compra_lineas.Numero_doc_asociado, '''') AS nvarchar) ELSE '''' END AS Doc_Asociado, dbo.Alb_compra_lineas.Id, dbo.Alb_compra.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, 
                         dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, dbo.Alb_compra_lineas.Linea, dbo.Alb_compra_lineas.Fk_articulo, dbo.Alb_compra_lineas.Articulo_descripcion, dbo.Alb_compra_lineas.No_inventariable, 
                         dbo.Alb_compra_lineas.Fk_articulo_kit, dbo.Alb_compra_lineas.Linea_kit, dbo.Alb_compra_lineas.Precio_coste_articulo, dbo.Alb_compra_lineas.Precio_bruto, dbo.Alb_compra_lineas.Precio_neto, 
                         dbo.Alb_compra_lineas.Bultos, dbo.Alb_compra_lineas.Cantidad, dbo.Alb_compra_lineas.Importe_bruto, dbo.Alb_compra_lineas.Imp_dto_pp, dbo.Alb_compra_lineas.Imp_dto_esp, dbo.Alb_compra_lineas.Tipo_calculo_dto1, 
                         dbo.Alb_compra_lineas.Valor_dto1, dbo.Alb_compra_lineas.Importe_dto1, dbo.Alb_compra_lineas.Tipo_calculo_dto2, dbo.Alb_compra_lineas.Aplicacion_dto2, dbo.Alb_compra_lineas.Valor_dto2, 
                         dbo.Alb_compra_lineas.Importe_dto2, dbo.Alb_compra_lineas.Tipo_calculo_comisiones, dbo.Alb_compra_lineas.Valor_comision1, dbo.Alb_compra_lineas.Importe_comision1, dbo.Alb_compra_lineas.Valor_comision2, 
                         dbo.Alb_compra_lineas.Importe_comision2, dbo.Alb_compra_lineas.Importe_base, dbo.Alb_compra_lineas.Valor_iva, dbo.Alb_compra_lineas.Importe_iva, dbo.Alb_compra_lineas.Valor_recargo, 
                         dbo.Alb_compra_lineas.Importe_recargo, dbo.Alb_compra_lineas.Valor_irpf, dbo.Alb_compra_lineas.Importe_irpf, dbo.Alb_compra_lineas.Importe_otros_impuestos, dbo.Alb_compra_lineas.Importe_total_linea, 
                         dbo.Alb_compra_lineas.Centro_analitico1, dbo.Alb_compra_lineas.Centro_analitico2, dbo.Alb_compra_lineas.Codigo_iva, dbo.Alb_compra_lineas.Aplicacion_irpf, dbo.Alb_compra_lineas.Tipo_doc_asociado, 
                         dbo.Alb_compra_lineas.Serie_doc_asociado, dbo.Alb_compra_lineas.Numero_doc_asociado, dbo.Alb_compra_lineas.Id_doc_asociado, dbo.Alb_compra_lineas.Cantidad_anulada, dbo.Alb_compra_lineas.Anular_restante, 
                         dbo.Alb_compra_lineas.Observaciones, dbo.Alb_compra_lineas.Observaciones_internas, dbo.Alb_compra_lineas.Orden, dbo.Alb_compra_lineas.Fk_cuenta_contable, dbo.Alb_compra_lineas.Fk_do, dbo.Denom_origen.Descripcion AS Desc_do, 
                         dbo.Alb_compra_lineas.Num_eti_desde, dbo.Alb_compra_lineas.Num_eti_hasta, dbo.Alb_compra_lineas.Promocion, dbo.Alb_compra_lineas.PVP, dbo.Alb_compra_lineas.Importe_impuestos_incluidos, 
                         dbo.Alb_compra_lineas.Importe_neto, dbo.Alb_compra_lineas.Tarifa_iva_incluido, dbo.Alb_compra_lineas.Precio_tarifa, dbo.Alb_compra_lineas.Precio_con_dtos_linea, dbo.V_ArticulosNombre.Aux_codigo, 
                         dbo.V_DocLinAsociados.Su_referencia_cabecera AS Su_referencia_doc_asociado, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_Personas.Cliente_interno, 
                         dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, dbo.V_ArticulosNombre.Tipo_articulo_libros, dbo.V_ArticulosNombre.Tipo_formato, CAST(dbo.Alb_compra_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 
                         1) AS decimal(15, 3)) AS Cantidad_Kg, CAST(CONVERT(VARCHAR(30), dbo.Alb_compra.Fecha_hora, 112) + REPLACE(CONVERT(VARCHAR(30), dbo.Alb_compra.Fecha_hora, 114), '':'', '''') AS nvarchar) + CONVERT(nvarchar, 
                         dbo.Alb_compra.Numero) + CONVERT(nvarchar, dbo.Alb_compra_lineas.Linea) AS FechaMaxId, LIB.Fk_tipo_movimiento AS Libro_tipo_mov, LIB.Fk_movimiento AS Libro_num_mov, LIB.Linea AS Libro_linea_mov, 
                         LIB.Id AS Libro_Id, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo_original, dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Capacidad,dbo.Alb_compra_lineas.Fk_persona_tercero
						 ,dbo.Alb_compra_lineas.Cantidad2,dbo.Alb_compra_lineas.Precio2,dbo.Alb_compra_lineas.Fk_articulo2,ART2.Descripcion as Desc_articulo2
						 ,dbo.V_ArticulosNombre.Clasificacion_ECO,dbo.V_ArticulosNombre.Desc_clasificacion_Eco,dbo.Alb_compra_lineas.Precio_fac_venta,dbo.Alb_compra_lineas.Margen_fac_venta,dbo.Alb_compra.Asociacion_cosecha
						 ,CASE WHEN dbo.Alb_compra_lineas.Precio_tarifa IS NOT NULL THEN dbo.Alb_compra_lineas.Precio_bruto-dbo.Alb_compra_lineas.Precio_tarifa ELSE NULL END as Dif_precio_tarifa
						 , CASE WHEN ESTADOS.AsociadoAnuladoTotal=1 AND Pendiente=1 THEN 5
						 WHEN ESTADOS.Pendiente=1  THEN 0 
						 WHEN ESTADOS.AsociadoTotal=1 THEN 1 
						 WHEN ESTADOS.AnuladoTotal=1 THEN 3 
						 WHEN ESTADOS.AsociadoParcial=1 THEN 2
						 WHEN ESTADOS.AsociadoAnuladoTotal=1 THEN 4
						 ELSE 6 END AS Estado_asociado, TERCEROS.NombreCompleto AS NombreTercero
FROM            dbo.Alb_compra_lineas INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_compra_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS TERCEROS ON dbo.Alb_compra_lineas.Fk_persona_tercero = TERCEROS.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosNombre ART2 ON dbo.Alb_compra_lineas.Fk_articulo2 = ART2.Codigo LEFT OUTER JOIN											 
                         dbo.V_DocLinAsociados ON dbo.Alb_compra_lineas.Id_doc_asociado = dbo.V_DocLinAsociados.Id LEFT OUTER JOIN
                         dbo.Alb_compra ON dbo.Alb_compra.Serie = dbo.Alb_compra_lineas.Serie AND dbo.Alb_compra.Numero = dbo.Alb_compra_lineas.Numero LEFT OUTER JOIN
                         dbo.Centros ON dbo.Alb_compra.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Alb_compra.Codigo_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.Alb_compra_lineas.Fk_do = dbo.Denom_origen.Codigo LEFT OUTER JOIN
                         dbo.V_LibrosMovimientos AS LIB ON LIB.SerieTipoDoc_asociado = ''AC'' AND LIB.Serie_doc_asociado = dbo.Alb_compra_lineas.Serie AND LIB.Numero_doc_asociado = dbo.Alb_compra_lineas.Numero AND 
                         LIB.Linea_doc_asociado = dbo.Alb_compra_lineas.Linea
						 LEFT OUTER JOIN V_DocLinEstadosAlbCompra ESTADOS ON dbo.Alb_compra_lineas.Id=ESTADOS.Id
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesCompraLineasRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesCompraLineasRepartos]
AS SELECT        dbo.AlbaranesCompraLineas.*,dbo.Alb_compra_repartos.fk_codigo_reparto AS Fk_codigo_reparto, dbo.Alb_compra_repartos.importe AS ImporteReparto, 
						 dbo.Asientos_codigos_reparto.descripcion AS Desc_reparto, dbo.Asientos_codigos_reparto.fk_tipo_reparto AS Fk_tipo_reparto, 
						 dbo.Asientos_tipo_reparto.descripcion AS Desc_tipo_reparto, dbo.Asientos_codigos_reparto.Codigo_datisa
FROM            dbo.AlbaranesCompraLineas LEFT OUTER JOIN
						 dbo.Alb_compra_repartos ON dbo.AlbaranesCompraLineas.Id = dbo.Alb_compra_repartos.fk_linea LEFT OUTER JOIN
						 dbo.Asientos_codigos_reparto ON dbo.Alb_compra_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
						 dbo.Asientos_tipo_reparto ON dbo.Asientos_codigos_reparto.fk_tipo_reparto = dbo.Asientos_tipo_reparto.codigo'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedVentaEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedVentaEstados]
AS
SELECT E.*, P.Su_referencia,P.Fecha_hora,P.Codigo_cliente,P.Total_factura,N.NombreCompleto,P.Fk_centro,P.Fk_empresa FROM
(
SELECT        E.Serie, E.Numero
, CASE WHEN SUM(E.Pendiente) 	= COUNT(E.Linea) THEN 0 WHEN SUM(E.AsociadoTotal) = COUNT(E.Linea) 
THEN 1 WHEN SUM(E.AnuladoTotal) = COUNT(E.Linea) THEN 3 WHEN SUM(E.Pendiente) 
+ SUM(E.AsociadoTotal) + SUM(E.AsociadoParcial) = COUNT(E.Linea) 
THEN 2 WHEN SUM(E.AsociadoTotal) + SUM(E.AnuladoTotal) + SUM(E.AsociadoAnuladoTotal) 
= COUNT(E.Linea) THEN 4 WHEN (SUM(E.Pendiente) + SUM(E.AsociadoParcial)) > 0 AND 
(SUM(E.AnuladoTotal) + SUM(E.AsociadoAnuladoTotal)) > 0 THEN 5 ELSE 6 
END AS Estado_asociado, 
CASE WHEN (SUM(ISNULL(E.Cantidad_cargada, 0))) = 0 THEN 0 WHEN SUM(ISNULL(E.Cantidad_anulada, 0)) 
+ SUM(ISNULL(E.Cantidad_cargada, 0)) >= SUM(ISNULL(E.Cantidad, 0)) THEN 1 WHEN SUM(ISNULL(E.Cantidad_anulada, 0)) 
+ SUM(ISNULL(E.Cantidad_cargada, 0)) < SUM(ISNULL(E.Cantidad, 0)) THEN 2 ELSE NULL 
END AS Estado_carga
,MAX(E.Pendiente) as Pendiente
,MAX(E.AsociadoParcial) as AsociadoParcial
,SUM(E.Cantidad) as Cantidad
,SUM(E.Cantidad_anulada) as Cantidad_anulada
,SUM(E.Cantidad_asociada) as Cantidad_asociada
,SUM(E.Cantidad_pendiente) as Cantidad_pendiente
,SUM(E.Importe_total_pendiente) as Importe_total_pendiente
FROM
V_DocLinEstadosPedVenta E 
GROUP BY E.Serie, E.Numero
) E LEFT OUTER JOIN Ped_venta P ON E.Serie=P.Serie AND E.Numero=P.Numero
LEFT OUTER JOIN V_PersonasSoloNombre N ON P.Codigo_cliente=N.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedVentaDatosExpedicion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedVentaDatosExpedicion]
AS
SELECT        dbo.Ped_venta.Serie, dbo.Ped_venta.Numero, dbo.Ped_venta.Fecha_hora, dbo.V_PedVentaEstados.Estado_asociado, dbo.V_PedVentaEstados.Estado_carga, dbo.V_PedVentaEstados.Cantidad, 
                         dbo.V_PedVentaEstados.Cantidad_asociada, dbo.V_PedVentaEstados.Cantidad_anulada, dbo.V_PedVentaEstados.Cantidad_pendiente, dbo.Ped_venta.Codigo_cliente, 
                         dbo.V_PedVentaEstados.NombreCompleto AS Nombre_cliente, dbo.Ped_venta.Codigo_transportista, V_PersonasSoloNombre_1.NombreCompleto AS Nombre_transportista, dbo.Ped_venta.Matricula, 
                         dbo.Ped_venta.Forma_envio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Ped_venta.Persona_contacto, dbo.Ped_venta.Conductor_dni, dbo.Ped_venta.Conductor_nombre, dbo.Ped_venta.Recogida_cliente, 
                         dbo.Ped_venta.Numero_EMCS, dbo.Ped_venta.Fecha_produccion, dbo.Ped_venta.Total_bultos, dbo.Ped_venta.Total_pales, dbo.Ped_venta.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Ped_venta.Cae, 
                         dbo.Ped_venta.Fk_incoterm, dbo.Ped_venta.Desc_incoterm_extension, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.Ped_venta.Peso_bruto, dbo.Ped_venta.Peso_neto, dbo.Ped_venta.Fk_destinatario, 
                         dbo.V_PersonasSoloNombre.NombreCompleto AS Nombre_destinatario, dbo.Ped_venta.Cae_destinatario, dbo.Ped_venta.Fecha_prevista_entrega, dbo.Ped_venta.Fecha_recogida, dbo.Ped_venta.Fecha_limite_entrega, 
                         dbo.Ped_venta.Fecha_entrega_concreta, dbo.Ped_venta.Horario_entrega, dbo.Ped_venta.Dias_entrega, dbo.Ped_venta.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa, dbo.Ped_venta.Porte, 
                         dbo.Portes.Descripcion AS Desc_portes,dbo.Ped_venta.Representante1
FROM            dbo.Ped_venta LEFT OUTER JOIN
                         dbo.Formas_envio ON dbo.Ped_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Ped_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Incoterm ON dbo.Ped_venta.Fk_incoterm = dbo.Incoterm.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Incoterm.Codigo = dbo.V_PersonasSoloNombre.Codigo AND dbo.Ped_venta.Fk_destinatario = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Ped_venta.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Portes ON dbo.Ped_venta.Porte = dbo.Portes.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_1 ON dbo.Ped_venta.Codigo_transportista = V_PersonasSoloNombre_1.Codigo LEFT OUTER JOIN
                         dbo.V_PedVentaEstados ON dbo.Ped_venta.Serie = dbo.V_PedVentaEstados.Serie AND dbo.Ped_venta.Numero = dbo.V_PedVentaEstados.Numero
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PresVentaEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PresVentaEstados]
AS
SELECT     v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_cliente, v.Total_factura, v.Fk_centro,
(SELECT    CASE WHEN SUM(Pendiente)>0 THEN 1 ELSE 0 END as Expr1
FROM          dbo.V_DocLinEstadosPresVenta
WHERE      (Serie = v.Serie) AND (Numero = v.Numero))  as Pendiente,
(SELECT        CASE WHEN SUM(AsociadoParcial) > 0 THEN 1 ELSE 0 END AS Expr1
FROM            dbo.V_DocLinEstadosPresVenta AS V_DocLinEstadosPresVenta_4
WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS AsociadoParcial,
(SELECT     ISNULL(SUM(Cantidad), 0) AS Expr1
FROM          dbo.Pres_venta_lineas
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
(SELECT     ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
FROM          dbo.Pres_venta_lineas AS Pres_venta_lineas_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
(SELECT     ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
FROM          dbo.V_DocLinEstadosPresVenta
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
(SELECT     ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
FROM          dbo.V_DocLinEstadosPresVenta AS V_DocLinEstadosPresVenta_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente, dbo.V_Personas.NombreCompleto
FROM         dbo.Pres_venta AS v INNER JOIN
dbo.V_Personas ON v.Codigo_cliente = dbo.V_Personas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedCompraEstados]
AS
SELECT     v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_persona, v.Total_factura, v.Fk_centro,
(SELECT    CASE WHEN SUM(Pendiente)>0 THEN 1 ELSE 0 END as Expr1
FROM          dbo.V_DocLinEstadosPedCompra
WHERE      (Serie = v.Serie) AND (Numero = v.Numero))  as Pendiente,
(SELECT        CASE WHEN SUM(AsociadoParcial) > 0 THEN 1 ELSE 0 END AS Expr1
FROM            dbo.V_DocLinEstadosPedCompra AS V_DocLinEstadosPedCompra_4
WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS AsociadoParcial,
(SELECT     ISNULL(SUM(Cantidad), 0) AS Expr1
FROM          dbo.Ped_compra_lineas
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
(SELECT     ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
FROM          dbo.Ped_compra_lineas AS Ped_compra_lineas_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
(SELECT     ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
FROM          dbo.V_DocLinEstadosPedCompra
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
(SELECT     ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
FROM          dbo.V_DocLinEstadosPedCompra AS V_DocLinEstadosPedcompra_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente, dbo.V_Personas.NombreCompleto
FROM         dbo.Ped_compra AS v INNER JOIN
dbo.V_Personas ON v.Codigo_persona = dbo.V_Personas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_lote_temporal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_estoc_lote_temporal]
AS
SELECT        ISNULL(Articulo, 0) AS Articulo, ISNULL(Almacen, '''') AS Almacen, ISNULL(Lote, '''') AS Lote,MAX(Lote_etiqueta) as Lote_etiqueta, SUM(ISNULL(Cantidad, 0)) AS Cantidad, MIN(Fecha_hora) AS Fecha_hora
FROM            dbo.V_Movimientos_estoc_temporal
GROUP BY Articulo, Almacen, Lote
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_lote]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_estoc_lote]
AS
SELECT M.Articulo, M.Almacen, M.Lote, M.Fk_centro as Centro, M.Cantidad,L.Lote_etiqueta, L.Añada,L.Grado, L.Fecha_lote, L.Fecha_caducidad, L.Fecha_consumo_preferente,M.Fecha_hora,M.Fecha_ultimo_mov,M.Id,L.Km0,L.Id as Id_lote
FROM   (
					 SELECT CAST(Fk_centro AS nvarchar(20)) + ''-'' + Articulo + ''-'' + Almacen + ''-'' + Lote AS Id, Fk_centro, Articulo,Almacen, Lote, SUM(Cantidad) AS Cantidad,MIN(Fecha_hora) as Fecha_hora,MAX(Fecha_ultimo_mov) as Fecha_ultimo_mov
					FROM   (SELECT Fk_centro, Articulo,Almacen, Lote, SUM(CASE E_S_N WHEN ''E'' THEN ISNULL(+ Cantidad, 0) ELSE ISNULL(- Cantidad, 0) END) AS Cantidad,MIN(Fecha_hora) as Fecha_hora,MAX(Fecha_hora) as Fecha_ultimo_mov
					 FROM    dbo.Movimientos WITH (NOLOCK)
					 WHERE  (ISNULL(No_inventariable, 0) = 0) AND (Fecha_consolidacion_inventario IS NULL)
					 GROUP BY Fk_centro, Articulo,Almacen, Lote
					 UNION ALL
					 SELECT C.Fk_centro, L.Fk_articulo AS Articulo,LL.Almacen, LL.Lote, SUM(ISNULL(- LL.Cantidad, 0)) AS Cantidad,MIN(Fecha_hora) as Fecha_hora,MAX(Fecha_hora) as Fecha_ultimo_mov
					 FROM   dbo.Alb_venta_lineas AS L WITH (NOLOCK) INNER JOIN
								  dbo.Alb_venta_lineas_lotes AS LL WITH (NOLOCK) ON L.Id = LL.fk_Id_linea INNER JOIN
								  dbo.Alb_venta AS C ON C.Serie = L.Serie AND C.Numero = L.Numero
					 WHERE (ISNULL(L.No_inventariable, 0) = 0) AND (C.Fecha_consolidacion_inventario IS NULL)
					 GROUP BY C.Fk_centro, L.Fk_articulo,Almacen, LL.Lote
					 UNION ALL
					 SELECT C.Fk_centro, L.Articulo,L.Almacen, L.Lote, SUM(ISNULL(L.Cantidad_bruta, 0)) AS Cantidad,MIN(Fecha) as Fecha_hora,MAX(Fecha) as Fecha_ultimo_mov
					 FROM   dbo.Alb_liq_lin AS L WITH (NOLOCK) INNER JOIN
								  dbo.Alb_liq AS C WITH (NOLOCK) ON L.Serie = C.Serie AND L.Numero = C.Numero
					 WHERE (ISNULL(L.No_inventariable, 0) = 0) AND (C.Fecha_consolidacion_inventario IS NULL)
					 GROUP BY C.Fk_centro, L.Articulo,Almacen, L.Lote
					 UNION ALL
					 SELECT C.Fk_centro, L.Fk_articulo AS Articulo,LL.Almacen, LL.Lote, SUM(ISNULL(LL.Cantidad, 0)) AS Cantidad,MIN(Fecha_hora) as Fecha_hora,MAX(Fecha_hora) as Fecha_ultimo_mov
					 FROM   dbo.Alb_compra_lineas AS L WITH (NOLOCK) INNER JOIN
								  dbo.Alb_compra_lineas_lotes AS LL WITH (NOLOCK) ON L.Id = LL.fk_Id_linea INNER JOIN
								  dbo.Alb_compra AS C ON C.Serie = L.Serie AND C.Numero = L.Numero
					 WHERE (ISNULL(L.No_inventariable, 0) = 0) AND (C.Fecha_consolidacion_inventario IS NULL)
					 GROUP BY C.Fk_centro, L.Fk_articulo,Almacen, LL.Lote
					 UNION ALL
					 SELECT C.Fk_centro, L.Fk_articulo AS Articulo,L.Fk_almacen as Almacen, L.Lote, SUM(ISNULL(- L.Cantidad, 0)) AS Cantidad,MIN(Fecha_hora) as Fecha_hora,MAX(Fecha_hora) as Fecha_ultimo_mov
					 FROM   dbo.Facturas_simpl_cabecera AS C WITH (NOLOCK) INNER JOIN
								  dbo.Facturas_simpl_lineas AS L WITH (NOLOCK) ON C.Serie = L.Serie AND C.Numero = L.Numero
					 WHERE (ISNULL(L.No_inventariable, 0) = 0) AND (C.Fecha_consolidacion_inventario IS NULL)
					 GROUP BY C.Fk_centro, L.Fk_articulo,L.Fk_almacen, L.Lote
					 ) AS ESTOC
					GROUP BY Fk_centro, Articulo,Almacen, Lote
			 )  AS M LEFT OUTER JOIN
             dbo.Lotes AS L WITH (NOLOCK) ON M.Articulo = L.Fk_articulo AND M.Lote = L.Lote
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_articulo]'))
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW [dbo].[V_estoc_articulo]
AS
SELECT Fk_centro, Desc_centro, Articulo, ISNULL(Art.Descripcion,'''') AS Descripcion, Desc_tipo_articulo, Cantidad, C_reservada_venta, C_pedida_a_prov, C_reservada_produccion, C_prevista_prod, Estoc_minimo, Estoc_maximo, Cantidad_disponible, Cantidad_virtual_futura, 
CAST((CASE WHEN Cantidad_por_bulto <> 0 THEN Cantidad_disponible / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_disponible, 
CAST((CASE WHEN cantidad_por_bulto <> 0 THEN Cantidad / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_actual, 
CAST((CASE WHEN cantidad_por_bulto <> 0 THEN Cantidad_virtual_futura / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_futura
FROM 
	(SELECT A.Fk_centro, A.Articulo, A.Cantidad, F.Desc_tipo_articulo, ISNULL(B.C_reservada_venta, 0) AS C_reservada_venta, ISNULL(C.C_pedida_a_prov, 0) AS C_pedida_a_prov, 
		ISNULL(D.Cantidad_reservada_produccion, 0) AS C_reservada_produccion, ISNULL(E.Cantidad_prevista_prod, 0) AS C_prevista_prod, ISNULL(F.Estoc_minimo, 0) AS Estoc_minimo, 
		ISNULL(F.Estoc_maximo, 0) AS Estoc_maximo, A.Cantidad - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_disponible, 
		A.Cantidad + ISNULL(C.C_pedida_a_prov, 0) + ISNULL(E.Cantidad_prevista_prod, 0) - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_virtual_futura, G.Desc_centro, F.Cantidad_por_bulto
	FROM            
		(
			SELECT ISNULL(V_Movimientos_estoc.Fk_centro, N'''') AS Fk_centro, V_Movimientos_estoc.Articulo, SUM(ISNULL(V_Movimientos_estoc.Cantidad, 0)) AS Cantidad
			FROM V_Movimientos_estoc 
			WHERE (V_Movimientos_estoc.Fecha_consolidacion_inventario IS NULL)
			GROUP BY V_Movimientos_estoc.Fk_centro, V_Movimientos_estoc.Articulo
		) AS A 
	LEFT OUTER JOIN (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_reservada_venta	FROM V_DocLinEstadosPedVenta GROUP BY Fk_centro, Fk_articulo) AS B 
	ON A.Articulo = B.Fk_articulo 
	AND A.Fk_centro = B.Fk_centro 
	LEFT OUTER JOIN (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_pedida_a_prov FROM V_DocLinEstadosPedCompra GROUP BY Fk_centro, Fk_articulo) AS C 
	ON A.Articulo = C.Fk_articulo 
	AND A.Fk_centro = C.Fk_centro 
	LEFT OUTER JOIN  
		(SELECT OPRES.Fk_centro, OPRES.Fk_articulo_componente, OPRES.Cantidad_reservada_produccion - ISNULL(OPREAL.Cantidad_realizada, 0) AS Cantidad_reservada_produccion
			FROM
				(SELECT Op.Fk_centro, Op_Componentes.Fk_articulo_componente, SUM(ISNULL(Op_Componentes.Cantidad, 0)) AS Cantidad_reservada_produccion
					FROM Op 
					INNER JOIN Op_Componentes 
					ON Op.Id = Op_Componentes.Fk_op
					WHERE (Op.Estado = 0) OR (Op.Estado = 1) OR (Op.Estado = 2)
					GROUP BY Op.Fk_centro, Op_Componentes.Fk_articulo_componente) AS OPRES 
			LEFT OUTER JOIN
				(SELECT Op_2.Fk_centro, lr.Fk_articulo_componente, SUM(lr.Cantidad) AS Cantidad_realizada
					FROM Op AS Op_2 
					INNER JOIN Op_componentes_lotes_real AS lr 
					ON Op_2.Id = lr.Fk_op
					WHERE (Op_2.Estado = 2)
					GROUP BY Op_2.Fk_centro, lr.Fk_articulo_componente) AS OPREAL 
			ON OPRES.Fk_centro = OPREAL.Fk_centro 
			AND OPRES.Fk_articulo_componente = OPREAL.Fk_articulo_componente) AS D 
	ON A.Articulo = D.Fk_articulo_componente 
	AND A.Fk_centro = D.Fk_centro 
	LEFT OUTER JOIN 
		(SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_real, 0)) AS Cantidad_prevista_prod 
			FROM Op AS Op_1 WHERE (Estado <> 3) AND (Estado <> 4)
			GROUP BY Fk_centro, Fk_articulo) AS E 
			ON A.Articulo = E.Fk_articulo 
			AND A.Fk_centro = E.Fk_centro 
			LEFT OUTER JOIN 
				(SELECT A.Codigo, A.Estoc_minimo, A.Estoc_maximo, A.Cantidad_por_bulto, AT.Descripcion AS Desc_tipo_articulo
					FROM Articulos AS A 
					LEFT OUTER JOIN Articulos_tipos AS AT 
					ON A.Fk_articulo_tipo = AT.Codigo) AS F 
			ON A.Articulo = F.Codigo 
			LEFT OUTER JOIN (SELECT Codigo, Descripcion AS Desc_centro FROM Centros) AS G 
			ON A.Fk_centro = G.Codigo) AS cons
LEFT OUTER JOIN V_ArticulosSoloNombre AS Art
ON Art.Codigo=cons.Articulo
'
GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_Traspasos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_Traspasos]
AS
SELECT        dbo.Traspasos.Id,dbo.Traspasos.Id AS Id_cabecera, dbo.Traspasos.Fk_serie, dbo.Series_traspasos.Descripcion AS Desc_serie, dbo.Traspasos.Numero, dbo.Traspasos.Fecha, dbo.Traspasos.Fecha_salida, dbo.Traspasos.Fecha_llegada, 
dbo.Traspasos.Observaciones, dbo.Traspasos.Fk_centro_origen, dbo.Centros.Descripcion AS Desc_centro_origen, dbo.Traspasos.Fk_centro_destino, Centros_1.Descripcion AS Desc_centro_destino, 
dbo.Traspasos.Estado, dbo.Traspasos.Peso_bruto, dbo.Traspasos.Peso_neto,dbo.Traspasos.Usuario_creacion,dbo.Traspasos.Fecha_creacion,dbo.Traspasos.Usuario_envio,CONVERT(varchar, dbo.Traspasos.Fecha_interna_envio, 108) as Hora_envio
,dbo.Traspasos.Usuario_recepcion,CONVERT(varchar, dbo.Traspasos.Fecha_interna_recepcion, 108) as Hora_recepcion,dbo.Traspasos.Numero_EMCS,dbo.Traspasos.Fecha_presentacion_EMCS
,dbo.Traspasos.Fk_transportista,dbo.Traspasos.Matricula1,dbo.Traspasos.Matricula2,PER.NombreCompleto as Nombre_transportista,dbo.Traspasos.Fecha_interna_envio,dbo.Traspasos.Fecha_interna_recepcion
FROM dbo.Traspasos INNER JOIN
dbo.Centros ON dbo.Traspasos.Fk_centro_origen = dbo.Centros.Codigo INNER JOIN
dbo.Centros AS Centros_1 ON dbo.Traspasos.Fk_centro_destino = Centros_1.Codigo INNER JOIN
dbo.Series_traspasos ON dbo.Traspasos.Fk_serie = dbo.Series_traspasos.Serie LEFT OUTER JOIN
dbo.V_PersonasSoloNombre PER ON dbo.Traspasos.Fk_transportista=PER.codigo

'
GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_TraspasosLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_TraspasosLineas]
AS
SELECT        dbo.Traspasos_lineas.Id, dbo.Traspasos.Id AS Id_cabecera, dbo.Traspasos.Fk_serie, dbo.Traspasos.Numero, dbo.Traspasos_lineas.Linea, dbo.Traspasos_lineas.Fk_traspaso, dbo.Traspasos_lineas.Fk_articulo, 
                         dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Traspasos_lineas.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Traspasos_lineas.Fk_lote, dbo.Traspasos_lineas.Cantidad, 
                         dbo.Traspasos_lineas.Observaciones, dbo.Traspasos_lineas.Fk_movimiento, dbo.Traspasos_lineas.Fk_almacen_destino, Almacenes_1.Descripcion AS Desc_almacen_destino, dbo.Traspasos_lineas.Lote_etiqueta, 
                         dbo.Traspasos_lineas.Peso_bruto, dbo.Traspasos_lineas.Peso_neto, dbo.Traspasos.Fecha,Lotes.Grado,Lotes.Añada,Lotes.Fecha_caducidad,Lotes.Fecha_consumo_preferente
						 , dbo.Traspasos.Estado, dbo.Traspasos.Fk_centro_origen, dbo.Traspasos.Fk_centro_destino,dbo.Traspasos_lineas.Precio_origen,dbo.Traspasos_lineas.Precio_destino
						 ,dbo.Traspasos_lineas.Lote_destino,dbo.Traspasos_lineas.Lote_etiqueta_destino
FROM            dbo.Traspasos_lineas INNER JOIN
                         dbo.Traspasos ON dbo.Traspasos_lineas.Fk_traspaso = dbo.Traspasos.Id INNER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.Traspasos_lineas.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Traspasos_lineas.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Almacenes AS Almacenes_1 ON dbo.Traspasos_lineas.Fk_almacen_destino = Almacenes_1.Codigo
						 LEFT OUTER JOIN Lotes ON dbo.Traspasos_lineas.Fk_articulo=Lotes.Fk_articulo AND dbo.Traspasos_lineas.Fk_lote=lotes.Lote
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocsMinimoMaximoPorCentro]'))
DROP VIEW [dbo].V_EstocsMinimoMaximoPorCentro  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocsMinimoMaximoPorCentro]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstocsMinimoMaximoPorCentro] AS 
SELECT AUX.Fk_articulo,AUX.Fk_centro
,CASE WHEN AC.Estoc_minimo IS NOT NULL AND AC.Estoc_minimo>0 THEN AC.Estoc_minimo ELSE AUX.Estoc_minimo END AS Estoc_minimo 
,CASE WHEN AC.Estoc_maximo IS NOT NULL AND AC.Estoc_maximo>0 THEN AC.Estoc_maximo ELSE AUX.Estoc_maximo END AS Estoc_maximo
FROM 
(SELECT  A.Codigo as Fk_articulo,C.Codigo as Fk_centro,A.Estoc_minimo,A.Estoc_maximo FROM Articulos A CROSS JOIN Centros C) AUX 
LEFT OUTER JOIN Articulos_Centros AC ON AUX.Fk_articulo=AC.Fk_articulo AND AUX.Fk_centro=AC.Fk_centro
                         '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Necesidades]'))
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW [dbo].[V_Necesidades]
AS
SELECT Fk_centro, Desc_centro, Articulo, Descripcion, Fk_articulo_agrupacion, Desc_articulo_agrupacion, Fk_do, Desc_do, Provisionamiento_habitual, Cantidad


, Cantidad_alm_excluidos,Cantidad_alm_excluidos_futura


, C_reservada_venta,C_reservada_venta_excluidos
, C_pedida_a_prov, C_reservada_produccion, C_prevista_prod, Estoc_minimo, 
             Estoc_maximo, Cantidad_disponible, Cantidad_virtual_futura, CAST((CASE WHEN Cantidad_por_bulto <> 0 THEN Cantidad_disponible / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos
			 ,Cantidad_virtual_futura-Estoc_minimo as C_futura_menos_estoc_minimo
FROM   (SELECT Z.Fk_centro, Z.Articulo, Z.Descripcion, Z.Fk_articulo_agrupacion, Z.Desc_articulo_agrupacion, Z.Fk_do, Z.Desc_do, Z.Provisionamiento_habitual, ISNULL(A.Cantidad, 0) AS Cantidad

, ISNULL(A.Cantidad_alm_excluidos, 0) AS Cantidad_alm_excluidos
,ISNULL(A.Cantidad_alm_excluidos,0)- ISNULL(WW.C_reservada_venta_excluidos,0) AS Cantidad_alm_excluidos_futura

                           ,ISNULL(B.C_reservada_venta, 0) AS C_reservada_venta
						   
						   ,ISNULL(WW.C_reservada_venta_excluidos,0) as C_reservada_venta_excluidos

						   , ISNULL(C.C_pedida_a_prov, 0) + ISNULL(TR.C_traspasos_pendientes, 0) AS C_pedida_a_prov, ISNULL(D.Cantidad_reservada_produccion, 0) + ISNULL(TRORIGEN.C_traspasos_pendientes, 0) 
                           AS C_reservada_produccion, ISNULL(E.Cantidad_prevista_prod, 0) AS C_prevista_prod, ISNULL(F.Estoc_minimo, 0) AS Estoc_minimo, ISNULL(F.Estoc_maximo, 0) AS Estoc_maximo, ISNULL(A.Cantidad, 0) - ISNULL(D.Cantidad_reservada_produccion, 0) 
                           - ISNULL(B.C_reservada_venta, 0) AS Cantidad_disponible
						   
						   
						   , ISNULL(A.Cantidad, 0) + ISNULL(C.C_pedida_a_prov, 0) + ISNULL(TR.C_traspasos_pendientes, 0) + ISNULL(E.Cantidad_prevista_prod, 0) - ISNULL(D.Cantidad_reservada_produccion, 0) 
                           - ISNULL(B.C_reservada_venta, 0) - ISNULL(TRORIGEN.C_traspasos_pendientes, 0) AS Cantidad_virtual_futura
						   
						   
						   , G.Desc_centro, Z.Cantidad_por_bulto
             FROM    (SELECT dbo.V_ArticulosNombre.Codigo AS Articulo, dbo.V_ArticulosNombre.Descripcion, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Fk_do, dbo.V_ArticulosNombre.Desc_do, 
                                         dbo.V_ArticulosNombre.Provisionamiento_habitual, dbo.Centros.Codigo AS Fk_centro, dbo.V_ArticulosNombre.Cantidad_por_bulto
                           FROM    dbo.V_ArticulosNombre CROSS JOIN
                                         dbo.Centros) AS Z LEFT OUTER JOIN
                               (SELECT ISNULL(dbo.V_Movimientos_estoc.Fk_centro, N'''') AS Fk_centro, ISNULL(dbo.V_Movimientos_estoc.Articulo, N'''') AS Articulo, SUM(CASE WHEN ISNULL(ALM.No_incluir_calculos_planificacion, 0) = 0 THEN ISNULL(dbo.V_Movimientos_estoc.Cantidad, 0) ELSE 0 END) 
                                            AS Cantidad, SUM(CASE WHEN ISNULL(ALM.No_incluir_calculos_planificacion, 0) = 1 THEN ISNULL(dbo.V_Movimientos_estoc.Cantidad, 0) ELSE 0 END) AS Cantidad_alm_excluidos

                               FROM    dbo.V_Movimientos_estoc LEFT OUTER JOIN
                                            dbo.Almacenes AS ALM ON dbo.V_Movimientos_estoc.Almacen = ALM.Codigo
                               WHERE (dbo.V_Movimientos_estoc.Fecha_consolidacion_inventario IS NULL)
                               GROUP BY dbo.V_Movimientos_estoc.Fk_centro, dbo.V_Movimientos_estoc.Articulo) AS A ON A.Fk_centro = Z.Fk_centro AND A.Articulo = Z.Articulo LEFT OUTER JOIN
                               (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_reservada_venta
                               FROM    dbo.V_DocLinEstadosPedVenta EST LEFT OUTER JOIN Series_pedidos_venta SER ON EST.Serie=SER.Serie WHERE ISNULL(SER.Productos_excluidos_necesidades,0)=0
                               GROUP BY Fk_centro, Fk_articulo) AS B ON Z.Articulo = B.Fk_articulo AND Z.Fk_centro = B.Fk_centro
							   
							   LEFT OUTER JOIN
							   (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_reservada_venta_excluidos
                               FROM    dbo.V_DocLinEstadosPedVenta EST LEFT OUTER JOIN Series_pedidos_venta SER ON EST.Serie=SER.Serie WHERE ISNULL(SER.Productos_excluidos_necesidades,0)=1
                               GROUP BY Fk_centro, Fk_articulo) AS WW ON Z.Articulo = WW.Fk_articulo AND Z.Fk_centro = WW.Fk_centro

							   LEFT OUTER JOIN
                               (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_pedida_a_prov
                               FROM    dbo.V_DocLinEstadosPedCompra
                               GROUP BY Fk_centro, Fk_articulo) AS C ON Z.Articulo = C.Fk_articulo AND Z.Fk_centro = C.Fk_centro LEFT OUTER JOIN
                               (SELECT Fk_centro_destino AS Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0)) AS C_traspasos_pendientes
                               FROM    dbo.V_TraspasosLineas
                               WHERE (Estado = 0) OR
                                            (Estado = 1)
                               GROUP BY Fk_centro_destino, Fk_articulo) AS TR ON Z.Articulo = TR.Fk_articulo AND Z.Fk_centro = TR.Fk_centro LEFT OUTER JOIN
                               (SELECT Fk_centro_origen AS Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0)) AS C_traspasos_pendientes
                               FROM    dbo.V_TraspasosLineas
                               WHERE (Estado = 0) OR
                                            (Estado = 1)
                               GROUP BY Fk_centro_origen, Fk_articulo) AS TRORIGEN ON Z.Articulo = TRORIGEN.Fk_articulo AND Z.Fk_centro = TRORIGEN.Fk_centro LEFT OUTER JOIN
                               (SELECT OPRES.Fk_centro, OPRES.Fk_articulo_componente, OPRES.Cantidad_reservada_produccion - ISNULL(OPREAL.Cantidad_realizada, 0) AS Cantidad_reservada_produccion
                               FROM    (SELECT dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente, SUM(ISNULL(dbo.Op_Componentes.Cantidad, 0)) AS Cantidad_reservada_produccion
                                             FROM    dbo.Op INNER JOIN
                                                           dbo.Op_Componentes ON dbo.Op.Id = dbo.Op_Componentes.Fk_op
                                             WHERE  (dbo.Op.Estado = 0) OR
                                                           (dbo.Op.Estado = 1) OR
                                                           (dbo.Op.Estado = 2)
                                             GROUP BY dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente) AS OPRES LEFT OUTER JOIN
                                                (SELECT Op_2.Fk_centro, lr.Fk_articulo_componente, SUM(lr.Cantidad) AS Cantidad_realizada
                                                FROM    dbo.Op AS Op_2 INNER JOIN
                                                             dbo.Op_componentes_lotes_real AS lr ON Op_2.Id = lr.Fk_op
                                                WHERE (Op_2.Estado = 2)
                                                GROUP BY Op_2.Fk_centro, lr.Fk_articulo_componente) AS OPREAL ON OPRES.Fk_centro = OPREAL.Fk_centro AND OPRES.Fk_articulo_componente = OPREAL.Fk_articulo_componente) AS D ON Z.Articulo = D.Fk_articulo_componente AND 
                           Z.Fk_centro = D.Fk_centro LEFT OUTER JOIN
                               (SELECT Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_real, 0)) AS Cantidad_prevista_prod
                               FROM    dbo.Op AS Op_1
                               WHERE (Estado <> 3) AND (Estado <> 4)
                               GROUP BY Fk_centro, Fk_articulo) AS E ON Z.Articulo = E.Fk_articulo AND Z.Fk_centro = E.Fk_centro LEFT OUTER JOIN
                               (SELECT Fk_articulo, Fk_centro, Estoc_minimo, Estoc_maximo
                               FROM    dbo.V_EstocsMinimoMaximoPorCentro) AS F ON Z.Articulo = F.Fk_articulo AND Z.Fk_centro = F.Fk_centro LEFT OUTER JOIN
                               (SELECT Codigo, Descripcion AS Desc_centro
                               FROM    dbo.Centros AS Centros_1) AS G ON Z.Fk_centro = G.Codigo) AS derivedtbl_1
WHERE (NOT (Cantidad = 0)) OR
             (NOT (C_reservada_venta = 0)) OR
             (NOT (C_pedida_a_prov = 0)) OR
             (NOT (C_reservada_produccion = 0)) OR
             (NOT (C_prevista_prod = 0)) OR
             (NOT (Estoc_minimo = 0)) OR
             (NOT (Estoc_maximo = 0)) OR
             (NOT (Cantidad_disponible = 0)) OR
             (NOT (Cantidad_virtual_futura = 0))						 
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbVentaEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbVentaEstados]
AS
SELECT        v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_cliente, v.Total_factura, v.Fk_centro,
							 (SELECT        CASE WHEN SUM(Pendiente) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosAlbVenta
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Pendiente,
							 (SELECT        CASE WHEN SUM(AsociadoParcial) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosAlbVenta AS V_DocLinEstadosAlbVenta_4
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS AsociadoParcial,
							 (SELECT        ISNULL(SUM(Cantidad), 0) AS Expr1
							   FROM            dbo.Alb_venta_lineas
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
							 (SELECT        ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
							   FROM            dbo.Alb_venta_lineas AS Alb_venta_lineas_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
							 (SELECT        ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosAlbVenta AS V_DocLinEstadosAlbVenta_3
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
							 (SELECT        ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosAlbVenta AS V_DocLinEstadosAlbVenta_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente,
							 (SELECT        ISNULL(SUM(Importe_total_pendiente), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosAlbVenta AS V_DocLinEstadosAlbVenta_2
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Importe_total_pendiente, dbo.V_Personas.NombreCompleto
FROM            dbo.Alb_venta AS v INNER JOIN
						 dbo.V_Personas ON v.Codigo_cliente = dbo.V_Personas.Codigo
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbCompraEstados]
AS
SELECT     v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_persona, v.Total_factura, v.Fk_centro,
(SELECT    CASE WHEN SUM(Pendiente)>0 THEN 1 ELSE 0 END as Expr1
FROM          dbo.V_DocLinEstadosAlbCompra
WHERE      (Serie = v.Serie) AND (Numero = v.Numero))  as Pendiente,
(SELECT    CASE WHEN SUM(AsociadoParcial)>0 THEN 1 ELSE 0 END as Expr1
FROM          dbo.V_DocLinEstadosAlbCompra
WHERE      (Serie = v.Serie) AND (Numero = v.Numero))  as AsociadoParcial,
(SELECT     ISNULL(SUM(Cantidad), 0) AS Expr1
FROM          dbo.Alb_compra_lineas
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
(SELECT     ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
FROM          dbo.Alb_compra_lineas AS Alb_compra_lineas_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
(SELECT     ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
FROM          dbo.V_DocLinEstadosAlbCompra
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
(SELECT     ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
FROM          dbo.V_DocLinEstadosAlbCompra AS V_DocLinEstadosAlbcompra_1
WHERE      (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente, dbo.V_Personas.NombreCompleto
FROM         dbo.Alb_compra AS v INNER JOIN
dbo.V_Personas ON v.Codigo_persona = dbo.V_Personas.Codigo
'
GO



IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosVisitas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SegurosVisitas]
AS
SELECT        Year, Month, ISNULL(Visitas, 0) AS Visitas,
							 (SELECT        ISNULL(COUNT(*), 0) AS Expr1
							   FROM            dbo.Incidencia
							   WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1) AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) = total.Month)) 
						 AS VisitasPreviousYear,
							 (SELECT        ISNULL(COUNT(*), 0) AS Expr1
							   FROM            dbo.Incidencia AS Incidencia_2
							   WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1) AND (YEAR(Fecha_inicio) = total.Year) AND (MONTH(Fecha_inicio) <= total.Month) OR
														 (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1) AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) > total.Month)) 
						 AS VisitasTAM,
							 (SELECT        ISNULL(COUNT(DISTINCT Fk_cliente), 0) AS Expr1
							   FROM            dbo.Incidencia
							   WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1) AND (YEAR(Fecha_inicio) = total.Year) AND (MONTH(Fecha_inicio) <= total.Month)) 
						 AS VisitasNetas
FROM            (SELECT        t .Year1 AS Year, t .number AS Month, t2.Visitas
						  FROM            (SELECT        t_1.Year1, m.number
													FROM            (SELECT DISTINCT YEAR(Fecha_inicio) AS Year1
	FROM            dbo.Incidencia AS Incidencia_3
	WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1)
	union
	SELECT DISTINCT YEAR(Fecha_inicio)+1 AS Year1
	FROM            dbo.Incidencia AS Incidencia_3
	WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1)) AS t_1 LEFT OUTER JOIN
																				  (SELECT        TOP 12 ROW_NUMBER() OVER (ORDER BY object_id) AS number
													FROM            sys.columns) AS m ON m.number BETWEEN 1 AND 12) AS t LEFT OUTER JOIN
							 (SELECT        YEAR(Fecha_inicio) AS Year, MONTH(Fecha_inicio) AS Month, ISNULL(COUNT(*), 0) AS Visitas
							   FROM            dbo.Incidencia AS Incidencia_1
							   WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1)
							   GROUP BY YEAR(Fecha_inicio), MONTH(Fecha_inicio)) AS t2 ON t .Year1 = t2.Year AND t .number = t2.Month) AS total
'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosNuevos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SegurosNuevos]
AS
SELECT     Year, Month, ISNULL(Seguros, 0) AS Seguros, ISNULL(Importe, 0) AS Importe,
						  (SELECT     ISNULL(COUNT(*), 0) AS Expr1
							FROM          dbo.Incidencia
							WHERE      (Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) = total.Month)) AS SegurosPreviousYear,
						  (SELECT     ISNULL(SUM(Importe), 0) AS Expr1
							FROM          dbo.Incidencia AS Incidencia_3
							WHERE      (Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) = total.Month)) AS ImportePreviousYear,
						  (SELECT     ISNULL(SUM(Importe), 0) AS Expr1
							FROM          dbo.Incidencia AS Incidencia_2
							WHERE      (Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year) AND (MONTH(Fecha_inicio) <= total.Month) OR
												   (Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) > total.Month)) AS ImporteTAM,
						  (SELECT     ISNULL(COUNT(*), 0) AS Expr1
							FROM          dbo.Incidencia AS Incidencia_2
							WHERE      (Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year) AND (MONTH(Fecha_inicio) <= total.Month) OR
							(Fk_tipo_incidencia = ''7005'') AND (YEAR(Fecha_inicio) = total.Year - 1) AND (MONTH(Fecha_inicio) > total.Month)) AS SegurosTAM
							FROM         (SELECT     t .Year1 AS Year, t .number AS Month, t2.Seguros, t2.Importe
							FROM          (SELECT     t_1.Year1, m.number
							FROM          (SELECT DISTINCT YEAR(Fecha_inicio) AS Year1
							FROM          dbo.Incidencia AS Incidencia_4
							WHERE      (Fk_tipo_incidencia = ''7005'')) AS t_1 LEFT OUTER JOIN
							(SELECT     TOP 12 ROW_NUMBER() OVER (ORDER BY object_id) AS number
							FROM          sys.columns) AS m ON m.number BETWEEN 1 AND 13) AS t LEFT OUTER JOIN
							(SELECT     YEAR(Fecha_inicio) AS Year, MONTH(Fecha_inicio) AS Month, ISNULL(COUNT(*), 0) AS Seguros, ISNULL(SUM(Importe), 0) AS Importe
							FROM          dbo.Incidencia AS Incidencia_1
							WHERE      (Fk_tipo_incidencia = ''7005'')
							GROUP BY YEAR(Fecha_inicio), MONTH(Fecha_inicio)) AS t2 ON t .Year1 = t2.Year AND t .number = t2.Month) AS total
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosNoRenovados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SegurosNoRenovados]
							AS
							SELECT        Year, Month, ISNULL(SegurosNoRenovados, 0) AS SegurosNoRenovados,
							(SELECT        ISNULL(COUNT(*), 0) AS Expr1
							FROM            dbo.Incidencia
							WHERE        (Fk_tipo_incidencia =''7007'') AND (YEAR(Fecha_inicio) = total.Year - 1)
							AND (MONTH(Fecha_inicio) = total.Month)) AS SegurosNoRenovadosPreviousYear
							FROM            (SELECT        t .Year1 AS Year, t .number AS Month, ISNULL(t2.SegurosNoRenovados, 0) AS SegurosNoRenovados
							FROM            (SELECT        t_1.Year1, m.number
							FROM            (Select Distinct (years.Year1) from
							(
							SELECT DISTINCT YEAR(Fecha_inicio) AS Year1
							FROM            dbo.Incidencia AS Incidencia_3
							WHERE        (Fk_tipo_incidencia =''7007'')
							union
							SELECT DISTINCT YEAR(Fecha_inicio) +1 AS Year1
							FROM            dbo.Incidencia AS Incidencia_3
							WHERE        (Fk_tipo_incidencia =''7007'')) years)
							AS t_1 LEFT OUTER JOIN
							(SELECT        TOP 12 ROW_NUMBER() OVER (ORDER BY object_id) AS number
							FROM            sys.columns) AS m ON m.number BETWEEN 1 AND 12) AS t LEFT OUTER JOIN
							(SELECT        YEAR(Fecha_inicio) AS Year, MONTH(Fecha_inicio) AS Month, ISNULL(COUNT(*), 0) AS SegurosNoRenovados
							FROM            dbo.Incidencia AS Incidencia_1
							WHERE         (Fk_tipo_incidencia =''7007'')
							GROUP BY YEAR(Fecha_inicio), MONTH(Fecha_inicio)) AS t2 ON t .Year1 = t2.Year AND t .number = t2.Month) AS total
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosEstadistica]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SegurosEstadistica]
							AS
							SELECT DISTINCT
							TOP (100) PERCENT ISNULL(nuevo.Year, ISNULL(nr.Year, vis.Year)) AS Year, ISNULL(nuevo.Month, ISNULL(nr.Month, vis.Month)) AS Month, ISNULL(nuevo.Seguros,
							0) AS Seguros, ISNULL(nuevo.SegurosPreviousYear, 0) AS SegurosPreviousYear, ISNULL(nuevo.SegurosTAM, 0) AS SegurosTAM, ISNULL(nuevo.Importe, 0)
							AS Importe, ISNULL(nuevo.ImportePreviousYear, 0) AS ImportePreviousYear, ISNULL(nuevo.ImporteTAM, 0) AS ImporteTAM, ISNULL(nr.SegurosNoRenovados, 0)
							AS SegurosNoRenovados, ISNULL(nr.SegurosNoRenovadosPreviousYear, 0) AS SegurosNoRenovadosPreviousYear, ISNULL(vis.Visitas, 0) AS Visitas,
							ISNULL(vis.VisitasPreviousYear, 0) AS VisitasPreviousYear, ISNULL(vis.VisitasTAM, 0) AS VisitasTAM, ISNULL(vis.VisitasNetas, 0) AS VisitasNetas
							FROM            dbo.V_SegurosNuevos AS nuevo FULL OUTER JOIN
							dbo.V_SegurosNoRenovados AS nr ON nuevo.Year = nr.Year AND nuevo.Month = nr.Month FULL OUTER JOIN
							dbo.V_SegurosVisitas AS vis ON ISNULL(nuevo.Year, nr.Year) = vis.Year AND ISNULL(nuevo.Month, nr.Month) = vis.Month
							ORDER BY Year, Month
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TipoInformeParametroDescripciones]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TipoInformeParametroDescripciones]
							AS
							SELECT     dbo.Tipo_informe_parametros.Codigo, dbo.Tipo_informe_parametros.Fk_tipo_informe, dbo.Tipo_informe_parametros.Cada_x_dias,
							dbo.Tipo_informe_parametros.Fecha_ultima_impresion, dbo.Tipo_informe.Descripcion
							FROM         dbo.Tipo_informe INNER JOIN
							dbo.Tipo_informe_parametros ON dbo.Tipo_informe.Codigo = dbo.Tipo_informe_parametros.Fk_tipo_informe
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[A_AlbLiqLinLiquidados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [A_AlbLiqLinLiquidados]
							AS 
							SELECT        L.Albaran_serie, L.Albaran_numero, L.Albaran_linea, C.Fk_persona AS Liq_persona, C.Serie AS Liq_serie, C.Numero AS Liq_numero, CASE WHEN Clase_liquidacion = 1 THEN 1 ELSE 0 END AS Cuenta_liq_prov, 
							 CASE WHEN Clase_liquidacion = 2 THEN 1 ELSE 0 END AS Cuenta_liq_def, CASE WHEN Clase_liquidacion = 5 THEN 1 ELSE 0 END AS Cuenta_liq_trans, 
							 CASE WHEN Clase_liquidacion = 4 THEN 1 ELSE 0 END AS Cuenta_valor_campaña, CASE WHEN Clase_liquidacion = 2 THEN C.Fecha ELSE NULL END AS Liq_fecha_def, 
							 CASE WHEN Clase_liquidacion = 1 THEN C.Fecha ELSE NULL END AS Liq_fecha_prov
							FROM            dbo.Liquidaciones_lineas AS L INNER JOIN dbo.Liquidaciones AS C ON L.Fk_liquidacion = C.Id
							WHERE        (L.Albaran_serie IS NOT NULL) AND (L.Albaran_numero IS NOT NULL)
							 '
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[A_AlbLiqLinGrupLiquidados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [A_AlbLiqLinGrupLiquidados]
							AS 
							SELECT C.id as Id_alb_liq, PART.Serie,PART.Numero,PART.Linea, PART.Persona, ISNULL(SUM(Cuenta_liq_prov),0) AS Cuenta_liq_prov, ISNULL(SUM(Cuenta_liq_def),0) AS Cuenta_liq_def
							, ISNULL(SUM(Cuenta_valor_campaña),0) AS Cuenta_valor_Campaña,MAX(A.Liq_fecha_def) as Fecha_ultima_liq_def,MAX(A.Liq_fecha_prov) as Fecha_ultima_liq_prov
							FROM   Alb_liq_lin_part PART LEFT OUTER JOIN   A_AlbLiqLinLiquidados AS A ON PART.Serie=A.Albaran_serie AND PART.Numero=A.Albaran_numero AND PART.Linea=A.Albaran_linea AND PART.Persona=A.Liq_persona
							LEFT OUTER JOIN Alb_liq C ON PART.Serie=C.Serie AND PART.Numero=C.Numero
							GROUP BY  C.id ,PART.Serie,PART.Numero,PART.Linea, PART.Persona
							 '
							GO
						   IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[A_AlbLiqTransGrupLiquidados]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [A_AlbLiqTransGrupLiquidados]
							AS 
							SELECT        C.Id AS Id_alb_liq, C.Serie, C.Numero, ISNULL(SUM(A.Cuenta_liq_trans), 0) AS Cuenta_liq_trans
							FROM            dbo.Alb_liq AS C LEFT OUTER JOIN
							 dbo.A_AlbLiqLinLiquidados AS A ON C.Serie = A.Albaran_serie AND C.Numero = A.Albaran_numero
							GROUP BY C.Id, C.Serie, C.Numero
							 '
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLin]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLin]
							AS
							SELECT        dbo.Alb_liq_lin.Serie, dbo.Alb_liq_lin.Numero, dbo.Alb_liq_lin.Linea, dbo.Alb_liq_lin.Articulo, dbo.V_ArticulosNombre.Tipo_seccion, dbo.Alb_liq_lin.C_postal, dbo.Alb_liq_lin.Envase, dbo.Alb_liq_lin.Bultos, 
                         dbo.Alb_liq_lin.Cantidad_con_tara, dbo.Alb_liq_lin.Cantidad_tara, dbo.Alb_liq_lin.Cantidad_bruta, dbo.Alb_liq_lin.Cantidad_neta, dbo.Alb_liq_lin.Precio, dbo.Alb_liq_lin.Finca, dbo.Alb_liq_lin.Cantidad_finca_1, 
                         dbo.Fincas.Descripcion AS Desc_finca, dbo.Alb_liq_lin.Parcela, PARCELAS1.Descripcion AS Desc_parcela, dbo.Alb_liq_lin.Finca2, dbo.Alb_liq_lin.Cantidad_finca_2, FINCAS2.Descripcion AS Desc_finca2, 
                         dbo.Alb_liq_lin.Parcela2, PARCELAS2.Descripcion AS Desc_parcela2, dbo.Alb_liq_lin.Finca3, dbo.Alb_liq_lin.Cantidad_finca_3, FINCAS3.Descripcion AS Desc_finca3, dbo.Alb_liq_lin.Parcela3, 
                         PARCELAS3.Descripcion AS Desc_parcela3, dbo.Alb_liq_lin.Finca4, dbo.Alb_liq_lin.Cantidad_finca_4, FINCAS4.Descripcion AS Desc_finca4, dbo.Alb_liq_lin.Parcela4, PARCELAS4.Descripcion AS Desc_parcela4, 
                         dbo.Alb_liq_lin.Almacen, dbo.Alb_liq_lin.Lote,dbo.Alb_liq_lin.Km0, dbo.Alb_liq_lin.Observaciones, dbo.Alb_liq_lin.Destino_uva, dbo.Alb_liq_lin.Doc_guia, dbo.Alb_liq_lin.Doc_relacion, dbo.Alb_liq_lin.Do_1, dbo.Alb_liq_lin.Do_2, 
                         dbo.Alb_liq_lin.Do_3, dbo.Alb_liq_lin.Traspasado_rvc, dbo.Alb_liq_lin.No_traspasar_rvc,dbo.Alb_liq_lin.Fecha_ult_envio_rvc, dbo.Alb_liq_lin.Fk_codigo_reparto, dbo.Series_albaranes_liq.Descripcion AS Desc_serie, 
                         dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, Denom_origen_1.Descripcion AS Desc_Do1, Denom_origen_2.Descripcion AS Desc_Do2, Denom_origen_3.Descripcion AS Desc_Do3, dbo.Fincas.Paraje, 
                         dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Centros.Descripcion AS Desc_centro, dbo.Envases.Descripcion AS Desc_envase, 
                         dbo.Alb_liq_lin.Id, dbo.Alb_liq.Fk_centro, dbo.Alb_liq.Fecha, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.Alb_liq_lin.Rendimiento_anterior, dbo.Alb_liq_lin.Fecha_cambio_rendimiento, dbo.Alb_liq.Fk_seccion, 
                         dbo.Secciones.Descripcion AS Desc_seccion, dbo.Alb_liq.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, dbo.V_ArticulosNombre.Desc_unidad, dbo.V_ArticulosNombre.Desc_unidad_breve, 
                         dbo.V_ArticulosNombre.Fk_unidad_c_neta_corregida, dbo.V_ArticulosNombre.Desc_unidad_c_neta_corregida, dbo.Alb_liq_lin.Pc_correccion, dbo.Alb_liq_lin.Pc_correccion_importe, dbo.V_ArticulosNombre.Clasificacion_ECO, 
                         dbo.V_ArticulosNombre.Desc_clasificacion_Eco, dbo.Alb_liq.Tipo_liq, dbo.Fincas.Poligono AS Poligono1, FINCAS2.Poligono AS Poligono2, FINCAS3.Poligono AS Poligono3, FINCAS4.Poligono AS Poligono4
                         ,dbo.Fincas.Id_finca as Id_finca1,FINCAS2.Id_finca as Id_finca2,FINCAS3.Id_finca as Id_finca3,FINCAS4.Id_finca as Id_finca4,dbo.Fincas.Parcela AS Parcela_f1,FINCAS2.Parcela as Parcela_f2,FINCAS3.Parcela as Parcela_f3,FINCAS4.Parcela as Parcela_f4
						 , dbo.Fincas.Recinto as Recinto_f1,FINCAS2.Recinto as Recinto_f2,FINCAS3.Recinto as Recinto_f3,FINCAS4.Recinto as Recinto_f4
						 ,dbo.Fincas.Tipo_agricultura as Tipo_agricultura_f1,FINCAS2.Tipo_agricultura as Tipo_agricultura_f2,FINCAS3.Tipo_agricultura as Tipo_agricultura_f3,FINCAS4.Tipo_agricultura as Tipo_agricultura_f4
						 ,dbo.Fincas.Codigo_pv_rvc as Codigo_pv_rvc_f1,FINCAS2.Codigo_pv_rvc as Codigo_pv_rvc_f2,FINCAS3.Codigo_pv_rvc as Codigo_pv_rvc_f3,FINCAS4.Codigo_pv_rvc as Codigo_pv_rvc_f4
						 ,PARCELAS1.Codigo_pv_rvc as Codigo_pv_rvc_p1,PARCELAS2.Codigo_pv_rvc as Codigo_pv_rvc_p2,PARCELAS3.Codigo_pv_rvc as Codigo_pv_rvc_p3,PARCELAS4.Codigo_pv_rvc as Codigo_pv_rvc_p4
						 ,dbo.Alb_liq_lin.Cava_guarda_superior
						 ,PARCELAS1.Superficie AS Sup_parcela1,PARCELAS2.Superficie AS Sup_parcela2,PARCELAS3.Superficie AS Sup_parcela3,PARCELAS4.Superficie AS Sup_parcela4,dbo.Alb_liq_lin.Rvc_estado,Alb_liq_lin.Rvc_error
						 , dbo.Fincas.Codigo_postal AS CodigoPostalFinca1, dbo.Municipios.Descripcion AS DescMunicipioFinca1, dbo.Alb_liq_lin.Replica_cantidad_original, dbo.Alb_liq_lin.Rvc_numero_pesada, dbo.Alb_liq_lin.Desc_aux_finca,dbo.Alb_liq.Estado
						 ,dbo.Alb_liq_lin.Fk_articulo_repartir,ART_REPARTIR.Descripcion as Desc_articulo_repartir
						 ,dbo.Alb_liq_lin.Porcent_vitalis
FROM            dbo.Alb_liq INNER JOIN					
                         dbo.Alb_liq_lin ON dbo.Alb_liq.Serie = dbo.Alb_liq_lin.Serie AND dbo.Alb_liq.Numero = dbo.Alb_liq_lin.Numero INNER JOIN
                         dbo.Centros ON dbo.Alb_liq.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Alb_liq.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Alb_liq.Fk_campaña = dbo.Campañas.Codigo AND dbo.Alb_liq.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.Series_albaranes_liq ON dbo.Alb_liq_lin.Serie = dbo.Series_albaranes_liq.Serie LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Alb_liq_lin.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen AS Denom_origen_1 ON Denom_origen_1.Codigo = dbo.Alb_liq_lin.Do_1 LEFT OUTER JOIN
                         dbo.Denom_origen AS Denom_origen_2 ON dbo.Alb_liq_lin.Do_2 = Denom_origen_2.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen AS Denom_origen_3 ON dbo.Alb_liq_lin.Do_3 = Denom_origen_3.Codigo LEFT OUTER JOIN
                         dbo.Envases ON dbo.Alb_liq_lin.Envase = dbo.Envases.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_liq_lin.Articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.Fincas ON dbo.Alb_liq_lin.Finca = dbo.Fincas.Codigo LEFT OUTER JOIN
                         dbo.Fincas AS FINCAS2 ON dbo.Alb_liq_lin.Finca2 = FINCAS2.Codigo LEFT OUTER JOIN
                         dbo.Fincas AS FINCAS3 ON dbo.Alb_liq_lin.Finca3 = FINCAS3.Codigo LEFT OUTER JOIN
                         dbo.Fincas AS FINCAS4 ON dbo.Alb_liq_lin.Finca4 = FINCAS4.Codigo LEFT OUTER JOIN
                         dbo.Fincas_parcelas AS PARCELAS1 ON dbo.Alb_liq_lin.Parcela = PARCELAS1.Id_parcela AND dbo.Alb_liq_lin.Finca = PARCELAS1.Id_finca LEFT OUTER JOIN
                         dbo.Fincas_parcelas AS PARCELAS2 ON dbo.Alb_liq_lin.Parcela2 = PARCELAS2.Id_parcela AND dbo.Alb_liq_lin.Finca2 = PARCELAS2.Id_finca LEFT OUTER JOIN
                         dbo.Fincas_parcelas AS PARCELAS3 ON dbo.Alb_liq_lin.Parcela3 = PARCELAS3.Id_parcela AND dbo.Alb_liq_lin.Finca3 = PARCELAS3.Id_finca LEFT OUTER JOIN
                         dbo.Fincas_parcelas AS PARCELAS4 ON dbo.Alb_liq_lin.Parcela4 = PARCELAS4.Id_parcela AND dbo.Alb_liq_lin.Finca4 = PARCELAS4.Id_finca LEFT OUTER JOIN
						 dbo.Articulos ART_REPARTIR ON ART_REPARTIR.Codigo=dbo.Alb_liq_lin.Fk_articulo_repartir LEFT OUTER JOIN
						
						 (SELECT        L.Albaran_serie, L.Albaran_numero, L.Albaran_linea, COUNT(L.Fk_liquidacion) AS Cuenta_liq_def
						FROM            dbo.Liquidaciones_lineas AS L INNER JOIN
												 dbo.Liquidaciones AS C ON L.Fk_liquidacion = C.Id
						WHERE        (C.Clase_liquidacion = 2)
						GROUP BY L.Albaran_serie, L.Albaran_numero, L.Albaran_linea) AlbLinLiqDef ON AlbLinLiqDef.Albaran_serie = dbo.Alb_liq_lin.Serie AND AlbLinLiqDef.Albaran_numero = dbo.Alb_liq_lin.Numero AND 
                        AlbLinLiqDef.Albaran_linea = dbo.Alb_liq_lin.Linea
						LEFT OUTER JOIN dbo.Municipios ON dbo.Fincas.Codigo_municipio = dbo.Municipios.Id
							'
							GO
			IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqEstadosLiquidaciones]'))
			DROP VIEW [dbo].V_AlbLiqEstadosLiquidaciones 
			GO
			IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqEstadosLiquidaciones]'))
			EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqEstadosLiquidaciones] AS 
SELECT AUX.Serie, AUX.Numero, C.Id As Id, C.Estado, C.Fk_campaña, C.Fk_seccion, C.Tipo_liq
	, CASE 
		WHEN ISNULL(EST.NumLineasLiqProv, 0) = 0 THEN 0 
		WHEN ISNULL(EST.NumLineasLiqProv, 0) < AUX.NumLineasPart THEN 1 
		WHEN ISNULL(EST.NumLineasLiqProv, 0) >= AUX.NumLineasPart THEN 2 
		ELSE 99 
	END AS Estado_liq_prov
	, CASE 
		WHEN ISNULL(EST.NumLineasLiqDef, 0) = 0 THEN 0 
		WHEN ISNULL(EST.NumLineasLiqDef, 0) < AUX.NumLineasPart THEN 1 
		WHEN ISNULL(EST.NumLineasLiqDef, 0) >= AUX.NumLineasPart THEN 2 
		ELSE 99 
	END AS Estado_liq_def
	, CASE 
		WHEN ISNULL(EST.NumLineasValorCampaña, 0) = 0 THEN 0 
		WHEN ISNULL(EST.NumLineasValorCampaña, 0) < AUX.NumLineasPart THEN 1 
		WHEN ISNULL(EST.NumLineasValorCampaña, 0) >= AUX.NumLineasPart THEN 2 
		ELSE 99 
	END AS Estado_valor_campaña
	, CASE 
		WHEN ISNULL(TRANS.Cuenta_liq_trans, 0) = 0 THEN 0 
		WHEN ISNULL(TRANS.Cuenta_liq_trans, 0) > 0 THEN 2 
		ELSE 99 END AS Estado_liq_trans
FROM 
	(
		SELECT L.Serie, L.Numero, COUNT(L.Linea) AS NumLineasPart
		FROM Alb_liq_lin AS L 
		LEFT OUTER JOIN Alb_liq_lin_part AS P 
		ON L.Serie = P.Serie 
		AND L.Numero = P.Numero 
		AND L.Linea = P.Linea
        GROUP BY L.Serie, L.Numero
	) AS AUX 
LEFT OUTER JOIN
	(
		SELECT Serie, Numero, SUM(CASE WHEN Cuenta_liq_prov > 0 THEN 1 ELSE 0 END) AS NumLineasLiqProv, SUM(CASE WHEN Cuenta_liq_def > 0 THEN 1 ELSE 0 END) AS NumLineasLiqDef, SUM(CASE WHEN Cuenta_valor_Campaña > 0 THEN 1 ELSE 0 END) AS NumLineasValorCampaña
		FROM A_AlbLiqLinGrupLiquidados AS A
		GROUP BY Serie, Numero
	) AS EST 
	ON AUX.Serie = EST.Serie 
	AND AUX.Numero = EST.Numero 
LEFT OUTER JOIN A_AlbLiqTransGrupLiquidados AS TRANS 
ON AUX.Serie = TRANS.Serie 
AND AUX.Numero = TRANS.Numero
LEFT OUTER JOIN Alb_liq C
ON AUX.Serie = C.Serie
AND AUX.Numero = C.Numero'
			GO
							 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiq]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiq]
							AS
							SELECT  dbo.Alb_liq.Serie,SER.Descripcion as Desc_serie, dbo.Alb_liq.Numero, dbo.Alb_liq.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion,dbo.Secciones.Tipo_seccion, dbo.Alb_liq.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, dbo.Alb_liq.Fecha, 
						 dbo.Alb_liq.Fecha_operacion, dbo.Alb_liq.Hora_entrada, dbo.Alb_liq.Hora_salida, dbo.Alb_liq.Portador_codigo, dbo.Alb_liq.Portador_nif, dbo.Alb_liq.Portador_nombre, dbo.Alb_liq.Fk_transportista, 
						 dbo.V_Personas.NombreCompleto AS Nombre_transportista, dbo.Alb_liq.Matricula, dbo.Alb_liq.Matricula2, dbo.Alb_liq.Serie_doc_origen, dbo.Alb_liq.Doc_origen,dbo.Alb_liq.Socio_doc_origen, dbo.Alb_liq.Observaciones, dbo.Alb_liq.Tipo_liq, 
						 dbo.Tipos_liquidacion.Descripcion AS Tipo_liq_desc, dbo.Alb_liq.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Alb_liq.Tarjeta_rvc_no_socios, dbo.Alb_liq.Municipio_no_socios, 
						 dbo.Municipios.Descripcion AS Desc_municipio_no_socios, dbo.Alb_liq.Id, dbo.Alb_liq.Socio2_codigo, dbo.Alb_liq.Safata, dbo.Alb_liq.Vector, dbo.Alb_liq.Su_referencia, dbo.Alb_liq.Fecha_validacion, 
						 dbo.Alb_liq.Usuario_validacion, LIN.Cantidad_bruta, LIN.Cantidad_neta, dbo.Alb_liq.Fecha_cerrado, 
                         dbo.Alb_liq.Visto_web, dbo.Alb_liq.Tipo, dbo.Alb_liq.Fk_serie_padre, dbo.Alb_liq.Fk_numero_padre, dbo.Alb_liq.Fecha_validacion_cooperativa,dbo.Alb_liq.Fk_empresa,dbo.Empresas.Descripcion as Desc_empresa
						 ,dbo.Alb_liq.Bascula,dbo.Alb_liq.Id_filtro,dbo.Alb_liq.Volante_eco,dbo.Alb_liq.Volante_otros
						 ,EST.Estado_liq_prov,EST.Estado_liq_def,EST.Estado_valor_campaña,Estado_liq_trans, dbo.Alb_liq.No_requiere_rend, CAST(ISNULL(dbo.Alb_liq.Contrato,0)as bit) AS Contrato, dbo.Alb_liq.Fk_corredor, VPC.NombreCompleto AS NombreCorredor, 
                         VPC.Fis_via_publica AS Corredor_Fis_via_publica, VPC.Fis_direccion AS Corredor_Fis_direccion, 
                         VPC.Fis_numero AS Corredor_Fis_numero, VPC.Fis_piso AS Corredor_Fis_piso, VPC.Fis_puerta AS Corredor_Fis_puerta, VPC.Fis_municipio AS Corredor_Fis_municipio, VPC.Fis_codigo_postal AS Corredor_Fis_codigo_postal, 
                         VPC.Fis_provincia AS Corredor_Fis_provincia, VPC.Identificacion AS Corredor_Identificacion,
						 VPC.Fk_forma_pago_proveedor AS Corredor_Fk_forma_pago_proveedor, FPC.Descripcion AS Corredor_DescFormaPagoProveedor, dbo.Centros.Via_publica AS Centro_dir_via_publica, dbo.Centros.Direccion AS Centro_dir_direccion, dbo.Centros.Numero AS Centro_dir_numero, dbo.Centros.Puerta AS Centro_dir_puerta, dbo.Centros.Piso AS Centro_dir_piso, dbo.Centros.Municipio AS Centro_dir_municipio, 
						dbo.Centros.Codigo_postal AS Centro_dir_codigo_postal, dbo.Centros.Provincia AS Centro_dir_provincia,Estado_desglose_albaranes,CAST(ISNULL(VPC.Socio,0) as bit) as Corredor_socio,dbo.Alb_liq.Replica_serie,Alb_liq.Replica_numero
						,Alb_liq.Asociacion_compra,dbo.Alb_liq.Venta_deposito_almacen,dbo.Alb_liq.Venta_deposito_fecha_almacen,dbo.Alb_liq.Venta_deposito_numero,dbo.Alb_liq.Venta_deposito_numero_albaran
						,dbo.Alb_liq.Venta_deposito_numero_linea_albaran,dbo.Alb_liq.Venta_deposito_seccion_albaran,dbo.Alb_liq.Venta_deposito_serie,dbo.Alb_liq.Numero_EMCS
						,dbo.Alb_liq.Id_gen_otra_empresa,dbo.Alb_liq.Precio_transportista,dbo.Alb_liq.Estado,dbo.Alb_liq.Usuario_anulacion,dbo.Alb_liq.Fecha_anulacion
						, dbo.Alb_liq.Usuario_creacion, dbo.Alb_liq.Fecha_creacion, dbo.Alb_liq.Usuario_modificacion, dbo.Alb_liq.Fecha_modificacion,dbo.Alb_liq.Repartido, LIN.HayECO
FROM            dbo.Alb_liq
						LEFT OUTER JOIN
						dbo.Series_albaranes_liq SER ON dbo.Alb_liq.Serie= SER.Serie LEFT OUTER JOIN
						 dbo.Tipos_liquidacion ON dbo.Alb_liq.Tipo_liq = dbo.Tipos_liquidacion.Codigo LEFT OUTER JOIN
						 dbo.Secciones ON dbo.Alb_liq.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
						 dbo.Campañas ON dbo.Alb_liq.Fk_campaña = dbo.Campañas.Codigo AND dbo.Alb_liq.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Alb_liq.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Municipios ON dbo.Alb_liq.Municipio_no_socios = dbo.Municipios.Id LEFT OUTER JOIN
						 dbo.Empresas ON dbo.Alb_liq.Fk_empresa=Empresas.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Alb_liq.Fk_transportista = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS VPC ON dbo.Alb_liq.Fk_corredor = VPC.Codigo LEFT OUTER JOIN
                         dbo.Formas_de_pago AS FPC ON FPC.Codigo = VPC.Fk_forma_pago_proveedor LEFT OUTER JOIN
							 (SELECT        Serie, Numero, SUM(ISNULL(Cantidad_bruta, 0)) AS Cantidad_bruta, SUM(ISNULL(Cantidad_neta, 0)) AS Cantidad_neta, COUNT(Linea) AS Cuenta_lineas		
							 , CASE WHEN MAX(CASE WHEN Clasificacion_ECO IN (2, 4) THEN 1 ELSE 0 END) = 1 THEN ''true'' ELSE ''false'' END AS HayECO
							   FROM            dbo.V_AlbLiqLin
							   GROUP BY Serie, Numero) AS LIN ON dbo.Alb_liq.Serie = LIN.Serie AND dbo.Alb_liq.Numero = LIN.Numero
						LEFT OUTER JOIN V_AlbLiqEstadosLiquidaciones EST ON Alb_liq.Serie=EST.Serie AND Alb_liq.Numero=EST.numero
							'

							GO
							
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinPart]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinPart]
							AS
							SELECT        dbo.Alb_liq_lin_part.Serie, dbo.Alb_liq_lin_part.Numero, dbo.Alb_liq_lin_part.Linea, dbo.Alb_liq_lin_part.Persona, dbo.Alb_liq_lin_part.Particion, dbo.Alb_liq_lin_part.Cantidad_bruta, dbo.Alb_liq_lin_part.Cantidad_neta, 
                         dbo.Alb_liq_lin_part.Liquidat, dbo.Alb_liq_lin_part.Cantidad_bruta_corregida, dbo.Alb_liq_lin_part.Cantidad_neta_corregida, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Tipo_identificacion, 
                         dbo.V_Personas.Identificacion, dbo.Alb_liq_lin.Articulo, CAST(dbo.Articulos.Tipo_articulo_libros AS tinyint) AS Tipo_articulo_libros, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Alb_liq.Fecha, dbo.Alb_liq_lin.Almacen, 
                         dbo.V_Personas.Idioma_reportes, CASE WHEN P.Rend_aceite_0_kilos_1_litros = 1 THEN dbo.Alb_liq_lin_part.Cantidad_neta_corregida * 0.916 ELSE dbo.Alb_liq_lin_part.Cantidad_neta END AS C_neta_corregida_kilos, 
                         CASE WHEN P.Rend_aceite_0_kilos_1_litros = 0 THEN dbo.Alb_liq_lin_part.Cantidad_neta_corregida / 0.916 ELSE dbo.Alb_liq_lin_part.Cantidad_neta END AS C_neta_corregida_litros
						 ,dbo.V_Personas.Op_agricultura_eco, dbo.Alb_liq_lin.Anexo_x_listado,dbo.Alb_liq_lin.Cava_guarda_superior, dbo.V_Personas.Codigo_autorizacion_eco
						 ,V_Personas.Telefono_particular as Telefono1,v_personas.Email1
						FROM            dbo.Alb_liq_lin_part INNER JOIN
                         dbo.Alb_liq_lin ON dbo.Alb_liq_lin_part.Serie = dbo.Alb_liq_lin.Serie AND dbo.Alb_liq_lin_part.Numero = dbo.Alb_liq_lin.Numero AND dbo.Alb_liq_lin_part.Linea = dbo.Alb_liq_lin.Linea INNER JOIN
                         dbo.Alb_liq ON dbo.Alb_liq.Serie = dbo.Alb_liq_lin.Serie AND dbo.Alb_liq.Numero = dbo.Alb_liq_lin.Numero LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Alb_liq_lin.Articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Alb_liq_lin_part.Persona = dbo.V_Personas.Codigo CROSS JOIN
                             (SELECT        TOP (1) Rend_aceite_0_kilos_1_litros
                               FROM            dbo.Parametros) AS P
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParam]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinParam]
							AS
							SELECT        L.Serie, L.Numero, L.Linea, L.Parametro, L.Valor, P.Descripcion AS Desc_parametro, P.Tipo_valor, 
                         U.Descripcion AS Desc_unidad, U.Descripcion_breve AS Desc_unidad_breve, CASE WHEN ISNULL(Tipo_valor, 0) = 0 THEN Valor WHEN ISNULL(Tipo_valor, 0) = 1 AND (ISNULL(valor, '''') = '''') 
                          THEN CAST(NULL as nvarchar)  WHEN ISNULL(Tipo_valor, 0) = 1 THEN CONVERT(nvarchar, ROUND(CONVERT(float, REPLACE(Valor, '','', ''.'')), 2)) + '' %'' WHEN ISNULL(Tipo_valor, 0) = 2 THEN Valor WHEN ISNULL(Tipo_valor, 0) 
                         = 3 THEN CASE WHEN ISNULL(Valor, '''') = ''1'' THEN ''SI'' ELSE ''NO'' END WHEN ISNULL(Tipo_valor, 0) = 4 THEN OPCION.Descripcion END AS ValorFormateado
						 ,P.No_imp_variedad_pri,S.Variedad_pri
						 , ISNULL(PAS.No_imprimir_en_albaran,0) AS No_imprimir_en_albaran
FROM            dbo.Alb_liq_lin_param L LEFT OUTER JOIN
				dbo.Alb_liq C ON L.Serie=C.Serie AND L.Numero=C.Numero LEFT OUTER JOIN
				dbo.Series_albaranes_liq S ON C.Serie=S.Serie LEFT OUTER JOIN
                         dbo.Parametros_analisis AS P ON L.Parametro = P.Codigo LEFT OUTER JOIN
                         dbo.Unidades AS U ON P.Fk_unidad = U.Codigo LEFT OUTER JOIN
                         dbo.Param_analisis_opciones AS OPCION ON P.Codigo = OPCION.Fk_parametro AND L.Valor = OPCION.Codigo_opcion
						LEFT OUTER JOIN dbo.Secciones AS SS
						ON C.Fk_seccion = SS.Codigo
						LEFT OUTER JOIN dbo.Param_analisis_seccion AS PAS
						ON PAS.Codigo_parametro = P.Codigo AND PAS.Tipo_seccion = SS.Tipo_seccion
							'
							GO

							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamFijosPorColumnas]'))
							DROP VIEW [dbo].V_AlbLiqLinParamFijosPorColumnas
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamFijosPorColumnas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinParamFijosPorColumnas]
							AS
							SELECT Serie,Numero,Linea, CAST(REPLACE([1000],'','',''.'') as decimal(10,2)) AS ''Rendimiento''
							, CAST(REPLACE([1001],'','',''.'') as decimal(14,2)) AS ''Humedad''
							, CAST(REPLACE([1002],'','',''.'') as decimal(14,2)) AS ''Podrido''
							,CAST(REPLACE([1003],'','',''.'') as decimal(14,2)) AS ''Gluconico''
							,CAST(REPLACE([1004],'','',''.'') as decimal(14,2)) AS ''Acidez''
							,CAST(REPLACE([1005],'','',''.'') as decimal(14,2)) AS ''Densidad''
							,CAST(REPLACE([1006],'','',''.'') as decimal(14,2)) AS ''Grado''
							,CAST(REPLACE([1007],'','',''.'') as decimal(14,2)) AS ''Acidez_volatil''
							,CAST(REPLACE([1008],'','',''.'') as decimal(14,2)) AS ''Actidez_total_sulfurica''
							,CAST(REPLACE([1009],'','',''.'') as decimal(14,2)) AS ''Cascara''
							,CAST(REPLACE([1010],'','',''.'') as decimal(14,2)) AS ''Materia_grasa''
							,CAST(REPLACE([1011],'','',''.'') as decimal(14,2)) AS ''Mal_peladas''
							,CAST(REPLACE([1012],'','',''.'') as decimal(14,2)) AS ''Fallado''
							,CAST(REPLACE([1013],'','',''.'') as decimal(14,2)) AS ''Mezcla''
							,[1014] AS ''Capas_color''
							,CAST(REPLACE([1015],'','',''.'') as decimal(14,2)) AS ''Tamaño_grande''
							,CAST(REPLACE([1016],'','',''.'') as decimal(14,2)) AS ''Tamaño_pequeño''
							,CAST(REPLACE([1017],'','',''.'') as bit) AS ''Sucio''
							,[1018] AS ''Control_visual_calidad''
							,CAST(REPLACE([1019],'','',''.'') as decimal(14,2)) AS ''Materias_extrañas'' 
							,CAST(REPLACE([1020],'','',''.'') as decimal(14,2)) AS ''Rendimiento_industrial'' 
							,CAST(REPLACE([1021],'','',''.'') as decimal(14,2)) AS ''Estimacion_rendimiento_industrial'' 
							,CAST(REPLACE([1022],'','',''.'') as decimal(14,2)) AS ''Aceite_sobre_seco'' 
							, CAST(REPLACE([1023], '','', ''.'') AS decimal(14,2)) AS ''Cascall'', CAST(REPLACE([1024], '','', ''.'') AS decimal(14,2)) AS ''Cascallot'', CAST(REPLACE([1025], '','', ''.'') AS decimal(14,2)) AS ''Piedras'', CAST(REPLACE([1026], '','', ''.'') AS decimal(14,2)) AS ''Otros'', CAST(REPLACE([1027], '','', ''.'') AS decimal(14,2)) AS ''Apolilladas'', CAST(REPLACE([1028], '','', ''.'') AS decimal(14,2)) AS ''Engomadas'', CAST(REPLACE([1029], '','', ''.'') AS decimal(14,2)) AS ''Rancias'', CAST(REPLACE([1030], '','', ''.'') AS decimal(14,2)) AS ''Florecidas'', CAST(REPLACE([1031], '','', ''.'') AS decimal(14,2)) AS ''Gemelas'', CAST(REPLACE([1033], '','', ''.'') AS decimal(14,2)) AS ''Rascadas'', CAST(REPLACE([1034], '','', ''.'') AS decimal(14,2)) AS ''Viejas'', CAST(REPLACE([1035], '','', ''.'') AS decimal(14,2)) AS ''Peladas'', CAST(REPLACE([1036], '','', ''.'') AS decimal(14,2)) AS ''Migradas'', CAST(REPLACE([1037], '','', ''.'') AS decimal(14,2)) AS ''Aflatoxinas'', CAST(REPLACE([1038], '','', ''.'') AS decimal(14,2)) AS ''Trozo'', CAST(REPLACE([1039], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_bajo_9'', CAST(REPLACE([1040], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_9_10'', CAST(REPLACE([1041], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_10_11'', CAST(REPLACE([1042], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_11_12'', CAST(REPLACE([1043], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_12_13'', CAST(REPLACE([1044], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_13_14'', CAST(REPLACE([1045], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_14_15'', CAST(REPLACE([1046], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_15_16'', CAST(REPLACE([1047], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_16_17'', CAST(REPLACE([1048], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_17_18''
							, CAST(REPLACE([1049], '','', ''.'') AS decimal(14,2)) AS ''Tamaño_sobre_18''                            
							, CAST(REPLACE([1050], '','', ''.'') AS bit) AS ''Maquina'' 
							, CAST(REPLACE([1051], '','', ''.'') AS decimal(14,2)) AS ''Rancimat'' 
							, CAST(REPLACE([1052], '','', ''.'') AS decimal(14,2)) AS ''Piezas_onza'' 
							, CAST(REPLACE([1053], '','', ''.'') AS decimal(12,4)) AS ''Grado_laboratorio'' 
							, CAST(REPLACE([1054], '','', ''.'') AS decimal(12,4)) AS ''ATS_laboratorio'' 
							, CAST(REPLACE([1055], '','', ''.'') AS decimal(14,2)) AS ''Gluconico_laboratorio'' 
							, CAST(REPLACE([1056], '','', ''.'') AS bit) AS ''Gastos_almacenaje'' 
							, CAST(REPLACE([1057], '','', ''.'') AS bit) AS ''Bonificacion_transporte'' 
							, CAST(REPLACE([1058], '','', ''.'') AS decimal(14,2)) AS ''Dias_diferencia_deposito'' 
							FROM (
							SELECT Serie,Numero,Linea,parametro,valor
							FROM V_AlbLiqLinParam
							) pvt
							PIVOT (MIN(valor) FOR parametro IN (
							[1000]
							,[1001]
							,[1002],[1003],[1004],[1005],[1006]
							,[1007],[1008],[1009],[1010],[1011]
							,[1012],[1013],[1014],[1015],[1016]
							,[1017],[1018],[1019],[1020],[1021], [1022], [1023], [1024], [1025], [1026], [1027], [1028], [1029], [1030], [1031], [1033], [1034], [1035], [1036], [1037], [1038], [1039]
							, [1040], [1041], [1042], [1043], [1044], [1045], [1046], [1047], [1048], [1049], [1050], [1051], [1052], [1053], [1054], [1055], [1056],[1057],[1058]
							) ) AS Child'
							GO

							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamSafataFijosPorColumnas]'))
							DROP VIEW [dbo].V_AlbLiqLinParamSafataFijosPorColumnas
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamSafataFijosPorColumnas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinParamSafataFijosPorColumnas]
							AS
							SELECT Serie,Numero,Linea, CAST(REPLACE([1000],'','',''.'') as decimal(10,2)) AS ''Rendimiento''
							, CAST(REPLACE([1001],'','',''.'') as decimal(10,2)) AS ''Humedad''
							,CAST(REPLACE([1020],'','',''.'') as decimal(10,2)) AS ''Rendimiento_industrial'' 
							,CAST(REPLACE([1022],'','',''.'') as decimal(10,2)) AS ''Aceite_sobre_seco'' 
							FROM (
							SELECT Serie,Numero,Linea,parametro,valor
							FROM V_AlbLiqLinParam
							) pvt
							PIVOT (MIN(valor) FOR parametro IN ([1000],[1001],[1020],[1022]) ) AS Child'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VisitasClienteYear]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VisitasClienteYear]
							AS
							SELECT        Fk_cliente, YEAR(Fecha_inicio) AS Year, ISNULL(COUNT(*), 0) AS Visitas
							FROM            dbo.Incidencia AS Incidencia_1
							WHERE        (Fk_tipo_incidencia BETWEEN ''7000'' AND ''7099'') AND (Visita = 1)
							GROUP BY Fk_cliente, YEAR(Fecha_inicio)
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VisitasClienteThreeYears]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VisitasClienteThreeYears]
							AS
							SELECT        nombres.Codigo, nombres.Fis_municipio as Municipio, nombres.NombreCompleto, ISNULL(visitas.Visitas, 0) AS Visitas, ISNULL(visitas.VisitasPreviousYear, 0)
							AS VisitasPreviousYear, ISNULL(visitas.VisitasTwoYearsAgo, 0) AS VisitasTwoYearsAgo
							FROM            (SELECT        Fk_cliente,
							(SELECT        ISNULL(Visitas, 0) AS Expr1
							FROM            dbo.V_VisitasClienteYear
							WHERE        (Year = YEAR(GETDATE())) AND (Fk_cliente = clientes.Fk_cliente)) AS Visitas,
							(SELECT        ISNULL(Visitas, 0) AS Expr1
							FROM            dbo.V_VisitasClienteYear AS V_VisitasClienteYear_3
							WHERE        (Year = YEAR(GETDATE()) - 1) AND (Fk_cliente = clientes.Fk_cliente)) AS VisitasPreviousYear,
							(SELECT        ISNULL(Visitas, 0) AS Expr1
							FROM            dbo.V_VisitasClienteYear AS V_VisitasClienteYear_2
							WHERE        (Year = YEAR(GETDATE()) - 2) AND (Fk_cliente = clientes.Fk_cliente)) AS VisitasTwoYearsAgo
							FROM            (SELECT DISTINCT Fk_cliente
							FROM            dbo.V_VisitasClienteYear AS V_VisitasClienteYear_1
							WHERE        (Year >= YEAR(GETDATE()) - 2)) AS clientes) AS visitas INNER JOIN
							dbo.V_Personas AS nombres ON visitas.Fk_cliente = nombres.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SegurosClientes]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SegurosClientes]
							AS
							SELECT        tableAltas.Fk_cliente, personas.NombreCompleto, tableAltas.Altas, tableAltas.AltasImportes
							FROM            (SELECT        ISNULL(TableNuevos.Fk_cliente, TableNoRenovados.Fk_cliente) AS Fk_cliente, ISNULL(TableNuevos.Nuevos, 0)
							- ISNULL(TableNoRenovados.NoRenovados, 0) AS Altas, ISNULL(TableNuevos.NuevosImportes, 0) - ISNULL(TableNoRenovados.NoRenovadosImportes,
							0) AS AltasImportes
							FROM            (SELECT        Fk_cliente, ISNULL(COUNT(*), 0) AS Nuevos, ISNULL(SUM(Importe), 0) AS NuevosImportes
							FROM            dbo.Incidencia
							WHERE        (Fk_tipo_incidencia = ''7005'')
							GROUP BY Fk_cliente) AS TableNuevos FULL OUTER JOIN
							(SELECT        Fk_cliente, ISNULL(COUNT(*), 0) AS NoRenovados, ISNULL(SUM(Importe), 0) AS NoRenovadosImportes
							FROM            dbo.Incidencia AS Incidencia_1
							WHERE        (Fk_tipo_incidencia = ''7007'')
							GROUP BY Fk_cliente) AS TableNoRenovados ON TableNuevos.Fk_cliente = TableNoRenovados.Fk_cliente) AS tableAltas INNER JOIN
							dbo.V_Personas AS personas ON tableAltas.Fk_cliente = personas.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Dtos_articulo_persona]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Dtos_articulo_persona]
							AS
							SELECT        dbo.Dtos_articulo_persona.Id, dbo.Dtos_articulo_persona.Fk_persona, dbo.Dtos_articulo_persona.Fk_articulo, dbo.V_Personas.NombreCompleto as Desc_persona,
							dbo.Articulos.Descripcion as Desc_articulo, dbo.Dtos_articulo_persona.Fecha_desde, dbo.Dtos_articulo_persona.Fecha_hasta, dbo.Dtos_articulo_persona.Tipo_dto1,
							dbo.Dtos_articulo_persona.Valor_dto1, dbo.Dtos_articulo_persona.Aplicacion_dto2,
							dbo.Dtos_articulo_persona.Tipo_dto2, dbo.Dtos_articulo_persona.Valor_dto2, dbo.Dtos_articulo_persona.Descripcion_dto1, dbo.Dtos_articulo_persona.Descripcion_dto2
							FROM            dbo.Dtos_articulo_persona LEFT OUTER JOIN
							dbo.Articulos ON dbo.Dtos_articulo_persona.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
							dbo.V_Personas ON dbo.Dtos_articulo_persona.Fk_persona = dbo.V_Personas.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Denom_origen_sellos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Denom_origen_sellos]
							AS
							SELECT        dbo.Denom_origen_sellos.Id, dbo.Denom_origen_sellos.Fk_Do, dbo.Denom_origen.Descripcion as Desc_do, dbo.Denom_origen_sellos.Serie,
							dbo.Denom_origen_sellos.Descripcion, dbo.Denom_origen_sellos.Fecha, dbo.Denom_origen_sellos.Numero_desde,
							dbo.Denom_origen_sellos.Numero_hasta, dbo.Denom_origen_sellos.Ultimo_numero, dbo.Denom_origen.Tipo_seccion,
							dbo.Tipos_secciones.Descripcion AS Desc_tipo_seccion, dbo.Denom_origen.Codigo_rvc
							FROM            dbo.Denom_origen_sellos INNER JOIN
							dbo.Denom_origen ON dbo.Denom_origen_sellos.Fk_Do = dbo.Denom_origen.Codigo INNER JOIN
							dbo.Tipos_secciones ON dbo.Denom_origen.Tipo_seccion = dbo.Tipos_secciones.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Tarifas_articulo_persona]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Tarifas_articulo_persona]
							AS
							SELECT        dbo.Tarifas_articulo_persona.Id, dbo.Tarifas_articulo_persona.Fk_articulo, dbo.Tarifas_articulo_persona.Fk_persona,
							dbo.Tarifas_articulo_persona.Fk_representante, dbo.Tarifas_articulo_persona.Fecha_desde, dbo.Tarifas_articulo_persona.Fecha_hasta,
							dbo.Tarifas_articulo_persona.Precio, dbo.Tarifas_articulo_persona.Tipo_tarifa, CASE Tarifas_articulo_persona.Tipo_tarifa WHEN 0 THEN ''VENTA'' WHEN 1 THEN ''COMPRA'' END as DescTipo_tarifa,
							dbo.Articulos.Descripcion AS Desc_articulo, dbo.V_Personas.NombreCompleto AS Nombre_persona,Tarifas_articulo_persona.Fecha_actualizacion,Tarifas_articulo_persona.Usuario,Tarifas_articulo_persona.Num_actualizacion,
							V_Personas_1.NombreCompleto AS Nombre_representante, dbo.Tarifas_articulo_persona.Gtin, dbo.Tarifas_articulo_persona.Tarifa_iva_incluido, dbo.Tarifas_articulo_persona.Q_mayor_igual
							FROM            dbo.Tarifas_articulo_persona LEFT OUTER JOIN
							dbo.V_Personas ON dbo.Tarifas_articulo_persona.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
							dbo.V_Personas AS V_Personas_1 ON dbo.Tarifas_articulo_persona.Fk_representante = V_Personas_1.Codigo LEFT OUTER JOIN
							dbo.Articulos ON dbo.Tarifas_articulo_persona.Fk_articulo = dbo.Articulos.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ped_venta_previo]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Ped_venta_previo]
							AS
							SELECT        dbo.Empresas.Descripcion as Empresa_desc, dbo.Ped_venta_previo.Id,dbo.Ped_venta_previo.Fk_empresa,dbo.Ped_venta_previo.Dias_entrega,dbo.Ped_venta_previo.Pedido_cliente,dbo.Ped_venta_previo.Fecha_entrega, dbo.Ped_venta_previo.Fecha_hora,CONVERT(date, 
                         dbo.Ped_venta_previo.Fecha_hora, 103) AS Fecha, CONVERT(varchar, dbo.Ped_venta_previo.Fecha_hora, 108) AS Hora, 
						  dbo.Ped_venta_previo.Fk_persona, dbo.V_Personas.NombreCompleto AS Nombre_persona, dbo.Ped_venta_previo.Fk_representante, 
                         REP.NombreCompleto AS Nombre_representante, dbo.Ped_venta_previo.Observaciones, dbo.Ped_venta_previo.Estado, 
						 CASE WHEN dbo.Ped_venta_previo.Estado=0 THEN ''PENDIENTE'' WHEN dbo.Ped_venta_previo.Estado=1 THEN ''PROCESADO'' ELSE ''DESCONOCIDO'' END AS Estado_descripcion
,dbo.Ped_venta_previo.Tramitar,CASE WHEN dbo.Ped_venta.Numero IS NOT NULL THEN dbo.Ped_venta.Serie + ''-'' + CAST(dbo.Ped_venta.Numero as nvarchar(50)) ELSE '''' END AS PedidoVentaAsociado, dbo.Ped_venta_previo.Tipo_documento, 
                         dbo.Ped_venta_previo.Envase, dbo.Ped_venta_previo.Etiqueta, dbo.Ped_venta_previo.Capsula, dbo.Ped_venta_previo.Tap, dbo.Ped_venta_previo.Anyada, dbo.Ped_venta_previo.Lote
						 ,dbo.Ped_venta_previo.Doc_destino
						 , dbo.Ped_venta_previo.Codigo_direccion_envio, DIR.Descripcion AS Dir_envio_desc, 
                         DIR.Via_publica AS Dir_envio_via, DIR.Direccion AS Direccion_envio, DIR.Numero AS Dir_envio_numero, 
                         DIR.Piso AS Dir_envio_piso, DIR.Puerta AS Dir_envio_puerta, DIR.Codigo_postal AS Dir_envio_cp, 
                         DIR.Municipio AS Dir_envio_municipio, DIR.Comarca AS Dir_envio_comarca, DIR.Provincia AS Dir_envio_provincia, 
                         DIR.Pais AS Dir_envio_pais, DIR.Telefono AS Dir_envio_telefono, DIR.Warehouse AS Dir_envio_warehouse, 
                         DIR.Rc AS Dir_envio_rc, DIR.Cae AS Dir_envio_cae, DIR.email AS Dir_envio_mail
FROM            dbo.Ped_venta_previo LEFT OUTER JOIN
                         dbo.V_Personas AS REP ON dbo.Ped_venta_previo.Fk_representante = REP.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Ped_venta_previo.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN 
						 Ped_venta ON dbo.Ped_venta_previo.Id=Ped_venta.Fk_prepedido LEFT OUTER JOIN 
						 dbo.Empresas ON dbo.Ped_venta_previo.Fk_empresa = dbo.Empresas.Codigo
						 LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones AS DIR 
						 ON dbo.Ped_venta_previo.Codigo_direccion_envio = DIR.Codigo'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ped_venta_previo_lineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Ped_venta_previo_lineas]
							AS
							SELECT        dbo.Ped_venta_previo_lineas.Id,dbo.Ped_venta_previo_lineas.Dto_adic1,dbo.Ped_venta_previo_lineas.Dto_adic2,dbo.Ped_venta_previo_lineas.Promocion, dbo.Ped_venta_previo_lineas.Fk_ped_venta_previo, dbo.Ped_venta_previo_lineas.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Ped_venta_previo_lineas.Cantidad, 
                         dbo.Ped_venta_previo_lineas.Dto, dbo.Ped_venta_previo_lineas.Observaciones, dbo.Ped_venta_previo_lineas.Precio, dbo.Ped_venta_previo_lineas.Cajas, dbo.Ped_venta_previo_lineas.Num_linea
						 , dbo.Ped_venta_previo_lineas.Fk_unidad, dbo.Unidades.Descripcion_breve AS DescUnidadPedido
FROM            dbo.Ped_venta_previo_lineas INNER JOIN
                         dbo.Articulos ON dbo.Ped_venta_previo_lineas.Fk_articulo = dbo.Articulos.Codigo
						 LEFT OUTER JOIN
                         dbo.Unidades ON dbo.Ped_venta_previo_lineas.Fk_unidad = dbo.Unidades.Codigo'

							GO
							
							
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Campañas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Campañas] AS
						   SELECT        Codigo, Descripcion, Fecha_inicio, Fecha_fin, Fecha_cierre, Fk_codigo_reparto, CASE WHEN Fecha_cierre IS NOT NULL THEN 1 ELSE 0 END AS Cerrada
FROM            dbo.Campañas'
							GO
							

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PresupuestosVentaIvas]
							AS
							SELECT     dbo.Pres_venta_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Pres_venta_ivas INNER JOIN
							dbo.Ivas ON dbo.Pres_venta_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PresupuestosVentaImpuestos]
							AS
							SELECT     dbo.Pres_venta_impuestos.Id, dbo.Pres_venta_impuestos.Serie, dbo.Pres_venta_impuestos.Numero, dbo.Pres_venta_impuestos.Codigo_impuesto,
							dbo.Pres_venta_impuestos.Importe_base, dbo.Pres_venta_impuestos.Valor_iva, dbo.Pres_venta_impuestos.Importe_iva,
							dbo.Pres_venta_impuestos.Valor_recargo, dbo.Pres_venta_impuestos.Importe_recargo, dbo.Pres_venta_impuestos.Valor_irpf,
							dbo.Pres_venta_impuestos.Importe_irpf, dbo.Pres_venta_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
							FROM         dbo.Pres_venta_impuestos INNER JOIN
							dbo.Impuestos ON dbo.Pres_venta_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
							dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVenta]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PresupuestosVenta]
							AS
							SELECT        ISNULL(dbo.Pres_venta.Serie, '''') AS Serie,dbo.Pres_venta.Fk_empresa, ISNULL(dbo.Pres_venta.Numero, 0) AS Numero, dbo.Pres_venta.Fecha_hora, CONVERT(date, dbo.Pres_venta.Fecha_hora, 103) AS Fecha, CONVERT(varchar, 
						 dbo.Pres_venta.Fecha_hora, 108) AS Hora, dbo.Pres_venta.Fecha_hora_real, dbo.Pres_venta.Codigo_cliente, dbo.Pres_venta.Divisa, dbo.Pres_venta.Forma_pago, dbo.Pres_venta.Forma_envio, 
						 dbo.Pres_venta.Dia_pago1, dbo.Pres_venta.Dia_pago2, dbo.Pres_venta.Dia_pago3, dbo.Pres_venta.Codigo_direccion_fiscal, dbo.Pres_venta.Codigo_direccion_envio, dbo.Pres_venta.Codigo_transportista, 
						 dbo.Pres_venta.Representante1, dbo.Pres_venta.Representante2, dbo.Pres_venta.Dto_pp, dbo.Pres_venta.Dto_esp, dbo.Pres_venta.Su_referencia, dbo.Pres_venta.Notas_internas, 
						 dbo.Pres_venta.Notas_factura, dbo.Pres_venta.Bloqueo, V_PersonasDirecciones_1.Descripcion AS Dir_fiscal_desc, V_PersonasDirecciones_1.Via_publica AS Dir_fiscal_via, 
						 V_PersonasDirecciones_1.Direccion AS Dir_fiscal_direccion, V_PersonasDirecciones_1.Numero AS Dir_fiscal_numero, V_PersonasDirecciones_1.Piso AS Dir_fiscal_piso, 
						 V_PersonasDirecciones_1.Puerta AS Dir_fiscal_puerta, V_PersonasDirecciones_1.Municipio AS Dir_fiscal_municipio, V_PersonasDirecciones_1.Codigo_postal AS Dir_fiscal_cp, 
						 V_PersonasDirecciones_1.Comarca AS Dir_fiscal_comarca, V_PersonasDirecciones_1.Provincia AS Dir_fiscal_provincia, V_PersonasDirecciones_1.Pais AS Dir_fiscal_pais, 
						 V_PersonasDirecciones_1.Cae AS Dir_fiscal_cae, V_PersonasDirecciones_1.Warehouse AS Dir_fiscal_warehouse, V_PersonasDirecciones_1.Rc AS Dir_fiscal_rc,
						 dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Pres_venta.Matricula, 
						 dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, 
						 V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Pres_venta.Total_factura,  dbo.V_Personas.Tipo_identificacion as Tipo_identificacion_cliente,dbo.V_Personas.Identificacion AS Identificacion_cliente, 
						 dbo.V_PersonasDirecciones.Descripcion AS Dir_envio_desc, dbo.V_PersonasDirecciones.Via_publica AS Dir_envio_via, dbo.V_PersonasDirecciones.Direccion AS Direccion_envio, 
						 dbo.V_PersonasDirecciones.Numero AS Dir_envio_numero, dbo.V_PersonasDirecciones.Piso AS Dir_envio_piso, dbo.V_PersonasDirecciones.Puerta AS Dir_envio_puerta, 
						 dbo.V_PersonasDirecciones.Codigo_postal AS Dir_envio_cp, dbo.V_PersonasDirecciones.Municipio AS Dir_envio_municipio, dbo.V_PersonasDirecciones.Comarca AS Dir_envio_comarca, 
						 dbo.V_PersonasDirecciones.Provincia AS Dir_envio_provincia, dbo.V_PersonasDirecciones.Pais AS Dir_envio_pais,dbo.V_PersonasDirecciones.Telefono AS Dir_envio_telefono, dbo.V_PersonasDirecciones.email AS Dir_envio_email,
						 dbo.V_PersonasDirecciones.Warehouse as Dir_envio_warehouse, dbo.V_PersonasDirecciones.Rc as Dir_envio_rc, dbo.V_PersonasDirecciones.Cae as Dir_envio_cae,
						 dbo.V_Personas.Nuestro_cod_cliente, dbo.V_Personas.Tipo_impresion_documentos, 
						 dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_presupuestos_venta.Descripcion AS Desc_serie, dbo.Pres_venta.Fk_centro, dbo.Pres_venta.Estado, 
						 dbo.Pres_venta.Importe_entrega_previa, dbo.Pres_venta.Es_proforma, Cuentas_banco_empresa_1.Iban AS Iban_empresa, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, 
						 A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_asociado, dbo.Cuentas_banco_empresa.Iban, 
						 dbo.Entidades_bancarias.Descripcion AS Desc_banco_empresa, dbo.Formas_de_pago.Recoger_banco_cliente,dbo.Formas_de_pago.Recoger_banco_empresa, dbo.V_Personas.Iban_cliente,dbo.Centros.Via_publica AS Centros_via_publica, 
						 dbo.Centros.Direccion AS Centros_direccion, dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta AS Centros_puerta, dbo.Centros.Municipio AS Centro_municipio, 
						 dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, dbo.Centros.Telefono_1 AS Centro_telefono1, 
						 dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Centros.Piso AS Centro_piso,
						 dbo.Pres_venta.Fk_incoterm, dbo.Incoterm.Descripcion AS Desc_incoterm,dbo.Pres_venta.Desc_incoterm_extension, dbo.Pres_venta.Peso_bruto, dbo.Pres_venta.Peso_neto, dbo.Portes.Descripcion AS Desc_portes
						 ,dbo.Pres_venta.Persona_contacto, dbo.Pres_venta.Fecha_modificacion, dbo.Pres_venta.Usuario_creacion, dbo.Pres_venta.Usuario_modificacion, dbo.Pres_venta.Fecha_creacion,dbo.V_Personas.Idioma_reportes
FROM            dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
						 dbo.V_PersonasDirecciones RIGHT OUTER JOIN
						 dbo.Centros RIGHT OUTER JOIN
						 dbo.Portes RIGHT OUTER JOIN
						 dbo.Series_presupuestos_venta RIGHT OUTER JOIN
						 dbo.Pres_venta LEFT OUTER JOIN
						 dbo.Incoterm ON dbo.Pres_venta.Fk_incoterm =dbo.Incoterm.Codigo LEFT OUTER JOIN
						 dbo.Cuentas_banco_empresa LEFT OUTER JOIN
						 dbo.Entidades_bancarias ON dbo.Cuentas_banco_empresa.Entidad = dbo.Entidades_bancarias.Codigo ON dbo.Pres_venta.Fk_cuenta_banco_empresa = dbo.Cuentas_banco_empresa.Codigo LEFT OUTER JOIN
						 dbo.Cuentas_banco_empresa AS Cuentas_banco_empresa_1 ON dbo.Pres_venta.Fk_cuenta_banco_empresa = Cuentas_banco_empresa_1.Codigo ON 
						 dbo.Series_presupuestos_venta.Serie = dbo.Pres_venta.Serie ON dbo.Portes.Codigo = dbo.Pres_venta.Porte ON dbo.Centros.Codigo = dbo.Pres_venta.Fk_centro ON 
						 dbo.V_PersonasDirecciones.Codigo = dbo.Pres_venta.Codigo_direccion_envio LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_1 ON dbo.Pres_venta.Representante2 = V_Personas_1.Codigo ON V_Personas_3.Codigo = dbo.Pres_venta.Representante1 LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_2 ON dbo.Pres_venta.Codigo_transportista = V_Personas_2.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Pres_venta.Codigo_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS V_PersonasDirecciones_1 ON dbo.Pres_venta.Codigo_direccion_fiscal = V_PersonasDirecciones_1.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Pres_venta.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Pres_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Divisas ON dbo.Pres_venta.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
							 (SELECT        dbo.Pres_venta_lineas.Serie, dbo.Pres_venta_lineas.Numero, SUM(dbo.Pres_venta_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Pres_venta_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Pres_venta_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Pres_venta_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Pres_venta_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Pres_venta_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Pres_venta_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Pres_venta_lineas.Importe_dto2) 
														 AS Importe_dto2, SUM(dbo.Pres_venta_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Pres_venta_lineas.Importe_comision2) AS Importe_comision2, 
														 SUM(dbo.Pres_venta_lineas.Importe_base) AS Importe_base, SUM(dbo.Pres_venta_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Pres_venta_lineas.Importe_recargo) AS Importe_recargo, 
														CASE WHEN SUM(dbo.V_DocLinEstadosPresVenta.Pendiente) = COUNT(dbo.V_DocLinEstadosPresVenta.Linea) THEN 0 
														WHEN SUM(dbo.V_DocLinEstadosPresVenta.AsociadoTotal) = COUNT(dbo.V_DocLinEstadosPresVenta.Linea) THEN 1 
														WHEN SUM(dbo.V_DocLinEstadosPresVenta.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosPresVenta.Linea) THEN 3 
														WHEN SUM(dbo.V_DocLinEstadosPresVenta.Pendiente) + SUM(dbo.V_DocLinEstadosPresVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPresVenta.AsociadoParcial) = COUNT(dbo.V_DocLinEstadosPresVenta.Linea) THEN 2 
														WHEN SUM(dbo.V_DocLinEstadosPresVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPresVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPresVenta.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosPresVenta.Linea) THEN 4 
														WHEN (SUM(dbo.V_DocLinEstadosPresVenta.Pendiente) + SUM(dbo.V_DocLinEstadosPresVenta.AsociadoParcial)) > 0 AND (SUM(dbo.V_DocLinEstadosPresVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPresVenta.AsociadoAnuladoTotal))> 0 THEN 5 
														ELSE 6 
														END AS Estado_asociado, 
														 SUM(dbo.Pres_venta_lineas.Importe_irpf) AS Importe_irpf
							   FROM            dbo.Pres_venta_lineas LEFT OUTER JOIN
														 dbo.V_DocLinEstadosPresVenta ON dbo.Pres_venta_lineas.Id = dbo.V_DocLinEstadosPresVenta.Id
							   GROUP BY dbo.Pres_venta_lineas.Serie, dbo.Pres_venta_lineas.Numero) AS A ON dbo.Pres_venta.Serie = A.Serie AND dbo.Pres_venta.Numero = A.Numero	
						 '
							GO


							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PresupuestosVentaLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PresupuestosVentaLineas]
							AS
						 SELECT        dbo.Pres_venta_lineas.Id, dbo.Pres_venta_lineas.Serie, dbo.Pres_venta_lineas.Numero, dbo.Pres_venta_lineas.Linea, Pres_venta.Codigo_cliente, dbo.V_Personas.NombreCompleto, dbo.Pres_venta_lineas.Fk_articulo, 
                         dbo.Pres_venta_lineas.Articulo_descripcion, dbo.Pres_venta_lineas.Precio_tarifa, dbo.Pres_venta_lineas.Precio_con_dtos_linea, dbo.Pres_venta_lineas.No_inventariable, dbo.Pres_venta_lineas.Fk_articulo_kit, 
                         dbo.Pres_venta_lineas.Linea_kit, dbo.Pres_venta_lineas.Precio_coste_articulo, dbo.Pres_venta_lineas.Precio_bruto, dbo.Pres_venta_lineas.Precio_neto, dbo.Pres_venta_lineas.Bultos, dbo.Pres_venta_lineas.Cantidad, 
                         dbo.Pres_venta_lineas.Importe_bruto, dbo.Pres_venta_lineas.Imp_dto_pp, dbo.Pres_venta_lineas.Imp_dto_esp, dbo.Pres_venta_lineas.Tipo_calculo_dto1, dbo.Pres_venta_lineas.Valor_dto1, 
                         dbo.Pres_venta_lineas.Importe_dto1, dbo.Pres_venta_lineas.Tipo_calculo_dto2, dbo.Pres_venta_lineas.Aplicacion_dto2, dbo.Pres_venta_lineas.Valor_dto2, dbo.Pres_venta_lineas.Importe_dto2, 
                         dbo.Pres_venta_lineas.Tipo_calculo_comisiones, dbo.Pres_venta_lineas.Valor_comision1, dbo.Pres_venta_lineas.Importe_comision1, dbo.Pres_venta_lineas.Valor_comision2, dbo.Pres_venta_lineas.Importe_comision2, 
                         dbo.Pres_venta_lineas.Importe_base, dbo.Pres_venta_lineas.Valor_iva, dbo.Pres_venta_lineas.Importe_iva, dbo.Pres_venta_lineas.Valor_recargo, dbo.Pres_venta_lineas.Importe_recargo, dbo.Pres_venta_lineas.Valor_irpf, 
                         dbo.Pres_venta_lineas.Importe_irpf, dbo.Pres_venta_lineas.Importe_otros_impuestos, dbo.Pres_venta_lineas.Importe_total_linea, dbo.Pres_venta_lineas.Centro_analitico1, dbo.Pres_venta_lineas.Centro_analitico2, 
                         dbo.Pres_venta_lineas.Codigo_iva, dbo.Pres_venta_lineas.Aplicacion_irpf, dbo.Pres_venta_lineas.Cantidad_anulada, dbo.Pres_venta_lineas.Observaciones, dbo.Pres_venta_lineas.Observaciones_internas, dbo.Pres_venta_lineas.Orden, 
                         dbo.Pres_venta_lineas.Descripcion_dto1, dbo.Pres_venta_lineas.Descripcion_dto2, dbo.Pres_venta_lineas.Promocion, dbo.Pres_venta_lineas.PVP, dbo.Pres_venta_lineas.Importe_impuestos_incluidos, 
                         dbo.Pres_venta_lineas.Importe_neto, dbo.Pres_venta_lineas.Fk_expediente, dbo.Pres_venta_lineas.Serie_expediente, dbo.Pres_venta_lineas.Numero_expediente, dbo.Pres_venta_lineas.Tarifa_iva_incluido, 
                         dbo.V_ArticulosNombre.Fk_codigo_arancelario, dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, dbo.V_ArticulosNombre.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, 
                         dbo.V_ArticulosNombre.Grado_alcoholico, dbo.V_ArticulosNombre.Aux_codigo, dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, 
                         dbo.V_ArticulosSoloNombre.Descripcion AS Desc_art_agrupacion, dbo.V_ArticulosNombre.Capacidad, ADI.Traduccion AS Desc_articulo_traduccion, ARP.Ref_articulo_persona, ARP.Desc_ref_articulo_persona, 
                         dbo.Pres_venta_lineas.Peso_bruto, dbo.Pres_venta_lineas.Peso_neto, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_do, dbo.Expediente.Serie AS Expediente_serie, 
                         dbo.Expediente.Numero AS Expediente_numero, dbo.Pres_venta_lineas.Fk_ficha_tecnica, dbo.Pres_venta_lineas.Cantidad_por_bulto, dbo.FT_articulos.Descripcion as Desc_ficha_tecnica
FROM            dbo.Pres_venta_lineas LEFT OUTER JOIN
                         dbo.Pres_venta AS Pres_venta ON dbo.Pres_venta_lineas.Serie = Pres_venta.Serie AND dbo.Pres_venta_lineas.Numero = Pres_venta.Numero LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = Pres_venta.Codigo_cliente LEFT OUTER JOIN
                         dbo.Articulos_desc_idioma AS ADI ON ADI.Fk_articulo = dbo.Pres_venta_lineas.Fk_articulo AND ADI.Fk_idioma = dbo.V_Personas.Fk_idioma LEFT OUTER JOIN
                         dbo.Articulos_referencia_persona AS ARP ON ARP.Fk_persona = dbo.V_Personas.Codigo AND ARP.Fk_articulo = dbo.Pres_venta_lineas.Fk_articulo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Pres_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos ON dbo.Pres_venta_lineas.Fk_ficha_tecnica = dbo.FT_articulos.Codigo_FT LEFT OUTER JOIN
                         dbo.Expediente ON dbo.Pres_venta_lineas.Fk_expediente = dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Libros_color ON dbo.V_ArticulosNombre.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo
							'

							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FT_articulos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FT_articulos]
							AS 
							SELECT        dbo.FT_articulos.Codigo_FT, dbo.FT_articulos.Status, dbo.FT_articulos.Descripcion, dbo.FT_articulos.Fecha_alta, dbo.FT_articulos.Fecha_definitiva, dbo.FT_articulos.Fecha_baja, dbo.FT_articulos.Edicion, 
                         dbo.FT_articulos.Clientes, dbo.FT_articulos.Fk_articulo AS Articulo, Articulos.Descripcion AS DescripcionArticulo, FT_articulos.Fk_GTIN14 AS CodigoGTIN14, FT_articulos.Fk_GTIN13 AS CodigoGTIN13, dbo.FT_articulos.Fk_DO AS DO, 
                         dbo.Denom_origen.Descripcion AS DescDenominacionOrigen, dbo.FT_articulos.Fk_articulo_envase AS Envase, Articulos_Envases.Descripcion AS DescEnvase, dbo.FT_articulos.Fk_articulo_tapon AS Tapon, 
                         Articulos_Tapones.Descripcion AS DescTapon, dbo.FT_articulos.Etiqueta, dbo.FT_articulos.Fk_articulo_etiqueta AS ArticuloEtiqueta, Articulos_Etiquetas.Descripcion AS DescEtiqueta, dbo.FT_articulos.Descripcion_etiqueta, 
                         dbo.FT_articulos.Fk_articulo_palet AS Palet, Articulos_Palets.Descripcion AS DescPalet, dbo.FT_articulos.Capsula, dbo.FT_articulos.Fk_articulo_capsula AS ArticuloCapsula, Articulos_Capsulas.Descripcion AS DescCapsula, 
                         dbo.FT_articulos.Contra, dbo.FT_articulos.Fk_articulo_contra AS ArticuloContra, Articulos_Contras.Descripcion AS DescContra, dbo.FT_articulos.Descripcion_contra, dbo.FT_articulos.Malla, 
                         dbo.FT_articulos.Fk_articulo_malla AS ArticuloMalla, Articulos_Mallas.Descripcion AS DescMalla, 
						 dbo.FT_articulos.Bozal, dbo.FT_articulos.Fk_articulo_bozal AS ArticuloBozal, Articulos_Bozal.Descripcion AS DescBozal, 
						 dbo.FT_articulos.Separador, dbo.FT_articulos.Fk_articulo_separador AS ArticuloSeparador, 
                         Articulos_Separadores.Descripcion AS DescSeparador, dbo.FT_articulos.Fk_articulo_caja AS Caja, Articulos_Cajas.Descripcion AS DescCaja, dbo.FT_articulos.Descripcion_caja, dbo.FT_articulos.Etiqueta_caja, 
                         dbo.FT_articulos.Sello_DO, dbo.FT_articulos.Lote_marca, dbo.FT_articulos.Fk_lote_com_on AS Lote_como_donde, FT_com_ons_Lote.Descripcion AS DescLoteComoDonde, dbo.FT_articulos.Lote_com_on_desc, 
                         dbo.FT_articulos.Fecha_collita_marca AS Fecha_cosecha_marca, dbo.FT_articulos.Fk_fecha_collita_com_on AS FechaCosechaComoDonde, FT_com_ons_Cosecha.Descripcion AS DescFechaCosechaComoDonde, 
                         dbo.FT_articulos.Fecha_collita_com_on_desc, dbo.FT_articulos.Fecha_envase_marca, dbo.FT_articulos.Fk_fecha_envase_com_on AS Fecha_envase_como_donde, 
                         FT_com_ons_Envase.Descripcion AS DescFechaEnvaseComoDonde, dbo.FT_articulos.Fecha_envase_com_on_desc, dbo.FT_articulos.Fecha_juliana_marca, 
                         dbo.FT_articulos.Fk_fecha_juliana_com_on AS Fecha_juliana_como_donde, Fecha_envase_como_donde_Juliana.Descripcion AS DescFechaJulianaComoDonde, dbo.FT_articulos.Fecha_juliana_com_on_desc, 
                         dbo.FT_articulos.Fecha_caducidad_marca, dbo.FT_articulos.Fk_fecha_caducidad_com_on AS Fecha_caducidad_como_donde, Fecha_juliana_como_donde_Caducidad.Descripcion AS DescFechaCaducidadComoDonde, 
                         dbo.FT_articulos.Fecha_caducidad_com_on_desc, dbo.FT_articulos.Cajas_piso, dbo.FT_articulos.Cajas_palet, dbo.FT_articulos.configuracion_palet, dbo.FT_articulos.Pisos_palet, dbo.FT_articulos.Prevision_mensual, dbo.FT_articulos.Estacionalidad, 
                         dbo.FT_articulos.Info_relevante_comercial, dbo.FT_articulos.Info_relevante_produccion, dbo.FT_articulos.Observaciones_CustServ, dbo.FT_articulos.Articulo_continuidad, dbo.FT_articulos.Altura_caja, 
                         dbo.FT_articulos.Longitud_caja, dbo.FT_articulos.Anchura_caja, dbo.FT_articulos.Peso_bruto_caja, dbo.FT_articulos.Altura_palet, dbo.FT_articulos.Longitud_palet, dbo.FT_articulos.Anchura_palet, 
                         dbo.FT_articulos.Peso_bruto_palet, Articulos_Envases.Altura AS Altura_envase, Articulos_Envases.Longitud AS Longitud_envase, Articulos_Envases.Anchura AS Anchura_envase, 
                         Articulos_Envases.Peso_bruto AS Peso_bruto_envase, dbo.FT_articulos.Cantidad_por_bulto, dbo.FT_articulos.Observaciones_nueva_presentacion, dbo.FT_articulos.Ok_nueva_presentacion, 
                         dbo.FT_articulos.Fk_cliente AS Cliente, dbo.V_Personas.NombreCompleto AS NombreCliente, dbo.FT_articulos.Fk_FT_descripcion AS FT_descripcion, dbo.FT_Descripcion.Descripcion AS DescFTDescripcion
						 ,dbo.FT_articulos.Fk_centro_habitual,dbo.Centros.Descripcion as Desc_centro_habitual,dbo.FT_articulos.Formato_label_caducidad
FROM            dbo.Articulos AS Articulos_Palets RIGHT OUTER JOIN
                         dbo.Articulos AS Articulos_Tapones RIGHT OUTER JOIN
                         dbo.V_Personas RIGHT OUTER JOIN
                         dbo.FT_articulos LEFT OUTER JOIN
                         dbo.FT_Descripcion ON dbo.FT_articulos.Fk_FT_descripcion = dbo.FT_Descripcion.Codigo ON dbo.V_Personas.Codigo = dbo.FT_articulos.Fk_cliente ON 
                         Articulos_Tapones.Codigo = dbo.FT_articulos.Fk_articulo_tapon LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Cajas ON dbo.FT_articulos.Fk_articulo_caja = Articulos_Cajas.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Capsulas ON dbo.FT_articulos.Fk_articulo_capsula = Articulos_Capsulas.Codigo ON Articulos_Palets.Codigo = dbo.FT_articulos.Fk_articulo_palet LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Contras ON dbo.FT_articulos.Fk_articulo_contra = Articulos_Contras.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Envases ON dbo.FT_articulos.Fk_articulo_envase = Articulos_Envases.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos ON dbo.FT_articulos.Fk_articulo = Articulos.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Etiquetas ON dbo.FT_articulos.Fk_articulo_etiqueta = Articulos_Etiquetas.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Mallas ON dbo.FT_articulos.Fk_articulo_malla = Articulos_Mallas.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Bozal ON dbo.FT_articulos.Fk_articulo_bozal = Articulos_Bozal.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_Separadores ON dbo.FT_articulos.Fk_articulo_separador = Articulos_Separadores.Codigo LEFT OUTER JOIN
                         dbo.FT_com_ons AS Fecha_juliana_como_donde_Caducidad ON dbo.FT_articulos.Fk_fecha_caducidad_com_on = Fecha_juliana_como_donde_Caducidad.Codigo LEFT OUTER JOIN
                         dbo.FT_com_ons AS Fecha_envase_como_donde_Juliana ON dbo.FT_articulos.Fk_fecha_juliana_com_on = Fecha_envase_como_donde_Juliana.Codigo LEFT OUTER JOIN
                         dbo.FT_com_ons AS FT_com_ons_Envase ON dbo.FT_articulos.Fk_fecha_envase_com_on = FT_com_ons_Envase.Codigo LEFT OUTER JOIN
                         dbo.FT_com_ons AS FT_com_ons_Cosecha ON dbo.FT_articulos.Fk_fecha_collita_com_on = FT_com_ons_Cosecha.Codigo LEFT OUTER JOIN
                         dbo.FT_com_ons AS FT_com_ons_Lote ON dbo.FT_articulos.Fk_lote_com_on = FT_com_ons_Lote.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.FT_articulos.Fk_DO = dbo.Denom_origen.Codigo
						 LEFT OUTER JOIN Centros ON dbo.FT_articulos.Fk_centro_habitual=dbo.Centros.Codigo
						 '
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OP_control_pesos_cabecera]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OP_control_pesos_cabecera]
							AS 
							
							SELECT        dbo.OP_control_pesos_cabecera.Id, dbo.OP_control_pesos_cabecera.OP, dbo.OP_control_pesos_cabecera.Fk_articulo, dbo.OP_control_pesos_cabecera.Fecha, dbo.Articulos.Descripcion AS DescripcionArticulo, 
                         dbo.OP_control_pesos_cabecera.Tipo_control, dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op.Fecha AS Fecha_OP, CAST(ISNULL(dbo.OP_control_pesos_cabecera.Fecha_cierre, 0) AS bit) AS Cerrada, dbo.Maquinas.Codigo, 
                         dbo.Maquinas.Num_certificado_verif_periodica, dbo.Maquinas.Num_certificado_ENAC, dbo.Maquinas.Comentarios, dbo.OP_control_pesos_cabecera.Fecha_cierre, dbo.Articulos.Peso_teorico, 
                         dbo.OP_control_pesos_cabecera.Cantidad, dbo.Maquinas.Descripcion, dbo.OP_control_pesos_cabecera.Correcta, dbo.OP_control_pesos_cabecera.Usuario_creacion, dbo.OP_control_pesos_cabecera.Fecha_creacion, dbo.OP_control_pesos_cabecera.Terminal_creacion
						 ,MEDIAS.Bruto_Medio,MEDIAS.Bruto_sd,MEDIAS.Bruto_Max,MEDIAS.Bruto_Min,MEDIAS.Neto_Medio,MEDIAS.Neto_sd,MEDIAS.Neto_Max,MEDIAS.Neto_Min
						 ,MEDIAS.Pesadas,MAQENV.Codigo as Codigo_maquina_envasadora,MAQENV.Descripcion as Desc_maquina_envasadora,MEDIAS.Tara_media_directo, dbo.OP_control_pesos_cabecera.Limite_inferior, dbo.OP_control_pesos_cabecera.Limite_superior
                             ,(SELECT        TOP (1) Tara_media
                               FROM            dbo.OP_control_pesos_linea
                               WHERE        (Fk_cabecera = dbo.OP_control_pesos_cabecera.Id) AND (Es_muestra = 1) AND (Activa = 1) AND (Apto = 1)
                               ORDER BY Numero_elemento DESC) AS Tara_media
							   ,ISNULL(''['' + CAST(dbo.op.Fk_serie AS varchar) + ''-'' + CAST(dbo.Op.Numero as varchar) + ''] '','''') + ISNULL(CAST
                             ((SELECT        ''['' + CAST(Serie AS varchar) + ''-'' + CAST(Numero as varchar) + ''] ''
                                 FROM            OP_control_pesos_ops
                                 WHERE        OP_control_pesos_ops.Fk_op_control_pesos_cab =  dbo.OP_control_pesos_cabecera.Id
                                 ORDER BY OP_control_pesos_ops.SErie,OP_control_pesos_ops.Numero FOR XML PATH('''')) AS varchar(1000)),'''') AS OpsAsociadas

FROM            dbo.OP_control_pesos_cabecera LEFT OUTER JOIN
                         dbo.Maquinas ON dbo.OP_control_pesos_cabecera.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
						 dbo.Maquinas MAQENV ON dbo.OP_control_pesos_cabecera.Fk_maquina_envasadora = MAQENV.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.OP_control_pesos_cabecera.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.Op ON dbo.OP_control_pesos_cabecera.Fk_op = dbo.Op.Id  LEFT OUTER JOIN
						 (select Fk_cabecera
							, AVG(peso_bruto) as Bruto_Medio
							,stdev(Peso_bruto) as Bruto_sd
							,MAX(PEso_bruto) as Bruto_Max
							,MIN(Peso_bruto) AS Bruto_min
							,AVG(Peso_neto) as Neto_Medio
							,STDEV(Peso_neto) as Neto_sd
							,MAX(Peso_neto) as Neto_Max
							,MIN(Peso_neto) as Neto_Min
							,COUNT(*) as Pesadas
							,AVG(Tara) as Tara_media_directo
							FROM OP_control_pesos_linea
							WHERE   (Es_muestra = 1) AND (Activa = 1) AND (Apto = 1)
							group by Fk_cabecera
							) MEDIAS ON dbo.OP_control_pesos_cabecera.Id=MEDIAS.Fk_cabecera

'
							GO
							
							

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasVentaClientesArticulos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacturasVentaClientesArticulos] AS
							SELECT dbo.Facturas_venta_lineas.Id, dbo.Facturas_venta_lineas.Serie, dbo.Facturas_venta_lineas.Numero, dbo.Facturas_venta.Fecha_hora, dbo.Facturas_venta.Fecha_hora_real,
							dbo.Facturas_venta.Codigo_cliente, Personas.NombreCompleto AS Cliente_nombre, dbo.Facturas_venta.Divisa, dbo.Facturas_venta.Forma_pago,
							dbo.Facturas_venta.Forma_envio, dbo.Facturas_venta.Dia_pago1, dbo.Facturas_venta.Dia_pago2, dbo.Facturas_venta.Dia_pago3,
							dbo.Facturas_venta.Codigo_transportista, dbo.Facturas_venta.Matricula, dbo.Facturas_venta.Representante1, dbo.Facturas_venta.Representante2,
							dbo.Facturas_venta.Dto_pp, dbo.Facturas_venta.Dto_esp, dbo.Facturas_venta.Su_referencia, dbo.Facturas_venta.Notas_internas,
							dbo.Facturas_venta.Notas_factura, dbo.Facturas_venta.Porte, dbo.Facturas_venta.Ivas_modificados, dbo.Facturas_venta.Impuestos_modificados,
							 dbo.Facturas_venta.Total_factura, dbo.Facturas_venta.Total_cobrar_pagar, dbo.Facturas_venta.Fk_centro,
							dbo.Facturas_venta.Dev_serie, dbo.Facturas_venta.Dev_numero, dbo.Facturas_venta.Dev_descripcion, dbo.Facturas_venta.Fk_mot_devolucion,
							Representantes1.Codigo AS Representante1_codigo, Representantes1.NombreCompleto AS Representante1_nombre,
							Transportistas.Codigo AS Transportista_codigo, Transportistas.NombreCompleto AS Transportista_nombre,
							Representantes2.Codigo AS Representante2_codigo, Representantes2.NombreCompleto AS Representante2_nombre, Personas.Email1 AS Cliente_email,
							Personas.Identificacion AS Cliente_identificacion, Transportistas.Fis_codigo_postal AS Transportista_codigo_postal, Transportistas.Fis_municipio AS Transportista_municipio,
							Transportistas.Tipo_identificacion AS Transportista_tipo_identificacion, dbo.V_ArticulosNombre.Descripcion AS Articulo_desc_original,
							dbo.V_ArticulosNombre.Descripcion_abreviada AS Articulo_desc_abreviada, dbo.V_ArticulosNombre.Tipo_seccion,
							dbo.V_ArticulosNombre.Desc_tipo_seccion, dbo.Facturas_venta_lineas.Linea, dbo.Facturas_venta_lineas.Articulo,
							dbo.Facturas_venta_lineas.Articulo_descripcion, dbo.Facturas_venta_lineas.No_inventariable, dbo.Facturas_venta_lineas.Articulo_kit,
							dbo.Facturas_venta_lineas.Linea_kit, dbo.Facturas_venta_lineas.Precio_coste_articulo, dbo.Facturas_venta_lineas.Precio_bruto,
							dbo.Facturas_venta_lineas.Precio_neto, dbo.Facturas_venta_lineas.Bultos, dbo.Facturas_venta_lineas.Cantidad, dbo.Facturas_venta_lineas.Importe_bruto,
							dbo.Facturas_venta_lineas.Imp_dto_pp, dbo.Facturas_venta_lineas.Imp_dto_esp, dbo.Facturas_venta_lineas.Tipo_calculo_dto1,
							dbo.Facturas_venta_lineas.Valor_dto1, dbo.Facturas_venta_lineas.Importe_dto1, dbo.Facturas_venta_lineas.Tipo_calculo_dto2,
							dbo.Facturas_venta_lineas.Aplicacion_dto2, dbo.Facturas_venta_lineas.Valor_dto2, dbo.Facturas_venta_lineas.Importe_dto2,
							dbo.Facturas_venta_lineas.Tipo_calculo_comisiones, dbo.Facturas_venta_lineas.Valor_comision1, dbo.Facturas_venta_lineas.Importe_comision1,
							dbo.Facturas_venta_lineas.Valor_comision2, dbo.Facturas_venta_lineas.Importe_comision2,dbo.Facturas_venta_lineas.Importe_neto, dbo.Facturas_venta_lineas.Importe_base,
							dbo.Facturas_venta_lineas.Valor_iva, dbo.Facturas_venta_lineas.Importe_iva, dbo.Facturas_venta_lineas.Valor_recargo,
							dbo.Facturas_venta_lineas.Importe_recargo, dbo.Facturas_venta_lineas.Valor_irpf, dbo.Facturas_venta_lineas.Importe_irpf,
							dbo.Facturas_venta_lineas.Importe_otros_impuestos, dbo.Facturas_venta_lineas.Importe_total_linea, dbo.Facturas_venta_lineas.Centro_analitico1,
							dbo.Facturas_venta_lineas.Centro_analitico2, dbo.Facturas_venta_lineas.Codigo_iva, dbo.Facturas_venta_lineas.Aplicacion_irpf,
							dbo.Facturas_venta_lineas.Tipo_doc_asociado, dbo.Facturas_venta_lineas.Serie_doc_asociado, dbo.Facturas_venta_lineas.Numero_doc_asociado,
							dbo.Facturas_venta_lineas.Id_doc_asociado, dbo.Facturas_venta_lineas.Cantidad_anulada, dbo.Facturas_venta_lineas.Observaciones,
							dbo.Facturas_venta_lineas.Fk_cuenta_contable, dbo.Facturas_venta_lineas.Orden, dbo.Facturas_venta.Fk_centro AS Codigo_centro,
							dbo.Centros.Descripcion AS Desc_centro, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Formas_envio.Descripcion AS Desc_forma_envio,
							Personas.Tags AS Tags_clientes, dbo.V_ArticulosNombre.Tags AS Tags_articulos
							FROM            dbo.Centros INNER JOIN
							dbo.Facturas_venta ON dbo.Centros.Codigo = dbo.Facturas_venta.Fk_centro LEFT OUTER JOIN
							dbo.Formas_de_pago ON dbo.Facturas_venta.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
							dbo.Formas_envio ON dbo.Facturas_venta.Forma_envio = dbo.Formas_envio.Codigo RIGHT OUTER JOIN
							dbo.Facturas_venta_lineas LEFT OUTER JOIN
							dbo.V_ArticulosNombre ON dbo.Facturas_venta_lineas.Articulo = dbo.V_ArticulosNombre.Codigo ON
							dbo.Facturas_venta.Serie = dbo.Facturas_venta_lineas.Serie AND dbo.Facturas_venta.Numero = dbo.Facturas_venta_lineas.Numero LEFT OUTER JOIN
							dbo.V_Personas AS Personas ON dbo.Facturas_venta.Codigo_cliente = Personas.Codigo LEFT OUTER JOIN
							dbo.V_Personas AS Transportistas ON dbo.Facturas_venta.Codigo_transportista = Transportistas.Codigo LEFT OUTER JOIN
							dbo.V_Personas AS Representantes1 ON dbo.Facturas_venta.Representante1 = Representantes1.Codigo LEFT OUTER JOIN
							dbo.V_Personas AS Representantes2 ON dbo.Facturas_venta.Representante2 = Representantes2.Codigo
							'

							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesLotesReales]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpComponentesLotesReales] AS
							SELECT        dbo.Op_componentes_lotes_real.Id, dbo.Op_componentes_lotes_real.Fk_articulo_componente, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.V_ArticulosNombre.Desc_tipo_articulo, 
                         dbo.Op_componentes_lotes_real.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Op_componentes_lotes_real.Lote, dbo.Op_componentes_lotes_real.Lote_etiqueta, dbo.Op_componentes_lotes_real.Fecha, 
                         dbo.Op.Cantidad AS Cantidad_op, dbo.Op_componentes_lotes_real.Cantidad, dbo.Op_componentes_lotes_real.Cantidad * dbo.V_ArticulosNombre.Capacidad AS Litros_componente, 
                         dbo.Op_componentes_lotes_real.Cantidad * dbo.V_ArticulosNombre.Peso_neto AS Kg_componente, dbo.Op_componentes_lotes_real.Cantidad_teorica, dbo.Op_cierres.Cantidad AS Cantidad_cierre, 
                         dbo.Op_cierres.Cantidad * art2.Capacidad AS Litros_art_principal, dbo.Op_componentes_lotes_real.Precio, dbo.Op_componentes_lotes_real.Orden, dbo.Op_componentes_lotes_real.Num_eti_desde, 
                         dbo.Op_componentes_lotes_real.Num_eti_hasta, dbo.Op_componentes_lotes_real.Fk_do, dbo.Denom_origen.Descripcion AS Desc_do, dbo.Op_componentes_lotes_real.Fk_cierre, dbo.Op_componentes_lotes_real.Fk_op, 
                         dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op_cierres.Fecha AS Fecha_cierre, dbo.Op_cierres.Id AS Id_cierre, dbo.Op_cierres.Lote AS Lote_cierre, dbo.Op_cierres.Lote_etiqueta AS Lote_etiqueta_cierre, 
                         dbo.Op_componentes_lotes_real.Num_cierre, dbo.Op_componentes_lotes_real.Fk_op_componentes, dbo.V_ArticulosNombre.Art_sello_do, dbo.Op.Fecha AS Fecha_orden, dbo.Lotes.Fecha_lote
						 ,dbo.lotes.Fk_persona as Codigo_persona,
                         dbo.V_PersonasSoloNombre.NombreCompleto, dbo.V_PersonasSoloNombre.Codigo AS Codigo_proveedor, art2.Descripcion AS Desc_articulo_op, dbo.Op.Fk_articulo AS Fk_articulo_op, dbo.Op.Fk_centro AS Centro, 
                         dbo.Centros.Descripcion AS Desc_centro, Cliente.Codigo AS Codigo_cliente, Cliente.NombreCompleto AS Nombre_cliente, dbo.Lotes.Lote_etiqueta AS Lote_etiqueta_comp, dbo.Lotes.Añada, dbo.V_ArticulosNombre.Tipologia, 
                         ISNULL(dbo.Op_componentes_lotes_real.Cantidad, 0) * ISNULL(Z.Pmp_lote, 0) AS Importe, Z.Pmp, Z.Pmp_lote, dbo.V_ArticulosNombre.Producto_supervisor, dbo.Op.Tipo_op, art2.Fk_envase, art2.Desc_envase, art2.Fk_color, 
                         art2.Desc_color, dbo.Op_componentes_lotes_real.Fuera_escandallo, dbo.V_ArticulosNombre.Fk_do AS Fk_do_art_componente, dbo.V_ArticulosNombre.Desc_do AS Desc_do_art_componente, 
                         dbo.Op_cierres.Añada AS Añada_art_principal_Cierre, dbo.V_ArticulosNombre.Fk_articulo_tipo
FROM            dbo.Op_componentes_lotes_real INNER JOIN
                         dbo.Op ON dbo.Op_componentes_lotes_real.Fk_op = dbo.Op.Id LEFT OUTER JOIN
                         dbo.Op_Componentes ON dbo.Op_componentes_lotes_real.Fk_op_componentes = dbo.Op_Componentes.Id INNER JOIN
                         dbo.Op_cierres ON dbo.Op_componentes_lotes_real.Fk_cierre = dbo.Op_cierres.Id LEFT OUTER JOIN
                         dbo.Lotes ON dbo.Op_componentes_lotes_real.Fk_articulo_componente = dbo.Lotes.Fk_articulo AND dbo.Op_componentes_lotes_real.Lote = dbo.Lotes.Lote LEFT OUTER JOIN
                         dbo.V_ArticulosNombre ON dbo.Op_componentes_lotes_real.Fk_articulo_componente = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosNombre AS art2 ON dbo.Op.Fk_articulo = art2.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.Op_componentes_lotes_real.Fk_do = dbo.Denom_origen.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Op_componentes_lotes_real.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Lotes.Fk_proveedor = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Centros.Codigo = dbo.Op.Fk_centro LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS Cliente ON Cliente.Codigo = dbo.Op.Fk_persona LEFT OUTER JOIN
                             (SELECT        Fk_op_cierre, Articulo, Lote, MAX(Pmp) AS Pmp, MAX(Pmp_lote) AS Pmp_lote
                               FROM            dbo.Movimientos
                               WHERE        (SerieTipoDoc = ''OP'') AND (E_S_N = ''S'')
                               GROUP BY Fk_op_cierre, Articulo, Lote) AS Z ON dbo.Op_cierres.Id = Z.Fk_op_cierre AND dbo.Op_componentes_lotes_real.Fk_articulo_componente = Z.Articulo AND dbo.Op_componentes_lotes_real.Lote = Z.Lote'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesLotes]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpComponentesLotes]
							AS SELECT dbo.Op_componentes_lotes.Id, dbo.Op_componentes_lotes.Fk_op_componentes, dbo.Op_componentes_lotes.Fk_articulo_componente, dbo.Op_componentes_lotes.Fk_almacen, dbo.Op_componentes_lotes.Lote, 
							  dbo.Op_componentes_lotes.Fecha, dbo.Op_componentes_lotes.Cantidad, dbo.Op_componentes_lotes.Precio, dbo.Op_componentes_lotes.Orden, dbo.Op_componentes_lotes.Fk_op, 
							  dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Lotes.Lote_etiqueta,dbo.Lotes.Añada,dbo.V_articulosNombre.Tipologia, dbo.V_ArticulosNombre.Desc_unidad
							  ,V_ArticulosNombre.Producto_supervisor, dbo.Op.Estado
							FROM     dbo.Op_componentes_lotes LEFT OUTER JOIN
							  dbo.Lotes ON dbo.Op_componentes_lotes.Lote = dbo.Lotes.Lote AND dbo.Op_componentes_lotes.Fk_articulo_componente = dbo.Lotes.Fk_articulo LEFT OUTER JOIN
							  dbo.Op ON dbo.Op_componentes_lotes.Fk_op = dbo.Op.Id LEFT OUTER JOIN
							  dbo.Almacenes ON dbo.Op.Fk_almacen = dbo.Almacenes.Codigo AND dbo.Op_componentes_lotes.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
							  dbo.V_ArticulosNombre ON dbo.Op_componentes_lotes.Fk_articulo_componente = dbo.V_ArticulosNombre.Codigo'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentes]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpComponentes]
							AS SELECT dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.V_ArticulosNombre.Tipologia, dbo.V_ArticulosNombre.Producto_supervisor, dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op_Componentes.Id, dbo.Op_Componentes.Fk_op, dbo.Op_Componentes.Fk_articulo_componente, dbo.Op_Componentes.Precio, dbo.Op_Componentes.Cantidad_unitaria, dbo.Op_Componentes.Cantidad, dbo.Op_Componentes.Cantidad_real, dbo.Op_Componentes.Importe, 
							dbo.Op_Componentes.Tipo_producto, dbo.Op_Componentes.Orden, dbo.Op_Componentes.Fuera_escandallo, dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.Op.Estado, dbo.V_ArticulosNombre.Cajas_por_palet, dbo.V_ArticulosNombre.Cantidad_por_bulto
							FROM   dbo.Op INNER JOIN
							dbo.Op_Componentes ON dbo.Op.Id = dbo.Op_Componentes.Fk_op LEFT OUTER JOIN
							dbo.V_ArticulosNombre ON dbo.Op_Componentes.Fk_articulo_componente = dbo.V_ArticulosNombre.Codigo'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinTotal]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinTotal]
							AS				 SELECT        dbo.V_AlbLiq.Serie, dbo.V_AlbLiq.Numero, dbo.V_AlbLiq.Fk_seccion, dbo.V_AlbLiq.Fk_centro, dbo.V_AlbLiq.Desc_centro, dbo.V_AlbLiq.Desc_seccion, dbo.V_AlbLiq.Fk_campaña AS Fk_campana, dbo.V_AlbLiq.Fk_empresa,dbo.V_AlbLiq.Desc_empresa,
                         dbo.V_AlbLiq.Desc_campaña AS Desc_campana, dbo.V_AlbLiq.Fecha, dbo.V_AlbLiq.Fecha_operacion, dbo.V_AlbLiq.Hora_entrada, dbo.V_AlbLiq.Hora_salida, dbo.V_AlbLiq.Visto_web, dbo.V_AlbLiq.Portador_codigo, 
                         dbo.V_AlbLiq.Portador_nif, dbo.V_AlbLiq.Portador_nombre, dbo.V_AlbLiq.Fk_transportista, dbo.V_AlbLiq.Nombre_transportista, dbo.V_AlbLiq.Matricula, dbo.V_AlbLiq.Serie_doc_origen, dbo.V_AlbLiq.Doc_origen, dbo.V_AlbLiq.Socio_doc_origen,
                         dbo.V_AlbLiq.Observaciones, dbo.V_AlbLiq.Tipo_liq, dbo.V_AlbLiq.Tarjeta_rvc_no_socios, dbo.V_AlbLiq.Municipio_no_socios, dbo.V_AlbLiq.Desc_municipio_no_socios, dbo.V_AlbLiq.Socio2_codigo, dbo.V_AlbLiq.Safata, 
                         dbo.V_AlbLiq.Vector, dbo.V_AlbLiq.Su_referencia, dbo.V_AlbLiq.Fecha_validacion, dbo.V_AlbLiq.Usuario_validacion, dbo.V_AlbLiqLin.Linea, dbo.V_AlbLiqLin.Articulo, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, 
                         dbo.V_AlbLiqLin.Id AS Id_alb_liq_lin, dbo.V_ArticulosNombre.Descripcion_abreviada AS Desc_articulo_corta, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.V_AlbLiqLin.C_postal, dbo.V_AlbLiqLin.Envase, 
                         dbo.V_AlbLiqLin.Desc_envase, dbo.V_AlbLiqLin.Bultos, dbo.V_AlbLiqLin.Cantidad_con_tara, dbo.V_AlbLiqLin.Cantidad_tara, dbo.V_AlbLiqLin.Cantidad_bruta, dbo.V_AlbLiqLin.Cantidad_neta, dbo.V_AlbLiqLin.Precio, 
                         dbo.V_AlbLiqLin.Finca, dbo.V_AlbLiqLin.Desc_finca, dbo.V_AlbLiqLin.Parcela, dbo.V_AlbLiqLin.Desc_parcela, dbo.V_AlbLiqLin.Almacen, dbo.V_AlbLiqLin.Desc_almacen, dbo.V_AlbLiqLin.Lote, dbo.V_AlbLiqLin.Km0,
                         dbo.V_AlbLiqLin.Observaciones AS Obs_linea, dbo.V_AlbLiqLin.Destino_uva, dbo.V_AlbLiqLin.Doc_guia, dbo.V_AlbLiqLin.Doc_relacion, dbo.V_AlbLiqLin.Do_1, dbo.V_AlbLiqLin.Desc_Do1, dbo.V_AlbLiqLin.Do_2, 
                         dbo.V_AlbLiqLin.Desc_Do2, dbo.V_AlbLiqLin.Do_3, dbo.V_AlbLiqLin.Desc_Do3, dbo.V_AlbLiqLin.Traspasado_rvc, dbo.V_AlbLiqLin.No_traspasar_rvc, dbo.V_AlbLiqLin.Paraje, dbo.V_AlbLiqLinPart.Persona, 
                         dbo.V_AlbLiqLinPart.Particion, dbo.V_AlbLiqLinPart.Cantidad_bruta AS Cantidad_bruta_socio, dbo.V_AlbLiqLinPart.Cantidad_neta AS Cantidad_neta_socio, dbo.V_AlbLiqLinPart.Liquidat AS Liquidado, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Control_visual_calidad, dbo.V_AlbLiqLinParamFijosPorColumnas.Sucio, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_pequeño AS Tamanyo_pequenyo, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_grande AS Tamanyo_grande, dbo.V_AlbLiqLinParamFijosPorColumnas.Capas_color, dbo.V_AlbLiqLinParamFijosPorColumnas.Mezcla, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Fallado, dbo.V_AlbLiqLinParamFijosPorColumnas.Mal_peladas, dbo.V_AlbLiqLinParamFijosPorColumnas.Materia_grasa, dbo.V_AlbLiqLinParamFijosPorColumnas.Cascara, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Actidez_total_sulfurica, dbo.V_AlbLiqLinParamFijosPorColumnas.Acidez_volatil, dbo.V_AlbLiqLinParamFijosPorColumnas.Grado, dbo.V_AlbLiqLinParamFijosPorColumnas.Densidad, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Acidez, dbo.V_AlbLiqLinParamFijosPorColumnas.Gluconico, dbo.V_AlbLiqLinParamFijosPorColumnas.Podrido, dbo.V_AlbLiqLinParamFijosPorColumnas.Humedad, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Rendimiento, dbo.V_AlbLiqLinParamFijosPorColumnas.Rendimiento_industrial, dbo.V_AlbLiqLinParamFijosPorColumnas.Estimacion_rendimiento_industrial, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Aceite_sobre_seco, dbo.V_Personas.NombreCompleto AS Nombre_socio, dbo.V_Personas.Tags AS Tags_socio, dbo.V_AlbLiqLinParamFijosPorColumnas.Cascall, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Cascallot, dbo.V_AlbLiqLinParamFijosPorColumnas.Piedras, dbo.V_AlbLiqLinParamFijosPorColumnas.Otros, dbo.V_AlbLiqLinParamFijosPorColumnas.Apolilladas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Engomadas, dbo.V_AlbLiqLinParamFijosPorColumnas.Rancias, dbo.V_AlbLiqLinParamFijosPorColumnas.Florecidas, dbo.V_AlbLiqLinParamFijosPorColumnas.Gemelas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Rascadas, dbo.V_AlbLiqLinParamFijosPorColumnas.Viejas, dbo.V_AlbLiqLinParamFijosPorColumnas.Peladas, dbo.V_AlbLiqLinParamFijosPorColumnas.Migradas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Aflatoxinas, dbo.V_AlbLiqLinParamFijosPorColumnas.Trozo, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_bajo_9, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_9_10, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_10_11, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_11_12, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_12_13, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_13_14, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_14_15, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_15_16, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_16_17, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_17_18, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_sobre_18, 
						 dbo.V_AlbLiqLinParamFijosPorColumnas.Grado_laboratorio, dbo.V_AlbLiqLinParamFijosPorColumnas.ATS_laboratorio, dbo.V_AlbLiqLinParamFijosPorColumnas.Gluconico_laboratorio, dbo.V_AlbLiqLinParamFijosPorColumnas.Gastos_almacenaje
						 , dbo.V_AlbLiqLinParamFijosPorColumnas.Bonificacion_transporte, dbo.V_AlbLiqLinParamFijosPorColumnas.Dias_diferencia_deposito
                         ,dbo.V_AlbLiqLinParamFijosPorColumnas.Maquina, dbo.V_AlbLiqLinParamFijosPorColumnas.Rancimat, dbo.V_AlbLiqLinParamFijosPorColumnas.Piezas_onza, dbo.V_AlbLiq.Tipo, dbo.V_AlbLiq.Fk_serie_padre, 
                         dbo.V_AlbLiq.Fk_numero_padre
						 , LIB.Fk_tipo_movimiento AS Libro_tipo_mov, LIB.Fk_movimiento AS Libro_num_mov,LIB.Linea as Libro_linea, LIB.Id AS Libro_Id,V_AlbLiq.Id_filtro,V_AlbLiq.Estado

FROM            dbo.V_ArticulosNombre RIGHT OUTER JOIN
                         dbo.V_AlbLiq LEFT OUTER JOIN
                         dbo.V_AlbLiqLinPart RIGHT OUTER JOIN
                         dbo.V_AlbLiqLin ON dbo.V_AlbLiqLinPart.Serie = dbo.V_AlbLiqLin.Serie AND dbo.V_AlbLiqLinPart.Numero = dbo.V_AlbLiqLin.Numero AND dbo.V_AlbLiqLinPart.Linea = dbo.V_AlbLiqLin.Linea LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_AlbLiqLinPart.Persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_AlbLiqLinParamFijosPorColumnas ON dbo.V_AlbLiqLinPart.Serie = dbo.V_AlbLiqLinParamFijosPorColumnas.Serie AND dbo.V_AlbLiqLinPart.Numero = dbo.V_AlbLiqLinParamFijosPorColumnas.Numero AND 
                         dbo.V_AlbLiqLinPart.Linea = dbo.V_AlbLiqLinParamFijosPorColumnas.Linea ON dbo.V_AlbLiq.Serie = dbo.V_AlbLiqLin.Serie AND dbo.V_AlbLiq.Numero = dbo.V_AlbLiqLin.Numero ON 
                         dbo.V_ArticulosNombre.Codigo = dbo.V_AlbLiqLin.Articulo
						 LEFT OUTER JOIN
dbo.V_LibrosMovimientos AS LIB ON LIB.SerieTipoDoc_asociado = ''AL'' AND LIB.Serie_doc_asociado = dbo.V_AlbLiqLinPart.Serie AND LIB.Numero_doc_asociado = dbo.V_AlbLiqLinPart.Numero AND LIB.Linea_doc_asociado=dbo.V_AlbLiqLinPart.Linea AND LIB.Fk_persona=V_AlbLiqLinPart.Persona'
							GO
							
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlmacenesGraficos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlmacenesGraficos] AS
							SELECT        dbo.Almacenes_graficos.Id, dbo.Almacenes_graficos.Codigo, dbo.Almacenes_graficos.Descripcion, dbo.Almacenes_graficos.Fk_centro, dbo.Centros.Descripcion AS DescripcionCentro
							FROM            dbo.Almacenes_graficos INNER JOIN
							dbo.Centros ON dbo.Almacenes_graficos.Fk_centro = dbo.Centros.Codigo'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaImpuestos]
							AS
							SELECT     dbo.Alb_venta_impuestos.Id, dbo.Alb_venta_impuestos.Serie, dbo.Alb_venta_impuestos.Numero, dbo.Alb_venta_impuestos.Codigo_impuesto,
							dbo.Alb_venta_impuestos.Importe_base, dbo.Alb_venta_impuestos.Valor_iva, dbo.Alb_venta_impuestos.Importe_iva,
							dbo.Alb_venta_impuestos.Valor_recargo, dbo.Alb_venta_impuestos.Importe_recargo, dbo.Alb_venta_impuestos.Valor_irpf,
							dbo.Alb_venta_impuestos.Importe_irpf, dbo.Alb_venta_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
							FROM         dbo.Alb_venta_impuestos INNER JOIN
							dbo.Impuestos ON dbo.Alb_venta_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
							dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaIvas]
							AS
							SELECT     dbo.Alb_Venta_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Alb_Venta_ivas INNER JOIN
							dbo.Ivas ON dbo.Alb_Venta_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVenta]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVenta]
							AS							
				SELECT        ISNULL(dbo.Alb_venta.Serie, '''') AS Serie, ISNULL(dbo.Alb_venta.Numero, 0) AS Numero,dbo.Alb_venta.Bascula, dbo.Alb_venta.Fk_empresa,dbo.Alb_venta.Terminal, dbo.Alb_venta.Fecha_hora, dbo.Alb_venta.Fecha_hora_real, CONVERT(date, 
						 dbo.Alb_venta.Fecha_hora, 103) AS Fecha, CONVERT(varchar, dbo.Alb_venta.Fecha_hora, 108) AS Hora, dbo.Alb_venta.Codigo_cliente, dbo.Alb_venta.Divisa, dbo.Alb_venta.Forma_pago, 
						 dbo.Alb_venta.Forma_envio, dbo.Alb_venta.Dia_pago1, dbo.Alb_venta.Dia_pago2, dbo.Alb_venta.Dia_pago3, dbo.Alb_venta.Codigo_direccion_fiscal, dbo.Alb_venta.Codigo_direccion_envio, 
						 dbo.Alb_venta.Codigo_transportista, dbo.Alb_venta.Representante1, dbo.Alb_venta.Representante2, dbo.Alb_venta.Dto_pp, dbo.Alb_venta.Dto_esp, dbo.Alb_venta.Su_referencia, dbo.Alb_venta.Notas_internas, 
						 dbo.Alb_venta.Notas_factura, dbo.Alb_venta.Bloqueo, dbo.Alb_venta.Horario_entrega, dbo.Alb_venta.Fecha_recogida, dbo.Alb_venta.Fecha_limite_entrega, dbo.Alb_venta.Fecha_entrega_concreta,  dbo.Alb_venta.Fecha_prevista_entrega, 
						 dbo.Alb_venta.Dias_entrega, dbo.Alb_venta.Desc_incoterm_extension, dbo.Alb_venta.Contenedores, dbo.Alb_venta.Precintos, V_PersonasDirecciones_1.Descripcion AS Dir_fiscal_desc,  V_PersonasDirecciones_1.Id_numero AS Dir_fiscal_id_numero,
						 V_PersonasDirecciones_1.Via_publica AS Dir_fiscal_via, V_PersonasDirecciones_1.Direccion AS Dir_fiscal_direccion, V_PersonasDirecciones_1.Numero AS Dir_fiscal_numero, 
						 V_PersonasDirecciones_1.Piso AS Dir_fiscal_piso, V_PersonasDirecciones_1.Puerta AS Dir_fiscal_puerta, V_PersonasDirecciones_1.Municipio AS Dir_fiscal_municipio, 
						 V_PersonasDirecciones_1.Codigo_postal AS Dir_fiscal_cp, V_PersonasDirecciones_1.Comarca AS Dir_fiscal_comarca, V_PersonasDirecciones_1.Provincia AS Dir_fiscal_provincia, 
						 V_PersonasDirecciones_1.Pais AS Dir_fiscal_pais, V_PersonasDirecciones_1.Identificacion_empresa1 as Dir_fiscal_id_empresa1,V_PersonasDirecciones_1.Identificacion_empresa2 as Dir_fiscal_id_empresa2, V_PersonasDirecciones_1.Cae AS Dir_fiscal_cae, V_PersonasDirecciones_1.Warehouse AS Dir_fiscal_warehouse, 
						 V_PersonasDirecciones_1.Rc AS Dir_fiscal_rc, 
						 dbo.Alb_venta.Direccion_completa AS Alb_Direccion_completa, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, 
						 dbo.Alb_venta.Matricula, dbo.V_Personas.NombreCompleto AS Nombre_cliente, dbo.V_Personas.Num_carnet_aplicador AS Num_carnet_aplicador_ficha_persona,dbo.V_Personas.Codigo_ropo as Codigo_ropo_ficha_persona, dbo.V_Personas.Tipo_impresion_documentos, 
						 V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Alb_venta.Total_factura, 
						 dbo.V_Personas.Tipo_identificacion AS Tipo_identificacion_cliente, dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.V_PersonasDirecciones.Descripcion AS Dir_envio_desc, 
						 dbo.V_PersonasDirecciones.Via_publica AS Dir_envio_via, dbo.V_PersonasDirecciones.Direccion AS Direccion_envio,dbo.V_PersonasDirecciones.Id_numero AS Dir_envio_id_numero, dbo.V_PersonasDirecciones.Numero AS Dir_envio_numero, 
						 dbo.V_PersonasDirecciones.Piso AS Dir_envio_piso, dbo.V_PersonasDirecciones.Puerta AS Dir_envio_puerta, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_envio_cp, 
						 dbo.V_PersonasDirecciones.Municipio AS Dir_envio_municipio, dbo.V_PersonasDirecciones.Comarca AS Dir_envio_comarca, dbo.V_PersonasDirecciones.Provincia AS Dir_envio_provincia, 
						 dbo.V_PersonasDirecciones.Pais AS Dir_envio_pais, dbo.V_PersonasDirecciones.Telefono AS Dir_envio_telefono, dbo.V_PersonasDirecciones.Warehouse AS Dir_envio_warehouse, 
						 dbo.V_PersonasDirecciones.Rc AS Dir_envio_rc, dbo.V_PersonasDirecciones.Cae AS Dir_envio_cae, dbo.V_Personas.Nuestro_cod_cliente, dbo.V_Personas.Tags AS Tags_cliente, 
						 dbo.Centros.Descripcion AS Desc_centro, dbo.Series_albaranes_venta.Descripcion AS Desc_serie, dbo.Alb_venta.Fk_centro, dbo.Alb_venta.Dev_serie, dbo.Alb_venta.Dev_numero, 
						 dbo.Alb_venta.Dev_descripcion, dbo.Alb_venta.Fk_mot_devolucion, dbo.Portes.Descripcion AS Desc_portes, dbo.Alb_venta.Porte, dbo.Alb_venta.Cae, dbo.Alb_venta.Fk_incoterm, 
						 dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.Alb_venta.Peso_bruto,dbo.Alb_venta.Peso_bruto_arc, dbo.Alb_venta.Peso_neto, dbo.Motivos_devolucion.Descripcion AS Desc_motivo_devolucion, 
						 dbo.Cuentas_banco_empresa.Iban AS Iban_empresa, dbo.Alb_venta.Estado_facturacion, dbo.Hoja_carga_cabecera.Serie AS Serie_hoja_carga, dbo.Hoja_carga_cabecera.Numero AS Numero_hoja_carga, 
						 dbo.Alb_venta.Valorado, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, 
						 A.Importe_recargo, A.Importe_irpf, A.Estado_asociado, dbo.Formas_de_pago.Recoger_banco_cliente,dbo.Formas_de_pago.Recoger_banco_empresa, dbo.V_Personas.Iban_cliente, dbo.V_Personas.Entidad_bh_cliente, 
						 dbo.V_Personas.Desc_entidad_bh_cliente, dbo.V_Personas.Dir_entidad_bh_cliente, dbo.V_PersonasDirecciones.Vat AS Dir_envio_Vat, dbo.V_Personas.Mostrar_grado_documentos, 
						 dbo.V_Personas.Mostrar_añada_documentos,dbo.V_Personas.Mostrar_fecha_cad_documentos, dbo.Alb_venta.Total_pales, dbo.Alb_venta.Total_bultos, dbo.Alb_venta.Total_cantidad, 
						  A.HayFitosanitarios, A.NecesitaCarnetFito,dbo.Alb_venta.Numero_EMCS, dbo.V_Personas.Cliente_interno, dbo.Alb_venta.Usuario_creacion, 
                         dbo.Alb_venta.Usuario_modificacion, dbo.Alb_venta.Fecha_creacion, dbo.Alb_venta.Fecha_modificacion, dbo.Alb_venta.Tpv, dbo.Alb_venta.Fecha_presentacion_EMCS,
                         dbo.V_Personas.Idioma_reportes
						 ,dbo.Alb_venta.Acta_m_observaciones,dbo.Alb_venta.Acta_m_rep_vendedor,dbo.Alb_venta.Acta_m_rep_comprador
						 ,dbo.Alb_venta.Acta_m_fecha,dbo.Alb_venta.Conductor_nombre,dbo.Alb_venta.Conductor_dni,dbo.Alb_venta.Numero_tarjeta,dbo.V_Personas.No_mostrar_lotes, dbo.Alb_venta.Id
						 ,CD.Serie as Serie_carga_descarga,CD.Numero as Numero_carga_descarga,dbo.Alb_venta.Persona_contacto
						 , GRUPO_HABITUAL.Codigo_grupo AS Fk_grupo_tpv, GRUPO_HABITUAL.Descripcion AS Desc_grupo_tpv, dbo.Alb_venta.Fk_hoja_carga_cabecera
						 ,dbo.Alb_venta.Autoconsumo,dbo.Alb_venta.Fecha_control,dbo.V_PersonasDirecciones.Codigo_chep, Alb_venta.Tarifa,Alb_venta.Tarifa_iva_incluido, Alb_venta.Id_filtro
						 ,dbo.Alb_venta.Fk_cierre_caja,dbo.Alb_venta.Fk_doc_transporte
						  ,dbo.Hoja_carga_cabecera.Fk_destinatario,CONSIG.NombreCompleto as Nombre_destinatario,DC.Descripcion AS Dir_consig_desc, DC.Via_publica AS Dir_consig_via, DC.Direccion AS Dir_consig_envio, 
						 DC.Codigo_postal AS Dir_consig_cp, DC.Municipio AS Dir_consig_municipio, DC.Comarca AS Dir_consig_comarca, DC.Provincia AS Dir_consig_provincia, DC.Pais AS Dir_consig_pais, DC.Cae AS Dir_consig_cae,
						  DC.Warehouse AS Dir_consig_warehouse, DC.Rc AS Dir_consig_rc
						  ,dbo.Alb_venta.Codigo_ropo,dbo.Alb_venta.num_carnet_aplicador, dbo.Alb_venta.Dni_propietario_carnet_aplicador, dbo.Alb_venta.Nombre_cliente AS Alb_Nombre_cliente, dbo.Alb_venta.Identificacion_cliente AS Alb_Identificacion_cliente
						  , dbo.Alb_venta.Municipio AS Alb_Municipio, dbo.Alb_venta.Codigo_postal AS Alb_Codigo_postal, dbo.Alb_venta.Provincia AS Alb_Provincia, dbo.Alb_venta.Pais AS Alb_Pais,dbo.Alb_venta.Telefono AS Alb_Telefono
						  ,dbo.Alb_venta.Fecha_integracion, dbo.V_PersonasDirecciones.email AS Dir_envio_mail
						  , Alb_venta.Direccion_completa, Alb_venta.Municipio, Alb_venta.Codigo_postal, Alb_venta.Pais, Alb_venta.Telefono, Alb_venta.email
FROM            dbo.Divisas RIGHT OUTER JOIN
						 dbo.Series_albaranes_venta RIGHT OUTER JOIN
						 dbo.Motivos_devolucion RIGHT OUTER JOIN
						 dbo.Portes RIGHT OUTER JOIN
						 dbo.Incoterm RIGHT OUTER JOIN
						 dbo.Alb_venta LEFT OUTER JOIN
						 dbo.Hoja_carga_cabecera ON dbo.Alb_venta.Fk_hoja_carga_cabecera = dbo.Hoja_carga_cabecera.Id ON dbo.Incoterm.Codigo = dbo.Alb_venta.Fk_incoterm ON 
						 dbo.Portes.Codigo = dbo.Alb_venta.Porte LEFT OUTER JOIN
						 dbo.Centros ON dbo.Alb_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Alb_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Cuentas_banco_empresa ON dbo.Alb_venta.Fk_cuenta_banco_empresa = dbo.Cuentas_banco_empresa.Codigo ON dbo.Motivos_devolucion.Codigo = dbo.Alb_venta.Fk_mot_devolucion ON 
						 dbo.Series_albaranes_venta.Serie = dbo.Alb_venta.Serie LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones ON dbo.Alb_venta.Codigo_direccion_envio = dbo.V_PersonasDirecciones.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_1 ON dbo.Alb_venta.Representante2 = V_Personas_1.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_3 ON dbo.Alb_venta.Representante1 = V_Personas_3.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_2 ON dbo.Alb_venta.Codigo_transportista = V_Personas_2.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Alb_venta.Codigo_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
						 dbo.Cargas_descargas CD ON dbo.Alb_venta.Fk_carga_descarga=CD.Id LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS V_PersonasDirecciones_1 ON dbo.Alb_venta.Codigo_direccion_fiscal = V_PersonasDirecciones_1.Codigo LEFT OUTER JOIN						 
						 dbo.V_Personas AS CONSIG ON dbo.Alb_venta.Fk_destinatario = CONSIG.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS DC ON dbo.Alb_venta.Fk_direccion_destinatario = DC.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Alb_venta.Forma_pago = dbo.Formas_de_pago.Codigo ON dbo.Divisas.Codigo = dbo.Alb_venta.Divisa LEFT OUTER JOIN
							 (SELECT        dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero, SUM(dbo.Alb_venta_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Alb_venta_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Alb_venta_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Alb_venta_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Alb_venta_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Alb_venta_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Alb_venta_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Alb_venta_lineas.Importe_dto2) 
														 AS Importe_dto2, SUM(dbo.Alb_venta_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Alb_venta_lineas.Importe_comision2) AS Importe_comision2, 
														 SUM(dbo.Alb_venta_lineas.Importe_base) AS Importe_base, SUM(dbo.Alb_venta_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Alb_venta_lineas.Importe_recargo) AS Importe_recargo, 
														 CASE WHEN SUM(dbo.V_DocLinEstadosAlbVenta.Pendiente) = COUNT(dbo.V_DocLinEstadosAlbVenta.Linea) THEN 0 WHEN SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoTotal) 
														 = COUNT(dbo.V_DocLinEstadosAlbVenta.Linea) THEN 1 WHEN SUM(dbo.V_DocLinEstadosAlbVenta.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosAlbVenta.Linea) 
														 THEN 3 WHEN SUM(dbo.V_DocLinEstadosAlbVenta.Pendiente) + SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoParcial) 
														 = COUNT(dbo.V_DocLinEstadosAlbVenta.Linea) THEN 2 WHEN SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosAlbVenta.AnuladoTotal) 
														 + SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosAlbVenta.Linea) THEN 4 WHEN (SUM(dbo.V_DocLinEstadosAlbVenta.Pendiente) 
														 + SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoParcial)) > 0 AND (SUM(dbo.V_DocLinEstadosAlbVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosAlbVenta.AsociadoAnuladoTotal)) 
														 > 0 THEN 5 ELSE 6 END AS Estado_asociado, SUM(dbo.Alb_venta_lineas.Importe_irpf) AS Importe_irpf, CAST(CASE WHEN SUM(CASE WHEN ISNULL(dbo.Articulos.Fito_registro, '''') 
														 <> '''' THEN 1 ELSE 0 END) >= 1 THEN 1 ELSE 0 END AS bit) AS HayFitosanitarios, CAST(CASE WHEN SUM(CASE WHEN ISNULL(dbo.Cat_fitosanitarios.Carnet_aplicador, '''') <> '''' THEN 1 ELSE 0 END)
														  >= 1 THEN 1 ELSE 0 END AS bit) AS NecesitaCarnetFito
							   FROM            dbo.Alb_venta_lineas LEFT OUTER JOIN
														 dbo.V_DocLinEstadosAlbVenta ON dbo.Alb_venta_lineas.Id = dbo.V_DocLinEstadosAlbVenta.Id INNER JOIN
														 dbo.Articulos ON dbo.Alb_venta_lineas.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
														 dbo.Cat_fitosanitarios ON dbo.Articulos.Fito_categoria = dbo.Cat_fitosanitarios.Codigo
							   GROUP BY dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero) AS A ON dbo.Alb_venta.Serie = A.Serie AND dbo.Alb_venta.Numero = A.Numero
							    LEFT OUTER JOIN
                             (SELECT        FINAL.Persona, FINAL.Codigo_grupo, FINAL.Descripcion
                               FROM            (SELECT        PG.Codigo_persona AS Persona, PG.Codigo_grupo, G.Descripcion, ROW_NUMBER() OVER (PARTITION BY PG.Codigo_persona
                                                         ORDER BY PG.Codigo_persona) AS Rown
                               FROM            Personas_agrupaciones PG INNER JOIN
                                                         Personas_grupos G ON PG.Codigo_grupo = G.Codigo
                               WHERE        ISNULL(G.Resumen_tpv, 0) = 1) AS FINAL
								WHERE        Rown = 1) AS GRUPO_HABITUAL ON V_Personas.Codigo = GRUPO_HABITUAL.Persona
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Previsiones]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Previsiones]
							AS				
							SELECT   CASE WHEN  dbo.Previsiones.Compra_venta=0 THEN ''VENTA'' ELSE ''COMPRA'' END as Desc_compra_venta,dbo.Previsiones.Compra_venta,ISNULL(dbo.Previsiones.Serie, '''') AS Serie, ISNULL(dbo.Previsiones.Numero, 0) AS Numero, dbo.Previsiones.Fecha_hora, dbo.Previsiones.Fecha_hora_real, CONVERT(date, dbo.Previsiones.Fecha_hora, 103) AS Fecha, 
						 CONVERT(varchar, dbo.Previsiones.Fecha_hora, 108) AS Hora, dbo.Previsiones.Codigo_cliente,dbo.Previsiones.Representante1, dbo.Previsiones.Notas_factura,
						 dbo.Previsiones.Representante2,dbo.Previsiones.Bloqueo,dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_3.NombreCompleto AS Nombre_representante1, 
						 V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Previsiones.Total_factura, dbo.V_Personas.Tipo_identificacion AS Tipo_identificacion_cliente, dbo.Previsiones.Campo_filtro,
						 dbo.V_Personas.Identificacion AS Identificacion_cliente, 
						 dbo.V_Personas.Nuestro_cod_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_previsiones.Descripcion AS Desc_serie, 
						 dbo.Previsiones.Fk_centro,A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, dbo.V_Personas.Iban_cliente
FROM                     dbo.Series_previsiones RIGHT OUTER JOIN
						 dbo.Previsiones ON dbo.Series_previsiones.Serie=Previsiones.Serie LEFT OUTER JOIN
						 dbo.Centros ON dbo.Previsiones.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN                         
						 dbo.V_Personas AS V_Personas_1 ON dbo.Previsiones.Representante2 = V_Personas_1.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_3 ON dbo.Previsiones.Representante1 = V_Personas_3.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Previsiones.Codigo_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
							 (SELECT        dbo.Previsiones_lineas.Serie, dbo.Previsiones_lineas.Numero, SUM(dbo.Previsiones_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Previsiones_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Previsiones_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Previsiones_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Previsiones_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Previsiones_lineas.Importe_bruto) AS Importe_bruto,
														 SUM(dbo.Previsiones_lineas.Importe_base) AS Importe_base
							   FROM            dbo.Previsiones_lineas GROUP BY dbo.Previsiones_lineas.Serie, dbo.Previsiones_lineas.Numero) AS A ON dbo.Previsiones.Serie = A.Serie AND dbo.Previsiones.Numero = A.Numero'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PrevisionesLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PrevisionesLineas]
							AS				
							SELECT        dbo.V_Previsiones.Compra_venta, dbo.V_Previsiones.Desc_compra_venta, dbo.V_Previsiones.Serie, dbo.V_Previsiones.Numero, dbo.V_Previsiones.Fecha_hora_real, dbo.V_Previsiones.Fecha, 
						 dbo.V_Previsiones.Hora, dbo.V_Previsiones.Codigo_cliente, dbo.V_Previsiones.Nombre_cliente, dbo.V_Previsiones.Representante1, dbo.V_Previsiones.Nombre_representante1, dbo.V_Previsiones.Campo_filtro,
						 dbo.V_Previsiones.Representante2, dbo.V_Previsiones.Nombre_representante2, dbo.V_Previsiones.Tipo_identificacion_cliente, dbo.V_Previsiones.Identificacion_cliente, dbo.V_Previsiones.Nuestro_cod_cliente, 
						 dbo.V_Previsiones.Fk_centro, dbo.V_Previsiones.Desc_centro, dbo.V_Previsiones.Desc_serie, dbo.V_Previsiones.Iban_cliente, dbo.Previsiones_lineas.Id, dbo.Previsiones_lineas.Linea, 
						 dbo.Previsiones_lineas.Fk_articulo, dbo.Previsiones_lineas.Articulo_descripcion, dbo.Previsiones_lineas.Precio_coste_articulo, dbo.Previsiones_lineas.Precio_bruto, dbo.Previsiones_lineas.Precio_neto, 
						 dbo.Previsiones_lineas.Bultos, dbo.Previsiones_lineas.Cantidad, dbo.Previsiones_lineas.Importe_bruto, dbo.Previsiones_lineas.Importe_base, dbo.Previsiones_lineas.Observaciones, 
						 dbo.Previsiones_lineas.Orden, dbo.Previsiones_lineas.PVP, dbo.Previsiones_lineas.Importe_neto, dbo.Previsiones_lineas.Fk_cuenta_contable, 
						 dbo.Asientos_cuentas_contables.Descripcion AS Desc_cuenta_contable,dbo.Previsiones_lineas.Añada
						 ,dbo.V_articulosNombre.Fk_articulo_agrupacion,dbo.V_articulosNombre.Desc_articulo_agrupacion,dbo.V_articulosNombre.Desc_do,dbo.V_articulosNombre.fk_do
						 ,dbo.V_ArticulosNombre.No_incluir_pesos_listados,dbo.V_ArticulosNombre.Capacidad,dbo.V_ArticulosNombre.Peso_neto,dbo.Previsiones_lineas.Fk_persona,PER.NombreCompleto
FROM            dbo.V_Previsiones LEFT OUTER JOIN
						 dbo.Previsiones_lineas ON dbo.V_Previsiones.Serie = dbo.Previsiones_lineas.Serie AND dbo.V_Previsiones.Numero = dbo.Previsiones_lineas.Numero LEFT OUTER JOIN
						 dbo.Asientos_cuentas_contables ON dbo.Previsiones_lineas.Fk_cuenta_contable = dbo.Asientos_cuentas_contables.Codigo
						 INNER JOIN dbo.V_ArticulosNombre ON dbo.Previsiones_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo
						 LEFT OUTER JOIN V_PersonasSoloNombre PER ON dbo.Previsiones_lineas.Fk_persona=PER.codigo
						 '
							GO
							
						IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Gtin13]'))
						EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Gtin13]
						AS
						select * from (SELECT  ROW_NUMBER() OVER(PARTITION BY Fk_articulo ORDER BY Codigo DESC ) AS r , Fk_articulo,Codigo as GTIN13
													FROM Articulos_codigos_barras WHERE Tipo_codigo=1 ) as r where r.r=1
						'
						GO
						IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Gtin14]'))
						EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Gtin14]
						AS
						select * from (SELECT  ROW_NUMBER() OVER(PARTITION BY Fk_articulo ORDER BY Codigo DESC ) AS r , Fk_articulo,Codigo as GTIN14
													FROM Articulos_codigos_barras WHERE Tipo_codigo=2 ) as r where r.r=1
						'
						GO
						IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineas]'))
						EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaLineas]
						AS
						SELECT        dbo.Alb_venta.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Alb_venta_lineas.Id, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero,dbo.Alb_venta.Bascula, CONVERT(date, dbo.Alb_venta.Fecha_hora, 103) AS Fecha, 
                         CONVERT(varchar, dbo.Alb_venta.Fecha_hora, 108) AS Hora, dbo.Alb_venta.Codigo_cliente, dbo.V_Personas.NombreCompleto, dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, 
                         dbo.Alb_venta_lineas.Articulo_descripcion, dbo.Alb_venta_lineas.Precio_tarifa, dbo.Alb_venta_lineas.Precio_con_dtos_linea, dbo.Alb_venta_lineas.No_inventariable, dbo.Alb_venta_lineas.Fk_articulo_kit, 
                         dbo.Alb_venta_lineas.Linea_kit, dbo.Alb_venta_lineas.Precio_coste_articulo, dbo.Alb_venta_lineas.Precio_bruto, dbo.Alb_venta_lineas.Precio_neto, dbo.Alb_venta_lineas.Bultos, dbo.Alb_venta_lineas.Cantidad, 
                         dbo.Alb_venta_lineas.Importe_bruto, dbo.Alb_venta_lineas.Imp_dto_pp, dbo.Alb_venta_lineas.Imp_dto_esp, dbo.Alb_venta_lineas.Tipo_calculo_dto1, dbo.Alb_venta_lineas.Valor_dto1, dbo.Alb_venta_lineas.Importe_dto1, 
                         dbo.Alb_venta_lineas.Tipo_calculo_dto2, dbo.Alb_venta_lineas.Aplicacion_dto2, dbo.Alb_venta_lineas.Valor_dto2, dbo.Alb_venta_lineas.Importe_dto2, dbo.Alb_venta_lineas.Tipo_calculo_comisiones, 
                         dbo.Alb_venta_lineas.Valor_comision1, dbo.Alb_venta_lineas.Importe_comision1, dbo.Alb_venta_lineas.Valor_comision2, dbo.Alb_venta_lineas.Importe_comision2, dbo.Alb_venta_lineas.Importe_base, dbo.Alb_venta_lineas.Importe_base_incrementado, 
                         dbo.Alb_venta_lineas.Valor_iva, dbo.Alb_venta_lineas.Importe_iva, dbo.Alb_venta_lineas.Valor_recargo, dbo.Alb_venta_lineas.Importe_recargo, dbo.Alb_venta_lineas.Valor_irpf, dbo.Alb_venta_lineas.Importe_irpf, 
                         dbo.Alb_venta_lineas.Importe_otros_impuestos, dbo.Alb_venta_lineas.Importe_total_linea, dbo.Alb_venta_lineas.Centro_analitico1, dbo.Alb_venta_lineas.Centro_analitico2, dbo.Alb_venta_lineas.Codigo_iva, 
                         dbo.Alb_venta_lineas.Aplicacion_irpf, dbo.Alb_venta_lineas.Tipo_doc_asociado, dbo.Alb_venta_lineas.Serie_doc_asociado, dbo.Alb_venta_lineas.Numero_doc_asociado, dbo.Alb_venta_lineas.Id_doc_asociado, 
                         dbo.Alb_venta_lineas.Cantidad_anulada, dbo.Alb_venta_lineas.Anular_restante, dbo.Alb_venta_lineas.Observaciones, dbo.Alb_venta_lineas.Observaciones_internas, dbo.Alb_venta_lineas.Orden, dbo.Alb_venta_lineas.Fk_cuenta_contable, dbo.Alb_venta_lineas.Peso_bruto, 
                         dbo.Alb_venta_lineas.Peso_neto, dbo.Alb_venta_lineas.Descripcion_dto1, dbo.Alb_venta_lineas.Descripcion_dto2, dbo.Alb_venta_lineas.Promocion, dbo.Alb_venta_lineas.PVP, 
                         dbo.Alb_venta_lineas.Importe_impuestos_incluidos, dbo.Alb_venta_lineas.Importe_neto, dbo.Alb_venta_lineas.Fk_expediente, dbo.Alb_venta_lineas.Serie_expediente, dbo.V_ArticulosNombre.Tipo_articulo_libros, 
                         dbo.Alb_venta_lineas.Numero_expediente, dbo.Alb_venta_lineas.Tarifa_iva_incluido, dbo.V_ArticulosNombre.Aux_codigo, dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, 
                         dbo.V_ArticulosNombre.Capacidad, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_art_agrupacion, dbo.V_DocLinAsociados.Su_referencia_cabecera AS Su_referencia_doc_asociado, 
                         dbo.V_DocLinAsociados.Fecha_hora AS Fecha_doc_asociado, dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Fito_registro, dbo.V_ArticulosNombre.Fk_codigo_arancelario, 
                         dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, dbo.V_ArticulosNombre.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.V_ArticulosNombre.Grado_alcoholico, 
                         ADI.Traduccion AS Desc_articulo_traduccion, ARP.Ref_articulo_persona, ARP.Desc_ref_articulo_persona, dbo.Unidades.Descripcion_breve AS Desc_unidad_breve, CASE WHEN ISNULL(dbo.V_ArticulosNombre.Fito_registro, '''') 
                         <> '''' THEN 1 ELSE 0 END AS EsFitosanitario, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.fk_do, dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, dbo.V_ArticulosNombre.Tags AS Tags_articulo, 
                         dbo.V_Personas.Cliente_interno, dbo.V_ArticulosNombre.Tipo_formato,dbo.Alb_venta.Remesado_bbva,
                         CASE WHEN dbo.Alb_venta_lineas.Cantidad_por_bulto IS NOT NULL THEN dbo.Alb_venta_lineas.Cantidad_por_bulto ELSE dbo.V_ArticulosNombre.Cantidad_por_bulto END AS Cantidad_por_bulto, 
                         dbo.V_ArticulosNombre.No_imprimir_caducidad_docs,dbo.V_ArticulosNombre.No_mostrar_añada_en_docs, LIB.Fk_tipo_movimiento AS Libro_tipo_mov, LIB.Fk_movimiento AS Libro_num_mov, LIB.Linea AS Libro_linea_mov, LIB.Id AS Libro_Id, dbo.Alb_venta_lineas.Cantidad2, 
                         dbo.Alb_venta_lineas.Precio2, dbo.Alb_venta.Tpv, dbo.Alb_venta.Representante1, dbo.Alb_venta.Representante2, dbo.Alb_venta.Forma_pago, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo_original, 
                         dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.Alb_venta_lineas.Remesa_gasoil, dbo.Alb_venta.Su_referencia AS Su_ref_cabecera, CASE WHEN ESTADOS.AsociadoAnuladoTotal = 1 AND 
                         Pendiente = 1 THEN 5 WHEN ESTADOS.Pendiente = 1 THEN 0 WHEN ESTADOS.AsociadoTotal = 1 THEN 1 WHEN ESTADOS.AnuladoTotal = 1 THEN 3 WHEN ESTADOS.AsociadoParcial = 1 THEN 2 WHEN ESTADOS.AsociadoAnuladoTotal
                          = 1 THEN 4 ELSE 6 END AS Estado_asociado,dbo.Alb_venta.Autoconsumo,dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo,ARTAUTOCONSUMO.Descripcion as Desc_art_agrup_autoconsumo
						  ,CAST(dbo.Alb_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad,0) AS Decimal(15,2)) AS Cantidad_litros
						  ,CAST(dbo.Alb_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 0) AS decimal(15, 3)) AS Cantidad_Kg
						  ,dbo.Alb_venta.Fecha_control, VPD.Codigo_chep, dbo.V_ArticulosNombre.Clasificacion_ECO,dbo.V_ArticulosNombre.Desc_clasificacion_Eco
						  , ISNULL(dbo.V_ArticulosNombre.No_imprimir_cant_precios_componentes,ARTCOMP.No_imprimir_cant_precios_componentes) as  No_imprimir_cant_precios_componentes
						  , ISNULL(dbo.V_ArticulosNombre.No_imprimir_componentes,ARTCOMP.No_imprimir_componentes) as  No_imprimir_componentes
						  ,dbo.Alb_venta.Matricula,dbo.Alb_venta.Codigo_transportista,TRANSPORTISTA.NombreCompleto as Nombre_transportista, VPD.Pais AS PaisEnv, ISNULL(V_Personas.Desc_pais, V_Personas.Fk_pais) as Pais
						  ,V_Gtin13.GTIN13,V_Gtin14.GTIN14,DATEDIFF(day, PV.Fecha_hora,dbo.Alb_venta.Fecha_hora) as Dias_pedido_albaran
						  ,dbo.V_ArticulosNombre.No_incluir_packing_list,CASE WHEN dbo.Alb_venta_lineas.Precio_tarifa IS NOT NULL THEN dbo.Alb_venta_lineas.Precio_bruto-dbo.Alb_venta_lineas.Precio_tarifa ELSE NULL END as Dif_precio_tarifa
						  ,CAST(ISNULL(dbo.Alb_venta_lineas.Cantidad,0)*ISNULL(dbo.V_ArticulosNombre.Capacidad,0) as decimal(15,3)) as ContenidoNeto,dbo.V_ArticulosNombre.Texto_alb_fac
						  ,dbo.V_ArticulosNombre.Fk_proveedor_habitual,dbo.V_ArticulosNombre.NomProveedorHabitual,dbo.V_ArticulosNombre.Ref_articulo_proveedor,dbo.V_ArticulosNombre.Desc_ref_articulo_proveedor
						  , Alb_venta.Identificacion_cliente AS Alb_Identificacion_cliente
						FROM            dbo.Alb_venta_lineas LEFT OUTER JOIN
                         dbo.Alb_venta ON dbo.Alb_venta_lineas.Serie = dbo.Alb_venta.Serie AND dbo.Alb_venta_lineas.Numero = dbo.Alb_venta.Numero LEFT OUTER JOIN						 
						 dbo.V_PersonasDirecciones AS VPD ON dbo.Alb_venta.Codigo_direccion_envio = VPD.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Alb_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = dbo.Alb_venta.Codigo_cliente LEFT OUTER JOIN
						 dbo.V_Personas AS TRANSPORTISTA ON dbo.Alb_venta.Codigo_transportista=TRANSPORTISTA.Codigo LEFT OUTER JOIN
                         dbo.Articulos_desc_idioma AS ADI ON ADI.Fk_articulo = dbo.Alb_venta_lineas.Fk_articulo AND ADI.Fk_idioma = dbo.V_Personas.Fk_idioma LEFT OUTER JOIN
                         dbo.Articulos_referencia_persona AS ARP ON ARP.Fk_persona = dbo.V_Personas.Codigo AND ARP.Fk_articulo = dbo.Alb_venta_lineas.Fk_articulo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN 
						 dbo.Articulos AS ARTCOMP ON dbo.Alb_venta_lineas.Fk_articulo_kit = ARTCOMP.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
						  dbo.V_ArticulosSoloNombre AS ARTAUTOCONSUMO ON dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo = ARTAUTOCONSUMO.Codigo LEFT OUTER JOIN
                         dbo.V_DocLinAsociados ON dbo.Alb_venta_lineas.Id_doc_asociado = dbo.V_DocLinAsociados.Id LEFT OUTER JOIN
                         dbo.Libros_color ON dbo.V_ArticulosNombre.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
                         dbo.Unidades ON dbo.V_ArticulosNombre.Fk_unidad_salida = dbo.Unidades.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo LEFT OUTER JOIN
                         dbo.V_LibrosMovimientos AS LIB ON LIB.SerieTipoDoc_asociado = ''AV'' AND LIB.Serie_doc_asociado = dbo.Alb_venta_lineas.Serie AND LIB.Numero_doc_asociado = dbo.Alb_venta_lineas.Numero AND 
                         LIB.Linea_doc_asociado = dbo.Alb_venta_lineas.Linea LEFT OUTER JOIN
                         dbo.V_DocLinEstadosAlbVenta AS ESTADOS ON dbo.Alb_venta_lineas.Id = ESTADOS.Id
						 LEFT OUTER JOIN V_Gtin13 ON V_Gtin13.Fk_articulo=dbo.Alb_venta_lineas.Fk_articulo
						 LEFT OUTER JOIN V_Gtin14 ON V_Gtin14.Fk_articulo=dbo.Alb_venta_lineas.Fk_articulo
						 LEFT OUTER JOIN Ped_venta_lineas PVL ON dbo.Alb_venta_lineas.Id_doc_asociado=PVL.Id
						 LEFT OUTER JOIN Ped_venta PV ON  PV.Serie=PVL.Serie AND PV.Numero=PVL.Numero
							'
							GO


							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasLotes]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaLineasLotes]
							AS
							SELECT     dbo.Alb_venta_lineas_lotes.Id, dbo.Alb_venta_lineas_lotes.fk_Id_linea, dbo.Alb_venta_lineas_lotes.Almacen, dbo.Alb_venta_lineas_lotes.Lote,
							dbo.Alb_venta_lineas_lotes.Lote_etiqueta, dbo.Alb_venta_lineas_lotes.Precio_coste_lote, dbo.Alb_venta_lineas_lotes.Cantidad,
							dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero,dbo.Lotes.Añada,dbo.Lotes.Fecha_caducidad,dbo.Lotes.Fecha_consumo_preferente
							,dbo.Lotes.Grado,dbo.Lotes.Grado_oficial,dbo.Lotes.Fecha_lote as Fecha_alta,dbo.Lotes.Km0
							FROM         dbo.Alb_venta_lineas_lotes LEFT OUTER JOIN
							dbo.Alb_venta_lineas ON dbo.Alb_venta_lineas_lotes.fk_Id_linea = dbo.Alb_venta_lineas.Id LEFT OUTER JOIN
							dbo.Almacenes ON dbo.Alb_venta_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
							dbo.Lotes ON dbo.Alb_venta_lineas.Fk_articulo=dbo.Lotes.Fk_articulo AND dbo.Alb_venta_lineas_lotes.Lote=dbo.Lotes.Lote

							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaLineasImpuestos]
							AS
							SELECT     dbo.Alb_venta_lineas_impuestos.Id, dbo.Alb_venta_lineas_impuestos.fk_Id_linea, dbo.Alb_venta_lineas_impuestos.Codigo_impuesto,
							dbo.Alb_venta_lineas_impuestos.Cantidad, dbo.Alb_venta_lineas_impuestos.Tipo_valor, dbo.Alb_venta_lineas_impuestos.Valor_impuesto,
							dbo.Alb_venta_lineas_impuestos.Importe_base, dbo.Alb_venta_lineas_impuestos.Codigo_iva, dbo.Alb_venta_lineas_impuestos.Valor_iva,
							dbo.Alb_venta_lineas_impuestos.Importe_iva, dbo.Alb_venta_lineas_impuestos.Valor_recargo, dbo.Alb_venta_lineas_impuestos.Importe_recargo,
							dbo.Alb_venta_lineas_impuestos.Valor_irpf, dbo.Alb_venta_lineas_impuestos.Importe_irpf, dbo.Alb_venta_lineas_impuestos.Aplicacion_irpf,
							dbo.Alb_venta_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero
							FROM         dbo.Alb_venta_lineas RIGHT OUTER JOIN
							dbo.Alb_venta_lineas_impuestos ON dbo.Alb_venta_lineas.Id = dbo.Alb_venta_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
							dbo.Impuestos_tipos RIGHT OUTER JOIN
							dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Alb_venta_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[AlbaranesVentaLineasIvasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [AlbaranesVentaLineasIvasImpuestos]
							AS
							SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva,
							SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf,
							SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
							FROM         dbo.Alb_venta_lineas AS iva
							GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AlbaranesVentaLineasRepartos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AlbaranesVentaLineasRepartos]
							AS SELECT        dbo.AlbaranesVentaLineas.*,dbo.Alb_venta_repartos.id AS Id_reparto,dbo.Alb_venta_repartos.fk_codigo_reparto AS Fk_codigo_reparto, dbo.Alb_venta_repartos.importe AS ImporteReparto,
							dbo.Asientos_codigos_reparto.descripcion AS Desc_reparto, dbo.Asientos_codigos_reparto.fk_tipo_reparto AS Fk_tipo_reparto,
							dbo.Asientos_tipo_reparto.descripcion AS Desc_tipo_reparto, dbo.Asientos_codigos_reparto.Codigo_datisa
							FROM            dbo.AlbaranesVentaLineas LEFT OUTER JOIN
							dbo.Alb_venta_repartos ON dbo.AlbaranesVentaLineas.Id = dbo.Alb_venta_repartos.fk_linea LEFT OUTER JOIN
							dbo.Asientos_codigos_reparto ON dbo.Alb_venta_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
							dbo.Asientos_tipo_reparto ON dbo.Asientos_codigos_reparto.fk_tipo_reparto = dbo.Asientos_tipo_reparto.codigo'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaImpuestos]
							AS
							SELECT     dbo.Ped_venta_impuestos.Id, dbo.Ped_venta_impuestos.Serie, dbo.Ped_venta_impuestos.Numero, dbo.Ped_venta_impuestos.Codigo_impuesto,
							dbo.Ped_venta_impuestos.Importe_base, dbo.Ped_venta_impuestos.Valor_iva, dbo.Ped_venta_impuestos.Importe_iva,
							dbo.Ped_venta_impuestos.Valor_recargo, dbo.Ped_venta_impuestos.Importe_recargo, dbo.Ped_venta_impuestos.Valor_irpf,
							dbo.Ped_venta_impuestos.Importe_irpf, dbo.Ped_venta_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
							FROM         dbo.Ped_venta_impuestos INNER JOIN
							dbo.Impuestos ON dbo.Ped_venta_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
							dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaIvas]
							AS
							SELECT     dbo.Ped_venta_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Ped_venta_ivas INNER JOIN
							dbo.Ivas ON dbo.Ped_venta_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVenta]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVenta]
							AS
							SELECT      dbo.Ped_venta.Id,  ISNULL(dbo.Ped_venta.Serie, '''') AS Serie, ISNULL(dbo.Ped_venta.Numero, 0) AS Numero,dbo.Series_pedidos_venta.Titulo_report, dbo.Ped_venta.Leido, dbo.Ped_venta.Fecha_produccion, dbo.Ped_venta.Fecha_hora, dbo.Ped_venta.Fk_empresa, CONVERT(date, dbo.Ped_venta.Fecha_hora, 103) AS Fecha, 
						 CONVERT(varchar, dbo.Ped_venta.Fecha_hora, 108) AS Hora, dbo.Ped_venta.Fecha_hora_real, dbo.Ped_venta.Codigo_cliente, dbo.Ped_venta.Divisa, dbo.Ped_venta.Forma_pago, dbo.Ped_venta.Forma_envio, 
						 dbo.Ped_venta.Desc_incoterm_extension, dbo.Ped_venta.Horario_entrega, dbo.Ped_venta.Fecha_recogida, dbo.Ped_venta.Fecha_limite_entrega, dbo.Ped_venta.Fecha_entrega_concreta, 
						 dbo.Ped_venta.Dias_entrega, dbo.Ped_venta.Dia_pago1, dbo.Ped_venta.Dia_pago2, dbo.Ped_venta.Dia_pago3, dbo.Ped_venta.Codigo_direccion_fiscal, dbo.Ped_venta.Codigo_direccion_envio, 
						 dbo.Ped_venta.Codigo_transportista, dbo.Ped_venta.Representante1, dbo.Ped_venta.Representante2, dbo.Ped_venta.Dto_pp, dbo.Ped_venta.Dto_esp, dbo.Ped_venta.Su_referencia, 
						 dbo.Ped_venta.Notas_internas, dbo.Ped_venta.Notas_factura, dbo.Ped_venta.Bloqueo, V_PersonasDirecciones_1.Descripcion AS Dir_fiscal_desc, V_PersonasDirecciones_1.Via_publica AS Dir_fiscal_via, 
						 V_PersonasDirecciones_1.Direccion AS Dir_fiscal_direccion, V_PersonasDirecciones_1.Numero AS Dir_fiscal_numero, V_PersonasDirecciones_1.Piso AS Dir_fiscal_piso, 
						 V_PersonasDirecciones_1.Puerta AS Dir_fiscal_puerta, V_PersonasDirecciones_1.Municipio AS Dir_fiscal_municipio, V_PersonasDirecciones_1.Codigo_postal AS Dir_fiscal_cp, 
						 V_PersonasDirecciones_1.Comarca AS Dir_fiscal_comarca, V_PersonasDirecciones_1.Provincia AS Dir_fiscal_provincia, V_PersonasDirecciones_1.Pais AS Dir_fiscal_pais,
						 V_PersonasDirecciones_1.Cae AS Dir_fiscal_cae, V_PersonasDirecciones_1.Warehouse AS Dir_fiscal_warehouse, V_PersonasDirecciones_1.Rc AS Dir_fiscal_rc, 
						 dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Ped_venta.Matricula, 
						 dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, 
						 V_Personas_1.NombreCompleto AS Nombre_representante2,V_Personas_4.NombreCompleto as Nombre_consignatario, dbo.Ped_venta.Total_factura, dbo.V_Personas.Tipo_identificacion AS Tipo_identificacion_cliente, 
						 dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.V_PersonasDirecciones.Descripcion AS Dir_envio_desc, dbo.V_PersonasDirecciones.Via_publica AS Dir_envio_via, 
						 dbo.V_PersonasDirecciones.Direccion AS Direccion_envio, dbo.V_PersonasDirecciones.Numero AS Dir_envio_numero, dbo.V_PersonasDirecciones.Piso AS Dir_envio_piso, 
						 dbo.V_PersonasDirecciones.Puerta AS Dir_envio_puerta, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_envio_cp, dbo.V_PersonasDirecciones.Municipio AS Dir_envio_municipio, 
						 dbo.V_PersonasDirecciones.Comarca AS Dir_envio_comarca, dbo.V_PersonasDirecciones.Provincia AS Dir_envio_provincia, dbo.V_PersonasDirecciones.Pais AS Dir_envio_pais,dbo.V_PersonasDirecciones.Telefono AS Dir_envio_telefono, 
						 dbo.V_PersonasDirecciones.Warehouse AS Dir_envio_warehouse, dbo.V_PersonasDirecciones.Rc AS Dir_envio_rc, dbo.V_PersonasDirecciones.Cae AS Dir_envio_cae, dbo.V_Personas.Nuestro_cod_cliente, 
						 dbo.V_Personas.Tipo_impresion_documentos, dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_pedidos_venta.Descripcion AS Desc_serie, dbo.Ped_venta.Fk_centro, 
						 dbo.Portes.Descripcion AS Desc_portes, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.Ped_venta.Porte, dbo.Ped_venta.Cae, dbo.Ped_venta.Fk_incoterm, dbo.Ped_venta.Peso_bruto, 
						 dbo.Ped_venta.Peso_neto, dbo.Cuentas_banco_empresa.Iban AS Iban_empresa, dbo.Ped_venta.Fecha_prevista_entrega, dbo.Ped_venta.Valorado, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto,
						  A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_carga, A.Estado_asociado, 
						 dbo.Entidades_bancarias.Descripcion AS Desc_banco_empresa, dbo.Formas_de_pago.Recoger_banco_cliente,dbo.Formas_de_pago.Recoger_banco_empresa, dbo.V_Personas.Iban_cliente, dbo.V_Personas.Entidad_bh_cliente, 
						 dbo.V_Personas.Desc_entidad_bh_cliente, dbo.V_Personas.Dir_entidad_bh_cliente, dbo.V_Personas.Mostrar_grado_documentos, dbo.V_Personas.Mostrar_añada_documentos,dbo.V_Personas.Mostrar_fecha_cad_documentos, dbo.V_Personas.Nuestro_cod_proveedor,
						DC.Descripcion AS Dir_consig_desc,DC.Via_publica AS Dir_consig_via, dbo.Ped_venta.Prioridad,
						 DC.Direccion AS Dir_consig_envio, DC.Codigo_postal AS Dir_consig_cp, DC.Municipio AS Dir_consig_municipio, 
						 DC.Comarca AS Dir_consig_comarca, DC.Provincia AS Dir_consig_provincia, DC.Pais AS Dir_consig_pais,
						 DC.Cae AS Dir_consig_cae, DC.Warehouse AS Dir_consig_warehouse, DC.Rc AS Dir_consig_rc,dbo.Ped_venta.Total_pales,dbo.Ped_venta.Total_bultos,dbo.Ped_venta.Total_cantidad,
						 dbo.Divisas.Decimales_precio, dbo.Divisas.Decimales_importes, dbo.Divisas.Decimales_total_doc,dbo.Ped_venta.Numero_EMCS, dbo.Ped_venta.Recogida_cliente, dbo.Ped_venta.Fecha_modificacion, dbo.Ped_venta.Usuario_modificacion, 
                         dbo.V_Personas.Idioma_reportes,Acta_m_observaciones,Acta_m_rep_vendedor,Acta_m_rep_comprador,Acta_m_fecha,Conductor_nombre,Conductor_dni
						 ,dbo.V_Personas.No_mostrar_lotes,dbo.Ped_venta.Persona_contacto,dbo.Ped_venta.Usuario_creacion, dbo.Ped_venta.Fecha_creacion, dbo.V_PersonasDirecciones.email AS Dir_envio_mail
						 ,dbo.V_Personas.No_facturar
FROM            dbo.Incoterm RIGHT OUTER JOIN
						 dbo.Cuentas_banco_empresa LEFT OUTER JOIN
						 dbo.Entidades_bancarias ON dbo.Cuentas_banco_empresa.Entidad = dbo.Entidades_bancarias.Codigo RIGHT OUTER JOIN
						 dbo.Ped_venta LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS V_PersonasDirecciones_2 ON dbo.Ped_venta.Fk_direccion_destinatario = V_PersonasDirecciones_2.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Ped_venta.Forma_pago = dbo.Formas_de_pago.Codigo ON dbo.Cuentas_banco_empresa.Codigo = dbo.Ped_venta.Fk_cuenta_banco_empresa LEFT OUTER JOIN
						 dbo.Portes ON dbo.Ped_venta.Porte = dbo.Portes.Codigo ON dbo.Incoterm.Codigo = dbo.Ped_venta.Fk_incoterm LEFT OUTER JOIN
						 dbo.Series_pedidos_venta ON dbo.Ped_venta.Serie = dbo.Series_pedidos_venta.Serie LEFT OUTER JOIN
						 dbo.Centros ON dbo.Ped_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones ON dbo.Ped_venta.Codigo_direccion_envio = dbo.V_PersonasDirecciones.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_1 ON dbo.Ped_venta.Representante2 = V_Personas_1.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_3 ON dbo.Ped_venta.Representante1 = V_Personas_3.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_2 ON dbo.Ped_venta.Codigo_transportista = V_Personas_2.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS V_Personas_4 ON dbo.Ped_venta.Fk_destinatario = V_Personas_4.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Ped_venta.Codigo_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS DC ON dbo.Ped_venta.Fk_direccion_destinatario = DC.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS V_PersonasDirecciones_1 ON dbo.Ped_venta.Codigo_direccion_fiscal = V_PersonasDirecciones_1.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Ped_venta.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Divisas ON dbo.Ped_venta.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
							 (SELECT        dbo.Ped_venta_lineas.Serie, dbo.Ped_venta_lineas.Numero, SUM(dbo.Ped_venta_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Ped_venta_lineas.Cantidad, 0)) 
														 = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Ped_venta_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Ped_venta_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Ped_venta_lineas.Linea) 
														 AS Numero_lineas, SUM(dbo.Ped_venta_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Ped_venta_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Ped_venta_lineas.Importe_dto2) 
														 AS Importe_dto2, SUM(dbo.Ped_venta_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Ped_venta_lineas.Importe_comision2) AS Importe_comision2, 
														 SUM(dbo.Ped_venta_lineas.Importe_base) AS Importe_base, SUM(dbo.Ped_venta_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Ped_venta_lineas.Importe_recargo) AS Importe_recargo, 
														CASE WHEN SUM(dbo.V_DocLinEstadosPedVenta.Pendiente) = COUNT(dbo.V_DocLinEstadosPedVenta.Linea) THEN 0 
														WHEN SUM(dbo.V_DocLinEstadosPedVenta.AsociadoTotal) = COUNT(dbo.V_DocLinEstadosPedVenta.Linea) THEN 1 
														WHEN SUM(dbo.V_DocLinEstadosPedVenta.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosPedVenta.Linea) THEN 3 
														WHEN SUM(dbo.V_DocLinEstadosPedVenta.Pendiente) + SUM(dbo.V_DocLinEstadosPedVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPedVenta.AsociadoParcial) = COUNT(dbo.V_DocLinEstadosPedVenta.Linea) THEN 2 
														WHEN SUM(dbo.V_DocLinEstadosPedVenta.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPedVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPedVenta.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosPedVenta.Linea) THEN 4 
														WHEN (SUM(dbo.V_DocLinEstadosPedVenta.Pendiente) + SUM(dbo.V_DocLinEstadosPedVenta.AsociadoParcial)) > 0 AND (SUM(dbo.V_DocLinEstadosPedVenta.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPedVenta.AsociadoAnuladoTotal))> 0 THEN 5 
														ELSE 6 
														END AS Estado_asociado, 
														  CASE WHEN (SUM(ISNULL(dbo.V_DocLinEstadosPedVenta.Cantidad_cargada, 0))) = 0 THEN 0 WHEN SUM(ISNULL(dbo.V_DocLinEstadosPedVenta.Cantidad_anulada, 0)) 
														 + SUM(ISNULL(dbo.V_DocLinEstadosPedVenta.Cantidad_cargada, 0)) >= SUM(ISNULL(dbo.Ped_venta_lineas.Cantidad, 0)) 
														 THEN 1 WHEN SUM(ISNULL(dbo.V_DocLinEstadosPedVenta.Cantidad_anulada, 0)) + SUM(ISNULL(dbo.V_DocLinEstadosPedVenta.Cantidad_cargada, 0)) 
														 < SUM(ISNULL(dbo.Ped_venta_lineas.Cantidad, 0)) THEN 2 ELSE NULL END AS Estado_carga, SUM(dbo.Ped_venta_lineas.Importe_irpf) AS Importe_irpf
							   FROM            dbo.Ped_venta_lineas LEFT OUTER JOIN
														 dbo.V_DocLinEstadosPedVenta ON dbo.Ped_venta_lineas.Id = dbo.V_DocLinEstadosPedVenta.Id
														 WHERE ISNULL(Ped_venta_lineas.Automatica,0) = 0
							   GROUP BY dbo.Ped_venta_lineas.Serie, dbo.Ped_venta_lineas.Numero) AS A ON dbo.Ped_venta.Serie = A.Serie AND dbo.Ped_venta.Numero = A.Numero				
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaLineas]
							AS
							SELECT   Ped_venta.Fk_centro,dbo.Centros.Descripcion AS Desc_centro, CONVERT(date, Ped_venta.Fecha_hora, 103) AS Fecha, Ped_venta.Codigo_cliente, dbo.V_Personas.NombreCompleto,Ped_venta.Representante1,rep.NombreCompleto as Nombre_representante1, Ped_venta.Representante2, REP2.NombreCompleto AS Nombre_representante2,
						 dbo.Ped_venta_lineas.Id, dbo.Ped_venta_lineas.Fk_ficha_tecnica, dbo.Ped_venta_lineas.Serie,Ped_venta.Fecha_creacion,
                         dbo.Ped_venta_lineas.Numero, dbo.Ped_venta_lineas.Linea, dbo.Ped_venta_lineas.Fk_articulo, dbo.Ped_venta_lineas.Articulo_descripcion, dbo.Ped_venta_lineas.Precio_tarifa, dbo.Ped_venta_lineas.Precio_con_dtos_linea, 
                         dbo.Ped_venta_lineas.No_inventariable, dbo.Ped_venta_lineas.Fk_articulo_kit, dbo.Ped_venta_lineas.Linea_kit, dbo.Ped_venta_lineas.Precio_coste_articulo, dbo.Ped_venta_lineas.Precio_bruto, 
                         dbo.Ped_venta_lineas.Precio_neto, dbo.Ped_venta_lineas.Bultos, dbo.Ped_venta_lineas.Cantidad, dbo.Ped_venta_lineas.Importe_bruto, dbo.Ped_venta_lineas.Imp_dto_pp, dbo.Ped_venta_lineas.Imp_dto_esp, 
                         dbo.Ped_venta_lineas.Tipo_calculo_dto1, dbo.Ped_venta_lineas.Valor_dto1, dbo.Ped_venta_lineas.Importe_dto1, dbo.Ped_venta_lineas.Tipo_calculo_dto2, dbo.Ped_venta_lineas.Aplicacion_dto2, 
                         dbo.Ped_venta_lineas.Valor_dto2, dbo.Ped_venta_lineas.Importe_dto2, dbo.Ped_venta_lineas.Tipo_calculo_comisiones, dbo.Ped_venta_lineas.Valor_comision1, dbo.Ped_venta_lineas.Importe_comision1, 
                         dbo.Ped_venta_lineas.Valor_comision2, dbo.Ped_venta_lineas.Importe_comision2, dbo.Ped_venta_lineas.Importe_base, Importe_base_incrementado, dbo.Ped_venta_lineas.Valor_iva, dbo.Ped_venta_lineas.Importe_iva, 
                         dbo.Ped_venta_lineas.Valor_recargo, dbo.Ped_venta_lineas.Importe_recargo, dbo.Ped_venta_lineas.Valor_irpf, dbo.Ped_venta_lineas.Importe_irpf, dbo.Ped_venta_lineas.Importe_otros_impuestos, 
                         dbo.Ped_venta_lineas.Importe_total_linea, dbo.Ped_venta_lineas.Centro_analitico1, dbo.Ped_venta_lineas.Centro_analitico2, dbo.Ped_venta_lineas.Codigo_iva, dbo.Ped_venta_lineas.Aplicacion_irpf, 
                         dbo.Ped_venta_lineas.Tipo_doc_asociado, dbo.Ped_venta_lineas.Serie_doc_asociado, dbo.Ped_venta_lineas.Numero_doc_asociado, dbo.Ped_venta_lineas.Id_doc_asociado, dbo.Ped_venta_lineas.Cantidad_anulada, 
                         dbo.Ped_venta_lineas.Anular_restante, dbo.Ped_venta_lineas.Observaciones, dbo.Ped_venta_lineas.Observaciones_internas, dbo.Ped_venta_lineas.Orden, dbo.Ped_venta_lineas.Peso_bruto, dbo.Ped_venta_lineas.Peso_neto, dbo.Ped_venta_lineas.Descripcion_dto1, 
                         dbo.Ped_venta_lineas.Descripcion_dto2, dbo.Ped_venta_lineas.Promocion, dbo.Ped_venta_lineas.PVP, dbo.Ped_venta_lineas.Importe_impuestos_incluidos, dbo.Ped_venta_lineas.Importe_neto, 
                         dbo.Ped_venta_lineas.Fk_expediente, dbo.Ped_venta_lineas.Serie_expediente, dbo.V_ArticulosNombre.Capacidad, dbo.Ped_venta_lineas.Numero_expediente, dbo.Ped_venta_lineas.Tarifa_iva_incluido, 
                         dbo.Ped_venta_lineas.Num_pales, dbo.Ped_venta_lineas.Num_pisos_pale, dbo.V_ArticulosNombre.Fk_codigo_arancelario, dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, dbo.V_ArticulosNombre.Fk_color, 
                         dbo.Libros_color.Descripcion AS Desc_color, dbo.V_ArticulosNombre.Grado_alcoholico, dbo.V_ArticulosNombre.Aux_codigo, dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, 
                         dbo.V_ArticulosSoloNombre.Descripcion AS Desc_art_agrupacion, dbo.V_DocLinAsociados.Fecha_hora AS Fecha_doc_asociado, ADI.Traduccion AS Desc_articulo_traduccion, ARP.Ref_articulo_persona, 
                         ARP.Desc_ref_articulo_persona, dbo.Unidades.Descripcion_breve AS Desc_unidad_breve, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_do, dbo.Ped_venta_lineas.Referencia, 
                         dbo.FT_articulos.Descripcion AS Descripcion_FT, dbo.Expediente.Serie AS Expediente_serie, ISNULL(dbo.Expediente.Numero, 0) AS Expediente_numero
						 ,Ped_venta.Fecha_prevista_entrega,Ped_venta.Fecha_produccion,Ped_venta.Notas_factura as Obs_cabecera
						 ,STUFF((SELECT '' ['' + dbo.Op.Fk_serie + ''/'' + CAST(dbo.Op.Numero AS nvarchar) + '']''
							FROM dbo.Op 
							WHERE dbo.op.Fk_ped_venta_linea=dbo.Ped_venta_lineas.Id
							FOR XML PATH ('''') )
							,1,1,'''') as Op_relacionada, dbo.V_ArticulosNombre.No_imprimir_caducidad_docs,dbo.V_ArticulosNombre.No_mostrar_añada_en_docs
						 , CASE WHEN ESTADOS.AsociadoAnuladoTotal=1 AND Pendiente=1 THEN 5
						 WHEN ESTADOS.Pendiente=1  THEN 0 
						 WHEN ESTADOS.AsociadoTotal=1 THEN 1 
						 WHEN ESTADOS.AnuladoTotal=1 THEN 3 
						 WHEN ESTADOS.AsociadoParcial=1 THEN 2
						 WHEN ESTADOS.AsociadoAnuladoTotal=1 THEN 4
						 ELSE 6 END AS Estado_asociado
FROM            dbo.Ped_venta_lineas LEFT OUTER JOIN
                         dbo.Ped_venta AS Ped_venta ON dbo.Ped_venta_lineas.Serie = Ped_venta.Serie AND dbo.Ped_venta_lineas.Numero = Ped_venta.Numero LEFT OUTER JOIN
						 dbo.Centros ON Ped_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = Ped_venta.Codigo_cliente LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre REP ON Ped_venta.Representante1=REP.Codigo 
						 LEFT OUTER JOIN dbo.V_PersonasSoloNombre AS REP2 ON Ped_venta.Representante2 = REP2.Codigo
						 LEFT OUTER JOIN dbo.Articulos_desc_idioma AS ADI ON ADI.Fk_articulo = dbo.Ped_venta_lineas.Fk_articulo AND ADI.Fk_idioma = dbo.V_Personas.Fk_idioma LEFT OUTER JOIN
                         dbo.Articulos_referencia_persona AS ARP ON ARP.Fk_persona = dbo.V_Personas.Codigo AND ARP.Fk_articulo = dbo.Ped_venta_lineas.Fk_articulo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Ped_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.Expediente ON dbo.Ped_venta_lineas.Fk_expediente = dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.V_DocLinAsociados ON dbo.Ped_venta_lineas.Id_doc_asociado = dbo.V_DocLinAsociados.Id LEFT OUTER JOIN
                         dbo.Libros_color ON dbo.V_ArticulosNombre.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos ON dbo.Ped_venta_lineas.Fk_ficha_tecnica = dbo.FT_articulos.Codigo_FT LEFT OUTER JOIN
                         dbo.Unidades ON dbo.V_ArticulosNombre.Fk_unidad_salida = dbo.Unidades.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo
						 LEFT OUTER JOIN V_DocLinEstadosPedVenta ESTADOS ON dbo.Ped_venta_lineas.Id=ESTADOS.Id
							'
							GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasZonasReparto]'))
DROP VIEW [dbo].PedidosVentaLineasZonasReparto
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasZonasReparto]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaLineasZonasReparto]
							AS
SELECT        dbo.Ped_venta.Id, dbo.Ped_venta_lineas.Id AS IdLin, dbo.Ped_venta.Serie, dbo.Ped_venta.Numero, dbo.Ped_venta_lineas.Linea, dbo.Ped_venta.Fecha_hora, DATENAME(dw, dbo.Ped_venta.Fecha_hora) AS DiaPedido, 
                         dbo.Ped_venta.Fecha_prevista_entrega, DATENAME(dw, dbo.Ped_venta.Fecha_prevista_entrega) AS DiaEntregaPrevista, dbo.Ped_venta.Horario_entrega, dbo.Ped_venta.Fecha_entrega_concreta, 
                         dbo.Ped_venta.Fk_zona_reparto, dbo.Zonas_reparto.Descripcion, dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Municipio, dbo.Ped_venta.Codigo_transportista, 
                         Transportistas.NombreCompleto AS NombreTransportista, dbo.Ped_venta.Codigo_cliente, Clientes.NombreCompleto AS NombreCliente, Clientes.Telefono_particular, Clientes.Email1, dbo.Ped_venta_lineas.Fk_articulo, 
                         dbo.V_ArticulosSoloNombre.Descripcion AS NombreArticulo, dbo.Ped_venta_lineas.Cantidad, dbo.Ped_venta_lineas.Bultos, dbo.Ped_venta_lineas.Precio_neto, dbo.Ped_venta.Fk_centro, 
                         dbo.Centros.Descripcion AS DescCentro, dbo.Ped_venta.Su_referencia, dbo.Ped_venta.Representante1
FROM            dbo.Ped_venta INNER JOIN
                         dbo.Ped_venta_lineas ON dbo.Ped_venta.Serie = dbo.Ped_venta_lineas.Serie AND dbo.Ped_venta.Numero = dbo.Ped_venta_lineas.Numero LEFT OUTER JOIN
                         dbo.Centros ON dbo.Ped_venta.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.Ped_venta_lineas.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS Clientes ON dbo.Ped_venta.Codigo_cliente = Clientes.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS Transportistas ON dbo.Ped_venta.Codigo_transportista = Transportistas.Codigo LEFT OUTER JOIN
                         dbo.Personas_direcciones ON dbo.Ped_venta.Codigo_direccion_envio = dbo.Personas_direcciones.Codigo LEFT OUTER JOIN
                         dbo.Zonas_reparto ON dbo.Ped_venta.Fk_zona_reparto = dbo.Zonas_reparto.Codigo
							'
							GO

						IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FirmasEstados]'))
						DROP VIEW [dbo].V_FirmasEstados  
						GO
						IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FirmasEstados]'))
						EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FirmasEstados] AS 
						select F.SerieTipoDoc,F.Serie,F.Numero,COUNT(*) as Num_firmas_realizadas,MAX(P.Numero_firmas) as Num_firmas_necesarias 
						,(MAX(P.Numero_firmas)-COUNT(*)) AS Num_firmas_pendientes
						,CASE 
						WHEN MAX( P.Numero_firmas) IS NULL THEN CAST(1 AS BIT) 
						WHEN MAX(P.numero_firmas)<=COUNT(*) THEN CAST(1 as BIT) ELSE CAST(0 AS BIT)
						 END AS Firma_completa
						FROM Firmas_documentos F LEFT OUTER JOIN SerieTipoDoc_param P ON F.SerieTipoDoc=P.SerieTipoDoc
						GROUP BY F.SerieTipoDoc,F.Serie,F.Numero
												 '
						GO

						IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstadoControlPesos]'))
						DROP VIEW [dbo].V_EstadoControlPesos  
						GO
						IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstadoControlPesos]'))
						EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstadoControlPesos] AS 
						SELECT Id,CASE WHEN A.Fk_op IS NOT NULL THEN CAST(1 as bit) WHEN B.Fk_op IS NOT NULL THEN CAST(0 as bit) ELSE NULL END as EstadoControlPesos  FROM Op LEFT OUTER JOIN
						(
						SELECT DISTINCT Fk_op FROM(
						(select DISTINCT Fk_op from OP_control_pesos_cabecera where correcta=1 and fk_op IS NOT NULL AND Fecha_cierre IS NOT NULL)
						UNION ALL
						(select DISTINCT L.Fk_op from OP_control_pesos_ops L LEFT OUTER JOIN OP_control_pesos_cabecera C ON C.Id=L.Fk_op_control_pesos_cab where C.correcta=1 and L.Fk_op IS NOT NULL AND C.Fecha_cierre IS NOT NULL)
						)
						 A) A ON Op.Id=A.Fk_op

						LEFT OUTER JOIN (
						SELECT DISTINCT Fk_op FROM(
						select DISTINCT Fk_op from OP_control_pesos_cabecera where correcta=0 and fk_op IS NOT NULL AND Fecha_cierre IS NOT NULL
						UNION ALL
						select DISTINCT L.Fk_op from OP_control_pesos_ops L LEFT OUTER JOIN OP_control_pesos_cabecera C ON C.Id=L.Fk_op_control_pesos_cab where correcta=0 and L.fk_op IS NOT NULL AND C.Fecha_cierre IS NOT NULL
						) B)B ON Op.Id=B.Fk_op
												 '
						GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Op]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Op]
							AS SELECT   DATEPART(MONTH, dbo.Op.Fecha_propuesta) AS Mes, DATENAME(WEEK, dbo.Op.Fecha_propuesta) AS SemanaNumero, DATEPART(DAY, dbo.Op.Fecha_propuesta) AS Dia, DATENAME(WEEKDAY, dbo.Op.Fecha_propuesta) AS DiaNombre, DATENAME(MONTH, dbo.Op.Fecha_propuesta) AS MesNombre, dbo.Op.*, 
             dbo.Series_op.Descripcion AS Desc_serie, dbo.Series_op.ISO_propuesta, dbo.Series_op.ISO_lanzada, dbo.Series_op.ISO_cerrada, A.Descripcion AS Desc_articulo, dbo.V_Personas.NombreCompleto, dbo.Centros.Descripcion AS Desc_centro, LOTES.Lotes, LOTES.Lotes_etiqueta, CASE WHEN HAYCOMPONENTESLOTES.Fk_op IS NULL 
             THEN 0 ELSE 1 END AS HayComponentesLotes, A.Fk_articulo_agrupacion, a.Desc_articulo_agrupacion, A.Fk_do, A.Desc_do, A.Capacidad, Maquinas.Descripcion AS Desc_maquina, 
             CASE WHEN Tipo_op = 0 THEN ''ORDEN ACABADO'' WHEN Tipo_op = 1 THEN ''ORDEN SEMI-ELABORADO'' WHEN Tipo_op = 2 THEN ''ORDEN SEMI-ACABADO'' ELSE '''' END AS Desc_tipo_op, CASE WHEN Tipo_op = 0 THEN ''OP'' WHEN Tipo_op = 1 THEN ''OS'' WHEN Tipo_op = 2 THEN ''OF'' ELSE '''' END AS Tipo_op_codigo, 
             CASE WHEN ISNULL(dbo.Op.Ped_venta_serie, '''') <> '''' AND ISNULL(dbo.Op.Ped_venta_numero, 0) <> 0 THEN dbo.Op.Ped_venta_serie + ''/'' + CAST(dbo.Op.Ped_venta_numero AS nvarchar) + '' - linea'' + CAST(dbo.Op.Ped_venta_linea AS nvarchar) ELSE NULL END AS Pedido_relacionado, CASE WHEN ISNULL(ft.Cantidad_por_bulto, 0) 
             <> 0 THEN ft.Cantidad_por_bulto ELSE A.Cantidad_por_bulto END AS Cantidad_por_bulto, CASE WHEN ISNULL(ft.Cajas_palet, 0) <> 0 THEN ft.Cajas_palet ELSE A.cajas_por_palet END AS Cajas_por_palet, ft.Descripcion AS Desc_ficha_tecnica, P.Descripcion AS DescTipoPalet, A.Tipo_seccion, A.Desc_tipo_seccion, A.Fk_envase, 
             A.Desc_envase, (dbo.Op.Cantidad * A.Capacidad) AS Litros, (dbo.Op.Cantidad * A.Peso_neto) AS Cantidad_kg, CIERRES_INICIO_FIN.Fecha_inicio_primer_cierre, CIERRES_INICIO_FIN.Fecha_fin_ultimo_cierre, V_FirmasEstados.Num_firmas_realizadas, V_FirmasEstados.Num_firmas_necesarias, V_FirmasEstados.Num_firmas_pendientes, V_FirmasEstados.Firma_completa, 
             (dbo.Op.Cantidad_real * A.Capacidad) AS Cantidad_real_litros, (dbo.Op.Cantidad_real * A.Peso_neto) AS Cantidad_real_kg, (dbo.Op.Ref_numerica * A.Capacidad) AS Ref_numerica_litros, LIB.Fk_tipo_movimiento AS Libro_tipo_mov, LIB.Fk_movimiento AS Libro_num_mov, LIB.Id AS Libro_Id, V_EstadoControlPesos.EstadoControlPesos, dbo.Operarios.Nombre AS Nombre_operario
			 ,Departamentos.Descripcion as Departamento_descripcion,Departamentos.Id as Departamento_id
FROM     dbo.Op LEFT JOIN
             dbo.Series_op ON dbo.Op.Fk_serie = dbo.Series_op.Serie LEFT OUTER JOIN
             dbo.V_ArticulosNombre A ON dbo.Op.Fk_articulo = A.Codigo LEFT OUTER JOIN
             dbo.Operarios ON dbo.Op.Fk_operario = dbo.Operarios.Codigo LEFT OUTER JOIN
			 dbo.Departamentos ON dbo.Operarios.Fk_departamento=dbo.Departamentos.Id LEFT OUTER JOIN
             dbo.FT_articulos FT ON dbo.op.Fk_ficha_tecnica = ft.Codigo_FT LEFT OUTER JOIN
             Maquinas ON Op.Fk_maquina = Maquinas.Codigo LEFT OUTER JOIN
             dbo.V_Personas ON dbo.Op.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
             dbo.Centros ON dbo.Op.Fk_centro = dbo.Centros.codigo LEFT OUTER JOIN
                 (SELECT   Fk_op, STUFF
                                  ((SELECT   '';'' + Lote
                                  FROM      Op_cierres
                                  WHERE    OPS.Fk_op = Op_cierres.Fk_op FOR XML PATH('''')), 1, 1, '''') ''Lotes'', STUFF
                                  ((SELECT   '';'' + Lote_etiqueta
                                  FROM      Op_cierres
                                  WHERE    OPS.Fk_op = Op_cierres.Fk_op FOR XML PATH('''')), 1, 1, '''') ''Lotes_etiqueta''
                 FROM     Op_cierres OPS
                 GROUP BY Fk_op) LOTES ON Op.Id = LOTES.Fk_op LEFT OUTER JOIN
                 (SELECT DISTINCT Fk_op
                 FROM     Op_componentes_lotes) HAYCOMPONENTESLOTES ON Op.Id = HAYCOMPONENTESLOTES.Fk_op LEFT OUTER JOIN
                 (SELECT   ISNULL(PRIMER.Fk_op, SEGON.Fk_op) AS Fk_op, PRIMER.Fecha_inicio AS Fecha_inicio_primer_cierre, SEGON.Fecha AS Fecha_fin_ultimo_cierre
                 FROM     (SELECT   Fk_op, Fecha_inicio
                              FROM      (SELECT   ROW_NUMBER() OVER (PARTITION BY Fk_op
                                            ORDER BY Fecha_inicio ASC) AS RowNumber, Fk_op, Fecha_inicio
                              FROM      Op_cierres WITH (NOLOCK)) AS PRIMER
                 WHERE   RowNumber = 1) PRIMER LEFT OUTER JOIN
                 (SELECT   Fk_op, Fecha
                 FROM     (SELECT   ROW_NUMBER() OVER (PARTITION BY Fk_op
                              ORDER BY Fecha_inicio DESC) AS RowNumber, Fk_op, Fecha
                 FROM     Op_cierres WITH (NOLOCK)) AS SEGON
WHERE   RowNumber = 1) SEGON ON Primer.Fk_op = SEGON.Fk_op) AS CIERRES_INICIO_FIN ON Op.Id = CIERRES_INICIO_FIN.Fk_op LEFT OUTER JOIN
Articulos AS P ON Op.Codigo_articulo_tipo_palet = P.Codigo LEFT OUTER JOIN
V_FirmasEstados ON V_FirmasEstados.SerieTipoDoc = ''OP'' AND Op.Fk_serie = V_FirmasEstados.Serie AND Op.Numero = V_FirmasEstados.Numero LEFT OUTER JOIN
dbo.V_LibrosMovimientos AS LIB ON LIB.SerieTipoDoc_asociado = ''OP'' AND LIB.Serie_doc_asociado = dbo.Op.Fk_serie AND LIB.Numero_doc_asociado = dbo.Op.Numero LEFT OUTER JOIN
V_EstadoControlPesos ON dbo.Op.Id = V_EstadoControlPesos.Id
						 
'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCierres]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpCierres]
							AS SELECT        dbo.Op.Id, dbo.Op.Fk_serie, dbo.Series_op.Descripcion AS Desc_serie, dbo.Op.Numero, dbo.Op.Fk_articulo, dbo.Op.Cantidad, dbo.Op.Cantidad_real, dbo.Op.Fecha, dbo.Op.Fecha_entrega, dbo.Op.Fk_persona, dbo.Op.Fk_maquina,
                         dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Op.Fecha_caducidad, dbo.Op.Hora_inicio, dbo.Op.Hora_fin, dbo.Op.Fecha_inicio, dbo.Op.Fecha_fin, dbo.Op.Fecha_inicio_real, dbo.Op.Fecha_fin_real, dbo.Op.Campo_filtro, 
                          CAST(dbo.Op.Tipo_op as tinyint) as Tipo_op,dbo.Op.Ref_numerica, dbo.Op.Prioridad, dbo.Op.Estado, dbo.Op.Observaciones, dbo.Op.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Op.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, 
                         dbo.Op_cierres.Fecha AS Fecha_cierre, dbo.Op_cierres.Cantidad AS Cantidad_cierre, dbo.Op_cierres.Lote, dbo.Op_cierres.Lote_etiqueta, dbo.Op_cierres.Añada, dbo.Op_cierres.Id AS Id_cierre, 
                         A.Descripcion AS Desc_articulo, A.Fk_do, dbo.Op_cierres.Observaciones AS Observaciones_op
						 , dbo.Op_cierres.Fecha_inicio AS Fecha_inicio_cierre,dbo.Op_cierres.Numero_personas
						 ,convert(varchar, dbo.Op_cierres.Hora_inicio, 108)  Hora_inicio_cierre, dbo.Op.Id_auxiliar,
                         convert(varchar, dbo.Op_cierres.Hora_fin, 108) AS Hora_fin_cierre, dbo.Marca.Descripcion AS Desc_marca, dbo.Marca.Titular AS Marca_titular
						 ,DATEDIFF(second, dbo.Op_cierres.Fecha_inicio, dbo.Op_cierres.Fecha) / 3600.0 as Tiempo_calculado_decimal
						 ,A.Tipo_seccion,A.Desc_tipo_seccion,A.Fk_envase,A.Desc_envase,(dbo.Op.Cantidad*A.Capacidad) As Litros,CONVERT(varchar,(dbo.Op_cierres.Fecha - dbo.Op_cierres.Fecha_inicio), 108) as Tiempo, CAST
                             ((SELECT        ''['' + CAST(Codigo_grupo AS varchar) + '']''
                                 FROM            Articulos_agrupaciones
                                 WHERE        Articulos_agrupaciones.Codigo_articulo = Op.Fk_articulo
                                 ORDER BY Articulos_agrupaciones.Codigo_grupo FOR XML PATH('''')) AS varchar(1000)) AS GruposArticulo, CAST
                             ((SELECT        ''['' + Articulos_grupos.descripcion + '']''
                                 FROM            Articulos_agrupaciones INNER JOIN
                                                          Articulos_grupos ON Articulos_agrupaciones.Codigo_grupo = Articulos_grupos.Codigo
                                 WHERE        Articulos_agrupaciones.Codigo_articulo = Op.Fk_articulo
                                 ORDER BY Articulos_agrupaciones.Codigo_grupo FOR XML PATH('''')) AS varchar(1000)) AS NombresGruposArticulos, CAST
                             ((SELECT        ''[Serie: '' + AUX.Lote + ''  Nums: '' + CAST(AUX.Num_eti_desde AS nvarchar) + '' - '' + CAST(AUX.Num_eti_hasta AS nvarchar) + ''] ''
                                 FROM            V_OpComponentesLotesReales AUX
                                 WHERE        AUX.Fk_cierre = Op_cierres.Id AND AUX.Art_sello_do = 1
                                 ORDER BY AUX.Num_eti_desde FOR XML PATH('''')) AS varchar(1000)) AS Num_sellos_utilizados
FROM            dbo.Op LEFT OUTER JOIN
                         dbo.V_ArticulosNombre A ON dbo.Op.Fk_articulo = A.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON A.Fk_almacen_entradas = dbo.Almacenes.Codigo AND dbo.Op.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Op.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Series_op ON dbo.Op.Fk_serie = dbo.Series_op.Serie LEFT OUTER JOIN
                         dbo.Op_cierres ON dbo.Op.Id = dbo.Op_cierres.Fk_op LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Op.Fk_persona = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Marca ON A.Fk_marca = Marca.Codigo'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaLineasImpuestos]
							AS
							SELECT     dbo.Ped_venta_lineas_impuestos.Id, dbo.Ped_venta_lineas_impuestos.fk_Id_linea, dbo.Ped_venta_lineas_impuestos.Codigo_impuesto,
							dbo.Ped_venta_lineas_impuestos.Cantidad, dbo.Ped_venta_lineas_impuestos.Tipo_valor, dbo.Ped_venta_lineas_impuestos.Valor_impuesto,
							dbo.Ped_venta_lineas_impuestos.Importe_base, dbo.Ped_venta_lineas_impuestos.Codigo_iva, dbo.Ped_venta_lineas_impuestos.Valor_iva,
							dbo.Ped_venta_lineas_impuestos.Importe_iva, dbo.Ped_venta_lineas_impuestos.Valor_recargo, dbo.Ped_venta_lineas_impuestos.Importe_recargo,
							dbo.Ped_venta_lineas_impuestos.Valor_irpf, dbo.Ped_venta_lineas_impuestos.Importe_irpf, dbo.Ped_venta_lineas_impuestos.Aplicacion_irpf,
							dbo.Ped_venta_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Ped_venta_lineas.Serie, dbo.Ped_venta_lineas.Numero
							FROM         dbo.Ped_venta_lineas RIGHT OUTER JOIN
							dbo.Ped_venta_lineas_impuestos ON dbo.Ped_venta_lineas.Id = dbo.Ped_venta_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
							dbo.Impuestos_tipos RIGHT OUTER JOIN
							dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Ped_venta_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[PedidosVentaLineasIvasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [PedidosVentaLineasIvasImpuestos]
							AS
							SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva,
							SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf,
							SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
							FROM         dbo.Ped_venta_lineas AS iva
							GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraImpuestos]
							AS
							SELECT     dbo.Ped_compra_impuestos.Id, dbo.Ped_compra_impuestos.Serie, dbo.Ped_compra_impuestos.Numero, dbo.Ped_compra_impuestos.Codigo_impuesto,
							dbo.Ped_compra_impuestos.Importe_base, dbo.Ped_compra_impuestos.Valor_iva, dbo.Ped_compra_impuestos.Importe_iva,
							dbo.Ped_compra_impuestos.Valor_recargo, dbo.Ped_compra_impuestos.Importe_recargo, dbo.Ped_compra_impuestos.Valor_irpf,
							dbo.Ped_compra_impuestos.Importe_irpf, dbo.Ped_compra_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
							FROM         dbo.Ped_compra_impuestos INNER JOIN
							dbo.Impuestos ON dbo.Ped_compra_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
							dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
							'
							GO
							
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraImpuestos]
							AS
							SELECT     dbo.Contratos_compra_impuestos.Id, dbo.Contratos_compra_impuestos.Serie, dbo.Contratos_compra_impuestos.Numero, dbo.Contratos_compra_impuestos.Codigo_impuesto,
							dbo.Contratos_compra_impuestos.Importe_base, dbo.Contratos_compra_impuestos.Valor_iva, dbo.Contratos_compra_impuestos.Importe_iva,
							dbo.Contratos_compra_impuestos.Valor_recargo, dbo.Contratos_compra_impuestos.Importe_recargo, dbo.Contratos_compra_impuestos.Valor_irpf,
							dbo.Contratos_compra_impuestos.Importe_irpf, dbo.Contratos_compra_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto
							FROM         dbo.Contratos_compra_impuestos INNER JOIN
							dbo.Impuestos ON dbo.Contratos_compra_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
							dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraIvas]
							AS
							SELECT     dbo.Ped_compra_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Ped_compra_ivas INNER JOIN
							dbo.Ivas ON dbo.Ped_compra_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraIvas]
							AS
							SELECT     dbo.Contratos_compra_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Contratos_compra_ivas INNER JOIN
							dbo.Ivas ON dbo.Contratos_compra_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaIvas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaIvas]
							AS
							SELECT     dbo.Contratos_venta_ivas.*, dbo.Ivas.Descripcion AS Desc_iva
							FROM         dbo.Contratos_venta_ivas INNER JOIN
							dbo.Ivas ON dbo.Contratos_venta_ivas.Codigo_iva = dbo.Ivas.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompra]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompra]
							AS
			SELECT        ISNULL(dbo.Ped_compra.Serie, '''') AS Serie, ISNULL(dbo.Ped_compra.Numero, 0) AS Numero, dbo.Ped_compra.Fecha_hora, dbo.Ped_compra.Fecha_hora_real, dbo.Ped_compra.Codigo_persona, dbo.Ped_compra.Divisa, 
                         dbo.Ped_compra.Forma_pago, dbo.Ped_compra.Forma_envio, dbo.Ped_compra.Dia_pago1, dbo.Ped_compra.Dia_pago2, dbo.Ped_compra.Dia_pago3, dbo.Ped_compra.Codigo_direccion_fiscal, 
                         dbo.Ped_compra.Codigo_direccion_envio, dbo.Ped_compra.Codigo_transportista, dbo.Ped_compra.Representante1, dbo.Ped_compra.Representante2, dbo.Ped_compra.Dto_pp, dbo.Ped_compra.Dto_esp, 
                         dbo.Ped_compra.Su_referencia, dbo.Ped_compra.Notas_internas, dbo.Ped_compra.Notas_factura, dbo.Ped_compra.Bloqueo, Personas_direcciones_1.Descripcion AS Dir_fiscal_desc, 
                         Personas_direcciones_1.Via_publica AS Dir_fiscal_via, Personas_direcciones_1.Direccion AS Dir_fiscal_direccion, Personas_direcciones_1.Numero AS Dir_fiscal_numero, Personas_direcciones_1.Piso AS Dir_fiscal_piso, 
                         Personas_direcciones_1.Puerta AS Dir_fiscal_puerta, Personas_direcciones_1.Municipio AS Dir_fiscal_municipio, Personas_direcciones_1.Codigo_postal AS Dir_fiscal_cp, 
                         Personas_direcciones_1.Comarca AS Dir_fiscal_comarca, Personas_direcciones_1.Provincia AS Dir_fiscal_provincia, Personas_direcciones_1.Pais AS Dir_fiscal_pais, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, 
                         dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Ped_compra.Matricula, dbo.V_Personas.NombreCompleto AS Nombre_cliente, 
                         V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, dbo.Ped_compra.Total_factura, 
                         dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.Personas_direcciones.Descripcion AS Dir_envio_desc, dbo.Personas_direcciones.Via_publica AS Dir_envio_via, 
                         dbo.Personas_direcciones.Direccion AS Direccion_envio, dbo.Personas_direcciones.Numero AS Dir_envio_numero, dbo.Personas_direcciones.Piso AS Dir_envio_piso, dbo.Personas_direcciones.Puerta AS Dir_envio_puerta, 
                         dbo.Personas_direcciones.Codigo_postal AS Dir_envio_cp, dbo.Personas_direcciones.Municipio AS Dir_envio_municipio, dbo.Personas_direcciones.Comarca AS Dir_envio_comarca, 
                         dbo.Personas_direcciones.Provincia AS Dir_envio_provincia, dbo.Personas_direcciones.Pais AS Dir_envio_pais, dbo.Personas_direcciones.Warehouse AS Dir_envio_warehouse, dbo.Personas_direcciones.Rc AS Dir_envio_rc,
                          dbo.Personas_direcciones.Cae AS Dir_envio_cae, dbo.V_Personas.Nuestro_cod_cliente, dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, 
                         dbo.Series_pedidos_compra.Descripcion AS Desc_serie, dbo.Ped_compra.Fk_centro, dbo.Centros.Via_publica AS Centros_via_publica, dbo.Centros.Direccion AS Centros_direccion, 
                         dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta AS Centros_puerta, dbo.Centros.Municipio AS Centro_municipio, dbo.Centros.Codigo_postal AS Centro_codigo_postal, 
                         dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, dbo.Centros.Telefono_1 AS Centro_telefono1, dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, 
                         dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Centros.Piso AS Centro_piso, dbo.Ped_compra.Fecha_prevista_entrega, dbo.Ped_compra.Valorado, A.Cantidad, A.Precio_medio, 
                         A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_asociado, 
                         dbo.Ped_compra.Codigo_persona_destino, dbo.Ped_compra.Tipo_precio, dbo.fn_GetTipoPrecioDesc(dbo.Ped_compra.Tipo_precio) AS Tipo_precio_descripcion, dbo.Ped_compra.Codigo_direccion_destino, V_Personas_destino.NombreCompleto AS NombrePersonaDestino, 
                         V_Direccion_destino.Descripcion AS DescDirDestino, V_Direccion_destino.Via_publica AS ViaPublicaDestino, V_Direccion_destino.Direccion AS DireccionDestino, V_Direccion_destino.Numero AS NumeroDestino, 
                         V_Direccion_destino.Piso AS PisoDestino, V_Direccion_destino.Puerta AS PuertaDestino, V_Direccion_destino.Municipio AS MunicipioDestino, V_Direccion_destino.Codigo_postal AS CPDestino, 
                         V_Direccion_destino.Comarca AS ComarcaDestino, V_Direccion_destino.Pais AS PaisDestino, V_Direccion_destino.Cae AS CaeDestino, dbo.Portes.Descripcion AS desc_portes, dbo.Ped_compra.Desc_incoterm_extension, 
                         dbo.Ped_compra.Fk_incoterm, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.V_Personas.Telefono_particular AS Persona_telefono_particular, dbo.V_Personas.Telefono_trabajo AS Persona_telefono_trabajo, 
                         dbo.V_Personas.Movil AS Persona_movil, dbo.V_Personas.Fax, dbo.V_Personas.Email1 AS Persona_email1, dbo.V_Personas.Email2 AS Persona_email2
						 ,Acta_m_observaciones,Acta_m_rep_vendedor,Acta_m_rep_comprador,Acta_m_fecha,Conductor_nombre,Conductor_dni,dbo.Ped_compra.Persona_contacto
						 , dbo.Ped_compra.Usuario_creacion, dbo.Ped_compra.Usuario_modificacion, 
                         dbo.Ped_compra.Fecha_creacion, dbo.Ped_compra.Fecha_modificacion,dbo.Ped_compra.Fecha_confirm_prov, dbo.Ped_compra.Numero_EMCS, dbo.Ped_compra.Fk_empresa, dbo.V_Personas.Idioma_reportes
FROM            dbo.V_Personas RIGHT OUTER JOIN
                         dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
                         dbo.V_Personas AS V_Personas_1 RIGHT OUTER JOIN
                         dbo.Personas_direcciones RIGHT OUTER JOIN
                         dbo.Ped_compra LEFT OUTER JOIN
                         dbo.Portes ON dbo.Ped_compra.Porte = dbo.Portes.Codigo LEFT OUTER JOIN
                         dbo.Series_pedidos_compra ON dbo.Ped_compra.Serie = dbo.Series_pedidos_compra.Serie LEFT OUTER JOIN
                         dbo.V_Personas AS V_Personas_destino ON dbo.Ped_compra.Codigo_persona_destino = V_Personas_destino.Codigo LEFT OUTER JOIN
                         dbo.Personas_direcciones AS V_Direccion_destino ON dbo.Ped_compra.Codigo_direccion_destino = V_Direccion_destino.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Ped_compra.Fk_centro = dbo.Centros.Codigo ON dbo.Personas_direcciones.Codigo = dbo.Ped_compra.Codigo_direccion_envio ON V_Personas_1.Codigo = dbo.Ped_compra.Representante2 ON 
                         V_Personas_3.Codigo = dbo.Ped_compra.Representante1 LEFT OUTER JOIN
                         dbo.V_Personas AS V_Personas_2 ON dbo.Ped_compra.Codigo_transportista = V_Personas_2.Codigo ON dbo.V_Personas.Codigo = dbo.Ped_compra.Codigo_persona LEFT OUTER JOIN
                         dbo.Personas_direcciones AS Personas_direcciones_1 ON dbo.Ped_compra.Codigo_direccion_fiscal = Personas_direcciones_1.Codigo LEFT OUTER JOIN
                         dbo.Formas_de_pago ON dbo.Ped_compra.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
                         dbo.Formas_envio ON dbo.Ped_compra.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
                         dbo.Divisas ON dbo.Ped_compra.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.Incoterm ON dbo.Incoterm.Codigo = dbo.Ped_compra.Fk_incoterm LEFT OUTER JOIN
                             (SELECT        dbo.Ped_compra_lineas.Serie, dbo.Ped_compra_lineas.Numero, SUM(dbo.Ped_compra_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Ped_compra_lineas.Cantidad, 0)) 
                                                         = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Ped_compra_lineas.Importe_bruto, 0)) / SUM(ISNULL(dbo.Ped_compra_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Ped_compra_lineas.Linea) AS Numero_lineas, 
                                                         SUM(dbo.Ped_compra_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Ped_compra_lineas.Importe_dto1) AS Importe_dto1, SUM(dbo.Ped_compra_lineas.Importe_dto2) AS Importe_dto2, 
                                                         SUM(dbo.Ped_compra_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Ped_compra_lineas.Importe_comision2) AS Importe_comision2, SUM(dbo.Ped_compra_lineas.Importe_base) AS Importe_base, 
                                                         SUM(dbo.Ped_compra_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Ped_compra_lineas.Importe_recargo) AS Importe_recargo, CASE WHEN SUM(dbo.V_DocLinEstadosPedCompra.Pendiente) 
                                                         = COUNT(dbo.V_DocLinEstadosPedCompra.Linea) THEN 0 WHEN SUM(dbo.V_DocLinEstadosPedCompra.AsociadoTotal) = COUNT(dbo.V_DocLinEstadosPedCompra.Linea) 
                                                         THEN 1 WHEN SUM(dbo.V_DocLinEstadosPedCompra.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosPedCompra.Linea) THEN 3 WHEN SUM(dbo.V_DocLinEstadosPedCompra.Pendiente) 
                                                         + SUM(dbo.V_DocLinEstadosPedCompra.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPedCompra.AsociadoParcial) = COUNT(dbo.V_DocLinEstadosPedCompra.Linea) 
                                                         THEN 2 WHEN SUM(dbo.V_DocLinEstadosPedCompra.AsociadoTotal) + SUM(dbo.V_DocLinEstadosPedCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPedCompra.AsociadoAnuladoTotal) 
                                                         = COUNT(dbo.V_DocLinEstadosPedCompra.Linea) THEN 4 WHEN (SUM(dbo.V_DocLinEstadosPedCompra.Pendiente) + SUM(dbo.V_DocLinEstadosPedCompra.AsociadoParcial)) > 0 AND 
                                                         (SUM(dbo.V_DocLinEstadosPedCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosPedCompra.AsociadoAnuladoTotal)) > 0 THEN 5 ELSE 6 END AS Estado_asociado, SUM(dbo.Ped_compra_lineas.Importe_irpf) 
                                                         AS Importe_irpf
                               FROM            dbo.Ped_compra_lineas LEFT OUTER JOIN
                                                         dbo.V_DocLinEstadosPedCompra ON dbo.Ped_compra_lineas.Id = dbo.V_DocLinEstadosPedCompra.Id
														 LEFT OUTER JOIN Articulos ON dbo.Ped_compra_lineas.Fk_articulo=Articulos.Codigo
                               GROUP BY dbo.Ped_compra_lineas.Serie, dbo.Ped_compra_lineas.Numero) AS A ON dbo.Ped_compra.Serie = A.Serie AND dbo.Ped_compra.Numero = A.Numero
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraLineas]
							AS
							SELECT        CONVERT(date, dbo.Ped_compra.Fecha_hora, 103) AS Fecha, dbo.Ped_compra.Codigo_persona, dbo.V_Personas.NombreCompleto, dbo.Ped_compra_lineas.Id, dbo.Ped_compra_lineas.Serie,  dbo.Ped_compra_lineas.Grado_oficial, 
						 dbo.Ped_compra_lineas.Numero, dbo.Ped_compra_lineas.Linea, dbo.Ped_compra_lineas.Fk_articulo, dbo.Ped_compra_lineas.Articulo_descripcion, dbo.Ped_compra_lineas.No_inventariable, 
						 dbo.Ped_compra_lineas.Fk_articulo_kit, dbo.Ped_compra_lineas.Linea_kit, dbo.Ped_compra_lineas.Precio_coste_articulo, dbo.Ped_compra_lineas.Precio_bruto, dbo.Ped_compra_lineas.Precio_neto, 
						 dbo.Ped_compra_lineas.Bultos, dbo.Ped_compra_lineas.Cantidad, dbo.Ped_compra_lineas.Importe_bruto, dbo.Ped_compra_lineas.Imp_dto_pp, dbo.Ped_compra_lineas.Imp_dto_esp, 
						 dbo.Ped_compra_lineas.Tipo_calculo_dto1, dbo.Ped_compra_lineas.Valor_dto1, dbo.Ped_compra_lineas.Importe_dto1, dbo.Ped_compra_lineas.Tipo_calculo_dto2, dbo.Ped_compra_lineas.Aplicacion_dto2, 
						 dbo.Ped_compra_lineas.Valor_dto2, dbo.Ped_compra_lineas.Importe_dto2, dbo.Ped_compra_lineas.Tipo_calculo_comisiones, dbo.Ped_compra_lineas.Valor_comision1, 
						 dbo.Ped_compra_lineas.Importe_comision1, dbo.Ped_compra_lineas.Valor_comision2, dbo.Ped_compra_lineas.Importe_comision2, dbo.Ped_compra_lineas.Importe_base, dbo.Ped_compra_lineas.Valor_iva, 
						 dbo.Ped_compra_lineas.Importe_iva, dbo.Ped_compra_lineas.Valor_recargo, dbo.Ped_compra_lineas.Importe_recargo, dbo.Ped_compra_lineas.Valor_irpf, dbo.Ped_compra_lineas.Importe_irpf, 
						 dbo.Ped_compra_lineas.Importe_otros_impuestos, dbo.Ped_compra_lineas.Importe_total_linea, dbo.Ped_compra_lineas.Centro_analitico1, dbo.Ped_compra_lineas.Centro_analitico2, 
						 dbo.Ped_compra_lineas.Codigo_iva, dbo.Ped_compra_lineas.Aplicacion_irpf, dbo.Ped_compra_lineas.Tipo_doc_asociado, dbo.Ped_compra_lineas.Serie_doc_asociado, 
						 dbo.Ped_compra_lineas.Numero_doc_asociado, dbo.Ped_compra_lineas.Id_doc_asociado, dbo.Ped_compra_lineas.Cantidad_anulada, dbo.Ped_compra_lineas.Anular_restante, 
						 dbo.Ped_compra_lineas.Observaciones, dbo.Ped_compra_lineas.Observaciones_internas, dbo.Ped_compra_lineas.Orden, dbo.Ped_compra_lineas.Promocion, dbo.Ped_compra_lineas.PVP, dbo.Ped_compra_lineas.Importe_impuestos_incluidos, 
						 dbo.Ped_compra_lineas.Importe_neto, dbo.Ped_compra_lineas.Tarifa_iva_incluido, dbo.Ped_compra_lineas.Precio_tarifa, dbo.Ped_compra_lineas.Precio_con_dtos_linea, dbo.V_ArticulosNombre.Aux_codigo
						 ,dbo.V_articulosNombre.Fk_articulo_agrupacion,dbo.V_articulosNombre.Desc_articulo_agrupacion, dbo.Ped_compra_lineas.Grado, dbo.Ped_compra_lineas.Añada,dbo.Ped_compra.Notas_factura as Obs_cabecera
						 ,dbo.Ped_compra.Fecha_prevista_entrega,dbo.Ped_compra_lineas.Fk_articulo2,ART2.Descripcion as Desc_articulo2
						 ,dbo.Ped_compra_lineas.Fecha_entrega,dbo.Ped_compra_lineas.Hora_entrega,dbo.Ped_compra_lineas.Fecha_confirmacion,dbo.Ped_compra_lineas.Hora_confirmacion
						 , CASE WHEN ESTADOS.AsociadoAnuladoTotal=1 AND Pendiente=1 THEN 5
						 WHEN ESTADOS.Pendiente=1  THEN 0 
						 WHEN ESTADOS.AsociadoTotal=1 THEN 1 
						 WHEN ESTADOS.AnuladoTotal=1 THEN 3 
						 WHEN ESTADOS.AsociadoParcial=1 THEN 2
						 WHEN ESTADOS.AsociadoAnuladoTotal=1 THEN 4
						 ELSE 6 END AS Estado_asociado, dbo.V_ArticulosNombre.Cantidad_por_bulto
FROM            dbo.Ped_compra_lineas INNER JOIN
						 dbo.V_ArticulosNombre ON dbo.Ped_compra_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosNombre ART2 ON dbo.Ped_compra_lineas.Fk_articulo2 = ART2.Codigo LEFT OUTER JOIN					 
						 dbo.Ped_compra ON dbo.Ped_compra_lineas.Serie = dbo.Ped_compra.Serie AND dbo.Ped_compra_lineas.Numero = dbo.Ped_compra.Numero LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Ped_compra.Codigo_persona = dbo.V_Personas.Codigo
						 LEFT OUTER JOIN V_DocLinEstadosPedCompra ESTADOS ON dbo.Ped_compra_lineas.Id=ESTADOS.Id
							'
							GO

							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraLineasImpuestos]
							AS
							SELECT     dbo.Ped_compra_lineas_impuestos.Id, dbo.Ped_compra_lineas_impuestos.fk_Id_linea, dbo.Ped_compra_lineas_impuestos.Codigo_impuesto,
							dbo.Ped_compra_lineas_impuestos.Cantidad, dbo.Ped_compra_lineas_impuestos.Tipo_valor, dbo.Ped_compra_lineas_impuestos.Valor_impuesto,
							dbo.Ped_compra_lineas_impuestos.Importe_base, dbo.Ped_compra_lineas_impuestos.Codigo_iva, dbo.Ped_compra_lineas_impuestos.Valor_iva,
							dbo.Ped_compra_lineas_impuestos.Importe_iva, dbo.Ped_compra_lineas_impuestos.Valor_recargo, dbo.Ped_compra_lineas_impuestos.Importe_recargo,
							dbo.Ped_compra_lineas_impuestos.Valor_irpf, dbo.Ped_compra_lineas_impuestos.Importe_irpf, dbo.Ped_compra_lineas_impuestos.Aplicacion_irpf,
							dbo.Ped_compra_lineas_impuestos.Importe_total, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto,
							dbo.Impuestos.Tipo_impuesto, dbo.Ped_compra_lineas.Serie, dbo.Ped_compra_lineas.Numero
							FROM         dbo.Ped_compra_lineas RIGHT OUTER JOIN
							dbo.Ped_compra_lineas_impuestos ON dbo.Ped_compra_lineas.Id = dbo.Ped_compra_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
							dbo.Impuestos_tipos RIGHT OUTER JOIN
							dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Ped_compra_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_Liquidaciones]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_Liquidaciones]
							AS
							SELECT   dbo.Liquidaciones.Id, dbo.Liquidaciones.Serie, dbo.Liquidaciones.Numero, dbo.Liquidaciones.Fecha, dbo.Liquidaciones.Fk_divisa, dbo.Liquidaciones.Importe_final, dbo.Liquidaciones.Fk_persona, dbo.Liquidaciones.Tipo_liquidacion, dbo.Liquidaciones.Fk_Seccion, dbo.Liquidaciones.Fk_Campaña, dbo.Liquidaciones.Numero_factura_socio, 
             dbo.Liquidaciones.Clase_liquidacion, dbo.Liquidaciones.Texto, dbo.Liquidaciones.Importe_pagar, dbo.Liquidaciones.Importe_iva, dbo.Liquidaciones.Importe_irpf, dbo.Liquidaciones.Importe_base, dbo.Liquidaciones.Fecha_integracion, dbo.Liquidaciones.Fk_c_contable_integrada, dbo.Liquidaciones.Contador, 
             dbo.Liquidaciones.Fk_cuenta_banco_empresa, dbo.Liquidaciones.Importe_ret_antes_imp, dbo.Liquidaciones.Importe_ret_despues_imp, dbo.Liquidaciones.Importe_bruto, dbo.Liquidaciones.Importe_recargo, dbo.Liquidaciones.Importe_imp_incluidos, dbo.Liquidaciones.Importe_antes_penal, dbo.Liquidaciones.Importe_bonif, 
             dbo.Liquidaciones.Importe_penal, dbo.Liquidaciones.Fk_direccion_fiscal, dbo.Liquidaciones.Fk_direccion_envio, dbo.Liquidaciones.Fk_forma_pago, dbo.Liquidaciones.Bloqueo, dbo.Liquidaciones.Ivas_modificados, dbo.Liquidaciones.Regimen_ss, dbo.Liquidaciones.Num_liq_importada, dbo.Liquidaciones.Fecha_recepcion, 
             dbo.Liquidaciones.Dev_serie, dbo.Liquidaciones.Dev_numero, dbo.Liquidaciones.Dev_descripcion, dbo.Liquidaciones.Fk_mot_devolucion, dbo.Liquidaciones.Dev_fecha, dbo.Liquidaciones.Fecha_cerrado, dbo.Liquidaciones.No_calcular_irpf, dbo.Liquidaciones.Fk_cuenta_banco_cliente, dbo.Liquidaciones.Codigo_transportista, 
             dbo.Liquidaciones.Matricula, dbo.Liquidaciones.Notas_internas, dbo.Liquidaciones.Notas_factura, dbo.Liquidaciones.Porte, dbo.Liquidaciones.Forma_envio, dbo.Liquidaciones.Observaciones, dbo.Liquidaciones.Observaciones_internas, dbo.Liquidaciones.Serie_liq_rectificada, dbo.Liquidaciones.Id_liq_rectificada, 
             dbo.Liquidaciones.Numero_liq_rectificada, dbo.Liquidaciones.Fecha_liq_rectificada, dbo.Liquidaciones.Importe_pagos_cuenta, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Campañas.Descripcion AS Desc_campaña, dbo.V_Personas.NombreCompleto, 
             CASE WHEN Clase_liquidacion = 1 THEN ''Provisional'' WHEN Clase_liquidacion = 2 THEN ''Definitiva'' WHEN Clase_liquidacion = 3 THEN ''Rectificativa'' WHEN Clase_liquidacion = 4 THEN ''Valoración campaña'' WHEN Clase_liquidacion = 5 THEN ''Liq. transportista'' ELSE '''' END AS Clase_liquidacion_desc, 
             CASE WHEN Tipo_liquidacion = 1 THEN ''Comercial'' WHEN Tipo_liquidacion = 2 THEN ''Depósito'' WHEN Tipo_liquidacion = 3 THEN ''Resultas'' ELSE '''' END AS Tipo_liquidacion_desc, FIS.Descripcion AS Dir_fiscal_desc, FIS.Via_publica AS Dir_fiscal_via, 
             FIS.Direccion AS Dir_fiscal_direccion, FIS.Numero AS Dir_fiscal_numero, FIS.Piso AS Dir_fiscal_piso, FIS.Puerta AS Dir_fiscal_puerta, FIS.Municipio AS Dir_fiscal_municipio, FIS.Codigo_postal AS Dir_fiscal_cp, 
             FIS.Comarca AS Dir_fiscal_comarca, FIS.Provincia AS Dir_fiscal_provincia, FIS.Pais AS Dir_fiscal_pais, ENV.Descripcion AS Dir_envio_desc, ENV.Via_publica AS Dir_envio_via, 
             ENV.Direccion AS Direccion_envio, ENV.Numero AS Dir_envio_numero, ENV.Piso AS Dir_envio_piso, ENV.Puerta AS Dir_envio_puerta, ENV.Codigo_postal AS Dir_envio_cp, 
             ENV.Municipio AS Dir_envio_municipio, ENV.Comarca AS Dir_envio_comarca, ENV.Provincia AS Dir_envio_provincia, ENV.Pais AS Dir_envio_pais, dbo.V_Personas.Identificacion, pc.Iban AS Iban_cliente, pc.Entidad AS Entidad_cliente, 
             pc.Desc_entidad AS Desc_entidad_cliente, CBE.Iban AS Iban_banco_empresa, CBE.Entidad AS Entidad_banco_empresa, CBE.Desc_entidad AS Desc_entidad_banco_empresa, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Formas_de_pago.Recoger_banco_cliente, dbo.Formas_de_pago.Recoger_banco_empresa, pc.S_credito, 
             pc.Cuenta, dbo.Liquidaciones.Numero_autofactura_persona, IVASUM.Importe_base_irpf, dbo.V_Personas.Idioma_reportes, dbo.Liquidaciones.Fk_buzon_documentos, dbo.Secciones.Tipo_seccion, dbo.Liquidaciones.Num_asiento, ASI.numero_asiento AS Numero_asiento1, dbo.Liquidaciones.Num_asiento2, 
             ASI2.numero_asiento AS Numero_asiento2, dbo.Liquidaciones.Sistema_liquidaciones, dbo.Liquidaciones.Fk_libro, dbo.Liquidaciones.Libro_orden, dbo.Liquidaciones.numero_remesa, ISNULL(LPA.Importe_irpf_pagos_cuenta_asociados, 0) AS Importe_irpf_pagos_cuenta_asociados, dbo.Liquidaciones.Fk_centro, 
             dbo.Centros.Descripcion AS Desc_centro, dbo.Liquidaciones.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa, dbo.Liquidaciones.Fecha_creacion, dbo.Liquidaciones.Fecha_modificacion, dbo.Liquidaciones.Usuario_creacion, dbo.Liquidaciones.Usuario_modificacion, dbo.Liquidaciones.Tipo_precio_liq_trans, 
             dbo.Liquidaciones.Fecha_operacion,dbo.Liquidaciones.Fecha_registro, dbo.Liquidaciones.Su_referencia, dbo.Liquidaciones.Serie_fac_proveedor, dbo.Liquidaciones.Numero_fac_proveedor, dbo.Liquidaciones.Id_filtro, dbo.V_Personas.Serie_su_factura, dbo.Liquidaciones.Id_gen_otra_empresa,dbo.Liquidaciones.Id_liq_gen_alb_salida
FROM     dbo.Liquidaciones LEFT OUTER JOIN
             dbo.Secciones ON dbo.Liquidaciones.Fk_Seccion = dbo.Secciones.Codigo INNER JOIN
             dbo.Campañas ON dbo.Liquidaciones.Fk_Campaña = dbo.Campañas.Codigo INNER JOIN
             dbo.V_Personas ON dbo.Liquidaciones.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
             dbo.Centros ON dbo.Liquidaciones.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
             dbo.Empresas ON dbo.Liquidaciones.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
             dbo.Formas_de_pago ON dbo.Liquidaciones.Fk_forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
             dbo.V_PersonasDirecciones ENV ON dbo.Liquidaciones.Fk_direccion_envio = ENV.Codigo LEFT OUTER JOIN
             dbo.V_PersonasDirecciones FIS  ON dbo.Liquidaciones.Fk_direccion_fiscal = FIS.Codigo LEFT OUTER JOIN
             dbo.V_PersonasCuentas AS pc ON pc.Codigo = dbo.Liquidaciones.Fk_cuenta_banco_cliente LEFT OUTER JOIN
             dbo.Asientos_cabecera AS ASI ON dbo.Liquidaciones.Num_asiento = ASI.id LEFT OUTER JOIN
             dbo.Asientos_cabecera AS ASI2 ON dbo.Liquidaciones.Num_asiento2 = ASI2.id LEFT OUTER JOIN
             dbo.V_CuentasBancoEmpresa AS CBE ON CBE.Codigo = dbo.Liquidaciones.Fk_cuenta_banco_empresa LEFT OUTER JOIN
                 (SELECT   Fk_liquidacion, SUM(CASE WHEN ISNULL(Importe_irpf,0)=0 THEN 0 ELSE ISNULL(Importe_base_irpf,0) END) AS Importe_base_irpf
                 FROM     dbo.Liquidaciones_ivas
                 GROUP BY Fk_liquidacion) AS IVASUM ON IVASUM.Fk_liquidacion = dbo.Liquidaciones.Id LEFT OUTER JOIN
                 (SELECT   Fk_liquidacion, SUM(ISNULL(Importe_irpf, 0)) AS Importe_irpf_pagos_cuenta_asociados
                 FROM     dbo.Liquidaciones_pagos_asociados
                 GROUP BY Fk_liquidacion) AS LPA ON dbo.Liquidaciones.Id = LPA.Fk_liquidacion
							'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiqLinParamsColumnas]'))
DROP VIEW [dbo].V_LiqLinParamsColumnas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiqLinParamsColumnas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiqLinParamsColumnas] AS
SELECT 
    Fk_liquidacion,
    Linea,
    [1000] AS Rendimiento,
    [1001] AS Humedad,
    [1002] AS Podrido,
    [1003] AS Gluconico,
    [1004] AS Acidez,
    [1005] AS Densidad,
    [1006] AS Grado,
    [1007] AS Acidez_volatil,
    [1008] AS Acidez_total_sulfurica,
    [1009] AS Cascara,
    [1010] AS Materia_grasa,
    [1011] AS Mal_peladas,
    [1012] AS Fallado,
    [1013] AS Mezcla,
    [1014] AS Capas_color,
    [1015] AS Tamano_grande,
    [1016] AS Tamano_pequeno,
    [1017] AS Sucio,
    [1019] AS Materias_extranas,
    [1020] AS Rendimiento_industrial,
    [1021] AS Estimacion_Rendimiento_industrial,
    [1022] AS Aceite_sobre_seco,
    [1023] AS Cascall,
    [1024] AS Cascallot,
    [1025] AS Piedras,
    [1026] AS Otros,
    [1027] AS Apolilladas,
    [1028] AS Engomadas,
    [1029] AS Rancias,
    [1030] AS Florecidas,
    [1031] AS Gemelas,
    [1033] AS Rascadas,
    [1034] AS Viejas,
    [1035] AS Peladas,
    [1036] AS Migradas,
    [1037] AS Aflatoxinas,
    [1038] AS Trozo,
    [1039] AS Tamano_bajo_9,
    [1040] AS Tamano_9_10,
    [1041] AS Tamano_10_11,
    [1042] AS Tamano_11_12,
    [1043] AS Tamano_12_13,
    [1044] AS Tamano_13_14,
    [1045] AS Tamano_14_15,
    [1046] AS Tamano_15_16,
    [1047] AS Tamano_16_17,
    [1048] AS Tamano_17_18,
    [1049] AS Tamano_sobre_18,
    [1050] AS Maquina,
    [1051] AS Rancimat,
    [1052] AS Piezas_onza,
    [1053] AS Grado_laboratorio,
    [1054] AS ATS_laboratorio,
    [1055] AS Gluconico_laboratorio,
    [1056] AS Gastos_almacenaje,
    [1057] AS Bonificacion_transporte,
    [1058] AS Dias_diferencia_deposito
FROM 
(
    SELECT 
        Fk_liquidacion,
        Linea,
        Parametro,
        Valor
    FROM 
        dbo.Liquidaciones_lineas_param
) AS SourceTable
PIVOT 
(
    MAX(Valor)
    FOR Parametro IN ([1000], [1001], [1002], [1003], [1004], [1005], [1006], [1007], [1008], [1009], 
                      [1010], [1011], [1012], [1013], [1014], [1015], [1016], [1017], [1019], [1020], 
                      [1021], [1022], [1023], [1024], [1025], [1026], [1027], [1028], [1029], [1030], 
                      [1031], [1033], [1034], [1035], [1036], [1037], [1038], [1039], [1040], [1041], 
                      [1042], [1043], [1044], [1045], [1046], [1047], [1048], [1049], [1050], [1051], 
                      [1052], [1053], [1054], [1055], [1056], [1057], [1058])
) AS p;
'
GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_LiquidacionesLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_LiquidacionesLineas]
							AS SELECT        dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, LIN.Fk_liquidacion, LIN.Linea, LIN.Albaran_numero, LIN.Albaran_linea, 
                         LIN.Albaran_serie, LIN.Precio_final_linea, LIN.Valor_iva, LIN.Valor_irpf, LIN.Fk_articulo, 
                         LIN.Precio_base_linea, LIN.Cantidad_bruta, LIN.Cantidad_neta, LIN.Fk_calibre, LIN.Pc_correccion, 
                         LIN.Pc_correccion_importe, LIN.Cantidad_bruta_original, LIN.Cantidad_neta_original, LIN.Importe_penal, 
                         LIN.Importe_base_penal, LIN.Importe_base_ret, LIN.Codigo_iva, LIN.Importe_bonif, LIN.Fk_centro, 
                         dbo.Liquidaciones.Serie, dbo.Liquidaciones.Numero, dbo.Liquidaciones.Fecha, dbo.Liquidaciones.Fk_persona, dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Liquidaciones.Tipo_liquidacion, 
                         dbo.Tipos_liquidacion.Descripcion AS Desc_tipo_liquidacion, dbo.Liquidaciones.Fk_Seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Liquidaciones.Fk_Campaña, dbo.Campañas.Descripcion AS Desc_campaña, 
                         dbo.Liquidaciones.Clase_liquidacion, dbo.Liquidaciones.Num_liq_importada, dbo.Liquidaciones.Numero_factura_socio, dbo.V_ArticulosNombre.Desc_unidad, 
                         CASE WHEN Clase_liquidacion = 1 THEN ''Provisional'' WHEN Clase_liquidacion = 2 THEN ''Definitiva'' WHEN Clase_liquidacion = 3 THEN ''Rectificativa'' WHEN Clase_liquidacion = 4 THEN ''Valoración campaña'' WHEN Clase_liquidacion = 5 THEN ''Liq. transportista'' ELSE '''' END AS Clase_liquidacion_desc, 
                         dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo, dbo.Secciones.Tipo_seccion, dbo.Liquidaciones.Fk_centro AS Fk_centro_cab, dbo.Centros.Descripcion AS Desc_centro_cab, dbo.Liquidaciones.Fk_empresa, 
                         dbo.Empresas.Descripcion AS Desc_empresa,Alb.Asociacion_compra
						 ,Alb.Fecha as Fecha_alb_liq,LIN.Autoconsumo,ARTAUTO.Descripcion as Desc_art_agrup_autoconsumo
						 ,V_AlbLiqLin.Id_finca1,Desc_finca,Codigo_pv_rvc_f1,V_AlbLiqLin.Parcela_f1,V_Albliqlin.Poligono1
						 ,V_AlbLiqLin.Id_finca2,Desc_finca2,Codigo_pv_rvc_f2,V_AlbLiqLin.Parcela_f2,V_Albliqlin.Poligono2
						 ,V_AlbLiqLin.Id_finca3,Desc_finca3,Codigo_pv_rvc_f3,V_AlbLiqLin.Parcela_f3,V_Albliqlin.Poligono3
						 ,V_AlbLiqLin.Id_finca4,Desc_finca4,Codigo_pv_rvc_f4,V_AlbLiqLin.Parcela_f4,V_Albliqlin.Poligono4
						 ,dbo.Liquidaciones.Su_referencia,dbo.Liquidaciones.Serie_fac_proveedor,dbo.Liquidaciones.Numero_fac_proveedor,dbo.Liquidaciones.Id_filtro,dbo.Liquidaciones.Fk_forma_pago,FP.Descripcion as Desc_forma_pago
						 ,LIN.Fk_cuenta_contable,ACC.Descripcion as Desc_cuenta_contable,Alb.Numero_EMCS,VLP.Grado,VLP.Rendimiento,LIN.Tipo_precio_liq, dbo.Liquidaciones.Fecha_recepcion
					FROM          dbo.Liquidaciones_lineas  LIN INNER JOIN					
                         dbo.V_ArticulosNombre ON LIN.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN 
						 dbo.V_ArticulosNombre ARTAUTO ON  dbo.V_ArticulosNombre.Fk_art_agrup_autoconsumo = ARTAUTO.Codigo INNER JOIN	
                         dbo.Liquidaciones ON LIN.Fk_liquidacion = dbo.Liquidaciones.Id LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Liquidaciones.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Liquidaciones.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Liquidaciones.Fk_persona = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Tipos_liquidacion ON dbo.Liquidaciones.Tipo_liquidacion = dbo.Tipos_liquidacion.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Liquidaciones.Fk_Campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
						 dbo.Formas_de_pago FP ON dbo.Liquidaciones.Fk_forma_pago=FP.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Liquidaciones.Fk_Seccion = dbo.Secciones.Codigo 
						 LEFT OUTER JOIN  dbo.Alb_liq Alb ON LIN.Albaran_serie=Alb.Serie AND LIN.Albaran_numero=Alb.Numero
						 LEFT OUTER JOIN V_AlbLiqLin ON LIN.Albaran_serie=v_albliqlin.Serie 
						 AND LIN.Albaran_numero=V_AlbLiqLin.Numero 
						 AND LIN.Albaran_linea=V_AlbLiqLin.Linea
						 LEFT OUTER JOIN dbo.Asientos_cuentas_contables ACC ON LIN.Fk_cuenta_contable=ACC.Codigo
						 LEFT OUTER JOIN V_LiqLinParamsColumnas VLP ON LIN.Fk_liquidacion=VLP.Fk_liquidacion AND LIN.Linea=VLP.Linea
						 '
						 GO
						 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLinParam]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesLinParam]
							AS
							SELECT        dbo.Liquidaciones_lineas_param.Fk_liquidacion, dbo.Liquidaciones_lineas_param.Linea, dbo.Liquidaciones_lineas_param.Parametro, dbo.Liquidaciones_lineas_param.Valor, 
                         dbo.Parametros_analisis.Descripcion AS Desc_parametro, dbo.Parametros_analisis.Tipo_valor, dbo.Liquidaciones.Serie, dbo.Liquidaciones.Numero
						 , dbo.Param_analisis_seccion.No_imprimir_en_liquidaciones
FROM            dbo.Liquidaciones_lineas_param
INNER JOIN     dbo.Liquidaciones ON dbo.Liquidaciones_lineas_param.Fk_liquidacion = dbo.Liquidaciones.Id LEFT OUTER JOIN
dbo.Secciones on dbo.Liquidaciones.Fk_Seccion=dbo.Secciones.Codigo LEFT OUTER JOIN 
                         dbo.Parametros_analisis ON dbo.Liquidaciones_lineas_param.Parametro = dbo.Parametros_analisis.Codigo LEFT OUTER JOIN
						 dbo.Param_analisis_seccion ON dbo.Param_analisis_seccion.Codigo_parametro=dbo.Parametros_analisis.Codigo
						 AND dbo.Param_analisis_seccion.Tipo_seccion=dbo.Secciones.Tipo_seccion
							'
							GO
						 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_LiquidacionesLineasParametrosImporte]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_LiquidacionesLineasParametrosImporte] AS
						 SELECT        dbo.Liquidaciones_parametros.Id, dbo.Liquidaciones_parametros.Fk_liquidacion, dbo.Liquidaciones_parametros.Linea, dbo.Liquidaciones_parametros.Fk_parametro, dbo.Parametros_analisis.Descripcion AS Desc_parametro, 
                         dbo.Liquidaciones_parametros.Descripcion AS Desc_penalizacion, dbo.Liquidaciones_parametros.Penal_bonif, dbo.Liquidaciones_parametros.Quilos_importe, dbo.Liquidaciones_parametros.Tipo_valor, 
                         dbo.Liquidaciones_parametros.Tipo_aplicacion, dbo.Liquidaciones_parametros.Param_desde, dbo.Liquidaciones_parametros.Param_hasta, dbo.Liquidaciones_parametros.Quilos_importe_penal_bonif, 
                         dbo.Liquidaciones_parametros.Valor_penal_bonif, dbo.Liquidaciones_parametros.Limite, dbo.Liquidaciones_parametros.Coef_corrector, dbo.Liquidaciones_parametros.Valor, dbo.Liquidaciones.Serie, 
                         dbo.Liquidaciones.Numero, dbo.Liquidaciones_lineas.Fk_articulo, dbo.Liquidaciones_lineas.Importe_base_penal, dbo.Liquidaciones_lineas.Importe_penal, dbo.Liquidaciones_lineas.Importe_base_ret, 
                         dbo.Liquidaciones_lineas.Importe_bonif, dbo.Liquidaciones_parametros.Param_texto
FROM            dbo.Liquidaciones_parametros INNER JOIN
                         dbo.Parametros_analisis ON dbo.Liquidaciones_parametros.Fk_parametro = dbo.Parametros_analisis.Codigo INNER JOIN
                         dbo.Liquidaciones ON dbo.Liquidaciones_parametros.Fk_liquidacion = dbo.Liquidaciones.Id INNER JOIN
                         dbo.Liquidaciones_lineas ON dbo.Liquidaciones_parametros.Fk_liquidacion = dbo.Liquidaciones_lineas.Fk_liquidacion AND dbo.Liquidaciones_parametros.Linea = dbo.Liquidaciones_lineas.Linea
WHERE        (dbo.Liquidaciones_parametros.Quilos_importe = 1) OR
                         (dbo.Liquidaciones_parametros.Quilos_importe = 2) OR
                         (dbo.Liquidaciones_parametros.Quilos_importe = 3) OR
                         (dbo.Liquidaciones_parametros.Quilos_importe = 5) OR
                         (dbo.Liquidaciones_parametros.Quilos_importe = 6)'
						 GO
						 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_LiquidacionesLineasParametros]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_LiquidacionesLineasParametros] AS
						 SELECT        dbo.Liquidaciones_parametros.Id, dbo.Liquidaciones_parametros.Fk_liquidacion, dbo.Liquidaciones_parametros.Linea, dbo.Liquidaciones_parametros.Fk_parametro, 
						 dbo.Parametros_analisis.Descripcion AS Desc_parametro, dbo.Liquidaciones_parametros.Descripcion AS Desc_penalizacion, dbo.Liquidaciones_parametros.Penal_bonif, 
						 dbo.Liquidaciones_parametros.Quilos_importe, dbo.Liquidaciones_parametros.Tipo_valor, dbo.Liquidaciones_parametros.Tipo_aplicacion, dbo.Liquidaciones_parametros.Param_desde, 
						 dbo.Liquidaciones_parametros.Param_hasta, dbo.Liquidaciones_parametros.Quilos_importe_penal_bonif, dbo.Liquidaciones_parametros.Valor_penal_bonif, dbo.Liquidaciones_parametros.Limite, 
						 dbo.Liquidaciones_parametros.Coef_corrector, dbo.Liquidaciones_parametros.Valor, dbo.Liquidaciones.Serie, dbo.Liquidaciones.Numero
FROM            dbo.Liquidaciones_parametros INNER JOIN
						 dbo.Parametros_analisis ON dbo.Liquidaciones_parametros.Fk_parametro = dbo.Parametros_analisis.Codigo INNER JOIN
						 dbo.Liquidaciones ON dbo.Liquidaciones_parametros.Fk_liquidacion = dbo.Liquidaciones.Id'
						 GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[PedidosCompraLineasIvasImpuestos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [PedidosCompraLineasIvasImpuestos]
							AS
							SELECT     Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva,
							SUM(Importe_iva) AS Importe_iva, Valor_recargo, SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf,
							SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, SUM(Importe_bruto) AS Importe_bruto
							FROM         dbo.Ped_compra_lineas AS iva
							GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_EscandallosCabecera]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_EscandallosCabecera]
							AS
							SELECT        dbo.V_ArticulosNombre.Descripcion AS DescripcionArticulo, dbo.Escandallo_cabecera.Id, dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_cabecera.Descripcion,
                         dbo.Escandallo_cabecera.Observaciones, dbo.Escandallo_cabecera.Tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, 
                         dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Desc_unidad,dbo.Escandallo_cabecera.Fk_ficha_tecnica,FT.Descripcion as Desc_ficha_tecnica,dbo.Escandallo_cabecera.Fk_centro_habitual
						 ,Centros.Descripcion as Desc_centro,dbo.Escandallo_cabecera.Num_revision,dbo.Escandallo_Cabecera.Fecha_revision,dbo.Escandallo_cabecera.Tiempo_preparacion,dbo.Escandallo_cabecera.Personas_necesarias
						 ,dbo.Escandallo_cabecera.Unidades_hora,dbo.Escandallo_cabecera.Dato_referencia,dbo.Escandallo_cabecera.Pc_margen_desv_alerta_prod_hora_pers,dbo.Escandallo_cabecera.Pc_margen_desv_alerta_prod_hora
						 ,dbo.Escandallo_cabecera.Fk_maquina,M.Descripcion as Desc_maquina
FROM            dbo.Escandallo_cabecera INNER JOIN
         dbo.V_ArticulosNombre ON dbo.Escandallo_cabecera.Fk_articulo = dbo.V_ArticulosNombre.Codigo
		 LEFT OUTER JOIN FT_articulos FT ON dbo.Escandallo_cabecera.Fk_ficha_tecnica=FT.Codigo_FT
		 LEFT OUTER JOIN Centros ON dbo.Escandallo_cabecera.Fk_centro_habitual=Centros.codigo
		 LEFT OUTER JOIN Maquinas M ON dbo.Escandallo_cabecera.Fk_maquina=M.Codigo
							'
							GO

							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosPMP]'))
							DROP VIEW [dbo].V_ArticulosPMP
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosPMP]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosPMP] AS
							SELECT FINAL.Articulo,FINAL.Pmp FROM
							(
							select A.Articulo as Articulo, A.PMP,A.precio,ROW_NUMBER() OVER(PARTITION BY A.Articulo ORDER BY A.Articulo, A.Fecha_hora DESC) AS Rown
							from
							Articulos LEFT OUTER JOIN
							V_movimientos A ON A.Articulo=Articulos.Codigo     
							) AS FINAL
							WHERE Rown=1'
							GO
							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosPMPLote]'))
							DROP VIEW [dbo].V_ArticulosPMPLote
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosPMPLote]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosPMPLote] AS
							SELECT FINAL.Articulo,FINAL.Lote,FINAL.Pmp_lote,FINAL.Precio FROM
							(
							select A.Articulo as Articulo,A.Lote, A.Pmp_lote,A.precio,ROW_NUMBER() OVER(PARTITION BY A.Articulo,A.Lote ORDER BY A.Articulo, A.Fecha_hora DESC) AS Rown
							from
							Articulos LEFT OUTER JOIN
							V_movimientos A ON A.Articulo=Articulos.Codigo     
							) AS FINAL
							WHERE Rown=1'
							GO
							IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PreciosUltimaEntrada]'))
							DROP VIEW [dbo].V_PreciosUltimaEntrada 
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PreciosUltimaEntrada]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PreciosUltimaEntrada]
							AS
							SELECT M.SerieTipoDoc,M.Articulo,M.Precio,M.Fecha_doc FROM
							(
							SELECT *, ROW_NUMBER() OVER(PARTITION BY M.Articulo ORDER BY M.Articulo, M.Fecha_doc DESC) AS Rown
							FROM
							(
							select ''AC'' as SerieTipoDoc, C.Fecha_hora as Fecha_doc,L.Fk_articulo as Articulo,L.Precio_bruto as Precio
										FROM Alb_compra C WITH (NOLOCK) INNER JOIN Alb_compra_lineas L WITH (NOLOCK) ON C.Serie=L.Serie AND C.Numero=L.Numero 			 
										LEFT OUTER JOIN Articulos A ON L.Fk_articulo=A.Codigo
										WHERE L.Cantidad>0 AND L.Precio_bruto>0 and CAST(C.Fecha_hora AS Date)<=CAST(GETDATE() as date)
							UNION ALL
								select ''AL'' as SerieTipoDoc, C.Fecha AS Fecha_doc,L.Articulo as Articulo,L.Precio as Precio
										FROM Alb_liq C WITH (NOLOCK) INNER JOIN Alb_liq_lin L WITH (NOLOCK) ON C.Serie=L.Serie AND C.Numero=L.Numero 			 
										WHERE   L.Cantidad_bruta>0 AND L.Precio>0 and CAST(C.Fecha AS Date)<=CAST(GETDATE() as date)	
							UNION ALL
							SELECT M.SerieTipoDoc,M.Fecha_hora as Fecha_doc,M.Articulo,M.Precio			
										from
										Movimientos M WITH (NOLOCK)
										LEFT OUTER JOIN Articulos A ON M.Articulo=A.Codigo
										WHERE  ((SerieTipoDoc=''AI'' AND E_S_N=''E'') 
										OR (SerieTipoDoc=''OP'' AND E_S_N=''E''  AND M.Cantidad>0)
										OR (SerieTipoDoc=''CP'' AND E_S_N=''E''  AND M.Cantidad>0)
										OR (SerieTipoDoc=''CPRE'' AND E_S_N=''E''  AND M.Cantidad>0))
										AND M.Precio>0 
										and CAST(M.Fecha_hora AS Date)<=CAST(GETDATE() as date)
							) M
							)M WHERE M.Rown=1 
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_EscandallosLineas]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_EscandallosLineas]
							AS
							SELECT       dbo.Escandallo_cabecera.Tipo, dbo.Escandallo_linea.Id, dbo.Escandallo_linea.Fk_escandallo_cabecera, dbo.Escandallo_linea.Fk_articulo_inferior, dbo.Escandallo_linea.Orden, dbo.Escandallo_linea.Observaciones_linea, dbo.Escandallo_linea.E_S,
                         dbo.V_ArticulosNombre.Descripcion AS DescripcionArticulo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_do, 
                         dbo.V_ArticulosNombre.Desc_unidad, dbo.V_ArticulosNombre.Producto_supervisor, dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Desc_tipo_articulo, 
                         dbo.Escandallo_cabecera.Fk_articulo AS Fk_articulo_principal, dbo.Escandallo_cabecera.Fk_ficha_tecnica, dbo.Escandallo_linea.Cantidad * ISNULL(PMP.Pmp, 0) AS Importe, dbo.V_ArticulosNombre.Tipologia, 
                         dbo.V_ArticulosNombre.Desc_tipologia, dbo.V_ArticulosNombre.Coste_produccion, dbo.Escandallo_linea.Tipo_valor, DBO.escandallo_cabecera.Fk_centro_habitual, 
                         CASE WHEN dbo.Escandallo_linea.Tipo_valor = 0 THEN ''Cantidad'' WHEN dbo.Escandallo_linea.Tipo_valor = 1 THEN ''Porcentaje'' ELSE '''' END AS Desc_tipo_valor, dbo.Escandallo_linea.Grado, dbo.Escandallo_linea.Cantidad, 
                         PMP.Pmp, IMPSUMBYCOMPREFCOSTE.ImporteSegunProd AS ImporteSegunEscandalloRefCoste, IMP_SUM_ARTS_SIN_REF_COSTE.ImporteSegunProdSinArtsRefCoste,
						 
						 CASE WHEN IMPSUMBYCOMPREFCOSTE.ImporteSegunProd  IS NOT NULL  AND dbo.Escandallo_linea.Fk_articulo_inferior!=IMPSUMBYCOMPREFCOSTE.Fk_articulo
							THEN ISNULL(IMPSUMBYCOMPREFCOSTE.ImporteSegunProd, 0) + ISNULL(IMP_SUM_ARTS_SIN_REF_COSTE.ImporteSegunProdSinArtsRefCoste, 0) 
						 WHEN IMPSUMBYCOMPREFCOSTE.ImporteSegunProd  IS NOT NULL  AND dbo.Escandallo_linea.Fk_articulo_inferior=IMPSUMBYCOMPREFCOSTE.Fk_articulo
							THEN ISNULL(IMPSUMBYCOMPREFCOSTE.ImporteSegunProd, 0)						
						 END as ImporteSegunRefCoste

						 , CASE WHEN IMPSUMBYCOMPREFCOSTE.ImporteSegunProd  IS NOT NULL  AND dbo.Escandallo_linea.Fk_articulo_inferior!=IMPSUMBYCOMPREFCOSTE.Fk_articulo
							THEN ISNULL(IMPSUMBYCOMPREFCOSTE.ImporteSegunProd, 0) + ISNULL(IMP_SUM_ARTS_SIN_REF_COSTE.ImporteSegunProdSinArtsRefCoste, 0) 
						 WHEN IMPSUMBYCOMPREFCOSTE.ImporteSegunProd  IS NOT NULL  AND dbo.Escandallo_linea.Fk_articulo_inferior=IMPSUMBYCOMPREFCOSTE.Fk_articulo
							THEN ISNULL(IMPSUMBYCOMPREFCOSTE.ImporteSegunProd, 0)
						 WHEN (dbo.V_ArticulosNombre.Tipologia = 2 OR dbo.V_ArticulosNombre.Tipologia = 3) THEN 0
						 WHEN (dbo.V_ArticulosNombre.Tipologia = 1) THEN ROUND(dbo.Escandallo_linea.Cantidad * dbo.V_ArticulosNombre.Coste_produccion, 6) 
                         ELSE dbo.Escandallo_linea.Cantidad * ISNULL(PMP.Pmp, 0) END AS ImporteCondicionalParaSum
						 
						 , CASE WHEN (dbo.V_ArticulosNombre.Tipologia = 2 OR
                         dbo.V_ArticulosNombre.Tipologia = 3) THEN 0 WHEN (dbo.V_ArticulosNombre.Tipologia = 1) THEN ROUND(dbo.Escandallo_linea.Cantidad * dbo.V_ArticulosNombre.Coste_produccion, 6) 
                         ELSE dbo.Escandallo_linea.Cantidad * ISNULL(PMP.Pmp, 0) END AS ImporteParamSumSinRefCoste
						 ,dbo.V_ArticulosNombre.Ult_precio_compra_alb,dbo.V_ArticulosNombre.Ult_precio_compra_alb_fecha
						 ,dbo.V_PreciosUltimaEntrada.Precio AS Ult_precio_entrada,dbo.V_PreciosUltimaEntrada.SerieTipoDoc Ult_precio_entrada_tipo_doc,dbo.V_PreciosUltimaEntrada.Fecha_doc as Ult_precio_entrada_fecha_doc
						 ,V_ArticulosNombre.Peso_bruto
FROM            dbo.Escandallo_linea INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Escandallo_linea.Fk_articulo_inferior = dbo.V_ArticulosNombre.Codigo INNER JOIN
                         dbo.Escandallo_cabecera ON dbo.Escandallo_linea.Fk_escandallo_cabecera = dbo.Escandallo_cabecera.Id LEFT OUTER JOIN			
						 dbo.V_PreciosUltimaEntrada ON dbo.Escandallo_linea.Fk_articulo_inferior=dbo.V_PreciosUltimaEntrada.Articulo LEFT OUTER JOIN
                         dbo.V_ArticulosPMP AS PMP ON dbo.Escandallo_linea.Fk_articulo_inferior = PMP.Articulo LEFT OUTER JOIN
                             (SELECT        Fk_articulo, Fk_centro_habitual, ImporteSegunProd
                               FROM            (SELECT        dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_cabecera.Fk_centro_habitual, SUM(CASE WHEN (dbo.V_ArticulosNombre.Tipologia = 2 OR
                                                                                   dbo.V_ArticulosNombre.Tipologia = 3) THEN 0 WHEN (dbo.V_ArticulosNombre.Tipologia = 1) THEN ROUND(dbo.Escandallo_linea.Cantidad * dbo.V_ArticulosNombre.Coste_produccion, 6) 
                                                                                   ELSE dbo.Escandallo_linea.Cantidad * ISNULL(PMP.Pmp, 0) END) AS ImporteSegunProd, ROW_NUMBER() OVER (PARTITION BY dbo.Escandallo_cabecera.Fk_articulo, 
                                                                                   dbo.Escandallo_cabecera.fk_centro_habitual
                                                         ORDER BY dbo.Escandallo_cabecera.Fk_articulo ASC) AS Rown
                               FROM            dbo.Escandallo_linea INNER JOIN
                                                         dbo.V_ArticulosNombre ON dbo.Escandallo_linea.Fk_articulo_inferior = dbo.V_ArticulosNombre.Codigo INNER JOIN
                                                         dbo.Escandallo_cabecera ON dbo.Escandallo_linea.Fk_escandallo_cabecera = dbo.Escandallo_cabecera.Id LEFT OUTER JOIN
                                                         dbo.V_ArticulosPMP AS PMP ON dbo.Escandallo_linea.Fk_articulo_inferior = PMP.Articulo
                               GROUP BY dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_cabecera.Fk_centro_habitual, dbo.Escandallo_cabecera.Fk_ficha_tecnica) IMPSUMBYCOMP
WHERE        Rown = 1) IMPSUMBYCOMPREFCOSTE ON dbo.V_ArticulosNombre.Fk_articulo_referencia_coste = IMPSUMBYCOMPREFCOSTE.Fk_articulo AND 
dbo.Escandallo_cabecera.Fk_centro_habitual = IMPSUMBYCOMPREFCOSTE.Fk_centro_habitual LEFT OUTER JOIN
    (SELECT        Fk_articulo, Fk_centro_habitual, ImporteSegunProdSinArtsRefCoste
      FROM            (SELECT        dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_cabecera.Fk_centro_habitual, 
                                                          SUM(CASE WHEN dbo.V_articulosNombre.Codigo <> ART_CAB.Fk_articulo_referencia_coste THEN CASE WHEN (dbo.V_ArticulosNombre.Tipologia = 2 OR
                                                          dbo.V_ArticulosNombre.Tipologia = 3) THEN 0 WHEN (dbo.V_ArticulosNombre.Tipologia = 1) THEN ROUND(dbo.Escandallo_linea.Cantidad * dbo.V_ArticulosNombre.Coste_produccion, 6) 
                                                          ELSE dbo.Escandallo_linea.Cantidad * ISNULL(PMP.Pmp, 0) END ELSE 0 END) AS ImporteSegunProdSinArtsRefCoste, ROW_NUMBER() OVER (PARTITION BY dbo.Escandallo_cabecera.Fk_articulo, 
                                                          dbo.Escandallo_cabecera.fk_centro_habitual
                                ORDER BY dbo.Escandallo_cabecera.Fk_articulo ASC) AS Rown
      FROM            dbo.Escandallo_linea INNER JOIN
                                dbo.Escandallo_cabecera ON dbo.Escandallo_linea.Fk_escandallo_cabecera = dbo.Escandallo_cabecera.Id LEFT OUTER JOIN
                                dbo.V_ArticulosNombre ON dbo.Escandallo_linea.Fk_articulo_inferior = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                                dbo.V_ArticulosNombre AS ART_CAB ON dbo.Escandallo_cabecera.Fk_articulo = ART_CAB.Codigo LEFT OUTER JOIN
                                dbo.V_ArticulosPMP AS PMP ON dbo.Escandallo_linea.Fk_articulo_inferior = PMP.Articulo
      GROUP BY dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_cabecera.Fk_centro_habitual, dbo.Escandallo_cabecera.Fk_ficha_tecnica) IMPSUMBYCOMP
WHERE        Rown = 1) IMP_SUM_ARTS_SIN_REF_COSTE ON dbo.V_ArticulosNombre.codigo = IMP_SUM_ARTS_SIN_REF_COSTE.Fk_articulo AND 
dbo.Escandallo_cabecera.Fk_centro_habitual = IMP_SUM_ARTS_SIN_REF_COSTE.Fk_centro_habitual		 						 
							'
							GO
							
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_estoc_sellos]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_estoc_sellos]
							AS
							select A.*,CASE WHEN ISNULL(B.eti_disp_desde,0)=0 THEN C.eti_origen_desde ELSE B.eti_disp_desde END AS Eti_disp_desde,c.eti_origen_desde,c.eti_origen_hasta from V_estoc_lote A
							INNER JOIN Articulos ON Articulos.Codigo=A.articulo
							LEFT OUTER JOIN

							(SELECT        dbo.V_Movimientos.Articulo, dbo.V_Movimientos.Almacen, dbo.V_Movimientos.Fk_centro,dbo.V_Movimientos.Lote, MAX(ISNULL(dbo.V_Movimientos.Num_eti_hasta, 0)) + 1 AS eti_disp_desde
							FROM            dbo.V_Movimientos INNER JOIN
							dbo.Articulos ON dbo.V_Movimientos.Articulo = dbo.Articulos.Codigo
							WHERE        (dbo.Articulos.Art_sello_do = 1) AND (dbo.V_Movimientos.E_S_N = ''S'')
							GROUP BY dbo.V_Movimientos.Articulo, dbo.V_Movimientos.Almacen, dbo.V_Movimientos.Fk_centro,dbo.V_Movimientos.Lote
							) B ON A.Articulo=b.Articulo AND a.Almacen=b.Almacen AND a.Centro=b.Fk_centro AND A.Lote=B.Lote
							LEFT OUTER JOIN
							(SELECT        dbo.V_Movimientos.Articulo, dbo.V_Movimientos.Almacen, dbo.V_Movimientos.Fk_centro,dbo.V_Movimientos.Lote,MIN(dbo.V_Movimientos.Num_eti_desde) AS eti_origen_desde, MAX(dbo.V_Movimientos.Num_eti_hasta) AS eti_origen_hasta
							FROM            dbo.V_Movimientos INNER JOIN
							dbo.Articulos ON dbo.V_Movimientos.Articulo = dbo.Articulos.Codigo
							WHERE        (dbo.Articulos.Art_sello_do = 1) AND (dbo.V_Movimientos.E_S_N = ''E'')
							GROUP BY dbo.V_Movimientos.Articulo, dbo.V_Movimientos.Almacen, dbo.V_Movimientos.Fk_centro,dbo.V_Movimientos.Lote
							) C ON A.Articulo=C.Articulo AND a.Almacen=C.Almacen AND a.Centro=C.Fk_centro AND A.Lote=C.Lote
							WHERE Articulos.Art_sello_do=1
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_HojasCargaCabecera]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_HojasCargaCabecera]
							AS
								SELECT        dbo.Hoja_carga_cabecera.Id, dbo.Hoja_carga_cabecera.Serie, dbo.Hoja_carga_cabecera.Numero, dbo.Hoja_carga_cabecera.Fk_centro, dbo.Hoja_carga_cabecera.Fecha_hora, 
						 dbo.Hoja_carga_cabecera.Fecha_carga, dbo.Hoja_carga_cabecera.Fk_transportista, dbo.Hoja_carga_cabecera.Matricula1, dbo.Hoja_carga_cabecera.Matricula2, dbo.Hoja_carga_cabecera.Fk_forma_envio, 
						 dbo.Hoja_carga_cabecera.Fk_portes, IIF(ISNULL(dbo.Hoja_carga_cabecera.Notas,'''')='''', dbo.Hoja_carga_cabecera.Notas_para_albaran, dbo.Hoja_carga_cabecera.Notas + ISNULL('' '' + dbo.Hoja_carga_cabecera.Notas_para_albaran,'''')) As Notas, 
						 dbo.Hoja_carga_cabecera.Notas_internas, dbo.Hoja_carga_cabecera.Estado, dbo.Centros.Descripcion AS DescCentro, 
						 dbo.Formas_envio.Descripcion AS DescFormaEnvio, dbo.V_Personas.NombreCompleto, dbo.Series_hojas_carga.Descripcion AS DescSerie, dbo.Portes.Descripcion AS DescPortes, 
						 dbo.Incoterm.Descripcion AS DescIncoterm, dbo.Hoja_carga_cabecera.Cantidad_total, dbo.Hoja_carga_cabecera.Total_palets, dbo.Hoja_carga_cabecera.Peso_bruto, dbo.Hoja_carga_cabecera.Peso_neto, 
						 dbo.Hoja_carga_cabecera.Peso_total, dbo.Centros.Via_publica as Centro_via_publica, dbo.Centros.Direccion AS Centro_direccion, dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta as Centro_puerta, 
						 dbo.Centros.Municipio AS Centro_municipio, dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, 
						 dbo.Centros.Telefono_1 AS Centro_telefono1, dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Hoja_carga_cabecera.Prioridad,
						 dbo.Centros.Piso AS Centro_piso,dbo.Hoja_carga_cabecera.Emcs_aduana,dbo.Hoja_carga_cabecera.Emcs_precintos,dbo.Hoja_carga_cabecera.Pais_emcs
						 ,dbo.Hoja_carga_cabecera.Fk_destinatario,CONSIG.NombreCompleto as Nombre_destinatario,DC.Descripcion AS Dir_consig_desc, DC.Via_publica AS Dir_consig_via, DC.Direccion AS Dir_consig_envio, 
						 DC.Codigo_postal AS Dir_consig_cp, DC.Municipio AS Dir_consig_municipio, DC.Comarca AS Dir_consig_comarca, DC.Provincia AS Dir_consig_provincia, DC.Pais AS Dir_consig_pais, DC.Cae AS Dir_consig_cae,
						  DC.Warehouse AS Dir_consig_warehouse, DC.Rc AS Dir_consig_rc,dbo.Hoja_carga_cabecera.Usuario_creacion,dbo.Hoja_carga_cabecera.Usuario_modificacion,dbo.Hoja_carga_cabecera.Fecha_creacion
						  ,dbo.Hoja_carga_cabecera.Fecha_modificacion, dbo.V_Personas.Codigo_autorizacion_ria, Hoja_carga_cabecera.impreso, 
							dbo.Hoja_carga_cabecera.Fecha_hora_carga_fin, dbo.Hoja_carga_cabecera.Usuario_fin
						 , STUFF((SELECT '', '' + Serie + ''/'' + CAST(Numero as nvarchar)
							FROM Alb_venta 
							WHERE ( Alb_venta.Fk_hoja_carga_cabecera = Hoja_carga_cabecera.Id )
							FOR XML PATH ('''')),1,2,'''') as Albaranes
							, CAST
								((SELECT  DISTINCT ''['' + CAST(serie_pedido AS varchar) + ''/'' +CAST(Numero_pedido AS varchar) + '']  ''
									FROM            Hoja_carga_linea
									WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
									group by Hoja_carga_linea.Fk_cabecera,Serie_pedido,Numero_pedido
									FOR XML PATH('''')) AS varchar(1000)) AS Pedidos
							, CAST
								((SELECT  DISTINCT ''['' + CAST(Fk_cliente AS varchar) +'']  ''
								FROM            Hoja_carga_linea
								WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
								group by Hoja_carga_linea.Fk_cliente,Hoja_carga_linea.Fk_cliente
								FOR XML PATH('''')) AS varchar(1000)) AS Codigos_clientes
							, CAST
							((SELECT  DISTINCT ''['' + CAST(V_PersonasSoloNombre.NombreCompleto AS varchar) +'']  ''
								FROM            Hoja_carga_linea INNER JOIN V_PersonasSoloNombre
								ON Hoja_carga_linea.Fk_cliente=V_PersonasSoloNombre.Codigo
								WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
								group by Hoja_carga_linea.Fk_cabecera,V_PersonasSoloNombre.NombreCompleto
								FOR XML PATH('''')) AS varchar(1000)) AS Clientes, 
								Hoja_carga_cabecera.Estado_control_carga, Hoja_carga_cabecera.Total_pales
						 FROM            dbo.Hoja_carga_cabecera INNER JOIN
						 dbo.Centros ON dbo.Hoja_carga_cabecera.Fk_centro = dbo.Centros.Codigo INNER JOIN
						 dbo.Series_hojas_carga ON dbo.Hoja_carga_cabecera.Serie = dbo.Series_hojas_carga.Serie LEFT OUTER JOIN
						 dbo.Incoterm ON dbo.Hoja_carga_cabecera.Fk_incoterm = dbo.Incoterm.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Hoja_carga_cabecera.Fk_forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Portes ON dbo.Hoja_carga_cabecera.Fk_portes = dbo.Portes.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Hoja_carga_cabecera.Fk_transportista = dbo.V_Personas.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS CONSIG ON dbo.Hoja_carga_cabecera.Fk_destinatario = CONSIG.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS DC ON dbo.Hoja_carga_cabecera.Fk_direccion_destinatario = DC.Codigo 
						 WHERE (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 0)
							'
							GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_ServiciosRepartidor]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_ServiciosRepartidor]
							AS
								SELECT        dbo.Hoja_carga_cabecera.Id, dbo.Hoja_carga_cabecera.Serie, dbo.Hoja_carga_cabecera.Numero, dbo.Hoja_carga_cabecera.Fk_centro, dbo.Hoja_carga_cabecera.Fecha_hora, 
						 dbo.Hoja_carga_cabecera.Fecha_carga, dbo.Hoja_carga_cabecera.Fk_transportista, dbo.Hoja_carga_cabecera.Matricula1, dbo.Hoja_carga_cabecera.Matricula2, dbo.Hoja_carga_cabecera.Fk_forma_envio, 
						 dbo.Hoja_carga_cabecera.Fk_portes, IIF(ISNULL(dbo.Hoja_carga_cabecera.Notas,'''')='''', dbo.Hoja_carga_cabecera.Notas_para_albaran, dbo.Hoja_carga_cabecera.Notas + ISNULL('' '' + dbo.Hoja_carga_cabecera.Notas_para_albaran,'''')) As Notas, 
						 dbo.Hoja_carga_cabecera.Notas_internas, dbo.Hoja_carga_cabecera.Estado, dbo.Centros.Descripcion AS DescCentro, 
						 dbo.Formas_envio.Descripcion AS DescFormaEnvio, dbo.V_Personas.NombreCompleto, dbo.Series_hojas_carga.Descripcion AS DescSerie, dbo.Portes.Descripcion AS DescPortes, 
						 dbo.Incoterm.Descripcion AS DescIncoterm, dbo.Hoja_carga_cabecera.Cantidad_total, dbo.Hoja_carga_cabecera.Total_palets, dbo.Hoja_carga_cabecera.Peso_bruto, dbo.Hoja_carga_cabecera.Peso_neto, 
						 dbo.Hoja_carga_cabecera.Peso_total, dbo.Centros.Via_publica as Centro_via_publica, dbo.Centros.Direccion AS Centro_direccion, dbo.Centros.Numero AS Centro_direccion_numero, dbo.Centros.Puerta as Centro_puerta, 
						 dbo.Centros.Municipio AS Centro_municipio, dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, 
						 dbo.Centros.Telefono_1 AS Centro_telefono1, dbo.Centros.Telefono_2 AS Centro_telefono2, dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Hoja_carga_cabecera.Prioridad,
						 dbo.Centros.Piso AS Centro_piso,dbo.Hoja_carga_cabecera.Emcs_aduana,dbo.Hoja_carga_cabecera.Emcs_precintos,dbo.Hoja_carga_cabecera.Pais_emcs
						 ,dbo.Hoja_carga_cabecera.Fk_destinatario,CONSIG.NombreCompleto as Nombre_destinatario,DC.Descripcion AS Dir_consig_desc, DC.Via_publica AS Dir_consig_via, DC.Direccion AS Dir_consig_envio, 
						 DC.Codigo_postal AS Dir_consig_cp, DC.Municipio AS Dir_consig_municipio, DC.Comarca AS Dir_consig_comarca, DC.Provincia AS Dir_consig_provincia, DC.Pais AS Dir_consig_pais, DC.Cae AS Dir_consig_cae,
						  DC.Warehouse AS Dir_consig_warehouse, DC.Rc AS Dir_consig_rc,dbo.Hoja_carga_cabecera.Usuario_creacion,dbo.Hoja_carga_cabecera.Usuario_modificacion,dbo.Hoja_carga_cabecera.Fecha_creacion
						  ,dbo.Hoja_carga_cabecera.Fecha_modificacion, dbo.V_Personas.Codigo_autorizacion_ria, Hoja_carga_cabecera.impreso, 
							dbo.Hoja_carga_cabecera.Fecha_hora_carga_fin, dbo.Hoja_carga_cabecera.Usuario_fin
						 , STUFF((SELECT '', '' + Serie + ''/'' + CAST(Numero as nvarchar)
							FROM Alb_venta 
							WHERE ( Alb_venta.Fk_hoja_carga_cabecera = Hoja_carga_cabecera.Id )
							FOR XML PATH ('''')),1,2,'''') as Albaranes
							, CAST
								((SELECT  DISTINCT ''['' + CAST(serie_pedido AS varchar) + ''/'' +CAST(Numero_pedido AS varchar) + '']  ''
									FROM            Hoja_carga_linea
									WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
									group by Hoja_carga_linea.Fk_cabecera,Serie_pedido,Numero_pedido
									FOR XML PATH('''')) AS varchar(1000)) AS Pedidos
							, CAST
								((SELECT  DISTINCT ''['' + CAST(Fk_cliente AS varchar) +'']  ''
								FROM            Hoja_carga_linea
								WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
								group by Hoja_carga_linea.Fk_cliente,Hoja_carga_linea.Fk_cliente
								FOR XML PATH('''')) AS varchar(1000)) AS Codigos_clientes
							, CAST
							((SELECT  DISTINCT ''['' + CAST(V_PersonasSoloNombre.NombreCompleto AS varchar) +'']  ''
								FROM            Hoja_carga_linea INNER JOIN V_PersonasSoloNombre
								ON Hoja_carga_linea.Fk_cliente=V_PersonasSoloNombre.Codigo
								WHERE        Hoja_carga_linea.Fk_cabecera = Hoja_carga_cabecera.Id
								group by Hoja_carga_linea.Fk_cabecera,V_PersonasSoloNombre.NombreCompleto
								FOR XML PATH('''')) AS varchar(1000)) AS Clientes, 
								Hoja_carga_cabecera.Estado_control_carga, Hoja_carga_cabecera.Total_pales
						 FROM            dbo.Hoja_carga_cabecera INNER JOIN
						 dbo.Centros ON dbo.Hoja_carga_cabecera.Fk_centro = dbo.Centros.Codigo INNER JOIN
						 dbo.Series_hojas_carga ON dbo.Hoja_carga_cabecera.Serie = dbo.Series_hojas_carga.Serie LEFT OUTER JOIN
						 dbo.Incoterm ON dbo.Hoja_carga_cabecera.Fk_incoterm = dbo.Incoterm.Codigo LEFT OUTER JOIN
						 dbo.Formas_envio ON dbo.Hoja_carga_cabecera.Fk_forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
						 dbo.Portes ON dbo.Hoja_carga_cabecera.Fk_portes = dbo.Portes.Codigo LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.Hoja_carga_cabecera.Fk_transportista = dbo.V_Personas.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS CONSIG ON dbo.Hoja_carga_cabecera.Fk_destinatario = CONSIG.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasDirecciones AS DC ON dbo.Hoja_carga_cabecera.Fk_direccion_destinatario = DC.Codigo 
						 WHERE (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 1)
							'
							GO
							 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_HojasCargaLinea]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_HojasCargaLinea]
							AS
						   SELECT     dbo.Hoja_carga_linea.Id,dbo.Hoja_carga_cabecera.Fecha_hora, dbo.Hoja_carga_linea.Fk_cabecera, dbo.Hoja_carga_linea.Serie, dbo.Hoja_carga_linea.Numero, dbo.Hoja_carga_linea.Fk_linea_ped_asociado, dbo.Hoja_carga_linea.Fk_cliente, 
                         dbo.Hoja_carga_linea.Fk_articulo, dbo.Hoja_carga_linea.Cantidad, dbo.Hoja_carga_linea.Fk_almacen, dbo.Hoja_carga_linea.Lote, dbo.Hoja_carga_linea.Num_palets, dbo.Hoja_carga_linea.Serie_pedido, 
                         dbo.Hoja_carga_linea.Numero_pedido, dbo.Hoja_carga_linea.Linea_pedido, dbo.Hoja_carga_linea.Lote_etiqueta, dbo.Hoja_carga_linea.Bultos, dbo.Hoja_carga_linea.Articulo_descripcion, 
                         dbo.Articulos.Descripcion AS DescripcionArticuloOriginal, dbo.V_Personas.NombreCompleto, dbo.Ped_venta.Codigo_direccion_envio, dbo.Hoja_carga_linea.Orden, dbo.Almacenes.Descripcion AS Desc_almacen, 
                         dbo.Hoja_carga_linea.Peso_bruto, dbo.Hoja_carga_linea.Peso_neto, dbo.Ped_venta.Fecha_entrega_concreta, dbo.Ped_venta.Fecha_prevista_entrega, dbo.Ped_venta.Fecha_limite_entrega, 
                         dbo.Ped_venta.Su_referencia AS Su_referencia_doc_asociado, dbo.Ped_venta.Horario_entrega, dbo.Ped_venta.Notas_factura AS Notas_pedido, dbo.Ped_venta.Notas_internas AS Notas_pedido_internas, 
                         dbo.Hoja_carga_linea.Fk_persona_lote, P.NombreCompleto AS Desc_persona_lote, dbo.Hoja_carga_linea.Fk_ficha_tecnica_lote, FT_LOTE.Descripcion AS Desc_ficha_tecnica_lote, dbo.Hoja_carga_linea.Observaciones, dbo.Hoja_carga_linea.Observaciones_internas, 
                         dbo.Hoja_carga_linea.Cantidad_por_bulto, dbo.Hoja_carga_linea.Fk_ficha_tecnica, dbo.Hoja_carga_linea.Fk_empresa, dbo.Hoja_carga_linea.Fk_direccion_envio, 						 
						 dbo.Hoja_carga_linea.Bultos_cargados,dbo.Hoja_carga_linea.SSCC,
						 CASE WHEN FT.Cajas_palet IS NOT NULL THEN FT.Cajas_palet ELSE dbo.Articulos.Cajas_por_palet END AS Cajas_por_palet,dbo.Hoja_carga_linea.Cantidad_cargada,dbo.Hoja_carga_linea.Incidencia,dbo.Hoja_carga_linea.Lote_original,
						  CASE WHEN FT.Cajas_palet IS NOT NULL AND FT.cajas_palet <> 0 THEN ROUND(dbo.hoja_carga_linea.Bultos / FT.Cajas_palet, 2) 
                         WHEN dbo.Articulos.Cajas_por_palet IS NOT NULL AND dbo.Articulos.Cajas_por_palet <> 0 THEN ROUND(dbo.Hoja_carga_linea.Bultos / dbo.ARticulos.Cajas_por_palet, 2) ELSE 0 END AS Num_palets_FT_Art
						 ,dbo.Hoja_carga_linea.Precio,dbo.Hoja_carga_linea.Precio_original, dbo.Ped_venta.Total_pales as Total_pales_pedido,dbo.Articulos.Grado_alcoholico, dbo.Hoja_carga_linea.Fk_articulo_kit, dbo.Hoja_carga_linea.Linea_kit, dbo.Hoja_carga_linea.SSCCs
						 ,Articulos.Ruta_hc, dbo.Hoja_carga_linea.Cantidad_preparada
FROM            dbo.Hoja_carga_linea LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Hoja_carga_linea.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Hoja_carga_linea.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.Ped_venta ON dbo.Hoja_carga_linea.Serie_pedido = dbo.Ped_venta.Serie AND dbo.Hoja_carga_linea.Numero_pedido = dbo.Ped_venta.Numero LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Hoja_carga_linea.Fk_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON dbo.Hoja_carga_linea.Fk_persona_lote = P.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos AS FT_LOTE ON dbo.Hoja_carga_linea.Fk_ficha_tecnica_lote = FT_LOTE.Codigo_FT LEFT OUTER JOIN
						 dbo.FT_articulos AS FT ON dbo.Hoja_carga_linea.Fk_ficha_tecnica = FT.Codigo_FT LEFT OUTER JOIN
						 dbo.Hoja_carga_Cabecera ON dbo.Hoja_carga_linea.Fk_cabecera=dbo.Hoja_carga_cabecera.Id 
						 WHERE (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 0)'
						GO
							 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_ServiciosRepartidorLinea]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_ServiciosRepartidorLinea]
							AS
						   SELECT     dbo.Hoja_carga_linea.Id,dbo.Hoja_carga_cabecera.Fecha_hora, dbo.Hoja_carga_linea.Fk_cabecera, dbo.Hoja_carga_linea.Serie, dbo.Hoja_carga_linea.Numero, dbo.Hoja_carga_linea.Fk_linea_ped_asociado, dbo.Hoja_carga_linea.Fk_cliente, 
                         dbo.Hoja_carga_linea.Fk_articulo, dbo.Hoja_carga_linea.Cantidad, dbo.Hoja_carga_linea.Fk_almacen, dbo.Hoja_carga_linea.Lote, dbo.Hoja_carga_linea.Num_palets, dbo.Hoja_carga_linea.Serie_pedido, 
                         dbo.Hoja_carga_linea.Numero_pedido, dbo.Hoja_carga_linea.Linea_pedido, dbo.Hoja_carga_linea.Lote_etiqueta, dbo.Hoja_carga_linea.Bultos, dbo.Hoja_carga_linea.Articulo_descripcion, 
                         dbo.Articulos.Descripcion AS DescripcionArticuloOriginal, dbo.V_Personas.NombreCompleto, dbo.Ped_venta.Codigo_direccion_envio, dbo.Hoja_carga_linea.Orden, dbo.Almacenes.Descripcion AS Desc_almacen, 
                         dbo.Hoja_carga_linea.Peso_bruto, dbo.Hoja_carga_linea.Peso_neto, dbo.Ped_venta.Fecha_entrega_concreta, dbo.Ped_venta.Fecha_prevista_entrega, dbo.Ped_venta.Fecha_limite_entrega, 
                         dbo.Ped_venta.Su_referencia AS Su_referencia_doc_asociado, dbo.Ped_venta.Horario_entrega, dbo.Ped_venta.Notas_factura AS Notas_pedido, dbo.Ped_venta.Notas_internas AS Notas_pedido_internas, 
                         dbo.Hoja_carga_linea.Fk_persona_lote, P.NombreCompleto AS Desc_persona_lote, dbo.Hoja_carga_linea.Fk_ficha_tecnica_lote, FT_LOTE.Descripcion AS Desc_ficha_tecnica_lote, dbo.Hoja_carga_linea.Observaciones, dbo.Hoja_carga_linea.Observaciones_internas, 
                         dbo.Hoja_carga_linea.Cantidad_por_bulto, dbo.Hoja_carga_linea.Fk_ficha_tecnica, dbo.Hoja_carga_linea.Fk_empresa, dbo.Hoja_carga_linea.Fk_direccion_envio, 						 
						 dbo.Hoja_carga_linea.Bultos_cargados,dbo.Hoja_carga_linea.SSCC,
						 CASE WHEN FT.Cajas_palet IS NOT NULL THEN FT.Cajas_palet ELSE dbo.Articulos.Cajas_por_palet END AS Cajas_por_palet,dbo.Hoja_carga_linea.Cantidad_cargada,dbo.Hoja_carga_linea.Incidencia,dbo.Hoja_carga_linea.Lote_original,
						  CASE WHEN FT.Cajas_palet IS NOT NULL AND FT.cajas_palet <> 0 THEN ROUND(dbo.hoja_carga_linea.Bultos / FT.Cajas_palet, 2) 
                         WHEN dbo.Articulos.Cajas_por_palet IS NOT NULL AND dbo.Articulos.Cajas_por_palet <> 0 THEN ROUND(dbo.Hoja_carga_linea.Bultos / dbo.ARticulos.Cajas_por_palet, 2) ELSE 0 END AS Num_palets_FT_Art
						 ,dbo.Hoja_carga_linea.Precio,dbo.Hoja_carga_linea.Precio_original, dbo.Ped_venta.Total_pales as Total_pales_pedido,dbo.Articulos.Grado_alcoholico, dbo.Hoja_carga_linea.Fk_articulo_kit, dbo.Hoja_carga_linea.Linea_kit, dbo.Hoja_carga_linea.SSCCs
						 ,Articulos.Ruta_hc, dbo.Hoja_carga_linea.Cantidad_preparada
FROM            dbo.Hoja_carga_linea LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Hoja_carga_linea.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Hoja_carga_linea.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.Ped_venta ON dbo.Hoja_carga_linea.Serie_pedido = dbo.Ped_venta.Serie AND dbo.Hoja_carga_linea.Numero_pedido = dbo.Ped_venta.Numero LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Hoja_carga_linea.Fk_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON dbo.Hoja_carga_linea.Fk_persona_lote = P.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos AS FT_LOTE ON dbo.Hoja_carga_linea.Fk_ficha_tecnica_lote = FT_LOTE.Codigo_FT LEFT OUTER JOIN
						 dbo.FT_articulos AS FT ON dbo.Hoja_carga_linea.Fk_ficha_tecnica = FT.Codigo_FT LEFT OUTER JOIN
						 dbo.Hoja_carga_Cabecera ON dbo.Hoja_carga_linea.Fk_cabecera=dbo.Hoja_carga_cabecera.Id 
						 WHERE (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 1)'
						GO
							IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosDescripciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VencimientosDescripciones]
AS
SELECT        dbo.cartera_vencimientos.id, dbo.cartera_vencimientos.Grupo_vencimientos, dbo.cartera_vencimientos.cobro_pago, dbo.cartera_vencimientos.Cerrado, dbo.cartera_vencimientos.SerieTipoDoc, 
                         dbo.cartera_vencimientos.serie_documento, dbo.cartera_vencimientos.Concepto, dbo.cartera_vencimientos.numero_documento, CONVERT(date, dbo.cartera_vencimientos.fecha_documento, 103) AS fecha_documento, 
                         CONVERT(date, dbo.cartera_vencimientos.fecha_vencimiento, 103) AS fecha_vencimiento, dbo.cartera_vencimientos.fk_persona, dbo.cartera_vencimientos.importe_cobrado, dbo.cartera_vencimientos.importe_vencimiento, 
                         dbo.cartera_vencimientos.fk_divisa, dbo.cartera_vencimientos.fk_forma_pago, dbo.cartera_vencimientos.fk_pago, dbo.cartera_vencimientos.observaciones, 
                         dbo.cartera_vencimientos.Fk_tipo_documentacion, dbo.Documentacion_tipos.Descripcion AS Desc_documentacion_tipo, 
                         CASE WHEN dbo.cartera_vencimientos.cobro_pago = 0 THEN ''Pago'' WHEN dbo.cartera_vencimientos.cobro_pago = 1 THEN ''Cobro'' WHEN dbo.cartera_vencimientos.cobro_pago = 2 THEN ''Previsión Pago'' WHEN dbo.cartera_vencimientos.cobro_pago
                          = 3 THEN ''Previsión Cobro'' ELSE CAST(dbo.cartera_vencimientos.cobro_pago AS varchar) END AS desc_cobro_pago, 
                         CASE WHEN dbo.cartera_vencimientos.Cerrado = 0 THEN ''Pendiente'' ELSE CASE WHEN dbo.cartera_vencimientos.cobro_pago = 0 THEN ''Pagado'' ELSE ''Cobrado'' END END AS desc_cerrado, 
                         CASE WHEN dbo.cartera_vencimientos.fecha_vencimiento <= GETDATE() THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END AS Vencido, dbo.cartera_vencimientos.Fk_sepa_cabecera, 
                         dbo.V_Personas.NombreCompleto AS desc_persona, dbo.Divisas.Descripcion AS desc_divisa, dbo.Formas_de_pago.Descripcion AS desc_forma_pago, 
                         dbo.cartera_vencimientos.Fk_cuenta_banco_empresa, dbo.V_Personas.Identificacion AS nif_persona, dbo.Cuentas_banco_empresa.Fk_cuenta_contable, dbo.cartera_vencimientos.Fk_cc_cliente, 
                         dbo.cartera_vencimientos.Fk_cc_contrapartida, dbo.Cuentas_banco_empresa.Iban AS Cuenta_empresa_Iban, CONVERT(date, dbo.cartera_vencimientos.Fecha_integracion_contable, 103) AS Fecha_integracion_contable, 
                         dbo.cartera_vencimientos.Numero_asiento, dbo.cartera_vencimientos.Fk_cuenta_contable_gastos, dbo.cartera_vencimientos.Importe_gastos, dbo.cartera_vencimientos.No_contabilizar, 
                         dbo.cartera_vencimientos.Fk_cuenta_cliente, CONVERT(date, dbo.cartera_vencimientos.Fecha_cobro_pago, 103) AS Fecha_cobro_pago, dbo.Personas_cuentas.Entidad AS Entidad_persona, 
                         dbo.Personas_cuentas.Oficina AS Oficina_persona, dbo.Personas_cuentas.Dc AS Dc_persona, dbo.Personas_cuentas.Cuenta AS Cuenta_persona, dbo.Personas_cuentas.Iban AS Iban_persona, 
                         dbo.Personas_cuentas.Bic AS Swift_persona, dbo.Sepa_cabecera.Serie AS Sepa_serie, dbo.Sepa_cabecera.Numero AS Sepa_numero, dbo.Cuentas_banco_empresa.Descripcion AS Desc_banco_empresa, 
                         dbo.cartera_vencimientos.Num_registro_caja, SU_REF.Su_ref, dbo.cartera_vencimientos.Serie_fac_proveedor, dbo.cartera_vencimientos.Numero_fac_proveedor, 
                         dbo.cartera_vencimientos.Fk_representante AS Representante1, VPSNRepre.NombreCompleto AS Nombre_representante, LIQ.Fk_Seccion, LIQ.Fk_Campaña, dbo.Entidades_bancarias.Descripcion AS Desc_banco_cliente, 
						 dbo.V_Personas.Fis_descripcion AS Dir_fiscal_descripcion,dbo.V_Personas.Fis_via_publica as Dir_fiscal_via_publica,dbo.V_Personas.Fis_direccion as Dir_fiscal_direccion,                         
                         dbo.V_Personas.Fis_municipio AS Dir_fiscal_municipio, dbo.V_Personas.Fis_codigo_postal AS Dir_fiscal_codigo_postal, dbo.V_Personas.Fis_provincia AS Dir_fiscal_provincia
                         ,dbo.V_Personas.Fis_pais AS Dir_fiscal_pais,dbo.V_Personas.Fis_telefono as Dir_fiscal_telefono
						 ,'''' AS Expedientes, dbo.cartera_vencimientos.Importe_irpf, dbo.cartera_vencimientos.Importe_ret_despues_imp, 
                         dbo.cartera_vencimientos.Importe_base, dbo.cartera_vencimientos.Importe_iva, dbo.cartera_vencimientos.Fk_serie_pago_cuenta, dbo.cartera_vencimientos.Fk_numero_pago_cuenta, dbo.cartera_vencimientos.Fk_codigo_iva, 
                         dbo.Ivas.Descripcion AS Desc_iva, dbo.cartera_Vencimientos.Fecha_scredit, dbo.V_Personas.Riesgo_concedido
						 ,PCUENTA.Fecha_pago as Pago_cuenta_fecha,PCUENTA.Texto as Pago_cuenta_texto,CAST(CASE WHEN ISNULL(LIQ.Importe_irpf,0)<>0 THEN 1 ELSE 0 END as BIT) as LiqTieneIrpf
						 , V_Personas.Ruta_transporte
FROM            
                         dbo.cartera_vencimientos LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.V_Personas.Codigo = dbo.cartera_vencimientos.fk_persona  LEFT OUTER JOIN
                         dbo.Documentacion_tipos ON dbo.cartera_vencimientos.Fk_tipo_documentacion = dbo.Documentacion_tipos.Codigo LEFT OUTER JOIN
                         
                         dbo.Divisas ON dbo.cartera_vencimientos.fk_divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.Formas_de_pago ON dbo.cartera_vencimientos.fk_forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
                         dbo.Sepa_cabecera ON dbo.cartera_vencimientos.Fk_sepa_cabecera = dbo.Sepa_cabecera.Codigo LEFT OUTER JOIN
                         dbo.Cuentas_banco_empresa ON dbo.cartera_vencimientos.Fk_cuenta_banco_empresa = dbo.Cuentas_banco_empresa.Codigo LEFT OUTER JOIN
                         dbo.Personas_cuentas ON dbo.cartera_vencimientos.Fk_cuenta_cliente = dbo.Personas_cuentas.Codigo LEFT OUTER JOIN
                         dbo.Ivas ON dbo.cartera_vencimientos.Fk_codigo_iva = dbo.Ivas.codigo LEFT OUTER JOIN
						 dbo.Pagos_cuenta PCUENTA ON dbo.cartera_vencimientos.Fk_serie_pago_cuenta=PCUENTA.Fk_serie AND dbo.cartera_vencimientos.Fk_numero_pago_cuenta=PCUENTA.Numero LEFT OUTER JOIN
                         dbo.Entidades_bancarias ON dbo.Personas_cuentas.Entidad = dbo.Entidades_bancarias.Codigo LEFT OUTER JOIN
                             (SELECT        ''FV'' AS SerieTipoDoc, Serie, Numero, Su_referencia AS Su_ref
                               FROM            dbo.Facturas_venta
                               UNION ALL
                               SELECT        ''FC'' AS SerieTipoDoc, Serie, Numero, COALESCE(Serie_numero_factura_sii, Serie_fac_proveedor + CAST(Numero_fac_proveedor AS nvarchar)) AS Su_ref
                               FROM            dbo.Fac_compra) AS SU_REF ON dbo.cartera_vencimientos.SerieTipoDoc = SU_REF.SerieTipoDoc AND dbo.cartera_vencimientos.serie_documento = SU_REF.Serie AND 
                         dbo.cartera_vencimientos.numero_documento = SU_REF.Numero LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS VPSNRepre ON dbo.cartera_vencimientos.Fk_representante = VPSNRepre.Codigo LEFT OUTER JOIN
                         dbo.V_Liquidaciones AS LIQ ON dbo.cartera_vencimientos.SerieTipoDoc = ''LIQ'' AND LIQ.Serie = dbo.cartera_vencimientos.serie_documento AND LIQ.Numero = dbo.cartera_vencimientos.numero_documento 
'
GO


 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_LiquidacionesIvas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_LiquidacionesIvas]
AS SELECT        dbo.Liquidaciones_ivas.*, dbo.Liquidaciones.Serie, dbo.Liquidaciones.Numero
FROM            dbo.Liquidaciones INNER JOIN dbo.Liquidaciones_ivas ON dbo.Liquidaciones.Id = dbo.Liquidaciones_ivas.Fk_liquidacion'
GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_LiquidacionesRetenciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_LiquidacionesRetenciones]
AS 
SELECT LR.*, LL.Serie, LL.Numero, LL.Fecha, LL.Fk_Seccion, LL.Fk_Campaña, LL.Tipo_liquidacion, LL.Fk_persona, PP.NombreCompleto, SS.Descripcion AS DescSeccion, CC.Descripcion AS DescCampaña, TPP.Fecha_ultima_liq_intereses
, LL.Clase_liquidacion
, CASE 
		WHEN Clase_liquidacion = 1 THEN ''Provisional'' 
		WHEN Clase_liquidacion = 2 THEN ''Definitiva'' 
		WHEN Clase_liquidacion = 3 THEN ''Rectificativa'' 
		WHEN Clase_liquidacion = 4 THEN ''Valoración campaña'' 
		WHEN Clase_liquidacion = 5 THEN ''Liq. transportista'' 
		ELSE '''' END AS Clase_liquidacion_desc
FROM Liquidaciones AS LL
INNER JOIN Liquidaciones_retenciones AS LR
ON LL.Id = LR.Fk_liquidacion 
LEFT OUTER JOIN Personas AS TPP 
ON LL.Fk_persona = TPP.Codigo
LEFT OUTER JOIN Campañas AS CC 
ON LL.Fk_Campaña = CC.Codigo
LEFT OUTER JOIN Secciones AS SS 
ON LL.Fk_Seccion = SS.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre AS PP
ON LL.Fk_persona = PP.Codigo'
GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplFormasPago]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacturasSimplFormasPago] AS
  SELECT        dbo.Facturas_simpl_formas_pago.Serie, dbo.Facturas_simpl_formas_pago.Numero, dbo.Facturas_simpl_formas_pago.Fk_forma_pago, dbo.Formas_de_pago.Descripcion, 
						 dbo.Facturas_simpl_formas_pago.Importe, dbo.Facturas_simpl_formas_pago.Transaccion_numero, dbo.Facturas_simpl_formas_pago.Transaccion_id
FROM            dbo.Facturas_simpl_formas_pago INNER JOIN
						 dbo.Formas_de_pago ON dbo.Facturas_simpl_formas_pago.Fk_forma_pago = dbo.Formas_de_pago.Codigo'
  GO
 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_FacturasSimplCabecera]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_FacturasSimplCabecera]
AS 
SELECT        dbo.Facturas_simpl_cabecera.Con_fitosanitarios, dbo.Facturas_simpl_cabecera.Serie, dbo.Facturas_simpl_cabecera.Numero, dbo.Centros.Descripcion AS Desc_centro, dbo.Facturas_simpl_cabecera.Usuario, 
                         dbo.Facturas_simpl_cabecera.Fecha_hora, CONVERT(date, dbo.Facturas_simpl_cabecera.Fecha_hora, 103) AS Fecha, CONVERT(varchar, dbo.Facturas_simpl_cabecera.Fecha_hora, 108) AS Hora, 
                         dbo.Facturas_simpl_cabecera.Fk_cliente, dbo.Facturas_simpl_cabecera.Total_factura, dbo.Facturas_simpl_cabecera.Cerrado_tpv, dbo.Facturas_simpl_cabecera.Fk_cierre_caja, dbo.V_Personas.NombreCompleto, 
                         dbo.Facturas_simpl_cabecera.Terminal, dbo.Facturas_simpl_cabecera.Fk_centro, dbo.Facturas_simpl_cabecera.Fecha_operacion, dbo.Facturas_simpl_cabecera.Fk_persona_tpv, 
                         dbo.Facturas_simpl_cabecera.Fk_numero_relacionada, dbo.Facturas_simpl_cabecera.Fk_serie_relacionada, dbo.Facturas_simpl_cabecera.Fecha_modificacion, dbo.Facturas_simpl_cabecera.Usuario_modificacion, 
                         dbo.Facturas_simpl_cabecera.Importe_total_entregado, dbo.Facturas_simpl_cabecera.Cambio_entregar, dbo.Facturas_simpl_cabecera.Nombre_cliente, dbo.Facturas_simpl_cabecera.Identificacion_cliente, 
                         dbo.Facturas_simpl_cabecera.Direccion_completa, dbo.Facturas_simpl_cabecera.Municipio, dbo.Facturas_simpl_cabecera.Codigo_postal, dbo.Personas_TPV.Codigo_postal AS TPV_codigo_postal, 
                         dbo.Personas_TPV.Direccion AS TPV_direccion, dbo.Personas_TPV.Municipio AS TPV_municipio, dbo.Personas_TPV.Nombre AS TPV_nombre, dbo.V_Personas.Cliente_generico_tpv, 
                         dbo.V_Personas.Identificacion AS identificacion_ficha_cliente, dbo.V_Personas.Tipo_identificacion AS Tipo_identificacion_ficha_cliente, dbo.V_Personas.Fis_codigo_postal, dbo.V_Personas.Fis_direccion, 
                         dbo.V_Personas.Fis_comarca, dbo.V_Personas.Fis_descripcion, dbo.V_Personas.Fis_municipio, dbo.Facturas_simpl_cabecera.num_carnet_aplicador,dbo.Facturas_simpl_cabecera.Codigo_ropo, dbo.Facturas_simpl_cabecera.Dni_propietario_carnet_aplicador, 
                         dbo.V_Personas.Fis_numero, dbo.V_Personas.Fis_pais, dbo.V_Personas.Fis_piso, dbo.V_Personas.Fis_provincia, dbo.V_Personas.Fis_puerta, dbo.V_Personas.Fis_via_publica, 
                         dbo.Series_facturas_venta_simpl.Serie_rectificativa AS EsRectificativa, dbo.Facturas_simpl_cabecera.Tarifa, dbo.Facturas_simpl_cabecera.Iva_incluido, dbo.Facturas_simpl_cabecera.Fk_divisa, 
                         dbo.Facturas_simpl_cabecera.Fk_representante1, dbo.Facturas_simpl_cabecera.Fk_representante2, dbo.Facturas_simpl_cabecera.Dto_pp, dbo.Facturas_simpl_cabecera.Dto_esp, dbo.Facturas_simpl_cabecera.Su_referencia, 
                         dbo.Facturas_simpl_cabecera.Notas_internas, dbo.Facturas_simpl_cabecera.Notas_factura, dbo.Facturas_simpl_cabecera.Dev_serie, dbo.Facturas_simpl_cabecera.Dev_numero, 
                         dbo.Facturas_simpl_cabecera.Dev_descripcion, dbo.Facturas_simpl_cabecera.Fk_mot_devolucion, dbo.Facturas_simpl_cabecera.Fecha_cierre_inv, dbo.Facturas_simpl_cabecera.Provincia, dbo.Facturas_simpl_cabecera.Pais, 
                         dbo.Facturas_simpl_cabecera.Serie_factura, dbo.Facturas_simpl_cabecera.Numero_factura,dbo.Facturas_venta.Fecha_hora AS Fecha_factura, dbo.V_PersonasSoloNombre.NombreCompleto AS Nombre_representante1, 
                         V_PersonasSoloNombre_1.NombreCompleto AS Nombre_representante2, V_Personas.Cliente_interno, dbo.Facturas_simpl_cabecera.Vales_desde, dbo.Facturas_simpl_cabecera.Vales_hasta, 
                         GRUPO_HABITUAL.Codigo_grupo AS Fk_grupo_tpv, GRUPO_HABITUAL.Descripcion AS Desc_grupo_tpv,
                             (SELECT        SUM(dbo.Facturas_simpl_ivas.Importe_base)
                               FROM            dbo.Facturas_simpl_ivas
                               WHERE        dbo.Facturas_simpl_ivas.Serie = dbo.Facturas_simpl_cabecera.Serie AND dbo.Facturas_simpl_ivas.Numero = dbo.Facturas_simpl_cabecera.Numero) AS Importe_base,
                             (SELECT        stuff
                                                             ((SELECT        '', '' + dbo.V_FacturasSimplFormasPago.Descripcion
                                                                 FROM            dbo.V_FacturasSimplFormasPago
                                                                 WHERE        Numero = dbo.Facturas_simpl_cabecera.Numero AND Serie = dbo.Facturas_simpl_cabecera.Serie FOR XML PATH('''')), 1, 2, '''')) AS Formas_pago, dbo.Centros.Provincia AS Provincia_centro, 
                         dbo.Centros.Direccion AS Direccion_centro, dbo.Centros.Codigo_postal AS CP_centro, dbo.Centros.Via_publica, dbo.Centros.Telefono_1 AS Telefono_centro, dbo.Centros.Email1 AS Email_centro, 
                         dbo.Centros.Municipio AS Municipio_centro, dbo.Facturas_simpl_cabecera.Telefono_ticket, dbo.Facturas_simpl_cabecera.Otros, V_Personas.Idioma_reportes, dbo.Personas_TPV.Codigo_postal AS C_puntual_codigo_postal, 
                         dbo.Personas_TPV.Direccion AS C_puntual_direccion, dbo.Personas_TPV.Municipio AS C_puntual_municipio, dbo.Personas_TPV.Nombre AS C_puntual_nombre
						 ,CC.Fecha_cierre_caja, dbo.Facturas_simpl_cabecera.Fk_empresa,dbo.Facturas_simpl_cabecera.Fecha_reto,dbo.Facturas_simpl_cabecera.Telefono
						 , dbo.Facturas_simpl_cabecera.Email
						 ,dbo.Facturas_simpl_cabecera.SII_Fecha, dbo.Facturas_simpl_cabecera.SII_CSV, dbo.Facturas_simpl_cabecera.SII_Estado, dbo.Empresas.CIF_SII
FROM            dbo.Facturas_simpl_cabecera INNER JOIN
                         dbo.V_Personas ON dbo.Facturas_simpl_cabecera.Fk_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN 
						 dbo.Empresas ON dbo.Empresas.Codigo = dbo.Facturas_simpl_cabecera.Fk_empresa LEFT OUTER JOIN
						 dbo.Facturas_venta ON Facturas_venta.Serie = Facturas_simpl_cabecera.Serie_factura  AND Facturas_venta.Numero = Facturas_simpl_cabecera.Numero_factura LEFT OUTER JOIN
                         dbo.Centros ON dbo.Centros.Codigo = dbo.Facturas_simpl_cabecera.Fk_centro LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_1 ON dbo.Facturas_simpl_cabecera.Fk_representante2 = V_PersonasSoloNombre_1.Codigo LEFT OUTER JOIN
                         dbo.Divisas ON dbo.Facturas_simpl_cabecera.Fk_divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Facturas_simpl_cabecera.Fk_representante1 = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Series_facturas_venta_simpl ON dbo.Facturas_simpl_cabecera.Serie = dbo.Series_facturas_venta_simpl.Serie LEFT OUTER JOIN
                         dbo.Personas_TPV ON dbo.Personas_TPV.Id = dbo.Facturas_simpl_cabecera.Fk_persona_tpv LEFT OUTER JOIN
                             (SELECT        FINAL.Persona, FINAL.Codigo_grupo, FINAL.Descripcion
                               FROM            (SELECT        PG.Codigo_persona AS Persona, PG.Codigo_grupo, G.Descripcion, ROW_NUMBER() OVER (PARTITION BY PG.Codigo_persona
                                                         ORDER BY PG.Codigo_persona) AS Rown
                               FROM            Personas_agrupaciones PG INNER JOIN
                                                         Personas_grupos G ON PG.Codigo_grupo = G.Codigo
                               WHERE        ISNULL(G.Resumen_tpv, 0) = 1) AS FINAL
WHERE        Rown = 1) AS GRUPO_HABITUAL ON V_Personas.Codigo = GRUPO_HABITUAL.Persona
LEFT OUTER JOIN Cierres_caja CC ON dbo.Facturas_simpl_cabecera.Fk_cierre_caja=CC.Id'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_Copages]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_Copages]
AS 
SELECT        dbo.Copages.Id, dbo.Copages.Fk_serie, dbo.Copages.Numero, dbo.Copages.Fecha, dbo.Copages.Observaciones, dbo.Copages.Fk_centro, dbo.Copages.Usuario_creacion, dbo.Copages.Fecha_creacion, 
                         dbo.Series_copages.Descripcion AS Desc_serie, dbo.Centros.Descripcion AS Desc_centro, CASE WHEN ISNULL(dbo.Copages.Estado, 0) = 0 THEN ''PROPUESTO'' WHEN isnull(DBO.Copages.Estado, 0) 
                         = 1 THEN ''VALIDADO'' WHEN isnull(DBO.Copages.Estado, 0) = 2 THEN ''FINALIZADO'' WHEN isnull(DBO.Copages.Estado, 0) = 3 THEN ''EN PROCESO'' ELSE '''' END AS Desc_estado, dbo.Copages.Estado, dbo.Copages.Fk_calidad, 
                         dbo.Copages.Fk_maquina, dbo.Maquinas.Descripcion AS Desc_maquina, dbo.Copages.Fk_tipo_movimiento AS Serie_tipo_movimiento, TMOV.Descripcion AS Desc_serie_tipo_movimiento, dbo.Copages.Usuario_propuesta, 
                         dbo.Copages.Usuario_validacion, dbo.Copages.Usuario_finalizacion, dbo.Copages.Fecha_propuesta, dbo.Copages.Fecha_validacion, dbo.Copages.Fecha_finalizacion, dbo.Copages.Fk_persona, N.NombreCompleto, 
                         LIB.Fk_tipo_movimiento AS Libro_tipo_mov, LIB.Fk_movimiento AS Libro_num_mov, dbo.Copages.Numero_doc_certificacion, dbo.V_FirmasEstados.Num_firmas_realizadas, dbo.V_FirmasEstados.Num_firmas_necesarias, 
                         dbo.V_FirmasEstados.Num_firmas_pendientes, dbo.V_FirmasEstados.Firma_completa, dbo.Copages.Fk_articulo_procesar, AP.Descripcion AS Desc_articulo_procesar, dbo.Copages.Fk_almacen_procesar, 
                         ALM.Descripcion AS Desc_almacen_procesar, dbo.Copages.Lote_procesar, dbo.Copages.Cantidad_procesar, dbo.Series_copages.Tipo_proceso, dbo.Copages.Lote_propuesto, dbo.Copages.Lote_etiqueta_propuesto,
						 L_PROCESAR.Lote_etiqueta as Lote_etiqueta_procesar
FROM            dbo.Copages INNER JOIN
                         dbo.Series_copages ON dbo.Copages.Fk_serie = dbo.Series_copages.Serie INNER JOIN
                         dbo.Centros ON dbo.Copages.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS AP ON dbo.Copages.Fk_articulo_procesar = AP.Codigo LEFT OUTER JOIN
                         dbo.Almacenes AS ALM ON dbo.Copages.Fk_almacen_procesar = ALM.Codigo LEFT OUTER JOIN
                         dbo.Maquinas ON dbo.Copages.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
                         dbo.Series_copages AS TMOV ON dbo.Copages.Fk_tipo_movimiento = TMOV.Serie LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS N ON dbo.Copages.Fk_persona = N.Codigo LEFT OUTER JOIN
                         dbo.V_FirmasEstados ON dbo.V_FirmasEstados.SerieTipoDoc = ''CP'' AND dbo.Copages.Fk_serie = dbo.V_FirmasEstados.Serie AND dbo.Copages.Numero = dbo.V_FirmasEstados.Numero LEFT OUTER JOIN
                             (SELECT DISTINCT Fk_tipo_movimiento, Fk_movimiento, SerieTipoDoc_asociado, Serie_doc_asociado, Numero_doc_asociado
                               FROM            dbo.V_LibrosMovimientos) AS LIB ON LIB.SerieTipoDoc_asociado = ''CP'' AND LIB.Serie_doc_asociado = dbo.Copages.Fk_serie AND LIB.Numero_doc_asociado = dbo.Copages.Numero
							   LEFT OUTER JOIN Lotes L_PROCESAR ON dbo.copages.Fk_articulo_procesar=L_PROCESAR.Fk_articulo AND dbo.Copages.Lote_procesar=L_PROCESAR.Lote
						 '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[V_CopagesLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [V_CopagesLineas]
AS 
SELECT dbo.Copages.Fk_centro, dbo.Copages.Id AS Id_copage, dbo.Copages_lineas.Id, dbo.Copages_lineas.Fk_cabecera, dbo.Copages_lineas.Precio, dbo.Copages.Fk_serie, dbo.Copages.Numero, dbo.Copages_lineas.Fk_articulo, dbo.Copages_lineas.Fk_almacen, 
             dbo.Copages_lineas.Grado_oficial, dbo.Copages_lineas.Grado, dbo.Copages_lineas.E_S, dbo.Copages_lineas.Lote, dbo.Copages_lineas.Cantidad, dbo.Copages_lineas.Cantidad * dbo.V_ArticulosNombre.Peso_neto AS Cantidad_kg, dbo.Copages_lineas.Observaciones, 
             dbo.Copages_lineas.Numero_linea, dbo.Copages_lineas.Fk_movimiento, dbo.Copages_lineas.Añada, dbo.Copages_lineas.Lote_etiqueta, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.Almacenes.Descripcion AS Desc_almacenes, dbo.Copages.Fecha, 
             dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Fk_do, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_color, dbo.V_ArticulosNombre.Desc_color, dbo.V_ArticulosNombre.Capacidad, 
             dbo.Copages_lineas.Pmp_lote, dbo.Copages_lineas.Pmp, dbo.Copages_lineas.Fk_codigo_reparto AS Codigo_reparto, dbo.Asientos_tipo_reparto.descripcion AS Descripcion_tipo_reparto, dbo.Asientos_cuentas_contables.Codigo AS Codigo_cc, 
             dbo.Asientos_cuentas_contables.Descripcion AS Descripcion_cc, dbo.Copages.Fk_tipo_movimiento, dbo.Copages.Fk_tipo_movimiento AS Serie_tipo_movimiento, dbo.Lotes.Añada AS Añada_tabla_lotes, dbo.Copages_lineas.Fk_alb_liq_lin
			 ,Alb_liq_lin.Serie AS Serie_alb_liq
             ,Alb_liq_lin.Numero AS Numero_alb_liq
			 ,Alb_liq_lin.Linea AS Linea_alb_liq
			 ,Alb_liq.Volante_eco,Alb_liq.Volante_otros
			 ,S.Personas as Socios_alb_liq
			 , dbo.Copages_lineas.Num_eti_desde, dbo.Copages_lineas.Num_eti_hasta, dbo.Copages.Fk_persona, N.NombreCompleto, dbo.V_ArticulosNombre.Desc_unidad, 
             dbo.V_ArticulosNombre.Desc_unidad_breve, dbo.Copages_lineas.Forzar_precio, dbo.Copages_lineas.Fecha_hora, dbo.Copages_lineas.Rendimiento,dbo.Copages_lineas.Lote_ref_salida
			, CASE 
				WHEN E_S = ''E'' THEN 
					CASE WHEN (SELECT SUM(CL.Cantidad) AS EE FROM dbo.Copages_lineas AS CL WHERE CL.Fk_cabecera = Copages.Id AND CL.E_S = ''S'')=0 THEN 0
					ELSE ROUND(Copages_lineas.Cantidad * 100 / (SELECT SUM(CL.Cantidad) AS EE FROM dbo.Copages_lineas AS CL WHERE CL.Fk_cabecera = Copages.Id AND CL.E_S = ''S''), 2) 
				END
				WHEN E_S = ''S'' THEN 
					CASE WHEN (SELECT SUM(CL.Cantidad) AS EE FROM dbo.Copages_lineas AS CL WHERE CL.Fk_cabecera = Copages.Id AND CL.E_S = ''E'')=0 THEN 0
					ELSE ROUND(Copages_lineas.Cantidad * 100 / (SELECT SUM(CL.Cantidad) AS EE FROM dbo.Copages_lineas AS CL WHERE CL.Fk_cabecera = Copages.Id AND CL.E_S = ''E''), 2) 
				END
				ELSE 0 
			END AS PorcentajeMov
FROM   dbo.Copages_lineas INNER JOIN
             dbo.Copages ON dbo.Copages_lineas.Fk_cabecera = dbo.Copages.Id LEFT OUTER JOIN
             dbo.Asientos_cuentas_contables ON dbo.Copages_lineas.Fk_cc = dbo.Asientos_cuentas_contables.Codigo LEFT OUTER JOIN
             dbo.Asientos_tipo_reparto ON dbo.Copages_lineas.Fk_codigo_reparto = dbo.Asientos_tipo_reparto.codigo LEFT OUTER JOIN
             dbo.Almacenes ON dbo.Copages_lineas.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
             dbo.V_ArticulosNombre ON dbo.Copages_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
             dbo.Lotes ON dbo.Copages_lineas.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.Copages_lineas.Lote = dbo.Lotes.Lote LEFT OUTER JOIN
             Alb_liq_lin  ON dbo.Copages_lineas.Fk_alb_liq_lin = Alb_liq_lin.Id 
			 LEFT OUTER JOIN Alb_liq ON Alb_liq_lin.Serie=Alb_liq.Serie AND Alb_liq_lin.Numero=Alb_liq.Numero
			 LEFT OUTER JOIN (SELECT Serie, Numero, Linea, STRING_AGG(''['' + CAST(S.Persona AS nvarchar) + '' - '' + N .NombreCompleto + '']'', '','') AS Personas
                 FROM    Alb_liq_lin_part S LEFT OUTER JOIN
                              V_PersonasSoloNombre N ON S.Persona = N .Codigo
                 GROUP BY Serie, Numero, Linea) S ON Alb_liq_lin.Serie = S.Serie AND Alb_liq_lin.Numero = S.Numero AND Alb_liq_lin.Linea = S.Linea
             LEFT OUTER JOIN dbo.V_PersonasSoloNombre AS N ON dbo.Copages.Fk_persona = N.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosVentaLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosVentaLineasLotes]
AS
SELECT     dbo.Ped_venta_lineas_lotes.Id, dbo.Ped_venta_lineas_lotes.fk_Id_linea, dbo.Ped_venta_lineas_lotes.Almacen, dbo.Ped_venta_lineas_lotes.Lote,
dbo.Ped_venta_lineas_lotes.Lote_etiqueta, dbo.Ped_venta_lineas_lotes.Precio_coste_lote, dbo.Ped_venta_lineas_lotes.Cantidad,
dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Ped_venta_lineas.Serie, dbo.Ped_venta_lineas.Numero,dbo.Lotes.Añada,dbo.Lotes.Fecha_caducidad,dbo.Lotes.Fecha_consumo_preferente
FROM         dbo.Ped_venta_lineas_lotes LEFT OUTER JOIN
dbo.Ped_venta_lineas ON dbo.Ped_venta_lineas_lotes.fk_Id_linea = dbo.Ped_venta_lineas.Id LEFT OUTER JOIN
dbo.Almacenes ON dbo.Ped_venta_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
dbo.Lotes ON dbo.Ped_venta_lineas.Fk_articulo=dbo.Lotes.Fk_articulo AND dbo.Ped_venta_lineas_lotes.Lote=dbo.Lotes.Lote
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraLineasLotes]
AS
SELECT PCLL.Id, PCLL.fk_Id_linea, PCL.Fk_articulo, PCLL.Almacen, PCLL.Lote, PCLL.Lote_etiqueta, PCLL.Precio_coste_lote, PCLL.Cantidad, AL.Descripcion AS Desc_almacen, PCL.Serie, PCL.Numero, PCLL.Grado, PCLL.Añada, 
PCLL.Fecha_caducidad, PCLL.Fecha_consumo_preferente, PCLL.Fecha_lote
, LL.Fecha_lote AS LL_Fecha_lote, LL.Lote_etiqueta AS LL_Lote_etiqueta, LL.Añada AS LL_Añada, LL.Fecha_caducidad AS LL_Fecha_caducidad, LL.Fecha_consumo_preferente AS LL_Fecha_consumo_preferente
, LL.Grado AS LL_Grado, LL.Tipo_lote AS LL_Tipo_lote, LL.Grado_oficial AS LL_Grado_oficial, LL.Lote_granel AS LL_Lote_granel, LL.Fk_persona AS LL_Fk_persona, LL.Fk_ficha_tecnica AS LL_Fk_ficha_tecnica
, LL.Observaciones AS LL_Observaciones, LL.Fk_proveedor AS LL_Fk_proveedor, LL.Bloqueado AS LL_Bloqueado, LL.Fecha_bloqueo AS LL_Fecha_bloqueo, LL.Usuario_bloqueo AS LL_Usuario_bloqueo
, LL.Rendimiento AS LL_Rendimiento, LL.Observaciones_internas AS LL_Observaciones_internas
FROM Lotes AS LL 
RIGHT OUTER JOIN Ped_compra_lineas AS PCL 
ON LL.Fk_articulo = PCL.Fk_articulo 
RIGHT OUTER JOIN Ped_compra_lineas_lotes AS PCLL 
ON LL.Lote = PCLL.Lote 
AND PCL.Id = PCLL.fk_Id_linea 
LEFT OUTER JOIN Almacenes AS AL 
ON PCLL.Almacen = AL.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraLineasLotesVariedades]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraLineasLotesVariedades]
AS
SELECT        PCL.Id AS Id_pedido_compra_linea, PCL.Serie, PCL.Numero, PCLL.Id AS Id_pedido_compra_linea_lote, PCL.Fk_articulo AS Fk_articulo_pedido, PCL.Articulo_descripcion AS Articulo_descripcion_pedido, LLVV.Id AS Id_lote_variedad, 
                         LLVV.Fk_articulo AS Fk_articulo_variedad, dbo.V_ArticulosNombre.Descripcion AS Descripcion_variedad, LLVV.Proporcion
FROM            dbo.Ped_compra_lineas_lotes AS PCLL INNER JOIN
                         dbo.Lotes AS LL INNER JOIN
                         dbo.Ped_compra_lineas AS PCL ON LL.Fk_articulo = PCL.Fk_articulo INNER JOIN
                         dbo.Lotes_variedades AS LLVV INNER JOIN
                         dbo.V_ArticulosNombre ON LLVV.Fk_articulo = dbo.V_ArticulosNombre.Codigo ON LL.Id = LLVV.Fk_id_lote ON PCLL.Lote = LL.Lote AND PCLL.fk_Id_linea = PCL.Id
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosFacVentaNoCobrados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VencimientosFacVentaNoCobrados]
AS
SELECT   dbo.Facturas_venta.Codigo_cliente
, SUM(CASE WHEN (ISNULL(SER.No_sumar_a_vencimientos_pendientes, 0) = 0) THEN ISNULL(VENC.importe_vencimiento, 0) ELSE 0 END) AS Imp_total_venc_no_cobrados
, SUM(CASE WHEN (ISNULL(SER.No_sumar_a_vencimientos_pendientes, 0) = 1) THEN ISNULL(VENC.importe_vencimiento, 0) ELSE 0 END) AS Imp_total_venc_ca_no_cobrados
,SUM(CASE WHEN ISNULL(SER.No_sumar_a_vencimientos_pendientes,0)=0 AND VENC.fecha_vencimiento< DATEADD(d,DATEDIFF(d,0,getdate()),0) THEN ISNULL(VENC.importe_vencimiento, 0) ELSE 0 END) as Imp_total_venc_no_cobrados_vencidos
,SUM(CASE WHEN ISNULL(SER.No_sumar_a_vencimientos_pendientes,0)=0 AND VENC.fecha_vencimiento>= DATEADD(d,DATEDIFF(d,0,getdate()),0) THEN ISNULL(VENC.importe_vencimiento, 0) ELSE 0 END) as Imp_total_venc_no_cobrados_vigentes
FROM     dbo.cartera_vencimientos VENC INNER JOIN
             dbo.Facturas_venta ON VENC.serie_documento = dbo.Facturas_venta.Serie AND VENC.numero_documento = dbo.Facturas_venta.Numero INNER JOIN
             dbo.Series_facturas_venta AS SER ON dbo.Facturas_venta.Serie = SER.Serie
WHERE   (VENC.Cerrado = 0) AND (VENC.SerieTipoDoc = ''FV'')
GROUP BY dbo.Facturas_venta.Codigo_cliente
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonaInformacion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonaInformacion]
AS
SELECT        Codigo_cliente, Riesgo_concedido, Importe_pendiente_albaranes_venta, Importe_pendiente_ped_venta, Imp_total_venc_no_cobrados, Imp_total_venc_ca_no_cobrados, Imp_total_venc_no_cobrados_vencidos,Imp_total_venc_no_cobrados_vigentes,
                         Riesgo_concedido - Importe_pendiente_albaranes_venta - Importe_pendiente_ped_venta - Imp_total_venc_no_cobrados - Imp_total_venc_ca_no_cobrados AS Riesgo_disponible
FROM            (SELECT        dbo.Personas.Codigo AS Codigo_cliente, ISNULL(dbo.Personas.Riesgo_concedido, 0) AS Riesgo_concedido, ISNULL(AlbVentaEstadosPorCliente.Importe_pendiente_albaranes_venta, 0) 
                                                    AS Importe_pendiente_albaranes_venta, ISNULL(PedVentaEstadosPorCliente.Importe_pendiente_ped_venta, 0) AS Importe_pendiente_ped_venta, 
                                                    ISNULL(dbo.V_VencimientosFacVentaNoCobrados.Imp_total_venc_no_cobrados, 0) AS Imp_total_venc_no_cobrados
													,ISNULL(dbo.V_VencimientosFacVentaNoCobrados.Imp_total_venc_no_cobrados_vencidos, 0) AS Imp_total_venc_no_cobrados_vencidos
													,ISNULL(dbo.V_VencimientosFacVentaNoCobrados.Imp_total_venc_no_cobrados_vigentes, 0) AS Imp_total_venc_no_cobrados_vigentes
													,ISNULL(dbo.V_VencimientosFacVentaNoCobrados.Imp_total_venc_ca_no_cobrados, 0) AS Imp_total_venc_ca_no_cobrados
                          FROM            dbo.Personas LEFT OUTER JOIN
                                                        (SELECT        Codigo_cliente, SUM(ISNULL(Importe_total_pendiente, 0)) AS Importe_pendiente_albaranes_venta
                                                          FROM            dbo.V_AlbVentaEstados
                                                          GROUP BY Codigo_cliente) AS AlbVentaEstadosPorCliente ON dbo.Personas.Codigo = AlbVentaEstadosPorCliente.Codigo_cliente LEFT OUTER JOIN
                                                        (SELECT        dbo.V_PedVentaEstados.Codigo_cliente, SUM(ISNULL(dbo.V_PedVentaEstados.Importe_total_pendiente, 0)) - SUM(ISNULL(F.Total_factura, 0)) AS Importe_pendiente_ped_venta
                                                          FROM            dbo.V_PedVentaEstados LEFT OUTER JOIN
                                                                                    dbo.Facturas_venta AS F ON dbo.V_PedVentaEstados.Serie = F.Serie_link AND dbo.V_PedVentaEstados.Numero = F.Numero_link AND F.SerieTipoDoc_link = ''PV''
                                                          GROUP BY dbo.V_PedVentaEstados.Codigo_cliente) AS PedVentaEstadosPorCliente ON dbo.Personas.Codigo = PedVentaEstadosPorCliente.Codigo_cliente LEFT OUTER JOIN
                                                    dbo.V_VencimientosFacVentaNoCobrados ON dbo.Personas.Codigo = dbo.V_VencimientosFacVentaNoCobrados.Codigo_cliente) AS derivedtbl_1
													'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinPartSociosUnidos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinPartSociosUnidos]
AS
SELECT   Serie, Numero, Linea, SUM(Cantidad_bruta) AS Cantidad_bruta, SUM(Cantidad_neta) AS Cantidad_neta, SUM(Cantidad_bruta_corregida) AS Cantidad_bruta_corregida, SUM(Cantidad_neta_corregida) AS Cantidad_neta_corregida, SUM(C_neta_corregida_kilos) AS C_neta_corregida_kilos, SUM(C_neta_corregida_litros) 
             AS C_neta_corregida_litros
			 ,STRING_AGG(CAST([Persona] AS nvarchar), '' / '') AS Codigos_persona
			 ,STRING_AGG(CAST([Nombrecompleto] AS nvarchar), '' / '') AS Nombres_persona
			 ,STRING_AGG(CAST(CONVERT(varchar, Particion) + '' % ( '' + CONVERT(varchar, CONVERT(decimal(15, 2), Cantidad_bruta)) + '' )'' AS varchar(MAX)), '' / '') AS Particiones
			 ,STRING_AGG(CAST(Telefono1 AS nvarchar), '' / '') AS Telefonos
			 ,STRING_AGG(CAST(Email1 AS nvarchar), '' / '') AS Emails
			 ,STRING_AGG(CAST(Identificacion as nvarchar), '' / '') AS Identificacion
			 ,STRING_AGG(CAST(Op_agricultura_eco AS nvarchar), '' / '') AS Codigos_Op_agricultura_eco
FROM     V_AlbLiqLinPart results
GROUP BY serie, numero, linea
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesTotal]'))
DROP VIEW [dbo].V_CopagesTotal
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesTotal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CopagesTotal]
AS
SELECT        CC.Fk_serie AS SerieCopage, CC.Numero AS NumeroCopage, CC.Fecha AS FechaCopage, CC.Salidas AS SalidasCopage, CC.Entradas AS EntradasCopage, CC.Entradas * 100 / CC.Salidas AS RendCopage, 
                         CC.RendMigAlbs, CL.Fk_alb_liq_lin
FROM            (SELECT        Id, Fk_serie, Numero, Fecha,
                                                        (SELECT        SUM(CL.Cantidad) AS Salidas
                                                          FROM            dbo.Copages_lineas AS CL INNER JOIN
                                                                                    dbo.Articulos AS A ON CL.Fk_articulo = A.Codigo
                                                          WHERE        (CL.Fk_cabecera = C.Id) AND (CL.E_S = ''S'') AND (ISNULL(A.no_calcular_rend_copage, 0) = 0)) AS Salidas,
                                                        (SELECT        SUM(CL.Cantidad) AS Entradas
                                                          FROM            dbo.Copages_lineas AS CL INNER JOIN
                                                                                    dbo.Articulos AS A ON CL.Fk_articulo = A.Codigo
                                                          WHERE        (CL.Fk_cabecera = C.Id) AND (CL.E_S = ''E'') AND (ISNULL(A.no_calcular_rend_copage, 0) = 0)) AS Entradas,
                                                        (SELECT SUM(CL.Cantidad * ROUND(CONVERT(float, REPLACE(ISNULL(AlinP.Valor, 0), '','', ''.'')), 2))/SUM(CL.Cantidad) As RendMigAlbs
															FROM dbo.Alb_liq_lin AS ALin 
															LEFT OUTER JOIN dbo.Alb_liq_lin_param AS AlinP 
															ON ALin.Serie = AlinP.Serie 
															AND ALin.Numero = AlinP.Numero 
															AND ALin.Linea = AlinP.Linea 
															RIGHT OUTER JOIN dbo.Copages_lineas AS CL 
															ON ALin.Id = CL.Fk_alb_liq_lin
															WHERE CL.Fk_cabecera = C.Id AND CL.E_S = ''S'' AND AlinP.Parametro = 1000) AS RendMigAlbs
                          FROM            dbo.Copages AS C) AS CC INNER JOIN
                         dbo.Copages_lineas AS CL ON CC.Id = CL.Fk_cabecera
WHERE        (CL.Fk_alb_liq_lin IS NOT NULL)
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParametrosFijosSociosColumnas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinParametrosFijosSociosColumnas]
AS
SELECT        dbo.V_AlbLiq.Bascula, dbo.V_AlbLiq.Serie, dbo.V_AlbLiq.Numero, dbo.V_AlbLiq.Fk_seccion, dbo.V_AlbLiq.Desc_seccion, dbo.V_AlbLiq.Fk_campaña, dbo.V_AlbLiq.Desc_campaña, dbo.V_AlbLiq.Fecha, 
                         dbo.V_AlbLiq.Fecha_operacion, dbo.V_AlbLiq.Fk_empresa, dbo.V_AlbLiq.Desc_empresa, dbo.V_AlbLiq.Id_filtro, dbo.V_AlbLiqLin.Fecha_ult_envio_rvc, dbo.V_AlbLiq.Volante_eco, dbo.V_AlbLiq.Volante_otros, 
                         dbo.V_AlbLiq.Hora_entrada, dbo.V_AlbLiq.Hora_salida, dbo.V_AlbLiq.Portador_codigo, dbo.V_AlbLiq.Portador_nif, dbo.V_AlbLiq.Portador_nombre, dbo.V_AlbLiq.Fk_transportista, dbo.V_AlbLiq.Nombre_transportista, 
                         dbo.V_AlbLiq.Matricula, dbo.V_AlbLiq.Serie_doc_origen, dbo.V_AlbLiq.Doc_origen,dbo.V_AlbLiq.Socio_doc_origen, dbo.V_AlbLiq.Observaciones, dbo.V_AlbLiq.Tipo_liq, dbo.V_AlbLiq.Fk_centro, dbo.V_AlbLiq.Desc_centro, dbo.V_AlbLiq.Tarjeta_rvc_no_socios, 
                         dbo.V_AlbLiq.Municipio_no_socios, dbo.V_AlbLiq.Desc_municipio_no_socios, dbo.V_AlbLiq.Id, dbo.V_AlbLiq.Socio2_codigo, dbo.V_AlbLiq.Safata, dbo.V_AlbLiq.Vector, dbo.V_AlbLiq.Su_referencia, 
                         dbo.V_AlbLiq.Fecha_validacion, dbo.V_AlbLiq.Usuario_validacion, dbo.V_AlbLiqLin.Articulo, dbo.V_AlbLiqLin.Tipo_seccion, dbo.V_AlbLiqLin.C_postal, dbo.V_AlbLiqLin.Envase, dbo.V_AlbLiqLin.Bultos, 
                         dbo.V_AlbLiqLin.Cantidad_con_tara, dbo.V_AlbLiqLin.Cantidad_tara, dbo.V_AlbLiqLin.Cantidad_bruta, dbo.V_AlbLiqLin.Cantidad_neta, dbo.V_AlbLiqLin.Precio, dbo.V_AlbLiqLin.Cantidad_finca_1, dbo.V_AlbLiqLin.Finca, 
                         dbo.V_AlbLiqLin.Desc_finca, dbo.V_AlbLiqLin.Parcela, dbo.V_AlbLiqLin.Desc_parcela, dbo.V_AlbLiqLin.Cantidad_finca_2, dbo.V_AlbLiqLin.Finca2, dbo.V_AlbLiqLin.Desc_finca2, dbo.V_AlbLiqLin.Parcela2, 
                         dbo.V_AlbLiqLin.Desc_parcela2, dbo.V_AlbLiqLin.Cantidad_finca_3, dbo.V_AlbLiqLin.Finca3, dbo.V_AlbLiqLin.Desc_finca3, dbo.V_AlbLiqLin.Parcela3, dbo.V_AlbLiqLin.Desc_parcela3, dbo.V_AlbLiqLin.Cantidad_finca_4, 
                         dbo.V_AlbLiqLin.Finca4, dbo.V_AlbLiqLin.Desc_finca4, dbo.V_AlbLiqLin.Parcela4, dbo.V_AlbLiqLin.Desc_parcela4, dbo.V_AlbLiqLin.Almacen, dbo.V_AlbLiqLin.Lote,dbo.V_AlbLiqLin.Km0, dbo.V_AlbLiqLin.Observaciones AS Observaciones_linea, 
                         dbo.V_AlbLiqLin.Destino_uva, dbo.V_AlbLiqLin.Doc_guia, dbo.V_AlbLiqLin.Doc_relacion, dbo.V_AlbLiqLin.Do_1, dbo.V_AlbLiqLin.Do_2, dbo.V_AlbLiqLin.Do_3, dbo.V_AlbLiqLin.Traspasado_rvc, 
                         dbo.V_AlbLiqLin.No_traspasar_rvc, dbo.V_AlbLiqLin.Fk_codigo_reparto, dbo.V_AlbLiqLin.Desc_serie, dbo.V_AlbLiqLin.Desc_articulo, dbo.V_AlbLiqLin.Desc_Do1, dbo.V_AlbLiqLin.Desc_Do2, dbo.V_AlbLiqLin.Desc_Do3, 
                         dbo.V_AlbLiqLin.Paraje, dbo.V_AlbLiqLin.Desc_almacen, dbo.V_AlbLiqLin.Desc_envase, dbo.V_AlbLiqLin.Rendimiento_anterior, dbo.V_AlbLiqLin.Fecha_cambio_rendimiento, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Rendimiento, dbo.V_AlbLiqLinParamFijosPorColumnas.Humedad, dbo.V_AlbLiqLinParamFijosPorColumnas.Podrido, dbo.V_AlbLiqLinParamFijosPorColumnas.Gluconico, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Acidez, dbo.V_AlbLiqLinParamFijosPorColumnas.Densidad, dbo.V_AlbLiqLinParamFijosPorColumnas.Grado, dbo.V_AlbLiqLinParamFijosPorColumnas.Acidez_volatil, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Actidez_total_sulfurica, dbo.V_AlbLiqLinParamFijosPorColumnas.Cascara, dbo.V_AlbLiqLinParamFijosPorColumnas.Materia_grasa, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Mal_peladas, dbo.V_AlbLiqLinParamFijosPorColumnas.Fallado, dbo.V_AlbLiqLinParamFijosPorColumnas.Mezcla, dbo.V_AlbLiqLinParamFijosPorColumnas.Capas_color, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_grande, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_pequeño, dbo.V_AlbLiqLinParamFijosPorColumnas.Sucio, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Control_visual_calidad, dbo.V_AlbLiqLinParamFijosPorColumnas.Materias_extrañas, dbo.V_AlbLiqLinParamFijosPorColumnas.Rendimiento_industrial, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Estimacion_rendimiento_industrial, dbo.V_AlbLiqLinParamFijosPorColumnas.Aceite_sobre_seco, dbo.V_AlbLiqLinPartSociosUnidos.Codigos_persona, 
                         dbo.V_AlbLiqLinPartSociosUnidos.Nombres_persona, dbo.V_AlbLiqLinPartSociosUnidos.Particiones, dbo.V_AlbLiq.Fecha_cerrado, dbo.V_AlbLiqLinParamFijosPorColumnas.Cascall, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Cascallot, dbo.V_AlbLiqLinParamFijosPorColumnas.Piedras, dbo.V_AlbLiqLinParamFijosPorColumnas.Otros, dbo.V_AlbLiqLinParamFijosPorColumnas.Apolilladas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Engomadas, dbo.V_AlbLiqLinParamFijosPorColumnas.Rancias, dbo.V_AlbLiqLinParamFijosPorColumnas.Florecidas, dbo.V_AlbLiqLinParamFijosPorColumnas.Gemelas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Rascadas, dbo.V_AlbLiqLinParamFijosPorColumnas.Viejas, dbo.V_AlbLiqLinParamFijosPorColumnas.Peladas, dbo.V_AlbLiqLinParamFijosPorColumnas.Migradas, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Aflatoxinas, dbo.V_AlbLiqLinParamFijosPorColumnas.Trozo, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_bajo_9, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_9_10, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_10_11, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_11_12, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_12_13, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_13_14, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_14_15, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_15_16, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_16_17, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_17_18, dbo.V_AlbLiqLinParamFijosPorColumnas.Maquina, dbo.V_AlbLiqLinParamFijosPorColumnas.Rancimat, 
                         dbo.V_AlbLiqLinParamFijosPorColumnas.Grado_laboratorio, dbo.V_AlbLiqLinParamFijosPorColumnas.ATS_laboratorio, dbo.V_AlbLiqLinParamFijosPorColumnas.Gluconico_laboratorio
						 , dbo.V_AlbLiqLinParamFijosPorColumnas.Bonificacion_transporte, dbo.V_AlbLiqLinParamFijosPorColumnas.Dias_diferencia_deposito
                         ,dbo.V_AlbLiqLinParamFijosPorColumnas.Gastos_almacenaje, dbo.V_AlbLiqLinParamFijosPorColumnas.Piezas_onza, dbo.V_AlbLiqLinParamFijosPorColumnas.Tamaño_sobre_18, dbo.V_AlbLiqLin.Linea, 
                         dbo.V_AlbLiqLin.Tags_articulo, dbo.V_AlbLiq.Tipo, dbo.V_AlbLiq.Fk_serie_padre, dbo.V_AlbLiq.Fk_numero_padre, dbo.V_AlbLiqLinPartSociosUnidos.Cantidad_bruta_corregida, 
                         dbo.V_AlbLiqLinPartSociosUnidos.Cantidad_neta_corregida, dbo.V_AlbLiqLinPartSociosUnidos.C_neta_corregida_kilos, dbo.V_AlbLiqLinPartSociosUnidos.C_neta_corregida_litros, dbo.V_AlbLiq.Estado_liq_prov, 
                         dbo.V_AlbLiq.Estado_liq_def, dbo.V_AlbLiq.Estado_valor_campaña, dbo.V_AlbLiq.Estado_liq_trans, 
                         CASE dbo.V_AlbLiqLin.Destino_uva WHEN 0 THEN ''VQPRD'' WHEN 1 THEN ''DESTILACIÓN'' WHEN 2 THEN ''MESA'' ELSE '''' END AS Desc_Destino_uva, VCT.SerieCopage, VCT.NumeroCopage, VCT.FechaCopage, 
                         VCT.SalidasCopage, VCT.EntradasCopage, VCT.RendCopage, VCT.RendCopage * dbo.V_AlbLiqLin.Cantidad_bruta / 100 AS CantidadBrutaCopage, VCT.RendCopage * dbo.V_AlbLiqLin.Cantidad_neta / 100 AS CantidadNetaCopage, 
                         VCT.RendMigAlbs, CASE WHEN ISNULL(VCT.RendMigAlbs, 0) = 0 THEN NULL ELSE ROUND(VCT.RendCopage / VCT.RendMigAlbs, 2) * dbo.V_AlbLiqLinParamFijosPorColumnas.Rendimiento END AS EstimacionRI, 
                         dbo.Articulos.Descripcion, dbo.V_AlbLiq.No_requiere_rend
						 , dbo.V_AlbLiqLin.Id_finca1, dbo.V_AlbLiqLin.Id_finca2, dbo.V_AlbLiqLin.Id_finca3, dbo.V_AlbLiqLin.Id_finca4
						 ,dbo.V_AlbLiqLin.Poligono1,dbo.V_AlbLiqLin.Poligono2,dbo.V_AlbLiqLin.Poligono3,dbo.V_AlbLiqLin.Poligono4
						 ,dbo.V_AlbLiqLin.Sup_parcela1,dbo.V_AlbLiqLin.Sup_parcela2,dbo.V_AlbLiqLin.Sup_parcela3,dbo.V_AlbLiqLin.Sup_parcela4
						 , dbo.V_AlbLiqLin.CodigoPostalFinca1, dbo.V_AlbLiqLin.DescMunicipioFinca1
						 , dbo.V_AlbLiqLin.Codigo_pv_rvc_f1 AS PV_Finca1, dbo.V_AlbLiqLin.Codigo_pv_rvc_f2 AS PV_Finca2, dbo.V_AlbLiqLin.Codigo_pv_rvc_f3 AS PV_Finca3, dbo.V_AlbLiqLin.Codigo_pv_rvc_f4 AS PV_Finca4
						 , dbo.V_AlbLiqLin.Codigo_pv_rvc_p1 AS PV_Parcela1, dbo.V_AlbLiqLin.Codigo_pv_rvc_p2 AS PV_Parcela2, dbo.V_AlbLiqLin.Codigo_pv_rvc_p3 AS PV_Parcela3, dbo.V_AlbLiqLin.Codigo_pv_rvc_p4 AS PV_Parcela4
						 , dbo.V_AlbLiqLin.Cava_guarda_superior,dbo.V_AlbLiq.Estado_desglose_albaranes,dbo.V_AlbLiq.Corredor_socio,dbo.V_AlbLiq.Contrato,V_AlbLiq.Replica_serie,V_AlbLiq.Replica_numero
						 , dbo.V_AlbLiqLin.Replica_cantidad_original,dbo.V_AlbLiq.Asociacion_compra,dbo.V_AlbLiq.Numero_EMCS
						 ,dbo.V_AlbLiq.Venta_deposito_almacen,dbo.V_AlbLiq.Venta_deposito_fecha_almacen,dbo.V_AlbLiq.Venta_deposito_numero,dbo.V_AlbLiq.Venta_deposito_numero_albaran
						,dbo.V_AlbLiq.Venta_deposito_numero_linea_albaran,dbo.V_AlbLiq.Venta_deposito_seccion_albaran,dbo.V_AlbLiq.Venta_deposito_serie,dbo.Articulos.Clasificacion_ECO
						,dbo.V_AlbLiq.Id_gen_otra_empresa,dbo.V_AlbLiq.Precio_transportista ,dbo.V_AlbLiqLinPartSociosUnidos.Emails,dbo.V_AlbLiqLinPartSociosUnidos.Telefonos
						,dbo.V_AlbLiq.Estado,dbo.V_AlbLiq.Usuario_anulacion,dbo.V_AlbLiq.Fecha_anulacion
						, dbo.V_AlbLiq.Usuario_creacion, dbo.V_AlbLiq.Fecha_creacion, dbo.V_AlbLiq.Usuario_modificacion, dbo.V_AlbLiq.Fecha_modificacion,dbo.V_AlbLiq.Repartido,dbo.V_AlbLiqLin.Fk_articulo_repartir,dbo.V_AlbLiqLin.Desc_articulo_repartir
						, dbo.V_AlbLiqLin.Rvc_estado, dbo.V_AlbLiqLin.Rvc_error, dbo.V_AlbLiqLin.Rvc_numero_pesada
						, dbo.V_AlbLiqLin.Porcent_vitalis, V_AlbLiqLinPartSociosUnidos.Identificacion
						, dbo.V_AlbLiqLinPartSociosUnidos.Codigos_Op_agricultura_eco
FROM            dbo.Articulos RIGHT OUTER JOIN
                         dbo.V_AlbLiqLin ON dbo.Articulos.Codigo = dbo.V_AlbLiqLin.Articulo LEFT OUTER JOIN
                         dbo.V_CopagesTotal AS VCT ON dbo.V_AlbLiqLin.Id = VCT.Fk_alb_liq_lin LEFT OUTER JOIN
                         dbo.V_AlbLiqLinParamFijosPorColumnas ON dbo.V_AlbLiqLin.Serie = dbo.V_AlbLiqLinParamFijosPorColumnas.Serie AND dbo.V_AlbLiqLin.Numero = dbo.V_AlbLiqLinParamFijosPorColumnas.Numero AND 
                         dbo.V_AlbLiqLin.Linea = dbo.V_AlbLiqLinParamFijosPorColumnas.Linea RIGHT OUTER JOIN
                         dbo.V_AlbLiq ON dbo.V_AlbLiqLin.Serie = dbo.V_AlbLiq.Serie AND dbo.V_AlbLiqLin.Numero = dbo.V_AlbLiq.Numero LEFT OUTER JOIN
                         dbo.V_AlbLiqLinPartSociosUnidos ON dbo.V_AlbLiqLin.Serie = dbo.V_AlbLiqLinPartSociosUnidos.Serie AND dbo.V_AlbLiqLin.Numero = dbo.V_AlbLiqLinPartSociosUnidos.Numero AND 
                         dbo.V_AlbLiqLin.Linea = dbo.V_AlbLiqLinPartSociosUnidos.Linea
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesAsociados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinLotesAsociados]
AS
SELECT        TOP (100) PERCENT Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Almacen, Lote, Lote_etiqueta, Bultos, Cantidad, Id_doc_asociado, Tipo_doc
FROM            (SELECT        dbo.Alb_venta_lineas.Id, dbo.Alb_venta_lineas_lotes.Almacen, dbo.Alb_venta_lineas_lotes.Lote, dbo.Alb_venta_lineas_lotes.Lote_etiqueta, dbo.Alb_venta_lineas.Serie, 
													dbo.Alb_venta_lineas.Numero, dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, dbo.Alb_venta_lineas.Articulo_descripcion, dbo.Alb_venta_lineas.Bultos, 
													dbo.Alb_venta_lineas_lotes.Cantidad, dbo.Alb_venta_lineas.Id_doc_asociado, ''AV'' AS Tipo_doc
						  FROM            dbo.Alb_venta_lineas INNER JOIN
													dbo.Alb_venta_lineas_lotes ON dbo.Alb_venta_lineas.Id = dbo.Alb_venta_lineas_lotes.fk_Id_linea
						  UNION ALL
						  SELECT        dbo.Ped_venta_lineas.Id, dbo.Ped_venta_lineas_lotes.Almacen, dbo.Ped_venta_lineas_lotes.Lote, dbo.Ped_venta_lineas_lotes.Lote_etiqueta, dbo.Ped_venta_lineas.Serie, 
												   dbo.Ped_venta_lineas.Numero, dbo.Ped_venta_lineas.Linea, dbo.Ped_venta_lineas.Fk_articulo, dbo.Ped_venta_lineas.Articulo_descripcion, dbo.Ped_venta_lineas.Bultos, 
												   dbo.Ped_venta_lineas_lotes.Cantidad, dbo.Ped_venta_lineas.Id_doc_asociado, ''PV'' AS Tipo_doc
						  FROM            dbo.Ped_venta_lineas INNER JOIN
												   dbo.Ped_venta_lineas_lotes ON dbo.Ped_venta_lineas.Id = dbo.Ped_venta_lineas_lotes.fk_Id_linea
						  WHERE ISNULL(Ped_venta_lineas.Automatica,0) = 0
						  UNION ALL
						  SELECT        dbo.Facturas_venta_lineas.Id, dbo.Facturas_venta_lineas_lotes.Almacen, dbo.Facturas_venta_lineas_lotes.Lote, dbo.Facturas_venta_lineas_lotes.Lote_etiqueta, dbo.Facturas_venta_lineas.Serie, 
												   dbo.Facturas_venta_lineas.Numero, dbo.Facturas_venta_lineas.Linea, dbo.Facturas_venta_lineas.Articulo AS Fk_articulo, dbo.Facturas_venta_lineas.Articulo_descripcion, 
												   dbo.Facturas_venta_lineas.Bultos, dbo.Facturas_venta_lineas_lotes.Cantidad, dbo.Facturas_venta_lineas.Id_doc_asociado, ''FV'' AS Tipo_doc
						  FROM            dbo.Facturas_venta_lineas INNER JOIN
												   dbo.Facturas_venta_lineas_lotes ON dbo.Facturas_venta_lineas.Id = dbo.Facturas_venta_lineas_lotes.fk_Id_linea
						  ) AS V
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinLotesEstados]
AS
SELECT        Tipo_doc, Id, Serie, Numero, Linea, Almacen, Lote, Lote_etiqueta, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_asociada, Cantidad_pendiente
FROM            (SELECT        Tipo_doc, Id, Serie, Numero, Linea, Almacen, Lote, Lote_etiqueta, Fk_articulo, Articulo_descripcion, Bultos, Cantidad, Cantidad_asociada, Cantidad - Cantidad_asociada AS Cantidad_pendiente
						  FROM            (SELECT        Id, Serie, Numero, Linea, Almacen, Lote, Lote_etiqueta, Bultos, Cantidad, Fk_articulo, Articulo_descripcion, Tipo_doc,
																				  (SELECT        ISNULL(SUM(Cantidad), 0) AS Expr1
																					FROM            dbo.V_DocLinLotesAsociados AS v
																					WHERE        (Id_doc_asociado = V_DocLinLotesAsociados_1.Id) AND (Fk_articulo = V_DocLinLotesAsociados_1.Fk_articulo) AND (Lote = V_DocLinLotesAsociados_1.Lote)) 
																			  AS Cantidad_asociada
													FROM            dbo.V_DocLinLotesAsociados AS V_DocLinLotesAsociados_1) AS derivedtbl_1) AS derivedtbl_2
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinLotesEstadosPedVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinLotesEstadosPedVenta]
AS
SELECT        v.Tipo_doc, v.Id, v.Serie, v.Numero, v.Almacen, v.Lote, v.Lote_etiqueta, v.Linea, v.Fk_articulo, v.Articulo_descripcion, v.Bultos, v.Cantidad, v.Cantidad_asociada, v.Cantidad_pendiente, ISNULL
							 ((SELECT        SUM(ISNULL(Cantidad, 0)) AS Expr1
								 FROM            dbo.Hoja_carga_linea
								 WHERE        (Fk_linea_ped_asociado = v.Id) AND (Fk_articulo = v.Fk_articulo) AND (Lote = v.Lote)), 0) AS Cantidad_cargada
FROM            dbo.V_DocLinLotesEstados AS v INNER JOIN
						 dbo.V_DocLinEstadosPedVenta ON v.Id = dbo.V_DocLinEstadosPedVenta.Id
WHERE        (v.Tipo_doc = ''PV'') AND (dbo.V_DocLinEstadosPedVenta.Cantidad_pendiente > 0)
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Safata]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Safata]
AS
SELECT        dbo.Articulos.Descripcion, dbo.Safata.Codigo, dbo.Safata.Safata, dbo.Safata.Vector, dbo.Safata.Fecha, dbo.Safata.Cooperativa_safata, dbo.Safata.Fk_persona_agrocoop, dbo.Safata.Socio, dbo.Safata.Partida, 
                         dbo.Safata.Seca_rega, dbo.Safata.Num_entrada, dbo.Safata.Fecha_entrada, dbo.Safata.Kgs, dbo.Safata.Variedad_safata, dbo.Safata.Fk_articulo_agrocoop, dbo.Safata.Peso_bruto, dbo.Safata.Tara, dbo.Safata.Peso_seco, 
                         dbo.Safata.Fecha_entrada1, dbo.Safata.Fecha_entrada2, dbo.Safata.Num_entrada1, dbo.Safata.Num_entrada2, dbo.Safata.Rendimiento_industrial_coop, dbo.Safata.Num_entrada3, dbo.Safata.Num_entrada4, 
                         dbo.Safata.Num_entrada5, dbo.Safata.Serie_albaran, dbo.Safata.Numero_albaran, dbo.Safata.Aceite_seco, dbo.V_Personas.NombreCompleto, dbo.Safata.Fk_centro, dbo.Safata.Rendimiento, dbo.Safata.Rendimiento_industrial, 
                         dbo.Safata.Observaciones, dbo.Safata.Observaciones_internas, dbo.Safata.Serie, dbo.Safata.Fk_campaña, dbo.Safata.Usuario_creacion, dbo.Safata.Usuario_modificacion, dbo.Safata.Fecha_creacion, 
                         dbo.Safata.Fecha_modificacion, dbo.Campañas.Descripcion AS DescCampaña, dbo.Series_safata.Descripcion AS DescSerieSafata,dbo.Safata.Humedad
						 , CAST(CASE 
							WHEN ISNULL(dbo.Safata.Peso_seco,0) - ISNULL(dbo.Safata.Tara,0)=0 THEN 0
							ELSE ROUND(100 * ISNULL(dbo.Safata.Aceite_seco,0) / (ISNULL(dbo.Safata.Peso_seco,0) - ISNULL(dbo.Safata.Tara,0)),4) 
						END AS decimal(10,4)) AS Pc_OOS
FROM            dbo.Articulos INNER JOIN
                         dbo.Safata ON dbo.Articulos.Codigo = dbo.Safata.Fk_articulo_agrocoop INNER JOIN
                         dbo.V_Personas ON dbo.Safata.Fk_persona_agrocoop = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Series_safata ON dbo.Safata.Serie = dbo.Series_safata.Serie LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Safata.Fk_campaña = dbo.Campañas.Codigo
'

GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosMovimientosEntradasPendientes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LibrosMovimientosEntradasPendientes]
AS
SELECT A.*,ISNULL(A.Cantidad_final,0) - ISNULL(B.Cantidad,0) as Cantidad_pendiente FROM 
(SELECT * FROM Libros_movimientos A WHERE E_S=''E'') A
 LEFT OUTER JOIN
(select Fk_id_origen,SUM(Cantidad_final) as Cantidad  from Libros_movimientos
WHERE (E_S = ''S'') AND NOT Fk_id_origen  IS NULL group by Fk_id_origen) B
ON A.Id=b.Fk_id_origen
WHERE ISNULL(A.Cantidad_final,0) - ISNULL(B.Cantidad,0)>0
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_HojasCargaReservasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_HojasCargaReservasLotes]
AS
							   SELECT        dbo.Hoja_carga_cabecera.Fk_centro AS Centro, dbo.Hoja_carga_linea.Fk_articulo AS Articulo, dbo.Hoja_carga_linea.Fk_almacen AS Almacen, dbo.Hoja_carga_linea.Lote, 
						 SUM(ISNULL(dbo.Hoja_carga_linea.Cantidad, 0)) AS Cantidad_reservada
FROM            dbo.Hoja_carga_cabecera INNER JOIN
						 dbo.Hoja_carga_linea ON dbo.Hoja_carga_cabecera.Id = dbo.Hoja_carga_linea.Fk_cabecera AND dbo.Hoja_carga_cabecera.Serie = dbo.Hoja_carga_linea.Serie AND 
						 dbo.Hoja_carga_cabecera.Numero = dbo.Hoja_carga_linea.Numero
WHERE        (dbo.Hoja_carga_cabecera.Estado = 0) AND (dbo.Hoja_carga_linea.Fk_almacen IS NOT NULL) AND (dbo.Hoja_carga_linea.Lote IS NOT NULL)
AND (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 0)
GROUP BY dbo.Hoja_carga_cabecera.Fk_centro, dbo.Hoja_carga_linea.Fk_articulo, dbo.Hoja_carga_linea.Fk_almacen, dbo.Hoja_carga_linea.Lote'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TraspasosReservasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TraspasosReservasLotes]
AS
SELECT        dbo.Traspasos.Fk_centro_origen AS Centro, dbo.Traspasos_lineas.Fk_articulo AS Articulo, dbo.Traspasos_lineas.Fk_almacen AS Almacen, dbo.Traspasos_lineas.Fk_lote AS Lote, 
						 SUM(ISNULL(dbo.Traspasos_lineas.Cantidad, 0)) AS Cantidad_reservada
FROM            dbo.Traspasos INNER JOIN
						 dbo.Traspasos_lineas ON dbo.Traspasos.Id = dbo.Traspasos_lineas.Fk_traspaso
WHERE        (dbo.Traspasos.Estado = 0 or dbo.Traspasos.Estado = 1)
GROUP BY dbo.Traspasos.Fk_centro_origen, dbo.Traspasos_lineas.Fk_articulo, dbo.Traspasos_lineas.Fk_almacen, dbo.Traspasos_lineas.Fk_lote'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpsReservasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpsReservasLotes]
AS
SELECT        dbo.Op.Fk_centro AS Centro, dbo.Op_componentes_lotes.Fk_almacen AS Almacen, dbo.Op_componentes_lotes.Fk_articulo_componente AS Articulo, dbo.Op_componentes_lotes.Lote, 
						 SUM(ISNULL(dbo.Op_componentes_lotes.Cantidad, 0)) AS Cantidad_reservada
FROM            dbo.Op INNER JOIN
						 dbo.Op_componentes_lotes ON dbo.Op.Id = dbo.Op_componentes_lotes.Fk_op
WHERE        (dbo.Op.Estado = 1)
GROUP BY dbo.Op.Fk_centro, dbo.Op_componentes_lotes.Fk_almacen, dbo.Op_componentes_lotes.Fk_articulo_componente, dbo.Op_componentes_lotes.Lote'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosVentaReservasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedidosVentaReservasLotes]
AS
SELECT        Fk_centro AS Centro, Fk_articulo AS Articulo, Almacen, Lote, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_asociada, 0) - ISNULL(Cantidad_cargada, 0)) AS Cantidad_reservada
FROM            (SELECT        dbo.Ped_venta.Fk_centro, dbo.V_DocLinLotesEstadosPedVenta.Fk_articulo, dbo.V_DocLinLotesEstadosPedVenta.Almacen, dbo.V_DocLinLotesEstadosPedVenta.Lote, 
													dbo.V_DocLinLotesEstadosPedVenta.Cantidad, dbo.V_DocLinLotesEstadosPedVenta.Cantidad_asociada, dbo.V_DocLinLotesEstadosPedVenta.Cantidad_cargada
						  FROM            dbo.V_DocLinLotesEstadosPedVenta LEFT OUTER JOIN
													dbo.Ped_venta ON dbo.V_DocLinLotesEstadosPedVenta.Serie = dbo.Ped_venta.Serie AND dbo.V_DocLinLotesEstadosPedVenta.Numero = dbo.Ped_venta.Numero) AS LotesEstadosPedVenta
GROUP BY Fk_centro, Fk_articulo, Almacen, Lote'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ReservasLotesPorDocumento]'))
DROP VIEW [dbo].V_ReservasLotesPorDocumento
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ReservasLotesPorDocumento]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ReservasLotesPorDocumento] AS 
SELECT PRINCIPAL.*,A.Descripcion as Desc_articulo,C.Descripcion as Desc_centro FROM 
(
SELECT       ''HC'' AS SerieTipoDoc,dbo.Hoja_carga_cabecera.Serie,dbo.Hoja_carga_cabecera.Numero,dbo.Hoja_carga_cabecera.Fecha_hora as Fecha, dbo.Hoja_carga_cabecera.Fk_centro AS Centro
, dbo.Hoja_carga_linea.Fk_articulo AS Articulo, dbo.Hoja_carga_linea.Fk_almacen AS Almacen, dbo.Hoja_carga_linea.Lote, SUM(ISNULL(dbo.Hoja_carga_linea.Cantidad, 0))
											 AS Cantidad_reservada
					FROM            dbo.Hoja_carga_cabecera INNER JOIN
											 dbo.Hoja_carga_linea ON dbo.Hoja_carga_cabecera.Id = dbo.Hoja_carga_linea.Fk_cabecera AND dbo.Hoja_carga_cabecera.Serie = dbo.Hoja_carga_linea.Serie AND
											 dbo.Hoja_carga_cabecera.Numero = dbo.Hoja_carga_linea.Numero
					WHERE        (dbo.Hoja_carga_cabecera.Estado = 0) AND (dbo.Hoja_carga_linea.Fk_almacen IS NOT NULL) AND (dbo.Hoja_carga_linea.Lote IS NOT NULL)
				    AND (ISNULL(dbo.Hoja_carga_cabecera.Servicio_repartidor, 0) = 0)
					GROUP BY dbo.Hoja_carga_cabecera.Serie,dbo.Hoja_carga_cabecera.Numero,dbo.Hoja_carga_cabecera.Fecha_hora, dbo.Hoja_carga_cabecera.Fk_centro, dbo.Hoja_carga_linea.Fk_articulo, dbo.Hoja_carga_linea.Fk_almacen, dbo.Hoja_carga_linea.Lote

UNION ALL

					SELECT ''OP'' AS SerieTipoDoc,LOTES.Fk_serie as Serie,LOTES.Numero,LOTES.Fecha,lotes.Centro
					,LOTES.Articulo,LOTES.Almacen,LOTES.Lote,(LOTES.Cantidad_reservada - ISNULL(PARCIAL.Cantidad_desreservar,0)) AS Cantidad_reservada FROM
					(
					SELECT        dbo.op.Fk_serie,dbo.Op.Numero,dbo.Op.Fecha, dbo.Op.Fk_centro AS Centro, L.Fk_articulo_componente AS Articulo, L.Fk_almacen AS Almacen, L.Lote,
											 ISNULL(SUM(ISNULL(L.Cantidad, 0)),0) AS Cantidad_reservada
					FROM            dbo.Op INNER JOIN
											 dbo.Op_componentes_lotes L ON dbo.Op.Id = L.Fk_op
						
					WHERE        (dbo.Op.Estado = 1 OR dbo.op.Estado=0 or dbo.Op.Estado=2) AND L.Lote IS NOT NULL
						
					GROUP BY dbo.op.Fk_serie,dbo.Op.Numero,dbo.Op.Fecha,dbo.Op.Fk_centro, L.Fk_almacen, L.Fk_articulo_componente, L.Lote
					) LOTES LEFT OUTER JOIN
					(
					SELECT       dbo.op.Fk_serie,dbo.Op.Numero, dbo.Op.Fk_centro AS Centro, L.Fk_articulo_componente AS Articulo, L.Fk_almacen AS Almacen, L.Lote,
											 ISNULL(SUM(ISNULL(L.Cantidad, 0)),0) AS Cantidad_desreservar
					FROM            dbo.Op INNER JOIN
											 dbo.Op_componentes_lotes_real L ON dbo.Op.Id = L.Fk_op
						
					WHERE        (dbo.Op.Estado = 2 ) AND L.Lote IS NOT NULL
					GROUP BY dbo.op.Fk_serie,dbo.Op.Numero,dbo.Op.Fk_centro, L.Fk_almacen, L.Fk_articulo_componente, L.Lote
					) PARCIAL ON LOTES.Fk_serie=PARCIAL.Fk_serie AND LOTES.Numero=PARCIAL.Numero AND LOTES.Articulo=PARCIAL.Articulo AND LOTES.Almacen=PARCIAL.Almacen AND LOTES.Lote=PARCIAL.Lote

					 UNION ALL

											  SELECT    ''PV'' AS SerieTipoDoc,Serie,Numero,Fecha,Fk_centro AS Centro, Fk_articulo AS Articulo, Almacen, Lote, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_asociada, 0) - ISNULL(Cantidad_cargada, 0)) AS Cantidad_reservada
					FROM            (SELECT    dbo.Ped_venta.SErie,dbo.Ped_venta.Numero, dbo.Ped_venta.Fecha_hora as Fecha, dbo.Ped_venta.Fk_centro, dbo.V_DocLinLotesEstadosPedVenta.Fk_articulo, dbo.V_DocLinLotesEstadosPedVenta.Almacen, dbo.V_DocLinLotesEstadosPedVenta.Lote, dbo.V_DocLinLotesEstadosPedVenta.Cantidad,
																		dbo.V_DocLinLotesEstadosPedVenta.Cantidad_asociada, dbo.V_DocLinLotesEstadosPedVenta.Cantidad_cargada
											  FROM            dbo.V_DocLinLotesEstadosPedVenta LEFT OUTER JOIN
																		dbo.Ped_venta ON dbo.V_DocLinLotesEstadosPedVenta.Serie = dbo.Ped_venta.Serie
																		AND dbo.V_DocLinLotesEstadosPedVenta.Numero = dbo.Ped_venta.Numero
																		WHERE V_DocLinLotesEstadosPedVenta.Lote IS NOT NULL
																		) AS LotesEstadosPedVenta
					GROUP BY Serie,Numero,Fecha, Fk_centro, Fk_articulo, Almacen, Lote

											  UNION ALL

											  SELECT   ''TC'' AS SErieTipoDoc,dbo.Traspasos.Fk_serie as Serie,dbo.Traspasos.Numero as Numero,dbo.Traspasos.Fecha,dbo.Traspasos.Fk_centro_origen AS Centro, dbo.Traspasos_lineas.Fk_articulo AS Articulo, dbo.Traspasos_lineas.Fk_almacen AS Almacen, dbo.Traspasos_lineas.Fk_lote AS Lote, SUM(ISNULL(dbo.Traspasos_lineas.Cantidad,
											 0)) AS Cantidad_reservada
					FROM            dbo.Traspasos INNER JOIN
											 dbo.Traspasos_lineas ON dbo.Traspasos.Id = dbo.Traspasos_lineas.Fk_traspaso
					WHERE dbo.Traspasos_lineas.Fk_lote IS NOT NULL  AND (((dbo.Traspasos.Estado = 0) OR (dbo.Traspasos.Estado = 1)))
					GROUP BY dbo.Traspasos.Fk_serie,dbo.Traspasos.Numero,dbo.Traspasos.Fecha, dbo.Traspasos.Fk_centro_origen, dbo.Traspasos_lineas.Fk_articulo, dbo.Traspasos_lineas.Fk_almacen, dbo.Traspasos_lineas.Fk_lote
					UNION ALL
					 SELECT   ''CP'' AS SErieTipoDoc, dbo.Copages.Fk_serie AS Serie, dbo.Copages.Numero, dbo.Copages.Fecha, dbo.Copages.Fk_centro AS Centro, dbo.Copages_lineas.Fk_articulo AS Articulo, dbo.Copages_lineas.Fk_almacen AS Almacen, dbo.Copages_lineas.Lote AS Lote, SUM(ISNULL(dbo.Copages_lineas.Cantidad, 0)) 
								  AS Cantidad_reservada
					 FROM     dbo.Copages INNER JOIN
								  dbo.Copages_lineas ON dbo.Copages.Id = dbo.Copages_lineas.Fk_cabecera
					 WHERE   dbo.Copages_lineas.Lote IS NOT NULL  AND ((dbo.Copages.Estado = 0) OR (dbo.Copages.Estado = 1))
					 GROUP BY dbo.Copages.Fk_serie, dbo.Copages.Numero, dbo.Copages.Fecha, dbo.Copages.Fk_centro, dbo.Copages_lineas.Fk_articulo, dbo.Copages_lineas.Fk_almacen, dbo.Copages_lineas.Lote
					) PRINCIPAL LEFT OUTER JOIN Articulos A ON PRINCIPAL.Articulo=A.Codigo
					LEFT OUTER JOIN Centros C ON PRINCIPAL.Centro=C.Codigo

'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CantidadesReservadas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CantidadesReservadas]
AS
SELECT        ISNULL(Centro, 0) AS Centro, ISNULL(Articulo, '''') AS Articulo, ISNULL(Almacen, '''') AS Almacen, ISNULL(Lote, '''') AS Lote, SUM(Cantidad_reservada) AS Cantidad_reservada
FROM           v_reservasLotesPorDocumento 
GROUP BY Centro, Articulo, Almacen, Lote '
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VolumenesClienteSerieExpedientes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VolumenesClienteSerieExpedientes]
AS
SELECT          ISNULL(SUM(Volumen), 0) AS VolumenSerie, ISNULL(SUM(Volumen_granel), 0) AS VolumenGranelSerie, Serie, Fk_persona
FROM            dbo.Expediente
GROUP BY Serie, Fk_persona' 
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDireccionesActividades]'))
DROP VIEW [dbo].V_ExpedientesDireccionesActividades
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDireccionesActividades]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesDireccionesActividades] AS
    SELECT Id,  serie,  Numero, STRING_AGG(Descripcion, '', '')  WITHIN GROUP (ORDER BY Descripcion) AS Actividades
    FROM (
        SELECT DISTINCT 
            EE.Id, 
            EE.serie, 
            EE.Numero, 
            AA.Descripcion
        FROM Expediente AS EE
        INNER JOIN Expedientes_direcciones AS ED						
            ON ED.Fk_expediente = EE.Id
        INNER JOIN Expedientes_direcciones_actividades AS EDA
            ON EDA.Fk_Expedientes_direcciones = ED.Id
        INNER JOIN Actividades AS AA
            ON AA.Codigo = EDA.Fk_actividades
    ) AS Sub
    GROUP BY Sub.Id, Sub.serie, Sub.Numero'
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Expedientes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Expedientes]
AS
SELECT NEWID() as Id_auto, (CASE WHEN EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado IS NULL THEN cast(0 AS bit) ELSE cast(1 AS bit) END) AS ConDuplicado,     dbo.Expediente.Id, dbo.Expediente.Serie, dbo.Expediente.Numero, dbo.Expediente.Fecha_apertura, dbo.Expediente.Fecha_finalizacion, dbo.Expediente.Fk_tipo_expediente, dbo.Expediente.Fk_persona, 
                         dbo.Tipos_expediente.Descripcion, dbo.Expediente.Fk_representante1, dbo.Expediente.Fk_representante2, dbo.Expediente.Fk_estado, dbo.Expediente.Fk_do, dbo.Expediente.Volumen, dbo.Expediente.Tiene_otras_referencias, 
                         dbo.Expediente.Id_alternativo, dbo.Expediente.Numero_certificado, dbo.Expediente.Fecha_caducidad, dbo.Expediente.Fecha_limite_cierre, dbo.Expediente.Fecha_auditoria, dbo.Expediente.Fecha_emision_certificado, 
                         dbo.Expediente.Fecha_proxima_renovacion, dbo.Expediente.Fecha_prevista_auditoria, dbo.Expediente.Fecha_comite_certificacion, dbo.Expediente.Fecha_contracte_us_marca, dbo.Expediente.Fecha_plan_auditoria, 
                         dbo.Expediente.Tiempo_estimado, dbo.Expediente.Trazas_adicionales, dbo.Expediente.Nombre_representante_empresa, PRESUPUESTOS.Serie AS Serie_presupuesto, PRESUPUESTOS.Numero AS Numero_presupuesto, 
                         PRESUPUESTOS.Fecha_hora AS Fecha_presupuesto, dbo.Denom_origen.Descripcion AS DescDo, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Telefono_particular, dbo.V_Personas.Telefono_trabajo
                         ,dbo.V_Personas.Movil,dbo.V_Personas.Email1, dbo.V_Personas.Email2, ExpedienteRelacionado.Serie AS Serie_exp_relacionado, ExpedienteRelacionado.Numero AS Numero_exp_relacionado, 
                         ExpedienteRelacionado.Fecha_auditoria AS Fecha_auditoria_exp_relacionado, Representante.NombreCompleto AS Nombre_tecnico, Representante.Iniciales AS Iniciales_tecnico, 
                         Director_CT.NombreCompleto AS Nombre_director_CT, dbo.V_PersonasDirecciones.Direccion AS Dir_direccion, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_codigo_postal, 
                         dbo.V_PersonasDirecciones.Municipio AS Dir_municipio, dbo.V_PersonasDirecciones.Provincia AS Dir_provincia, dbo.Expediente_estados.Descripcion AS Estado_descripcion, dbo.Expediente.Conforme, 
                         dbo.V_Personas.Identificacion, volumenes.VolumenSerie, volumenes.VolumenGranelSerie, FACTURAS.Serie AS Serie_factura, FACTURAS.Numero AS Numero_factura, FACTURAS.Fecha_hora AS Fecha_factura, 
                         dbo.Expediente.Texto_revision, dbo.Expediente.Volumen_granel, dbo.Expediente.Motivo_resolucion, dbo.Expediente.Fk_direccion, pliego_expediente.Pliego_condiciones
						 , VEDA.Actividades
						, (IIF(Vencimientos.NPend > 0, ''Pendiente'', IIF(Vencimientos.NCobr > 0, ''Cobrado'', ''Sin Factura''))) AS Estado_cobrado
						, dbo.Expediente.Notas, dbo.Expediente.Informe_fq, dbo.Expediente.Informe_org, dbo.Expediente.Vigencia_informe_fq, dbo.Expediente.Vigencia_informe_org, dbo.Expediente.Notas_Internas, V_Personas.Fecha_nacimiento
						, dbo.Expediente.Fecha_inicio_certificado
FROM            dbo.Expediente INNER JOIN
                         dbo.Tipos_expediente ON dbo.Expediente.Fk_tipo_expediente = dbo.Tipos_expediente.Id INNER JOIN
                         dbo.V_Personas ON dbo.Expediente.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.Expediente.Fk_do = dbo.Denom_origen.Codigo LEFT OUTER JOIN
                             (SELECT DISTINCT F.Fecha_hora, F.Serie, F.Numero, L.Serie_expediente, L.Numero_expediente
                               FROM            dbo.Facturas_venta_lineas L LEFT OUTER JOIN
                                                         dbo.Facturas_venta F ON L.Serie = F.Serie AND L.Numero = F.Numero
                               WHERE        Serie_expediente IS NOT NULL) FACTURAS ON FACTURAS.Serie_expediente = dbo.Expediente.Serie AND FACTURAS.Numero_expediente = dbo.Expediente.Numero LEFT OUTER JOIN
                             (SELECT DISTINCT F.Fecha_hora, F.Serie, F.Numero, L.Serie_expediente, L.Numero_expediente
                               FROM            dbo.Pres_venta_lineas L LEFT OUTER JOIN
                                                         dbo.Pres_venta F ON L.Serie = F.Serie AND L.Numero = F.Numero
                               WHERE        Serie_expediente IS NOT NULL) PRESUPUESTOS ON PRESUPUESTOS.Serie_expediente = dbo.Expediente.Serie AND PRESUPUESTOS.Numero_expediente = dbo.Expediente.Numero LEFT OUTER JOIN
                         dbo.Expediente AS ExpedienteRelacionado ON dbo.Expediente.Fk_expediente_relacionado = ExpedienteRelacionado.Id LEFT OUTER JOIN
						 (SELECT DISTINCT Fk_Expediente_relacionado FROM Expediente) AS EXPEDIENTE_CON_DUPLICADOS ON EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado=dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_Personas AS Representante ON dbo.Expediente.Fk_representante1 = Representante.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS Director_CT ON dbo.Expediente.Fk_representante2 = Director_CT.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones ON dbo.Expediente.Fk_direccion = dbo.V_PersonasDirecciones.Codigo LEFT OUTER JOIN
                         dbo.Expediente_estados ON dbo.Expediente.Fk_estado = dbo.Expediente_estados.Codigo LEFT OUTER JOIN
                         dbo.V_VolumenesClienteSerieExpedientes AS volumenes ON volumenes.Serie = dbo.Expediente.Serie AND volumenes.Fk_persona = dbo.Expediente.Fk_persona LEFT OUTER JOIN
                             (SELECT        id, serie, numero,
                                                             (SELECT        TOP (1) texto
                                                               FROM            Expedientes_pliegos_condiciones
                                                               WHERE        Fecha_inicio <= e.Fecha_auditoria AND Fk_do = e.Fk_do
                                                               ORDER BY Fecha_inicio DESC) AS Pliego_condiciones
                               FROM            expediente e) AS pliego_expediente ON dbo.Expediente.Id = pliego_expediente.Id LEFT OUTER JOIN
                             (SELECT        serie_documento, numero_documento, SUM(IIF(desc_cerrado = ''Pendiente'', 1, 0)) AS NPend, SUM(IIF(desc_cerrado = ''Cobrado'', 1, 0)) AS NCobr
                               FROM            V_VencimientosDescripciones
                               GROUP BY serie_documento, numero_documento) AS Vencimientos ON FACTURAS.Serie = Vencimientos.serie_documento AND FACTURAS.Numero = Vencimientos.numero_documento
						LEFT JOIN V_ExpedientesDireccionesActividades VEDA
						ON VEDA.Id = Expediente.Id
' 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesSinPreFact]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesSinPreFact]
AS
SELECT        NEWID() AS Id_auto, (CASE WHEN EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado IS NULL THEN cast(0 AS bit) ELSE cast(1 AS bit) END) AS ConDuplicado, dbo.Expediente.Id, dbo.Expediente.Serie, 
                         dbo.Expediente.Numero, dbo.Expediente.Fecha_apertura, dbo.Expediente.Fecha_finalizacion, dbo.Expediente.Fk_tipo_expediente, dbo.Expediente.Fk_persona, dbo.Tipos_expediente.Descripcion, 
                         dbo.Expediente.Fk_representante1, dbo.Expediente.Fk_representante2, dbo.Expediente.Fk_estado, dbo.Expediente.Fk_do, dbo.Expediente.Volumen, dbo.Expediente.Tiene_otras_referencias, dbo.Expediente.Id_alternativo, 
                         dbo.Expediente.Numero_certificado, dbo.Expediente.Fecha_caducidad, dbo.Expediente.Fecha_limite_cierre, dbo.Expediente.Fecha_auditoria, dbo.Expediente.Fecha_emision_certificado, 
                         dbo.Expediente.Fecha_proxima_renovacion, dbo.Expediente.Fecha_prevista_auditoria, dbo.Expediente.Fecha_comite_certificacion, dbo.Expediente.Fecha_contracte_us_marca, dbo.Expediente.Fecha_plan_auditoria, 
                         dbo.Expediente.Tiempo_estimado, dbo.Expediente.Trazas_adicionales, dbo.Expediente.Nombre_representante_empresa, Null AS Serie_presupuesto, Null AS Numero_presupuesto, 
                         Null AS Fecha_presupuesto, dbo.Denom_origen.Descripcion AS DescDo, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Telefono_particular, dbo.V_Personas.Telefono_trabajo, 
                         dbo.V_Personas.Movil, dbo.V_Personas.Email1, dbo.V_Personas.Email2, ExpedienteRelacionado.Serie AS Serie_exp_relacionado, ExpedienteRelacionado.Numero AS Numero_exp_relacionado, 
                         ExpedienteRelacionado.Fecha_auditoria AS Fecha_auditoria_exp_relacionado, Representante.NombreCompleto AS Nombre_tecnico, Representante.Iniciales AS Iniciales_tecnico, 
                         Director_CT.NombreCompleto AS Nombre_director_CT, dbo.V_PersonasDirecciones.Direccion AS Dir_direccion, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_codigo_postal, 
                         dbo.V_PersonasDirecciones.Municipio AS Dir_municipio, dbo.V_PersonasDirecciones.Provincia AS Dir_provincia, dbo.Expediente_estados.Descripcion AS Estado_descripcion, dbo.Expediente.Conforme, 
                         dbo.V_Personas.Identificacion, volumenes.VolumenSerie, volumenes.VolumenGranelSerie, Null AS Serie_factura, Null AS Numero_factura, Null AS Fecha_factura, 
                         dbo.Expediente.Texto_revision, dbo.Expediente.Volumen_granel, dbo.Expediente.Motivo_resolucion, dbo.Expediente.Fk_direccion, pliego_expediente.Pliego_condiciones,
                             (SELECT        stuff
                                                             ((SELECT DISTINCT '', '' + A.Descripcion
                                                                 FROM            (SELECT        dbo.Actividades.Descripcion
                                                                                           FROM            dbo.Actividades INNER JOIN
                                                                                                                     dbo.Personas_direcciones_actividades ON dbo.Actividades.Codigo = dbo.Personas_direcciones_actividades.Fk_actividades INNER JOIN
                                                                                                                     dbo.Personas_direcciones ON dbo.Personas_direcciones.Codigo = dbo.Personas_direcciones_actividades.Fk_personas_direcciones
                                                                                           WHERE        dbo.Personas_direcciones.Codigo_persona = dbo.Expediente.Fk_persona) AS A FOR XML PATH('''')), 1, 2, '''')) AS Actividades
																						   , Null AS Estado_cobrado, dbo.Expediente.Notas, dbo.Expediente.Informe_fq, dbo.Expediente.Informe_org, dbo.Expediente.Vigencia_informe_fq, 
                         dbo.Expediente.Vigencia_informe_org, dbo.Expediente.Notas_Internas
FROM            dbo.Expediente INNER JOIN
                         dbo.Tipos_expediente ON dbo.Expediente.Fk_tipo_expediente = dbo.Tipos_expediente.Id INNER JOIN
                         dbo.V_Personas ON dbo.Expediente.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.Expediente.Fk_do = dbo.Denom_origen.Codigo  LEFT OUTER JOIN
                         dbo.Expediente AS ExpedienteRelacionado ON dbo.Expediente.Fk_expediente_relacionado = ExpedienteRelacionado.Id LEFT OUTER JOIN
                             (SELECT DISTINCT Fk_Expediente_relacionado
                               FROM            Expediente) AS EXPEDIENTE_CON_DUPLICADOS ON EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado = dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_Personas AS Representante ON dbo.Expediente.Fk_representante1 = Representante.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS Director_CT ON dbo.Expediente.Fk_representante2 = Director_CT.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones ON dbo.Expediente.Fk_direccion = dbo.V_PersonasDirecciones.Codigo LEFT OUTER JOIN
                         dbo.Expediente_estados ON dbo.Expediente.Fk_estado = dbo.Expediente_estados.Codigo LEFT OUTER JOIN
                         dbo.V_VolumenesClienteSerieExpedientes AS volumenes ON volumenes.Serie = dbo.Expediente.Serie AND volumenes.Fk_persona = dbo.Expediente.Fk_persona LEFT OUTER JOIN
                             (SELECT        id, serie, numero,
                                                             (SELECT        TOP (1) texto
                                                               FROM            Expedientes_pliegos_condiciones
                                                               WHERE        Fecha_inicio <= e.Fecha_auditoria AND Fk_do = e.Fk_do
                                                               ORDER BY Fecha_inicio DESC) AS Pliego_condiciones
                               FROM            expediente e) AS pliego_expediente ON dbo.Expediente.Id = pliego_expediente.Id
' 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesUltimosVigentes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesUltimosVigentes]
AS
SELECT   (CASE WHEN EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado IS NULL THEN cast(0 AS bit) ELSE cast(1 AS bit) END) AS ConDuplicado,     dbo.Expediente.Id, dbo.Expediente.Serie, dbo.Expediente.Numero, dbo.Expediente.Fecha_apertura, dbo.Expediente.Fecha_finalizacion, dbo.Expediente.Fk_tipo_expediente, dbo.Expediente.Fk_persona, 
                         dbo.Tipos_expediente.Descripcion, dbo.Expediente.Fk_representante1, dbo.Expediente.Fk_representante2, dbo.Expediente.Fk_estado, dbo.Expediente.Fk_do, dbo.Expediente.Volumen, dbo.Expediente.Tiene_otras_referencias, 
                         dbo.Expediente.Id_alternativo, dbo.Expediente.Numero_certificado, dbo.Expediente.Fecha_caducidad, dbo.Expediente.Fecha_limite_cierre, dbo.Expediente.Fecha_auditoria, dbo.Expediente.Fecha_emision_certificado, 
                         dbo.Expediente.Fecha_proxima_renovacion, dbo.Expediente.Fecha_prevista_auditoria, dbo.Expediente.Fecha_comite_certificacion, dbo.Expediente.Fecha_contracte_us_marca, dbo.Expediente.Fecha_plan_auditoria, 
                         dbo.Expediente.Tiempo_estimado, dbo.Expediente.Trazas_adicionales, dbo.Expediente.Nombre_representante_empresa, PRESUPUESTOS.Serie AS Serie_presupuesto, PRESUPUESTOS.Numero AS Numero_presupuesto, 
                         PRESUPUESTOS.Fecha_hora AS Fecha_presupuesto, dbo.Denom_origen.Descripcion AS DescDo, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Telefono_particular, dbo.V_Personas.Telefono_trabajo, 
                         dbo.V_Personas.Email1, dbo.V_Personas.Email2, ExpedienteRelacionado.Serie AS Serie_exp_relacionado, ExpedienteRelacionado.Numero AS Numero_exp_relacionado, 
                         ExpedienteRelacionado.Fecha_auditoria AS Fecha_auditoria_exp_relacionado, Representante.NombreCompleto AS Nombre_tecnico, Representante.Iniciales AS Iniciales_tecnico, 
                         Director_CT.NombreCompleto AS Nombre_director_CT, dbo.V_PersonasDirecciones.Direccion AS Dir_direccion, dbo.V_PersonasDirecciones.Codigo_postal AS Dir_codigo_postal, 
                         dbo.V_PersonasDirecciones.Municipio AS Dir_municipio, dbo.V_PersonasDirecciones.Provincia AS Dir_provincia, dbo.Expediente_estados.Descripcion AS Estado_descripcion, dbo.Expediente.Conforme, 
                         dbo.V_Personas.Identificacion, volumenes.VolumenSerie, volumenes.VolumenGranelSerie, FACTURAS.Serie AS Serie_factura, FACTURAS.Numero AS Numero_factura, FACTURAS.Fecha_hora AS Fecha_factura, 
                         dbo.Expediente.Texto_revision, dbo.Expediente.Volumen_granel, dbo.Expediente.Motivo_resolucion, dbo.Expediente.Fk_direccion, pliego_expediente.Pliego_condiciones,
                             (SELECT        stuff
                                                             ((SELECT DISTINCT '', '' + A.Descripcion
                                                                 FROM            (SELECT        dbo.Actividades.Descripcion
                                                                                           FROM            dbo.Actividades INNER JOIN
                                                                                                                     dbo.Personas_direcciones_actividades ON dbo.Actividades.Codigo = dbo.Personas_direcciones_actividades.Fk_actividades INNER JOIN
                                                                                                                     dbo.Personas_direcciones ON dbo.Personas_direcciones.Codigo = dbo.Personas_direcciones_actividades.Fk_personas_direcciones
                                                                                           WHERE        dbo.Personas_direcciones.Codigo_persona = dbo.Expediente.Fk_persona) AS A FOR XML PATH('''')), 1, 2, '''')) AS Actividades, (IIF(Vencimientos.NPend > 0, ''Pendiente'', 
                         IIF(Vencimientos.NCobr > 0, ''Cobrado'', ''Sin Factura''))) AS Estado_cobrado
FROM            dbo.Expediente INNER JOIN
                         dbo.Tipos_expediente ON dbo.Expediente.Fk_tipo_expediente = dbo.Tipos_expediente.Id INNER JOIN
                         dbo.V_Personas ON dbo.Expediente.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Denom_origen ON dbo.Expediente.Fk_do = dbo.Denom_origen.Codigo LEFT OUTER JOIN
                             (SELECT DISTINCT F.Fecha_hora, F.Serie, F.Numero, L.Serie_expediente, L.Numero_expediente
                               FROM            dbo.Facturas_venta_lineas L LEFT OUTER JOIN
                                                         dbo.Facturas_venta F ON L.Serie = F.Serie AND L.Numero = F.Numero
                               WHERE        Serie_expediente IS NOT NULL) FACTURAS ON FACTURAS.Serie_expediente = dbo.Expediente.Serie AND FACTURAS.Numero_expediente = dbo.Expediente.Numero LEFT OUTER JOIN
                             (SELECT DISTINCT F.Fecha_hora, F.Serie, F.Numero, L.Serie_expediente, L.Numero_expediente
                               FROM            dbo.Pres_venta_lineas L LEFT OUTER JOIN
                                                         dbo.Pres_venta F ON L.Serie = F.Serie AND L.Numero = F.Numero
                               WHERE        Serie_expediente IS NOT NULL) PRESUPUESTOS ON PRESUPUESTOS.Serie_expediente = dbo.Expediente.Serie AND PRESUPUESTOS.Numero_expediente = dbo.Expediente.Numero LEFT OUTER JOIN
                         dbo.Expediente AS ExpedienteRelacionado ON dbo.Expediente.Fk_expediente_relacionado = ExpedienteRelacionado.Id LEFT OUTER JOIN
						 (SELECT DISTINCT Fk_Expediente_relacionado FROM Expediente) AS EXPEDIENTE_CON_DUPLICADOS ON EXPEDIENTE_CON_DUPLICADOS.Fk_expediente_relacionado=dbo.Expediente.Id LEFT OUTER JOIN
                         dbo.V_Personas AS Representante ON dbo.Expediente.Fk_representante1 = Representante.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS Director_CT ON dbo.Expediente.Fk_representante2 = Director_CT.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones ON dbo.Expediente.Fk_direccion = dbo.V_PersonasDirecciones.Codigo LEFT OUTER JOIN
                         dbo.Expediente_estados ON dbo.Expediente.Fk_estado = dbo.Expediente_estados.Codigo LEFT OUTER JOIN
                         dbo.V_VolumenesClienteSerieExpedientes AS volumenes ON volumenes.Serie = dbo.Expediente.Serie AND volumenes.Fk_persona = dbo.Expediente.Fk_persona LEFT OUTER JOIN
                             (SELECT        id, serie, numero,
                                                             (SELECT        TOP (1) texto
                                                               FROM            Expedientes_pliegos_condiciones
                                                               WHERE        Fecha_inicio <= e.Fecha_auditoria AND Fk_do = e.Fk_do
                                                               ORDER BY Fecha_inicio DESC) AS Pliego_condiciones
                               FROM            expediente e) AS pliego_expediente ON dbo.Expediente.Id = pliego_expediente.Id LEFT OUTER JOIN
                             (SELECT        serie_documento, numero_documento, SUM(IIF(desc_cerrado = ''Pendiente'', 1, 0)) AS NPend, SUM(IIF(desc_cerrado = ''Cobrado'', 1, 0)) AS NCobr
                               FROM            V_VencimientosDescripciones
                               GROUP BY serie_documento, numero_documento) AS Vencimientos ON FACTURAS.Serie = Vencimientos.serie_documento AND FACTURAS.Numero = Vencimientos.numero_documento
							   INNER JOIN (SELECT ID FROM 
					(SELECT Id, Fk_persona, Fk_do, Serie, ROW_NUMBER() OVER (PARTITION BY Fk_persona, Fk_do ORDER BY fecha_comite_certificacion DESC) AS Rown
					FROM expediente 
					WHERE Fecha_comite_certificacion IS NOT NULL
					AND Conforme=1
					AND Fk_estado=3
					) A
			WHERE A.Rown = 1
			AND
				ISNULL((SELECT        count(AUX.Serie)
				FROM            expediente AUX
				WHERE        AUX.Fk_persona = A.Fk_persona 
				AND AUX.Fk_do = A.Fk_do 
				AND AUX.Serie >A.Serie
				AND 
				(
				(Fk_estado=4 OR Fk_estado=5)  
				OR (Conforme IS NOT NULL AND Conforme=0)
				)
				)
				,0)=0
				) VIGENTES ON dbo.Expediente.Id = VIGENTES.Id
						' 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesTareasEstado]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesTareasEstado] 
AS
SELECT        e.Id_alternativo, e.Fk_persona, t.Fk_expediente ,pn1.NombreCompleto AS NombreCliente, e.Fk_representante1, pn2.NombreCompleto AS NombreTecnico, e.Fecha_apertura, e.Fecha_finalizacion, t.Id, t.Cerrada, t.Validada, t.Orden, t.Abierta, 
						 t.Fecha_apertura AS Fecha_apertura_tarea, t.Fecha_apertura_sistema as Fecha_apertura_sistema, t.Fecha_cierre, t.Fecha_limite_cierre, tg.Descripcion, t.Fecha_validacion
FROM            dbo.Expediente_tarea AS t INNER JOIN
						 dbo.Expediente AS e ON t.Fk_expediente = e.Id INNER JOIN
						 dbo.Expediente_tareas_generales tg ON t.Fk_tarea = tg.Id INNER JOIN 
						 dbo.V_Personas AS pn1 ON e.Fk_persona = pn1.Codigo LEFT OUTER JOIN
						 dbo.V_Personas AS pn2 ON e.Fk_representante1 = pn2.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesTareasEstadoActivas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesTareasEstadoActivas] 
AS
SELECT * FROM V_ExpedientesTareasEstado WHERE Abierta = 1 AND Fecha_finalizacion is null
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesMarcas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesMarcas] 
AS
SELECT dbo.Expediente.Id, dbo.Expediente.Conforme, dbo.Expediente.Tiempo_estimado, dbo.Expediente.Trazas_adicionales, dbo.Expediente.Serie, dbo.Expediente.Numero, dbo.Expediente.Fecha_finalizacion, dbo.Expediente.Fk_persona, dbo.Expediente.Fk_do, dbo.Expediente.Id_alternativo, dbo.Expediente.Numero_certificado, dbo.Expediente.Fecha_auditoria, dbo.Expediente_marca.Fk_expediente, dbo.Expediente_marca.Fk_marca, dbo.Denom_origen.Descripcion AS Desc_do, 
         dbo.V_Personas.NombreCompleto, dbo.Marca.Descripcion AS Desc_marca, dbo.Libros_color.Descripcion AS Variedad, dbo.Libros_tipo_producto.Descripcion AS DescripcionVariedad, dbo.Expediente.Fecha_apertura, dbo.Expediente.Fecha_caducidad, dbo.Expediente.Fecha_limite_cierre, dbo.Expediente.Fecha_emision_certificado, dbo.Expediente.Fecha_proxima_renovacion, dbo.Expediente.Fecha_prevista_auditoria, dbo.Expediente.Fecha_contracte_us_marca, 
         dbo.Expediente.Fecha_comite_certificacion, dbo.Expediente.Fecha_plan_auditoria, dbo.Expediente.Fecha_modificacion, dbo.Expediente_estados.Descripcion AS Estado_descripcion, dbo.Libros_categorias.Descripcion AS DescripcionCategoriaProducto, dbo.Expediente_marca.Estado, dbo.Expediente_marca.Fecha_estado, dbo.Expediente_marca.Usuario_estado , dbo.Marca.Fk_categoria_producto
FROM   dbo.Expediente_marca INNER JOIN
         dbo.Expediente ON dbo.Expediente_marca.Fk_expediente = dbo.Expediente.Id INNER JOIN
         dbo.Marca ON dbo.Expediente_marca.Fk_marca = dbo.Marca.Codigo INNER JOIN
         dbo.Denom_origen ON dbo.Expediente.Fk_do = dbo.Denom_origen.Codigo INNER JOIN
         dbo.V_Personas ON dbo.Expediente.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
         dbo.Expediente_estados ON dbo.Expediente.Fk_estado = dbo.Expediente_estados.Codigo LEFT OUTER JOIN
         dbo.Libros_tipo_producto ON dbo.Marca.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
         dbo.Libros_categorias ON dbo.Marca.Fk_categoria_producto = dbo.Libros_categorias.Codigo LEFT OUTER JOIN
         dbo.Libros_color ON dbo.Marca.Fk_color = dbo.Libros_color.Codigo INNER JOIN
             (SELECT ID
           FROM    (SELECT Id, Fk_persona, Fk_do, Serie, ROW_NUMBER() OVER (PARTITION BY Fk_persona, Fk_do
                     ORDER BY fecha_comite_certificacion DESC) AS Rown
           FROM    expediente
           WHERE  Fecha_comite_certificacion IS NOT NULL AND Conforme = 1 AND Fk_estado = 3) A
WHERE A.Rown = 1 AND ISNULL
             ((SELECT count(AUX.Serie)
            FROM   expediente AUX
            WHERE  AUX.Fk_persona = A.Fk_persona AND AUX.Fk_do = A.Fk_do AND AUX.Serie > A.Serie AND ((Fk_estado = 4 OR
                     Fk_estado = 5) OR
                     (Conforme IS NOT NULL AND Conforme = 0))), 0) = 0) VIGENTES ON dbo.Expediente.Id = VIGENTES.Id
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Documentacion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Documentacion]
AS
SELECT        dbo.Documentacion.Codigo, dbo.Documentacion.Fk_cliente, dbo.Documentacion.Fk_articulo, dbo.Documentacion.Ruta_parcial, dbo.Documentacion.Nombre, dbo.Documentacion.Fecha_documento, dbo.Documentacion.Lote,
                         dbo.Documentacion.Fecha_subida, dbo.Documentacion.Fk_tipo_documento, dbo.Documentacion.Descripcion, dbo.Documentacion.Fk_representante, dbo.Documentacion.Codigo_serie, dbo.Documentacion.Codigo_numero, 
                         dbo.Documentacion.Codigo_unique, dbo.Documentacion.Fecha_caducidad, dbo.Documentacion.SerieTipoDoc, dbo.Documentacion_tipos.Descripcion AS TipoDocumentoDescripcion, 
                         dbo.Documentacion_tipos.Mostrar_ficha_tecnica, dbo.V_Personas.NombreCompleto,A.Descripcion as Desc_articulo,dbo.Documentacion.Notas,dbo.Documentacion.Usuario_subida
						 ,dbo.Documentacion.Referencia,dbo.Documentacion.Fk_tipo_doc_secundario,DOC_SEC.Descripcion as TipoDocSecundarioDescripcion
						 ,dbo.Documentacion.Fk_centro,dbo.Centros.Descripcion as Desc_centro, dbo.Documentacion.Codigo_string
FROM            dbo.Documentacion LEFT OUTER JOIN
                         dbo.Documentacion_tipos ON dbo.Documentacion.Fk_tipo_documento = dbo.Documentacion_tipos.Codigo LEFT OUTER JOIN
						 dbo.Documentacion_tipos DOC_SEC ON dbo.Documentacion.Fk_tipo_doc_secundario = DOC_SEC.Codigo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Documentacion.Fk_cliente = dbo.V_Personas.Codigo LEFT OUTER JOIN 
                         Articulos A ON dbo.Documentacion.Fk_articulo=A.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Documentacion.Fk_Centro=dbo.Centros.Codigo
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosCabecerasLineas]'))
DROP VIEW [dbo].V_EscandallosCabecerasLineas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosCabecerasLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EscandallosCabecerasLineas]
AS
SELECT        dbo.Escandallo_cabecera.Id AS IdCabecera,dbo.Escandallo_cabecera.Tipo,dbo.Escandallo_linea.Grado, dbo.Escandallo_linea.Id AS IdLinea, dbo.Escandallo_cabecera.Fk_articulo AS Articulo, dbo.Escandallo_cabecera.Descripcion, 
                         dbo.V_ArticulosNombre.Descripcion AS DescArticuloCabecera,dbo.Escandallo_cabecera.Observaciones, 
                         dbo.Escandallo_linea.Fk_articulo_inferior AS ArticuloComponente, V_ArticulosNombre_1.Descripcion AS DescArticuloComponente, dbo.Escandallo_linea.Cantidad, dbo.Escandallo_linea.Orden, 
                         dbo.Escandallo_linea.Observaciones_linea, dbo.Escandallo_linea.Redondeo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_do, 
                         V_ArticulosNombre_1.Fk_articulo_agrupacion AS Fk_articulo_agrupacion_componente, V_ArticulosNombre_1.Desc_articulo_agrupacion AS Desc_articulo_agrupacion_componente, 
                         V_ArticulosNombre_1.Desc_do AS Desc_do_componente,dbo.Escandallo_cabecera.Fk_ficha_tecnica,FT.Descripcion as Desc_ficha_tecnica
						 ,V_ArticulosNombre_1.Ult_precio_compra_alb,V_ArticulosNombre_1.Ult_precio_compra_alb_fecha
						 ,dbo.V_PreciosUltimaEntrada.Precio AS Ult_precio_entrada,dbo.V_PreciosUltimaEntrada.SerieTipoDoc Ult_precio_entrada_tipo_doc,dbo.V_PreciosUltimaEntrada.Fecha_doc as Ult_precio_entrada_fecha_doc,dbo.V_ArticulosNombre.Ruta_hc
FROM            dbo.Escandallo_cabecera INNER JOIN
                         dbo.Escandallo_linea ON dbo.Escandallo_cabecera.Id = dbo.Escandallo_linea.Fk_escandallo_cabecera INNER JOIN
                         dbo.V_ArticulosNombre AS V_ArticulosNombre_1 ON dbo.Escandallo_linea.Fk_articulo_inferior = V_ArticulosNombre_1.Codigo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Escandallo_cabecera.Fk_articulo = dbo.V_ArticulosNombre.Codigo
						 LEFT OUTER JOIN FT_articulos FT ON dbo.Escandallo_cabecera.Fk_ficha_tecnica=FT.Codigo_FT LEFT OUTER JOIN 
						 dbo.V_PreciosUltimaEntrada ON dbo.Escandallo_linea.Fk_articulo_inferior=dbo.V_PreciosUltimaEntrada.Articulo
						 '
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Excel_Produccion]'))
DROP VIEW [dbo].V_Excel_Produccion
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Excel_Produccion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Excel_Produccion]
AS
SELECT  dbo.V_Necesidades.Fk_centro, dbo.V_Necesidades.Desc_centro, dbo.Articulos_agrupaciones.Codigo_grupo, dbo.Articulos_grupos.Descripcion AS Desc_Grupo, dbo.V_Necesidades.Articulo, 
						 dbo.V_Necesidades.Descripcion AS Desc_Articulo, dbo.V_DocLinEstadosPedVenta.Serie, dbo.V_DocLinEstadosPedVenta.Numero, dbo.Ped_venta.Codigo_cliente, 
						 dbo.V_Personas.NombreCompleto AS Desc_Cliente, dbo.Formas_de_pago.Codigo AS codigo_forma_pago, dbo.Formas_de_pago.Descripcion AS desc_forma_pago, 
						 dbo.V_DocLinEstadosPedVenta.Cantidad_pendiente, dbo.V_Necesidades.Cantidad, dbo.V_Necesidades.Estoc_minimo, dbo.Ped_venta.Fecha_prevista_entrega, dbo.V_Necesidades.C_prevista_prod,
						 ISNULL(dbo.Articulos.Cantidad_por_bulto,0) As Cantidad_por_bulto
FROM            dbo.V_Personas INNER JOIN
						 dbo.Ped_venta INNER JOIN
						 dbo.V_DocLinEstadosPedVenta ON dbo.Ped_venta.Serie = dbo.V_DocLinEstadosPedVenta.Serie AND dbo.Ped_venta.Numero = dbo.V_DocLinEstadosPedVenta.Numero ON 
						 dbo.V_Personas.Codigo = dbo.Ped_venta.Codigo_cliente RIGHT OUTER JOIN
						 dbo.V_Necesidades ON dbo.V_DocLinEstadosPedVenta.Fk_centro = dbo.V_Necesidades.Fk_centro AND dbo.V_DocLinEstadosPedVenta.Fk_articulo = dbo.V_Necesidades.Articulo LEFT OUTER JOIN
						 dbo.Articulos ON dbo.V_Necesidades.Articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
						 dbo.Articulos_grupos RIGHT OUTER JOIN
						 dbo.Articulos_agrupaciones ON dbo.Articulos_grupos.Codigo = dbo.Articulos_agrupaciones.Codigo_grupo ON dbo.V_Necesidades.Articulo = dbo.Articulos_agrupaciones.Codigo_articulo LEFT OUTER JOIN
						 dbo.Formas_de_pago ON dbo.Ped_venta.Forma_pago = dbo.Formas_de_pago.Codigo
WHERE        (dbo.V_Necesidades.C_reservada_venta > 0) AND (dbo.V_DocLinEstadosPedVenta.Cantidad_pendiente > 0)'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Op_pendientes]'))
DROP VIEW [dbo].V_Op_pendientes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Op_pendientes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Op_pendientes]
AS
SELECT     *, ISNULL(Cantidad, 0) - ISNULL(Cantidad_real, 0) AS Cantidad_prevista_prod
FROM            dbo.Op
WHERE        (Estado <> 3) AND (Estado <> 4)'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Articulos_Grupos]'))
DROP VIEW [dbo].V_Articulos_Grupos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosEstocActual]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LibrosEstocActual]
AS
SELECT    NEWID() AS Id, dbo.Libros_movimientos.Fk_centro, dbo.Centros.Descripcion AS Desc_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion as Desc_libro, dbo.Libros_movimientos.Fk_denom_origen, dbo.Denom_origen.Descripcion AS Desc_denom_origen, 
						 dbo.Libros_movimientos.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.V_ArticulosSoloNombre.Descripcion AS Desc_variedad, dbo.Libros_movimientos.Fk_tipo_producto, dbo.Libros_tipo_producto.Descripcion AS Desc_tipo_producto,dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion as Desc_almacen,
						 SUM(ISNULL(CASE WHEN E_S = ''E'' THEN Cantidad_final ELSE - Cantidad_final END, 0)) AS Cantidad_estoc
FROM            dbo.Libros_movimientos LEFT OUTER JOIN
Libros ON  Libros_movimientos.Fk_libro=Libros.Codigo LEFT OUTER JOIN 
						 dbo.Libros_tipo_producto ON dbo.Libros_movimientos.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
						 dbo.Denom_origen ON dbo.Libros_movimientos.Fk_denom_origen = dbo.Denom_origen.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Libros_movimientos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Libros_color ON dbo.Libros_movimientos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Libros_movimientos.Fk_variedad = dbo.V_ArticulosSoloNombre.Codigo
						 LEFT OUTER JOIN Almacenes ON dbo.Libros_movimientos.Fk_almacen=dbo.Almacenes.Codigo
GROUP BY dbo.Libros_movimientos.Fk_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion, dbo.Libros_movimientos.Fk_denom_origen, dbo.Libros_movimientos.Fk_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.Libros_movimientos.Fk_tipo_producto, dbo.V_ArticulosSoloNombre.Descripcion, dbo.Denom_origen.Descripcion, dbo.Centros.Descripcion, dbo.Libros_color.Descripcion, dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion,
						 dbo.Libros_tipo_producto.Descripcion'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosEstocActualNCert]'))
DROP VIEW [dbo].V_LibrosEstocActualNCert
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosEstocActualNCert]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LibrosEstocActualNCert]
AS
SELECT    NEWID() AS Id, dbo.Libros_movimientos.Fk_centro, dbo.Centros.Descripcion AS Desc_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion as Desc_libro, dbo.Libros_movimientos.Fk_denom_origen, dbo.Denom_origen.Descripcion AS Desc_denom_origen, 
						 dbo.Libros_movimientos.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.V_ArticulosSoloNombre.Descripcion AS Desc_variedad, dbo.Libros_movimientos.Fk_tipo_producto, dbo.Libros_tipo_producto.Descripcion AS Desc_tipo_producto,dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion as Desc_almacen,dbo.Libros_movimientos.Numero_doc_certificacion,
						 SUM(ISNULL(CASE WHEN E_S = ''E'' THEN Cantidad_final ELSE - Cantidad_final END, 0)) AS Cantidad_estoc
FROM            dbo.Libros_movimientos LEFT OUTER JOIN
Libros ON  Libros_movimientos.Fk_libro=Libros.Codigo LEFT OUTER JOIN 
						 dbo.Libros_tipo_producto ON dbo.Libros_movimientos.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
						 dbo.Denom_origen ON dbo.Libros_movimientos.Fk_denom_origen = dbo.Denom_origen.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Libros_movimientos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Libros_color ON dbo.Libros_movimientos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Libros_movimientos.Fk_variedad = dbo.V_ArticulosSoloNombre.Codigo
						 LEFT OUTER JOIN Almacenes ON dbo.Libros_movimientos.Fk_almacen=dbo.Almacenes.Codigo
GROUP BY dbo.Libros_movimientos.Fk_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion, dbo.Libros_movimientos.Fk_denom_origen, dbo.Libros_movimientos.Fk_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.Libros_movimientos.Fk_tipo_producto, dbo.V_ArticulosSoloNombre.Descripcion, dbo.Denom_origen.Descripcion, dbo.Centros.Descripcion, dbo.Libros_color.Descripcion, dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion,
						 dbo.Libros_tipo_producto.Descripcion,dbo.Libros_movimientos.Numero_doc_certificacion'
GO

IF  EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetLibrosEstoc') AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_GetLibrosEstoc'
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetLibrosEstoc') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION dbo.fn_GetLibrosEstoc (@Fecha DATETIME)
				RETURNS TABLE
				AS
				RETURN
				(
				SELECT     dbo.Libros_movimientos.Fk_centro, dbo.Centros.Descripcion AS Desc_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion as Desc_libro, dbo.Libros_movimientos.Fk_denom_origen, dbo.Denom_origen.Descripcion AS Desc_denom_origen, 
						 dbo.Libros_movimientos.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.V_ArticulosSoloNombre.Descripcion AS Desc_variedad, dbo.Libros_movimientos.Fk_tipo_producto, dbo.Libros_tipo_producto.Descripcion AS Desc_tipo_producto,dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion as Desc_almacen,
						 SUM(ISNULL(CASE WHEN E_S = ''E'' THEN Cantidad_final ELSE - Cantidad_final END, 0)) AS Cantidad_estoc
FROM            dbo.Libros_movimientos LEFT OUTER JOIN
Libros ON  Libros_movimientos.Fk_libro=Libros.Codigo LEFT OUTER JOIN 
						 dbo.Libros_tipo_producto ON dbo.Libros_movimientos.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
						 dbo.Denom_origen ON dbo.Libros_movimientos.Fk_denom_origen = dbo.Denom_origen.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Libros_movimientos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Libros_color ON dbo.Libros_movimientos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Libros_movimientos.Fk_variedad = dbo.V_ArticulosSoloNombre.Codigo
						 LEFT OUTER JOIN Almacenes ON dbo.Libros_movimientos.Fk_almacen=dbo.Almacenes.Codigo
						 where dbo.Libros_movimientos.Fecha <= @Fecha
GROUP BY dbo.Libros_movimientos.Fk_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion, dbo.Libros_movimientos.Fk_denom_origen, dbo.Libros_movimientos.Fk_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.Libros_movimientos.Fk_tipo_producto, dbo.V_ArticulosSoloNombre.Descripcion, dbo.Denom_origen.Descripcion, dbo.Centros.Descripcion, dbo.Libros_color.Descripcion, dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion,
						 dbo.Libros_tipo_producto.Descripcion)'

GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PagosCuentaLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PagosCuentaLineas]
AS
SELECT dbo.Pagos_cuenta.Fk_serie,SER.Descripcion as Desc_serie,  dbo.Pagos_cuenta.Numero, dbo.Pagos_cuenta.Fk_persona, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Identificacion
, dbo.Pagos_cuenta.Fk_seccion, dbo.Secciones.Descripcion as Desc_seccion, dbo.Pagos_cuenta.Fk_campanya, dbo.Campañas.Descripcion AS Desc_campaña
, dbo.Pagos_cuenta.Fecha_pago, dbo.Pagos_cuenta_lineas.Tipo_linea, dbo.Pagos_cuenta_lineas.Fk_serie_fac_venta, dbo.Pagos_cuenta_lineas.Fk_numero_fac_venta, dbo.Pagos_cuenta_lineas.Importe_base, dbo.Pagos_cuenta_lineas.Importe_irpf, 
             dbo.Pagos_cuenta_lineas.Valor_irpf, dbo.Pagos_cuenta_lineas.Importe_total, dbo.Pagos_cuenta_lineas.Fk_vencimiento, dbo.Pagos_cuenta_lineas.Id, dbo.Pagos_cuenta_lineas.Fk_liquidacion, dbo.Pagos_cuenta_lineas.Fk_pago, dbo.Pagos_cuenta.Regimen_ss, 
             dbo.V_Liquidaciones.Serie AS Serie_liquidacion, dbo.V_Liquidaciones.Numero AS Numero_liquidacion, dbo.V_Liquidaciones.Fecha AS Fecha_liquidacion, dbo.Pagos_cuenta_lineas.Importe_iva, dbo.Pagos_cuenta_lineas.Importe_base_irpf,
             dbo.Pagos_cuenta_lineas.Importe_ret_despues_imp, dbo.Pagos_cuenta_lineas.SerieTipoDoc, dbo.Pagos_cuenta_lineas.Serie_documento, dbo.Pagos_cuenta_lineas.Numero_documento, dbo.Pagos_cuenta_lineas.Fk_codigo_iva, dbo.Pagos_cuenta_lineas.Valor_iva, dbo.Pagos_cuenta_lineas.Aplicacion_irpf, 
             dbo.Pagos_cuenta_lineas.Importe_impuestos_incluidos, dbo.Pagos_cuenta_lineas.Linea_documento, dbo.Pagos_cuenta_lineas.Importe_restar_liq, dbo.Pagos_cuenta_lineas.Cantidad_bruta, dbo.Pagos_cuenta_lineas.Cantidad_neta, dbo.Pagos_cuenta_lineas.Precio, dbo.Pagos_cuenta_lineas.Rendimiento_medio, 
             dbo.Pagos_cuenta_lineas.Fk_articulo,A.Descripcion as Desc_articulo, dbo.Pagos_cuenta_lineas.Precio_original, dbo.Pagos_cuenta_lineas.Precio_neto, dbo.Pagos_cuenta_lineas.Linea, dbo.Pagos_cuenta.Id AS Id_cabecera, dbo.Pagos_cuenta.Texto
FROM     dbo.Campañas RIGHT OUTER JOIN
             dbo.Pagos_cuenta ON dbo.Campañas.Codigo = dbo.Pagos_cuenta.Fk_campanya LEFT OUTER JOIN
			 dbo.Series_documentos_pago SER ON dbo.Pagos_cuenta.Fk_serie=SER.Serie LEFT OUTER JOIN
             dbo.Secciones ON dbo.Pagos_cuenta.Fk_seccion = dbo.Secciones.Codigo RIGHT OUTER JOIN
             dbo.Pagos_cuenta_lineas LEFT OUTER JOIN
             dbo.V_Liquidaciones ON dbo.Pagos_cuenta_lineas.Fk_liquidacion = dbo.V_Liquidaciones.Id ON dbo.Pagos_cuenta.Id = dbo.Pagos_cuenta_lineas.Fk_pago LEFT OUTER JOIN
             dbo.V_Personas ON dbo.Pagos_cuenta.Fk_persona = dbo.V_Personas.Codigo
			 LEFT OUTER JOIN dbo.Articulos A ON dbo.Pagos_cuenta_lineas.Fk_articulo=A.Codigo
'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PagosCuenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PagosCuenta]
AS
SELECT   dbo.Pagos_cuenta.Id, dbo.Pagos_cuenta.Contador, dbo.Pagos_cuenta.Fk_serie, dbo.Pagos_cuenta.Numero, dbo.Pagos_cuenta.Fk_persona, dbo.Pagos_cuenta.Fecha_pago, dbo.Pagos_cuenta.Importe_base, dbo.Pagos_cuenta.Importe_irpf, dbo.Pagos_cuenta.Importe_total, dbo.Pagos_cuenta.Texto, dbo.Pagos_cuenta.Importe_pagar, 
             dbo.Pagos_cuenta.Fecha_integracion, dbo.Pagos_cuenta.Fk_c_contable_integrada, dbo.V_Personas.NombreCompleto,dbo.V_Personas.Identificacion as Identificacion_persona, dbo.V_Personas.Env_via_publica, dbo.V_Personas.Env_descripcion, dbo.V_Personas.Env_direccion, dbo.V_Personas.Env_municipio, dbo.V_Personas.Env_codigo_postal, dbo.V_Personas.Env_comarca, 
             dbo.V_Personas.Env_provincia, dbo.V_Personas.Fis_via_publica, dbo.V_Personas.Fis_descripcion, dbo.V_Personas.Fis_direccion, dbo.V_Personas.Fis_municipio, dbo.V_Personas.Fis_codigo_postal, dbo.V_Personas.Fis_comarca, dbo.V_Personas.Fis_provincia, dbo.V_Personas.Fis_pais, dbo.Pagos_cuenta.Aplicacion_irpf, 
             dbo.Pagos_cuenta.Valor_irpf, dbo.Pagos_cuenta.Importe_iva, dbo.Pagos_cuenta.Regimen_ss, dbo.Pagos_cuenta.Pc_pago, dbo.Pagos_cuenta.Num_pagos_dividir, dbo.Pagos_cuenta.Importe_base_irpf, dbo.Pagos_cuenta.Fk_buzon_documentos, dbo.Pagos_cuenta.Usuario_creacion, dbo.Pagos_cuenta.Fecha_creacion, 
             dbo.Pagos_cuenta.Importe_ret_despues_imp, dbo.Pagos_cuenta.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Pagos_cuenta.Fk_campanya, dbo.Campañas.Descripcion AS Desc_campaña, dbo.Pagos_cuenta.Fecha_ultima_liq_prov
			 , dbo.Pagos_cuenta.Imp_total_liq_prov, dbo.Pagos_cuenta.Imp_pagos_anteriores, ISNULL( dbo.Pagos_cuenta.Imp_total_liq_prov,0)-ISNULL( dbo.Pagos_cuenta.Imp_pagos_anteriores,0) AS Importe_limite
             ,dbo.Pagos_cuenta.Fecha_modificacion, dbo.Pagos_cuenta.Usuario_modificacion
FROM     dbo.Pagos_cuenta LEFT OUTER JOIN
             dbo.Campañas ON dbo.Pagos_cuenta.Fk_campanya = dbo.Campañas.Codigo LEFT OUTER JOIN
             dbo.Secciones ON dbo.Pagos_cuenta.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
             dbo.V_Personas ON dbo.Pagos_cuenta.Fk_persona = dbo.V_Personas.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosGrupoMov]'))
DROP VIEW [dbo].V_LibrosGrupoMov
GO         
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LibrosGrupoMov]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LibrosGrupoMov]
AS
SELECT        dbo.Libros_grupo_mov.Movimiento, dbo.Libros_grupo_mov.Fecha, dbo.Libros_grupo_mov.Fk_tipo_movimiento, dbo.Libros_grupo_mov.Observaciones, dbo.Libros_grupo_mov.Fk_campaña, 
						 dbo.Libros_grupo_mov.Fk_centro, dbo.Centros.Descripcion AS DescCentro, dbo.Libros_tipos_movimientos.Descripcion AS DescTipoMov, dbo.Campañas.Descripcion AS DescCampaña
FROM            dbo.Libros_grupo_mov INNER JOIN
						 dbo.Libros_tipos_movimientos ON dbo.Libros_grupo_mov.Fk_tipo_movimiento = dbo.Libros_tipos_movimientos.Codigo INNER JOIN
						 dbo.Campañas ON dbo.Libros_grupo_mov.Fk_campaña = dbo.Campañas.Codigo INNER JOIN
						 dbo.Centros ON dbo.Libros_grupo_mov.Fk_centro = dbo.Centros.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Articulos_grupos_abc]'))
DROP VIEW [dbo].V_Articulos_grupos_abc
GO         
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Articulos_grupos_abc]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Articulos_grupos_abc]
AS
SELECT dbo.Articulos_grupos.* FROM dbo.Articulos_grupos WHERE (ISNULL(No_mostrar_en_abc,0) = 0)'
GO
IF  EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_Get_V_AlbLiqLinTotal') AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_Get_V_AlbLiqLinTotal'
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_Get_V_AlbLiqLinTotal') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_Get_V_AlbLiqLinTotal] (@Fecha DATETIME,@SoloSinCopageAsociado bit,@SoloEnEstoc bit)
				RETURNS TABLE
				AS
				RETURN
				(
				SELECT        A.*,ISNULL(ESTOC.Cantidad,0) as Cantidad_estoc,Copages_lineas.Fk_alb_liq_lin,EST.Estado_liq_def
				FROM            V_AlbLiqLinTotal A
				LEFT OUTER JOIN V_AlbLiqEstadosLiquidaciones EST WITH(NOLOCK) ON EST.Serie=A.Serie AND EST.Numero=A.Numero
				LEFT OUTER JOIN Copages_lineas ON A.Id_alb_liq_lin=Copages_lineas.Fk_alb_liq_lin
				LEFT OUTER JOIN (
				SELECT        M.Articulo, M.Almacen, M.Lote, M.Centro, M.Cantidad, M.Fecha_hora, L.Lote_etiqueta, L.Añada
				FROM            (SELECT        ISNULL(Articulo, 0) AS Articulo, ISNULL(Almacen, '''') AS Almacen, ISNULL(Lote, '''') AS Lote, ISNULL(Fk_centro, 0) AS Centro, SUM(ISNULL(Cantidad, 0)) AS Cantidad, MIN(Fecha_hora) 
										AS Fecha_hora
				FROM            dbo.V_Movimientos_estoc
				WHERE        (Fecha_consolidacion_inventario IS NULL AND CONVERT(date,Fecha_hora,103)<=CONVERT(date,@Fecha,103)
						 
				)
				GROUP BY Articulo, Almacen, Lote, Fk_centro) AS M LEFT OUTER JOIN
				dbo.Lotes AS L ON M.Articulo = L.Fk_articulo AND M.Lote = L.Lote
				) AS ESTOC ON A.Articulo=ESTOC.Articulo AND A.Almacen=estoc.Almacen AND A.Lote=ESTOC.Lote AND A.Fk_centro=ESTOC.Centro
						 
				WHERE CONVERT(date,A.Fecha,103)<=CONVERT(date,@Fecha,103)
				AND (@SoloSinCopageAsociado=0 OR (@SoloSinCopageAsociado=1 AND Copages_lineas.Fk_alb_liq_lin IS NULL))
				AND (@SoloEnEstoc=0 OR (@SoloEnEstoc=1 AND ESTOC.Cantidad>0))
				)'
GO
IF  EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_Get_V_AlbLiqLin') AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_Get_V_AlbLiqLin'
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_Get_V_AlbLiqLin') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_Get_V_AlbLiqLin] (@Fecha DATETIME,@SoloSinCopageAsociado bit,@SoloEnEstoc bit)
				RETURNS TABLE
				AS
				RETURN
				(
				SELECT        A.*,ISNULL(ESTOC.Cantidad,0) as Cantidad_estoc,Copages_lineas.Fk_alb_liq_lin,EST.Estado_liq_def,SU.Codigos_persona,SU.Nombres_persona,SU.Particiones, CAB.Volante_eco, CAB.Volante_otros
				FROM            V_AlbLiqLin A WITH(NOLOCK)
				LEFT OUTER JOIN V_AlbLiq CAB WITH(NOLOCK) ON A.Serie=CAB.Serie AND A.Numero=CAB.Numero
				LEFT OUTER JOIN V_AlbLiqLinPartSociosUnidos SU WITH(NOLOCK) ON A.Serie=SU.Serie AND A.Numero=SU.Numero AND A.Linea=SU.Linea
				LEFT OUTER JOIN V_AlbLiqEstadosLiquidaciones EST WITH(NOLOCK) ON EST.Serie=A.Serie AND EST.Numero=A.Numero
				LEFT OUTER JOIN Copages_lineas WITH(NOLOCK) ON A.id=Copages_lineas.Fk_alb_liq_lin
				LEFT OUTER JOIN (
				SELECT        M.Articulo, M.Almacen, M.Lote, M.Centro, M.Cantidad, M.Fecha_hora, L.Lote_etiqueta, L.Añada
				FROM            (SELECT        ISNULL(Articulo, 0) AS Articulo, ISNULL(Almacen, '''') AS Almacen, ISNULL(Lote, '''') AS Lote, ISNULL(Fk_centro, 0) AS Centro, SUM(ISNULL(Cantidad, 0)) AS Cantidad, MIN(Fecha_hora)
										AS Fecha_hora
				FROM            dbo.V_Movimientos_estoc WITH(NOLOCK)
				WHERE        (Fecha_consolidacion_inventario IS NULL
				AND CONVERT(date,Fecha_hora,103)<=CONVERT(date,@Fecha,103)
				)
				GROUP BY Articulo, Almacen, Lote, Fk_centro) AS M LEFT OUTER JOIN
				dbo.Lotes  AS L WITH(NOLOCK) ON M.Articulo = L.Fk_articulo AND M.Lote = L.Lote
				) AS ESTOC ON A.Articulo=ESTOC.Articulo AND A.Almacen=estoc.Almacen AND A.Lote=ESTOC.Lote AND A.Fk_centro=ESTOC.Centro
						
				WHERE CONVERT(date,A.Fecha,103)<=CONVERT(date,@Fecha,103)
				AND (@SoloSinCopageAsociado=0 OR (@SoloSinCopageAsociado=1 AND Copages_lineas.Fk_alb_liq_lin IS NULL))
				AND (@SoloEnEstoc=0 OR (@SoloEnEstoc=1 AND ESTOC.Cantidad>0))
				)'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc_ExcelProd]'))
DROP VIEW [dbo].V_Movimientos_estoc_ExcelProd
GO         
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Movimientos_estoc_ExcelProd]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Movimientos_estoc_ExcelProd]
				AS
				SELECT V_Movimientos_estoc.* FROM 
				V_Movimientos_estoc
				INNER JOIN Almacenes
				ON Almacenes.Codigo=V_Movimientos_estoc.Almacen
				WHERE ISNULL(Almacenes.Excluir_de_excel_prod,0)=0'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_articulo_ExcelProd]'))
DROP VIEW [dbo].V_estoc_articulo_ExcelProd
GO         
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_estoc_articulo_ExcelProd]'))
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW [dbo].[V_estoc_articulo_ExcelProd]
AS
SELECT        Fk_centro, Desc_centro, Articulo, Descripcion, Cantidad, C_reservada_venta, C_pedida_a_prov, C_reservada_produccion, C_prevista_prod, Estoc_minimo, Estoc_maximo, Cantidad_disponible, 
						 Cantidad_virtual_futura, CAST((CASE WHEN Cantidad_por_bulto <> 0 THEN Cantidad_disponible / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_disponible, 
						 CAST((CASE WHEN Cantidad <> 0 THEN Cantidad / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_actual, 
						 CAST((CASE WHEN Cantidad_virtual_futura <> 0 THEN Cantidad_virtual_futura / cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_futura
FROM            (SELECT        A.Fk_centro, A.Articulo, A.Descripcion, A.Cantidad, ISNULL(B.C_reservada_venta, 0) AS C_reservada_venta, ISNULL(C.C_pedida_a_prov, 0) AS C_pedida_a_prov, 
													ISNULL(D.Cantidad_reservada_produccion, 0) AS C_reservada_produccion, ISNULL(E.Cantidad_prevista_prod, 0) AS C_prevista_prod, ISNULL(F.Estoc_minimo, 0) AS Estoc_minimo, 
													ISNULL(F.Estoc_maximo, 0) AS Estoc_maximo, A.Cantidad - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_disponible, 
													A.Cantidad + ISNULL(C.C_pedida_a_prov, 0) + ISNULL(E.Cantidad_prevista_prod, 0) - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_virtual_futura, 
													G.Desc_centro, F.Cantidad_por_bulto
						  FROM            (SELECT        ISNULL(dbo.V_Movimientos_estoc_ExcelProd.Fk_centro, N'''') AS Fk_centro, ISNULL(dbo.V_ArticulosNombre.Codigo, N'''') AS Articulo, dbo.V_ArticulosNombre.Descripcion, 
																			  SUM(ISNULL(dbo.V_Movimientos_estoc_ExcelProd.Cantidad, 0)) AS Cantidad
													FROM            dbo.V_Movimientos_estoc_ExcelProd LEFT OUTER JOIN
																			  dbo.V_ArticulosNombre ON dbo.V_Movimientos_estoc_ExcelProd.Articulo = dbo.V_ArticulosNombre.Codigo
													WHERE        (dbo.V_Movimientos_estoc_ExcelProd.Fecha_consolidacion_inventario IS NULL)
													GROUP BY dbo.V_Movimientos_estoc_ExcelProd.Fk_centro, dbo.V_ArticulosNombre.Codigo, dbo.V_ArticulosNombre.Descripcion) AS A LEFT OUTER JOIN
														(SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_reservada_venta
														  FROM            dbo.V_DocLinEstadosPedVenta
														  GROUP BY Fk_centro, Fk_articulo) AS B ON A.Articulo = B.Fk_articulo AND A.Fk_centro = B.Fk_centro LEFT OUTER JOIN
														(SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_pedida_a_prov
														  FROM            dbo.V_DocLinEstadosPedCompra
														  GROUP BY Fk_centro, Fk_articulo) AS C ON A.Articulo = C.Fk_articulo AND A.Fk_centro = C.Fk_centro LEFT OUTER JOIN
														 (SELECT        OPRES.Fk_centro, OPRES.Fk_articulo_componente, OPRES.Cantidad_reservada_produccion - ISNULL(OPREAL.Cantidad_realizada, 0) AS Cantidad_reservada_produccion
														  FROM (SELECT        dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente, SUM(ISNULL(dbo.Op_Componentes.Cantidad, 0)) AS Cantidad_reservada_produccion
																FROM            dbo.Op INNER JOIN
																							dbo.Op_Componentes ON dbo.Op.Id = dbo.Op_Componentes.Fk_op
																WHERE        (dbo.Op.Estado = 0) OR
																							(dbo.Op.Estado = 1) OR
																							(dbo.Op.Estado = 2)
																GROUP BY dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente) AS OPRES LEFT OUTER JOIN
																	(SELECT        Op_2.Fk_centro, lr.Fk_articulo_componente, SUM(lr.Cantidad) AS Cantidad_realizada
																		FROM            dbo.Op AS Op_2 INNER JOIN
																								dbo.Op_componentes_lotes_real AS lr ON Op_2.Id = lr.Fk_op
																		WHERE        (Op_2.Estado = 2)
																		GROUP BY Op_2.Fk_centro, lr.Fk_articulo_componente) AS OPREAL ON OPRES.Fk_centro = OPREAL.Fk_centro AND 
																OPRES.Fk_articulo_componente = OPREAL.Fk_articulo_componente)  AS D ON A.Articulo = D.Fk_articulo_componente AND A.Fk_centro = D.Fk_centro LEFT OUTER JOIN
														(SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_real, 0)) AS Cantidad_prevista_prod
														  FROM            dbo.Op AS Op_1
														  WHERE        (Estado <> 3) AND (Estado <> 4)
														  GROUP BY Fk_centro, Fk_articulo) AS E ON A.Articulo = E.Fk_articulo AND A.Fk_centro = E.Fk_centro LEFT OUTER JOIN
														(SELECT        Codigo, Estoc_minimo, Estoc_maximo, Cantidad_por_bulto
														  FROM            dbo.Articulos) AS F ON A.Articulo = F.Codigo LEFT OUTER JOIN
														(SELECT        Codigo, Descripcion AS Desc_centro
														  FROM            dbo.Centros) AS G ON A.Fk_centro = G.Codigo) AS derivedtbl_1'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Articulos_Grupos_Centros]'))
DROP VIEW [dbo].V_Articulos_Grupos_Centros
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Articulos_Grupos_Centros]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Articulos_Grupos_Centros]
AS
SELECT        ArticulosGruposCentros.Codigo_articulo, ArticulosGruposCentros.Descripcion, ArticulosGruposCentros.Codigo_grupo, ArticulosGruposCentros.Estoc_minimo, ArticulosGruposCentros.Estoc_maximo, ArticulosGruposCentros.Cantidad_por_bulto, ArticulosGruposCentros.Codigo_Centro, 
						 ISNULL(V_estoc_articulo_ExcelProd.Cantidad, 0) AS Estoc, ArticulosGruposCentros.Desc_Centro, ArticulosGruposCentros.Desc_Grupo
FROM            (SELECT        Articulos_agrupaciones.Codigo_articulo, Articulos.Descripcion, Articulos_agrupaciones.Codigo_grupo, ISNULL(Articulos.Estoc_minimo, 0) AS Estoc_minimo, ISNULL(Articulos.Estoc_maximo, 0) AS Estoc_maximo, ISNULL(articulos.Cantidad_por_bulto,0) As Cantidad_por_bulto, 
													Centros.Codigo AS Codigo_Centro, Centros.Descripcion AS Desc_Centro, Articulos_grupos.Descripcion AS Desc_Grupo
						  FROM            Articulos_agrupaciones INNER JOIN
													Articulos ON Articulos_agrupaciones.Codigo_articulo = Articulos.Codigo INNER JOIN
													Articulos_grupos ON Articulos_agrupaciones.Codigo_grupo = Articulos_grupos.Codigo CROSS JOIN
													Centros) AS ArticulosGruposCentros LEFT OUTER JOIN
						 V_estoc_articulo_ExcelProd ON ArticulosGruposCentros.Codigo_articulo = V_estoc_articulo_ExcelProd.Articulo AND ArticulosGruposCentros.Codigo_Centro = V_estoc_articulo_ExcelProd.Fk_centro'
GO


IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_InventarioLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_InventarioLineas]
AS
SELECT        dbo.Inventario_cabecera.Id,dbo.Inventario_linea.Id as Id_linea,dbo.Inventario_cabecera.Serie, dbo.Inventario_cabecera.Numero, dbo.Inventario_cabecera.Fecha, dbo.Inventario_cabecera.Fk_centro, 
						 dbo.Centros.Descripcion AS Desc_centro, dbo.Inventario_linea.Fk_articulo, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Almacenes.Descripcion AS Desc_almacen, 
						 dbo.Inventario_linea.Fk_almacen, dbo.Inventario_linea.Fk_lote, dbo.Inventario_linea.Cantidad_real, dbo.Inventario_linea.Observaciones AS Observaciones, dbo.Inventario_linea.Numero_linea,dbo.Inventario_linea.Cantidad_estoc_teorica,
						 dbo.Inventario_linea.Añada, dbo.Inventario_linea.Lote_etiqueta, dbo.Inventario_linea.Generada_automaticamente	, dbo.Inventario_linea.Precio								 
FROM            dbo.Inventario_cabecera INNER JOIN
						 dbo.Inventario_linea ON dbo.Inventario_cabecera.Id = dbo.Inventario_linea.Fk_cabecera INNER JOIN
						 dbo.Centros ON dbo.Inventario_cabecera.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Almacenes ON dbo.Inventario_linea.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Inventario_linea.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesTratamientos]'))
DROP VIEW [dbo].V_LotesTratamientos
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesTratamientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LotesTratamientos]
AS						 SELECT        dbo.Lotes_tratamientos.Id, dbo.Lotes_tratamientos.Fecha_hora, dbo.Lotes_tratamientos.Fk_articulo, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Lotes_tratamientos.Lote, 
						 dbo.Lotes_tratamientos.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Lotes_tratamientos.Cantidad_lote, dbo.Lotes_tratamientos.Fk_serie, 
						 dbo.Series_otros_documentos.Descripcion AS Desc_serie, dbo.Lotes.Fecha_lote, dbo.Lotes.Lote_etiqueta, dbo.Lotes.Añada, dbo.Lotes.Fecha_caducidad, 
						 dbo.Lotes.Fecha_consumo_preferente, dbo.Lotes_tratamientos.Fk_articulo_tra, V_ArticulosSoloNombre_1.Descripcion AS Desc_articulo_tra, dbo.Lotes_tratamientos.Fk_almacen_tra, 
						 Almacenes_1.Descripcion AS Desc_almacen_tra, dbo.Lotes_tratamientos.Lote_tra, dbo.Lotes_tratamientos.Dosis, dbo.Lotes_tratamientos.Fk_unidad_dosis, dbo.Unidades.Descripcion AS Desc_unidad_dosis, 
						 dbo.Lotes_tratamientos.Cantidad, dbo.Lotes_tratamientos.Fk_unidad_cantidad, Unidades_1.Descripcion AS Desc_unidad_cantidad, dbo.Lotes_tratamientos.Fk_movimiento, 
						 dbo.Lotes_tratamientos.Observaciones, dbo.Movimientos.Movimiento AS Num_movimiento, dbo.Lotes_tratamientos.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Lotes_tratamientos.Numero
FROM            dbo.Lotes_tratamientos LEFT OUTER JOIN
						 dbo.Almacenes AS Almacenes_1 ON dbo.Lotes_tratamientos.Fk_almacen_tra = Almacenes_1.Codigo LEFT OUTER JOIN
						 dbo.Movimientos ON dbo.Lotes_tratamientos.Fk_movimiento = dbo.Movimientos.Id LEFT OUTER JOIN
						 dbo.Centros ON dbo.Lotes_tratamientos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Almacenes ON dbo.Lotes_tratamientos.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
						 dbo.Series_otros_documentos ON dbo.Lotes_tratamientos.Fk_serie = dbo.Series_otros_documentos.Serie LEFT OUTER JOIN
						 dbo.Unidades AS Unidades_1 ON dbo.Lotes_tratamientos.Fk_unidad_cantidad = Unidades_1.Codigo LEFT OUTER JOIN
						 dbo.Unidades ON dbo.Lotes_tratamientos.Fk_unidad_dosis = dbo.Unidades.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre AS V_ArticulosSoloNombre_1 ON dbo.Lotes_tratamientos.Fk_articulo_tra = V_ArticulosSoloNombre_1.Codigo LEFT OUTER JOIN
						 dbo.Lotes ON dbo.Lotes_tratamientos.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.Lotes_tratamientos.Lote = dbo.Lotes.Lote LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Lotes_tratamientos.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosFito]'))
DROP VIEW [dbo].V_ArticulosFito
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosFito]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosFito]
AS  SELECT dbo.Articulos.Codigo, dbo.Articulos.Descripcion, dbo.Articulos.Fito_categoria, dbo.Cat_fitosanitarios.Descripcion AS Expr1, dbo.Cat_fitosanitarios.Aux_codigo, dbo.Cat_fitosanitarios.Carnet_aplicador
	FROM dbo.Articulos 
	INNER JOIN
	dbo.Cat_fitosanitarios ON dbo.Articulos.Fito_categoria = dbo.Cat_fitosanitarios.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_NumCarnetFito]'))
DROP VIEW [dbo].V_NumCarnetFito
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_NumCarnetFito]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_NumCarnetFito]
AS  
	SELECT Codigo_ropo, Fecha_caducidad_carnet_aplicador, Num_carnet_aplicador
	FROM
	(
		SELECT  Codigo_ropo, Fecha_caducidad_carnet_aplicador, Num_carnet_aplicador
		FROM            dbo.Personas
		UNION ALL SELECT  Codigo_ropo, Fecha_caducidad_carnet_aplicador, Num_carnet_aplicador
		FROM            dbo.Contacto
	) AS A
	WHERE (ISNULL(Codigo_ropo, N'''') <> '''') AND (Fecha_caducidad_carnet_aplicador IS NOT NULL)
	GROUP BY Codigo_ropo, Fecha_caducidad_carnet_aplicador, Num_carnet_aplicador'

  GO
  IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesOperariosEstado]'))
  DROP VIEW [dbo].V_OpOperacionesOperariosEstado
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesOperariosEstado]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpOperacionesOperariosEstado] AS
SELECT        ''OP'' AS SerieTipoDoc, dbo.Op.Fk_serie AS Serie, dbo.Op.Numero, dbo.Op.Fk_articulo AS Articulo, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Op_operaciones.Fk_operacion, 
						 dbo.Operaciones.Descripcion AS Desc_operacion, dbo.Op_operaciones.Minutos AS Tiempo_teorico, dbo.Op_operaciones.Orden, dbo.Op_operaciones.Tipo_tiempo, 
						 dbo.Op_operaciones.Desc_escandallo_operacion, dbo.Op_operaciones.Observaciones, dbo.Op.Cantidad, ISNULL(C.Cantidad_completada, 0) AS Cantidad_completada, 
						 dbo.Op.Cantidad - ISNULL(C.Cantidad_completada, 0) AS Cantidad_pendiente, dbo.Op_operaciones_operarios.Fk_operario, dbo.Op_operaciones_operarios.Orden AS Orden_operario, 
						 dbo.Op_operaciones_operarios.Fecha_inicio, CASE WHEN M.Fk_op_operaciones IS NOT NULL THEN 1 ELSE 0 END AS EnCurso, dbo.Op_operaciones.Id AS Id_op_operaciones, 
						 dbo.Operarios.Nombre AS Nombre_operario, dbo.Op.Prioridad AS Prioridad_op, dbo.Op_operaciones.Fecha_cerrada, dbo.Op.Estado,dbo.Op.Id_auxiliar as Op_id_auxiliar,dbo.Op.Fecha,dbo.op.Fk_centro
						 ,dbo.Op.Observaciones AS ObservacionesOp, dbo.Operaciones.Incidencia AS EsOperacionDeIncidencia,dbo.Operaciones.Productiva,dbo.Operaciones.Exclusiva,dbo.Op.Control_materiales

FROM            dbo.Op_operaciones LEFT OUTER JOIN
							 (SELECT        Fk_op_operaciones, ISNULL(SUM(ISNULL(Cantidad, 0)), 0) AS Cantidad_completada
							   FROM            dbo.Op_operaciones_registro
							   GROUP BY Fk_op_operaciones) AS C ON dbo.Op_operaciones.Id = C.Fk_op_operaciones INNER JOIN
						 dbo.Op ON dbo.Op.Id = dbo.Op_operaciones.Fk_op LEFT OUTER JOIN
						 dbo.Operaciones ON dbo.Op_operaciones.Fk_operacion = dbo.Operaciones.Codigo INNER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Op.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo INNER JOIN
						 dbo.Op_operaciones_operarios ON dbo.Op_operaciones.Id = dbo.Op_operaciones_operarios.Fk_op_operaciones INNER JOIN
						 dbo.Operarios ON dbo.Operarios.Codigo = dbo.Op_operaciones_operarios.Fk_operario LEFT OUTER JOIN
							 (SELECT        Fk_op_operaciones, Fk_operario, Fecha_desde
							   FROM            dbo.Marcajes
							   WHERE        (Fecha_hasta IS NULL) AND (Fk_op_operaciones_registro IS NULL)) AS M ON M.Fk_op_operaciones = dbo.Op_operaciones_operarios.Fk_op_operaciones AND 
						 M.Fk_operario = dbo.Op_operaciones_operarios.Fk_operario'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesPmp]'))
  DROP VIEW [dbo].V_LotesPmp
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesPmp]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LotesPmp] AS
						 SELECT B.Articulo as Fk_articulo,B.Lote,Movimientos.Pmp,Movimientos.Pmp_lote FROM Movimientos INNER JOIN (
SELECT M.Articulo,M.Lote,M.Id,ROW_NUMBER() OVER (PARTITION BY MaxFechaHora ORDER BY MaxFechaHora DESC)
  AS created_order   
   FROM Movimientos M INNER JOIN (
select Articulo,Lote, max(Fecha_hora) as MaxFechaHora
 from Movimientos WHERE Movimientos.E_S_N=''E'' group by Articulo,Lote) A ON M.Articulo=A.Articulo AND M.Lote=A.Lote) B 
  ON Movimientos.Id=B.Id
 WHERE b.created_order=1'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotalLotes]'))
  DROP VIEW [dbo].V_EstocTotalLotes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotalLotes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstocTotalLotes] AS
		SELECT  Articulo, Lote, SUM(Cantidad) AS Estoc, MAX(Fecha_hora) AS Fecha_ultimo_mov	FROM V_MiniMovsEstoc GROUP BY Articulo, Lote'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Lotes]'))
DROP VIEW [dbo].V_Lotes
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Lotes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Lotes] AS
SELECT ISNULL(Lotes.Fk_articulo, 0) AS Fk_articulo, Lotes.Fecha_lote, Lotes.Lote_etiqueta, Lotes.Añada AS Anada, Lotes.Fecha_caducidad, Lotes.Grado, Lotes.Grado_oficial, 
                         Lotes.Fecha_consumo_preferente
						 , Estoc_lote.Estoc
						 , ISNULL(Lotes.Lote, 0) AS Lote, Lotes.Id
						 , Articulos.Descripcion AS Desc_articulo
						 , V_LotesPmp.Pmp, V_LotesPmp.Pmp_lote
						 , Estoc_lote.Fecha_ultimo_mov
						 , Lotes.Lote_granel, Lotes.Tipo_lote, Lotes.Fk_persona
						 , P.NombreCompleto
						 , Lotes.Fk_ficha_tecnica
						 , FT.Descripcion AS Desc_ficha_tecnica
						 , Lotes.Observaciones, Lotes.Bloqueado, Lotes.Fecha_bloqueo, Lotes.Usuario_bloqueo, Lotes.Km0
FROM Lotes
LEFT JOIN V_EstocTotalLotes AS Estoc_lote 
ON Estoc_lote.Lote = Lotes.Lote
AND Estoc_lote.Articulo = Lotes.Fk_articulo
LEFT OUTER JOIN Articulos 
ON Lotes.Fk_articulo = Articulos.Codigo 
LEFT OUTER JOIN V_LotesPmp 
ON Lotes.Fk_articulo = V_LotesPmp.Fk_articulo 
AND Lotes.Lote = V_LotesPmp.Lote 
LEFT OUTER JOIN V_PersonasSoloNombre AS P 
ON Lotes.Fk_persona = P.Codigo 
LEFT OUTER JOIN FT_articulos AS FT 
ON Lotes.Fk_ficha_tecnica = FT.Codigo_FT'
  GO
  IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesCentroAlmacen]'))
DROP VIEW [dbo].V_LotesCentroAlmacen
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesCentroAlmacen]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LotesCentroAlmacen] AS
SELECT NEWID() AS IdLoteCentroAlmacen, Estoc_lote.Centro, Estoc_lote.Almacen, ISNULL(dbo.Lotes.Fk_articulo, '''') AS Fk_articulo, dbo.Lotes.Fecha_lote, dbo.Lotes.Lote_etiqueta, dbo.Lotes.Añada AS Anada, dbo.Lotes.Fecha_caducidad, dbo.Lotes.Grado, dbo.Lotes.Grado_oficial, 
                         dbo.Lotes.Fecha_consumo_preferente, Estoc_lote.Estoc, ISNULL(dbo.Lotes.Lote, 0) AS Lote, dbo.Lotes.Id, ART.Descripcion AS Desc_articulo, dbo.V_LotesPmp.Pmp, dbo.V_LotesPmp.Pmp_lote, 
                         Estoc_lote.Fecha_ultimo_mov, dbo.Lotes.Lote_granel, dbo.Lotes.Tipo_lote, dbo.Lotes.Fk_persona, P.NombreCompleto, dbo.Lotes.Fk_ficha_tecnica, FT.Descripcion AS Desc_ficha_tecnica, dbo.Lotes.Observaciones,
						Estoc_lote.Estoc*ART.Peso_bruto AS KgBruto, Estoc_lote.Estoc*ART.Peso_neto AS KgNeto, Estoc_lote.Estoc*ART.Capacidad AS Litros, AL.formato_almacen,
						CASE ISNULL(AL.formato_almacen,0)
							WHEN 1 THEN ''Big-Bag''
							WHEN 2 THEN ''Bin''
							WHEN 3 THEN ''Box''
							WHEN 4 THEN ''Bidon''
							WHEN 5 THEN ''Tolva''
							WHEN 6 THEN ''Container pasta''
							WHEN 7 THEN ''Palet''
							WHEN 99 THEN ''Otros''
							ELSE ''''
						END AS DescFormatoAlmacen,AL.Capacidad,CASE WHEN ISNULL(AL.Capacidad, 0) <> 0 THEN ROUND((Estoc_lote.Estoc/ AL.Capacidad) * 100, 2) ELSE 0 END AS Porcentaje
						,ART.Fk_articulo_agrupacion,ART.Desc_articulo_agrupacion,ISNULL(AC.Fk_almacen_habitual,ART.Fk_almacen_entradas) as Fk_almacen_habitual
						 , (SELECT STRING_AGG(CONVERT(NVARCHAR(max), CCL.Observaciones_mov), '' / '') WITHIN GROUP (ORDER BY CC.Fecha DESC) AS Observaciones_mov 
								FROM Copages AS CC
								INNER JOIN Copages_lineas AS CCL
								ON CC.Id=CCL.Fk_cabecera
								WHERE CCL.Observaciones_mov IS NOT NULL
								AND CCL.E_S=''E''
								AND CC.Fk_centro=Estoc_lote.Centro
								AND CCL.Fk_articulo= Estoc_lote.Articulo
								AND CCl.Fk_almacen=Estoc_lote.Almacen 
								AND CCL.Lote= Estoc_lote.Lote
								GROUP BY CC.Fk_centro, CCL.Fk_articulo, CCl.Fk_almacen, CCL.Lote
								) as Observaciones_mov
						FROM 
							(
								SELECT Centro, Almacen, Articulo, Lote, SUM(Cantidad) AS Estoc, MAX(Fecha_ultimo_mov) AS Fecha_ultimo_mov
								FROM dbo.V_estoc_lote WITH (NOLOCK)
								GROUP BY Centro, Almacen, Articulo, Lote
							) AS Estoc_lote 
						LEFT OUTER JOIN dbo.Almacenes AS AL WITH (NOLOCK) 
						ON Estoc_lote.Almacen = AL.Codigo
						RIGHT OUTER JOIN dbo.Lotes WITH (NOLOCK) 
						ON dbo.Lotes.Lote = Estoc_lote.Lote 
						AND dbo.Lotes.Fk_articulo = Estoc_lote.Articulo 
						LEFT OUTER JOIN dbo.V_ArticulosNombre ART WITH (NOLOCK) ON dbo.Lotes.Fk_articulo = ART.Codigo
						LEFT OUTER JOIN dbo.V_LotesPmp WITH (NOLOCK) 
						ON dbo.Lotes.Fk_articulo = dbo.V_LotesPmp.Fk_articulo 
						AND dbo.Lotes.Lote = dbo.V_LotesPmp.Lote 
						LEFT OUTER JOIN dbo.V_PersonasSoloNombre AS P WITH (NOLOCK) 
						ON dbo.Lotes.Fk_persona = P.Codigo 
						LEFT OUTER JOIN dbo.FT_articulos AS FT WITH (NOLOCK) 
						ON dbo.Lotes.Fk_ficha_tecnica = FT.Codigo_FT LEFT OUTER JOIN
			 dbo.Articulos_centros AC ON Estoc_lote.Articulo=AC.Fk_articulo AND Estoc_lote.Centro=AC.Fk_centro
			 '
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Gastos]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Gastos] AS
  SELECT        ISNULL(YEAR(Fecha_hora), 0) AS Year, ISNULL(MONTH(Fecha_hora), 0) AS Month, SUM(Importe_base) AS Importe_Total
  FROM            dbo.FacturasCompra AS Importe_Total
  GROUP BY YEAR(Fecha_hora), MONTH(Fecha_hora)'
  GO
  IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Calidad]'))
  DROP VIEW [dbo].V_Calidad
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Calidad]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Calidad] AS
  SELECT        dbo.Calidad.Id, dbo.Calidad.Fk_serie, dbo.Series_calidad.Descripcion AS Desc_serie, dbo.Calidad.Numero, dbo.Calidad.Fecha_hora, CONVERT(date, dbo.Calidad.Fecha_hora, 103) AS Fecha, CONVERT(varchar, 
                         dbo.Calidad.Fecha_hora, 108) AS Hora, dbo.Calidad.SerieTipoDoc, dbo.Calidad.SerieTipoMov, dbo.Calidad.NumeroMov, dbo.Calidad.Num_lin_mov, dbo.Calidad.Id_lin_mov, dbo.Calidad.Fk_articulo, 
                         dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Calidad.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Calidad.Fk_persona, dbo.V_Personas.NombreCompleto AS Desc_persona, 
                         dbo.Calidad.Usuario, dbo.Calidad.Fecha_modif, dbo.Calidad.Cantidad, dbo.Calidad.Lote, dbo.Calidad.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, Terceros.NombreCompleto AS Desc_tercero, 
                         dbo.Calidad.Fk_campaña, dbo.Marca.Descripcion AS Desc_marca, dbo.Calidad.Fk_marca, dbo.Marca.Descripcion, dbo.Calidad.Observaciones, dbo.Calidad.Fk_centro, dbo.Calidad.Fk_tercero
						 ,ex.Id_alternativo as Cod_auditoria,ex.Fk_representante1 as Fk_auditor_jefe,Tecnico.NombreCompleto as Nombre_auditor_jefe
						 ,Denom_origen.Descripcion as Desc_do,Libros_color.Descripcion as Desc_color,Libros_tipo_producto.Descripcion as Desc_tipo_producto,DBO.Calidad.Id_referencia
						 , dbo.Calidad.Serie_doc_ext, dbo.Calidad.Numero_doc_ext, dbo.Calidad.Fecha_doc_ext, dbo.Calidad.Codigo_persona_doc_ext
FROM            dbo.Calidad LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Calidad.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.Marca ON dbo.Calidad.Fk_marca = dbo.Marca.Codigo LEFT OUTER JOIN		
						 dbo.Denom_origen ON MArca.Fk_do=Denom_origen.Codigo LEFT OUTER JOIN
						 dbo.Libros_color ON Marca.Fk_color=Libros_color.Codigo LEFT OUTER JOIN
						 dbo.Libros_tipo_producto ON Marca.Fk_tipo_producto=Libros_tipo_producto.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.Calidad.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Series_calidad ON dbo.Calidad.Fk_serie = dbo.Series_calidad.Serie LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Calidad.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS Terceros ON dbo.Calidad.Fk_tercero = Terceros.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Calidad.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Calidad.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
						 dbo.Expediente EX ON dbo.Calidad.SerieTipoDoc=''EX'' AND dbo.Calidad.SerieTipoMov=EX.Serie AND dbo.Calidad.NumeroMov=EX.Numero LEFT OUTER JOIN V_Personas Tecnico ON EX.Fk_representante1=Tecnico.Codigo 

'
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturasSimplLineas]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacturasSimplLineas] AS
 SELECT         dbo.Facturas_simpl_lineas.Serie, dbo.Facturas_simpl_lineas.Numero, dbo.Facturas_simpl_lineas.Linea, dbo.Facturas_simpl_lineas.Fk_articulo, dbo.Facturas_simpl_lineas.Articulo_descripcion, 
                         dbo.Facturas_simpl_lineas.Precio_bruto, dbo.Facturas_simpl_lineas.Precio_neto, dbo.Facturas_simpl_lineas.Cantidad, dbo.Facturas_simpl_lineas.Importe_bruto, dbo.Facturas_simpl_lineas.Imp_dto_pp, 
                         dbo.Facturas_simpl_lineas.Imp_dto_esp, dbo.Facturas_simpl_lineas.Importe_dto1, dbo.Facturas_simpl_lineas.Importe_dto2, dbo.Facturas_simpl_lineas.Valor_iva, dbo.Facturas_simpl_lineas.Importe_neto, 
                         dbo.Facturas_simpl_lineas.Id, dbo.Facturas_simpl_lineas.Precio_coste_articulo, dbo.Facturas_simpl_cabecera.Fecha_hora, dbo.Facturas_simpl_cabecera.Fk_persona_tpv, dbo.Facturas_simpl_cabecera.Fk_cierre_caja, 
                         dbo.Facturas_simpl_cabecera.Fk_centro, dbo.Facturas_simpl_cabecera.Terminal, dbo.Facturas_simpl_cabecera.Usuario, dbo.Facturas_simpl_cabecera.Fk_cliente, dbo.V_Personas.NombreCompleto, 
                         dbo.Facturas_simpl_lineas.PVP, dbo.Facturas_simpl_lineas.Importe_total_linea, dbo.Facturas_simpl_lineas.Valor_dto1, dbo.Facturas_simpl_lineas.Valor_dto2, dbo.Facturas_simpl_lineas.Tipo_calculo_dto2, 
                         dbo.Facturas_simpl_lineas.Aplicacion_dto2, dbo.Facturas_simpl_lineas.Bultos, dbo.Facturas_simpl_lineas.Tipo_calculo_dto1, dbo.Facturas_simpl_lineas.Importe_base, dbo.Facturas_simpl_lineas.Importe_iva, 
                         dbo.Facturas_simpl_lineas.Valor_recargo, dbo.Facturas_simpl_lineas.Importe_recargo, dbo.Facturas_simpl_lineas.Valor_irpf, dbo.Facturas_simpl_lineas.Importe_irpf, dbo.Facturas_simpl_lineas.Importe_otros_impuestos, 
                         dbo.Facturas_simpl_lineas.Fk_codigo_iva, dbo.Facturas_simpl_lineas.Cantidad_anulada, dbo.Facturas_simpl_lineas.Lote, dbo.Facturas_simpl_lineas.Lote_etiqueta, dbo.Facturas_simpl_lineas.Pmp, 
                         dbo.Facturas_simpl_lineas.Pmp_lote, dbo.Facturas_simpl_lineas.Observaciones, dbo.Facturas_simpl_lineas.Tipo_doc_asociado, dbo.Facturas_simpl_lineas.Serie_doc_asociado, 
                         dbo.Facturas_simpl_lineas.Numero_doc_asociado, dbo.V_ArticulosNombre.Fito_registro, dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.V_Personas.Cliente_interno, 
                         dbo.V_ArticulosNombre.Tipo_articulo_libros, dbo.V_ArticulosNombre.Tipo_formato, dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, 
                         CAST(dbo.Facturas_simpl_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) AS Cantidad_Kg, dbo.Facturas_simpl_lineas.Fk_almacen, dbo.Centros.Descripcion AS Desc_centro, 
                         dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Imprimir_lote_fac_simpl,
                             (SELECT        TOP (1) Fk_forma_pago
                               FROM            dbo.V_FacturasSimplFormasPago
                               WHERE        (Serie = dbo.Facturas_simpl_cabecera.Serie) AND (Numero = dbo.Facturas_simpl_cabecera.Numero)) AS Primera_forma_pago, dbo.Facturas_simpl_cabecera.Fk_representante1, 
                         dbo.Facturas_simpl_cabecera.Fk_representante2, dbo.Facturas_simpl_lineas.Fk_cuenta_contable, dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Capacidad, dbo.Facturas_simpl_lineas.Linea_kit, 
                         dbo.Facturas_simpl_lineas.Fk_articulo_kit, dbo.Facturas_simpl_lineas.Precio_tarifa, dbo.Facturas_simpl_lineas.Promocion, ISNULL(dbo.V_ArticulosNombre.No_imprimir_cant_precios_componentes, 
                         ARTCOMP.No_imprimir_cant_precios_componentes) AS No_imprimir_cant_precios_componentes, ISNULL(dbo.V_ArticulosNombre.No_imprimir_componentes, ARTCOMP.No_imprimir_componentes) 
                         AS No_imprimir_componentes, dbo.Facturas_simpl_lineas.Cantidad_con_tara, dbo.Facturas_simpl_lineas.Cantidad_tara, dbo.Facturas_simpl_lineas.Fk_envase, dbo.Facturas_simpl_lineas.Numero_envases, 
                         dbo.Facturas_simpl_lineas.Automatica,dbo.Lotes.Km0
FROM            dbo.Facturas_simpl_lineas INNER JOIN
                         dbo.Facturas_simpl_cabecera ON dbo.Facturas_simpl_lineas.Serie = dbo.Facturas_simpl_cabecera.Serie AND dbo.Facturas_simpl_lineas.Numero = dbo.Facturas_simpl_cabecera.Numero INNER JOIN
                         dbo.V_Personas ON dbo.Facturas_simpl_cabecera.Fk_cliente = dbo.V_Personas.Codigo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Facturas_simpl_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS ARTCOMP ON dbo.Facturas_simpl_lineas.Fk_Articulo_kit = ARTCOMP.Codigo INNER JOIN
                         dbo.Centros ON dbo.Facturas_simpl_cabecera.Fk_centro = dbo.Centros.Codigo
						 LEFT OUTER JOIN dbo.Lotes ON dbo.Facturas_simpl_lineas.Fk_articulo=Lotes.Fk_articulo AND dbo.Facturas_simpl_lineas.Lote=dbo.Lotes.Lote'
  GO
 
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraLineas]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbCompraLineas] AS
  SELECT        dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero, dbo.Alb_compra_lineas.Id, dbo.Alb_compra_lineas.Articulo_descripcion, dbo.Alb_compra_lineas.Precio_coste_articulo,
  dbo.Alb_compra_lineas.Precio_bruto, dbo.Alb_compra_lineas.Precio_neto, dbo.Alb_compra_lineas.Cantidad, dbo.Alb_compra_lineas.Importe_bruto, dbo.Alb_compra_lineas.Imp_dto_pp,
  dbo.Alb_compra_lineas.Imp_dto_esp, dbo.Alb_compra_lineas.Importe_dto1, dbo.Alb_compra_lineas.Importe_dto2, dbo.Alb_compra.Fecha_hora, dbo.Alb_compra_lineas.Importe_comision2,
  dbo.Alb_compra_lineas.Importe_comision1, dbo.Alb_compra_lineas.Importe_iva, dbo.Alb_compra_lineas.Importe_recargo, dbo.Alb_compra_lineas.Importe_irpf, dbo.Alb_compra_lineas.Importe_otros_impuestos,
  dbo.Alb_compra_lineas.Importe_total_linea, dbo.Alb_compra_lineas.PVP, dbo.Alb_compra_lineas.Importe_impuestos_incluidos, dbo.Alb_compra_lineas.Importe_neto,
  dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Alb_compra.Codigo_persona
  FROM            dbo.Alb_compra INNER JOIN
  dbo.Alb_compra_lineas ON dbo.Alb_compra.Serie = dbo.Alb_compra_lineas.Serie AND dbo.Alb_compra.Numero = dbo.Alb_compra_lineas.Numero INNER JOIN
  dbo.V_PersonasSoloNombre ON dbo.Alb_compra.Codigo_persona = dbo.V_PersonasSoloNombre.Codigo'
  GO

  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PresVentaLineas]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PresVentaLineas] AS
 SELECT        dbo.Pres_venta_lineas.Serie, dbo.Pres_venta_lineas.Numero, dbo.Pres_venta_lineas.Fk_articulo, dbo.Pres_venta_lineas.Articulo_descripcion, dbo.Pres_venta_lineas.Cantidad, dbo.Pres_venta_lineas.Importe_bruto, 
                         dbo.Pres_venta_lineas.PVP, dbo.Pres_venta_lineas.Precio_bruto, dbo.Pres_venta_lineas.Precio_neto, dbo.Pres_venta_lineas.Precio_coste_articulo, dbo.Pres_venta_lineas.Linea, dbo.Pres_venta_lineas.Id, 
                         dbo.Pres_venta_lineas.Imp_dto_pp, dbo.Pres_venta_lineas.Imp_dto_esp, dbo.Pres_venta_lineas.Importe_dto1, dbo.Pres_venta_lineas.Importe_dto2, dbo.Pres_venta_lineas.Importe_comision1, 
                         dbo.Pres_venta_lineas.Importe_comision2, dbo.Pres_venta_lineas.Importe_base, dbo.Pres_venta_lineas.Importe_iva, dbo.Pres_venta_lineas.Valor_iva, dbo.Pres_venta_lineas.Valor_irpf, dbo.Pres_venta_lineas.Importe_irpf, 
                         dbo.Pres_venta_lineas.Importe_otros_impuestos, dbo.Pres_venta_lineas.Importe_total_linea, dbo.Pres_venta_lineas.Importe_impuestos_incluidos, dbo.Pres_venta_lineas.Importe_neto, dbo.Pres_venta.Fecha_hora, 
                         dbo.Pres_venta.Codigo_cliente, dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Expediente.Serie AS Expediente_serie, dbo.Expediente.Numero AS Expediente_numero, dbo.Pres_venta_lineas.Fk_expediente, 
                         dbo.Pres_venta_lineas.Fk_ficha_tecnica, dbo.FT_articulos.Descripcion as Desc_ficha_tecnica, dbo.Pres_venta_lineas.Observaciones, dbo.Pres_venta_lineas.Observaciones_internas
FROM            dbo.Pres_venta INNER JOIN
                         dbo.Pres_venta_lineas ON dbo.Pres_venta.Serie = dbo.Pres_venta_lineas.Serie AND dbo.Pres_venta.Numero = dbo.Pres_venta_lineas.Numero INNER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Pres_venta.Codigo_cliente = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos ON dbo.Pres_venta_lineas.Fk_ficha_tecnica = dbo.FT_articulos.Codigo_FT LEFT OUTER JOIN
                         dbo.Expediente ON dbo.Pres_venta_lineas.Fk_expediente = dbo.Expediente.Id'
   GO
   IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesEstado]'))
  DROP VIEW [dbo].V_OpOperacionesEstado
  GO
	 IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesEstado]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpOperacionesEstado] AS
  SELECT        ''OP'' AS SerieTipoDoc, dbo.V_Op.Fk_serie AS Serie, dbo.V_Op.Numero, dbo.Op_operaciones.Fk_op, dbo.V_Op.Fk_articulo AS Articulo, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, 
						 dbo.Op_operaciones.Fk_operacion, dbo.Operaciones.Descripcion AS Desc_operacion, dbo.Op_operaciones.Minutos AS Tiempo_teorico, dbo.Op_operaciones.Orden, dbo.Op_operaciones.Tipo_tiempo, 
						 dbo.Op_operaciones.Desc_escandallo_operacion, dbo.Op_operaciones.Observaciones, dbo.V_Op.Cantidad, ISNULL(C.Cantidad_completada, 0) AS Cantidad_completada, 
						 dbo.V_Op.Cantidad - ISNULL(C.Cantidad_completada, 0) AS Cantidad_pendiente, dbo.V_Op.Fecha, dbo.V_Op.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, 
						 CASE WHEN dbo.Op_operaciones.Fecha_cerrada IS NOT NULL THEN ''CERRADA'' WHEN ISNULL(M.Num_marcajes_abiertos,0)=0 AND ISNULL(Cantidad_completada, 0) 
						 = 0 THEN ''PENDIENTE INICIAR'' WHEN ISNULL(M.Num_marcajes_abiertos,0)>0 THEN ''EN CURSO'' WHEN ISNULL(M.Num_marcajes_abiertos,0)=0 AND Cantidad_completada <> 0 THEN ''PARADA'' END AS Estado_operacion, CASE WHEN ISNULL(M.Num_marcajes_abiertos,0)>0 THEN 1 ELSE 0 END AS EnCurso, dbo.Op_operaciones.Id AS Id_op_operaciones, 
						 dbo.V_Op.Prioridad AS Prioridad_op, dbo.V_Op.Estado AS Estado_op, dbo.V_Op.Id_auxiliar,M.Numero_marcajes,M.Tiempo_real_minutos,dbo.V_Op.Observaciones AS ObservacionesOP
						 ,dbo.Op_operaciones.Fecha_cerrada, dbo.Operaciones.Incidencia AS EsOperacionDeIncidencia,M.Coste_operacion
FROM            dbo.Op_operaciones LEFT OUTER JOIN
							 (SELECT        Fk_op_operaciones, ISNULL(SUM(ISNULL(Cantidad, 0)), 0) AS Cantidad_completada
							   FROM            dbo.Op_operaciones_registro
							   GROUP BY Fk_op_operaciones) AS C ON dbo.Op_operaciones.Id = C.Fk_op_operaciones INNER JOIN
						 dbo.V_Op ON dbo.V_Op.Id = dbo.Op_operaciones.Fk_op LEFT OUTER JOIN
						 dbo.Centros ON dbo.Centros.Codigo = dbo.V_Op.Fk_centro LEFT OUTER JOIN
						 dbo.Operaciones ON dbo.Op_operaciones.Fk_operacion = dbo.Operaciones.Codigo INNER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.V_Op.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
							 (SELECT        Fk_op_operaciones,SUM(CASE WHEN Fecha_hasta IS NULL AND Fk_op_operaciones_registro IS NULL THEN 1 ELSE 0 END) as Num_marcajes_abiertos,COUNT(Fk_op_operaciones) as Numero_marcajes,SUM(ISNULL(Marcajes.Minutos,0)) AS Tiempo_real_minutos,SUM(Marcajes.Coste_operacion) AS Coste_operacion
							   FROM            dbo.Marcajes
							   WHERE        1=1
							   GROUP BY Fk_op_operaciones) AS M ON M.Fk_op_operaciones = dbo.Op_operaciones.Id'

GO
 
  IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Marcajes]'))
  DROP VIEW [dbo].V_Marcajes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Marcajes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Marcajes] AS
SELECT        dbo.Marcajes.Id, dbo.Marcajes.Fk_operario, dbo.Operarios.Nombre AS Nombre_operario, dbo.Marcajes.Fk_operacion, dbo.Operaciones.Descripcion AS Desc_operacion, VOP.Estado_operacion, dbo.Marcajes.Fecha_desde, 
                         CONVERT(varchar, dbo.Marcajes.Fecha_desde, 108) AS Hora_desde, dbo.Marcajes.Fecha_hasta, CONVERT(varchar, dbo.Marcajes.Fecha_hasta, 108) AS Hora_hasta, dbo.Marcajes.SerieTipoDoc, dbo.Marcajes.Serie, 
                         dbo.Marcajes.Numero, dbo.Marcajes.Fk_op_operaciones, dbo.Marcajes.Fk_op_operaciones_registro, dbo.Marcajes.Minutos, CAST(CASE WHEN ISNULL(VOP.Tipo_tiempo, 0) 
                         = 0 THEN vop.Tiempo_teorico * dbo.Marcajes.Cantidad ELSE VOP.Tiempo_teorico END AS int) AS TiempoTeoricoMarcaje, V_op.Fk_articulo AS Articulo, CAST(CASE WHEN CAST(CASE WHEN ISNULL(VOP.Tipo_tiempo, 0) 
                         = 0 THEN vop.Tiempo_teorico * dbo.Marcajes.Cantidad ELSE VOP.Tiempo_teorico END AS int) < dbo.Marcajes.Minutos THEN 1 ELSE 0 END AS BIT) AS TiempoExcedido, V_op.Desc_articulo, VOP.Orden, dbo.Marcajes.Cantidad, 
                         VOP.Cantidad AS Cantidad_op, VOP.Cantidad_completada, VOP.Cantidad_pendiente, dbo.Marcajes.Id_auxiliar, dbo.Op_operaciones_operarios.Orden AS Orden_operario, 
                         dbo.Op_operaciones_operarios.Fecha_inicio AS Fecha_prevista_inicio, VOP.Fk_op, VOP.Desc_escandallo_operacion, VOP.Tiempo_teorico, dbo.Marcajes.Observaciones AS ObservacionesOperarioMarcaje, 
                          VOP.ObservacionesOP, VOP.Tipo_tiempo, dbo.Operaciones.Incidencia AS EsOperacionDeIncidencia, dbo.Marcajes.Inicio_conjunto, dbo.Marcajes.Fk_centro, 
                         dbo.Centros.Descripcion AS Desc_centro, dbo.Marcajes.Cantidad_completada_hist, dbo.Marcajes.cantidad_pendiente_hist, dbo.Marcajes.Inicida_automaticamente, dbo.Operaciones.Productiva, dbo.Marcajes.Coste_operacion, 
                          dbo.Op_operaciones.Observaciones AS Observaciones_operacion,dbo.Marcajes.Observaciones_internas,dbo.V_Op.Control_materiales,
						  dbo.Marcajes.Fk_motivo,Motivos_devolucion.Descripcion AS Desc_motivo,V_op.Fk_persona as CodigoCliente,v_op.NombreCompleto as NombreCliente
						  ,dbo.Marcajes.Usuario_creacion,dbo.Marcajes.Usuario_modificacion,dbo.Marcajes.Fecha_creacion,dbo.Marcajes.Fecha_modificacion
FROM            dbo.Marcajes LEFT OUTER JOIN
                         dbo.Op_operaciones ON dbo.Marcajes.Fk_op_operaciones = dbo.Op_operaciones.Id LEFT OUTER JOIN
                         dbo.Operaciones ON dbo.Marcajes.Fk_operacion = dbo.Operaciones.Codigo LEFT OUTER JOIN
                         dbo.Op_operaciones_operarios ON dbo.Marcajes.Fk_op_operaciones = dbo.Op_operaciones_operarios.Fk_op_operaciones AND dbo.Marcajes.Fk_operario = dbo.Op_operaciones_operarios.Fk_operario LEFT OUTER JOIN
                         dbo.Operarios ON dbo.Marcajes.Fk_operario = dbo.Operarios.Codigo LEFT OUTER JOIN
                         dbo.V_OpOperacionesEstado AS VOP ON dbo.Marcajes.Fk_op_operaciones = VOP.Id_op_operaciones LEFT OUTER JOIN
                         dbo.Centros ON dbo.Marcajes.Fk_centro = dbo.Centros.Codigo
						 LEFT OUTER JOIN Motivos_devolucion ON dbo.Marcajes.Fk_motivo=Motivos_devolucion.Codigo
						 LEFT OUTER JOIN V_Op ON dbo.Marcajes.SerieTipoDoc=''OP'' AND dbo.Marcajes.Serie=V_op.Fk_serie AND dbo.Marcajes.Numero=V_op.Numero
						 '
  GO
 
  IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperaciones]'))
  DROP VIEW [dbo].V_OpOperaciones
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperaciones]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpOperaciones] AS
 SELECT        dbo.Op_operaciones.Id, dbo.Op_operaciones.Fk_op, dbo.Op_operaciones.Fk_operacion, dbo.Op_operaciones.Desc_escandallo_operacion, dbo.Op_operaciones.Orden, dbo.Op_operaciones.Observaciones, 
						 dbo.Op_operaciones.Minutos, dbo.Op_operaciones.Tipo_tiempo, dbo.Operaciones.Descripcion AS Desc_operacion, dbo.Operaciones.Fk_grupo_operacion, dbo.Operaciones_grupos.Descripcion as Desc_grupo_operacion
FROM            dbo.Op_operaciones LEFT OUTER JOIN
						 dbo.Operaciones ON dbo.Op_operaciones.Fk_operacion = dbo.Operaciones.Codigo LEFT OUTER JOIN
						 dbo.Operaciones_grupos ON dbo.Operaciones.Fk_grupo_operacion = dbo.Operaciones_grupos.Codigo'

 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TratamientosAnaliticasLotes]'))
  DROP VIEW [dbo].V_TratamientosAnaliticasLotes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TratamientosAnaliticasLotes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TratamientosAnaliticasLotes] AS
 SELECT L.Fk_almacen,B.Descripcion as Desc_almacen,L.Fk_articulo,A.Descripcion as Desc_articulo,L.Lote,L.NumTratamientos,L.NumAnaliticas FROM
(
SELECT ISNULL(L.fk_almacen,C.fk_almacen) as Fk_almacen,
ISNULL(L.Fk_articulo,C.Fk_articulo) as Fk_articulo,
ISNULL(L.Lote,C.Lote) as Lote,
ISNULL(NumTratamientos,0) as NumTratamientos,
ISNULL(NumAnaliticas,0) as NumAnaliticas FROM 
(SELECT Fk_almacen,Fk_articulo,Lote,COUNT(Id) as NumTratamientos FROM V_LotesTratamientos  
GROUP BY Fk_almacen,Fk_articulo,Lote) AS L
FULL OUTER JOIN
(SELECT  Fk_almacen,Fk_articulo,Lote,COUNT(Id) as NumAnaliticas FROM V_Calidad C 
GROUP BY Fk_almacen,Fk_articulo,Lote) AS C
ON L.Fk_almacen=C.Fk_almacen AND L.Fk_articulo=C.Fk_articulo AND L.Lote=C.Lote)
L LEFT OUTER JOIN V_ArticulosSoloNombre A ON L.Fk_articulo=A.Codigo
LEFT OUTER JOIN Almacenes B ON L.Fk_almacen=B.Codigo
'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TratamientosAnaliticasLotes]'))
  DROP VIEW [dbo].V_TratamientosAnaliticasLotes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TratamientosAnaliticasLotes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TratamientosAnaliticasLotes] AS
 SELECT L.Fk_almacen,B.Descripcion as Desc_almacen,L.Fk_articulo,A.Descripcion as Desc_articulo,L.Lote,L.NumTratamientos,L.NumAnaliticas FROM
(
SELECT ISNULL(L.fk_almacen,C.fk_almacen) as Fk_almacen,
ISNULL(L.Fk_articulo,C.Fk_articulo) as Fk_articulo,
ISNULL(L.Lote,C.Lote) as Lote,
ISNULL(NumTratamientos,0) as NumTratamientos,
ISNULL(NumAnaliticas,0) as NumAnaliticas FROM 
(SELECT Fk_almacen,Fk_articulo,Lote,COUNT(Id) as NumTratamientos FROM V_LotesTratamientos  
GROUP BY Fk_almacen,Fk_articulo,Lote) AS L
FULL OUTER JOIN
(SELECT  Fk_almacen,Fk_articulo,Lote,COUNT(Id) as NumAnaliticas FROM V_Calidad C 
GROUP BY Fk_almacen,Fk_articulo,Lote) AS C
ON L.Fk_almacen=C.Fk_almacen AND L.Fk_articulo=C.Fk_articulo AND L.Lote=C.Lote)
L LEFT OUTER JOIN V_ArticulosSoloNombre A ON L.Fk_articulo=A.Codigo
LEFT OUTER JOIN Almacenes B ON L.Fk_almacen=B.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ParametrosAnalisis]'))
DROP VIEW [dbo].V_ParametrosAnalisis
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ParametrosAnalisis]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ParametrosAnalisis] AS
SELECT        P.Codigo, P.Descripcion, Tipo_valor, Observaciones, Valor_max, Valor_min, Bloqueado, Bloqueo, Fk_unidad
,U.Descripcion as Desc_unidad,U.Descripcion_breve Desc_breve_unidad,P.Num_decimales,P.Valor_por_defecto

FROM            dbo.Parametros_analisis P LEFT OUTER JOIN Unidades U ON P.Fk_unidad=U.Codigo'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalidadLineas]'))
  DROP VIEW [dbo].V_CalidadLineas
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalidadLineas]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CalidadLineas] AS
SELECT        dbo.V_Calidad.Fecha_hora, CONVERT(date, dbo.V_Calidad.Fecha_hora, 103) AS Fecha, CONVERT(varchar, dbo.V_Calidad.Fecha_hora, 108) AS Hora, dbo.V_Calidad.Fk_almacen, dbo.V_Calidad.Fk_articulo, 
                         dbo.V_Calidad.Fk_serie, dbo.V_Calidad.Numero, dbo.Calidad_lineas.Id, dbo.Calidad_lineas.Fk_parametro, dbo.V_ParametrosAnalisis.Descripcion AS Desc_parametro, dbo.V_ParametrosAnalisis.Tipo_valor, 
                         dbo.V_ParametrosAnalisis.Observaciones, dbo.V_ParametrosAnalisis.Valor_max, dbo.V_ParametrosAnalisis.Valor_min, dbo.Calidad_lineas.Valor, dbo.Calidad_lineas.Orden
						 , 
						 CASE WHEN ISNULL(Tipo_valor, 0) = 0 THEN Valor WHEN ISNULL(Tipo_valor, 0) = 1 AND (ISNULL(valor, '''') = '''') THEN ''0 %'' 
		WHEN ISNULL(Tipo_valor, 0) = 1 THEN ISNULL(valor,0) + '' %''
		 WHEN ISNULL(Tipo_valor, 0) = 2 THEN Valor 
		 WHEN ISNULL(Tipo_valor, 0) = 3  THEN CASE WHEN ISNULL(Valor, '''') = ''1'' THEN ''SI'' ELSE '' NO'' END 
		 END AS ValorFormateado
						 
						 , dbo.Calidad_lineas.Fk_cabecera, dbo.V_Calidad.Lote, 
                         dbo.V_Calidad.Desc_serie, dbo.V_Calidad.SerieTipoDoc, dbo.V_Calidad.SerieTipoMov, dbo.V_Calidad.NumeroMov, dbo.V_Calidad.Desc_articulo, dbo.V_Calidad.Desc_almacen, dbo.V_Calidad.Fk_persona, 
                         dbo.V_Calidad.Desc_persona, dbo.V_Calidad.Usuario, dbo.V_Calidad.Fecha_modif, dbo.V_Calidad.Cantidad, dbo.V_Calidad.Fk_seccion, dbo.V_Calidad.Desc_seccion, dbo.Calidad_lineas.Tipo_plantilla, 
                         dbo.Calidad_lineas.Fk_plantilla, dbo.Plantillas_calidad.Descripcion AS Desc_plantilla, dbo.Calidad_lineas.Obligatorio, dbo.Calidad_lineas.Tipo_obligatorio, dbo.Calidad_lineas.Fk_id_plantilla_calidad_lineas, 
                         dbo.Plantillas_calidad_lineas.Desc_ampliada, dbo.Calidad_lineas.Fk_articulo AS Fk_articulo_linea, A.Descripcion AS Desc_articulo_linea, dbo.Calidad_lineas.Fk_almacen AS Fk_almacen_linea, 
                         dbo.Almacenes.Descripcion AS Desc_almacen_linea, dbo.Calidad_lineas.num_linea_doc, dbo.Calidad_lineas.id_linea_doc, dbo.Plantillas_calidad_lineas.Nombre_grupo
						 ,
						  CASE WHEN (ISNUMERIC(valor) = 1 AND Tipo_valor IN (0,1,3))
						  THEN CONVERT(decimal(15, 6), REPLACE(REPLACE(Valor,''.'',''''), '','', ''.'')) 
						  ELSE CAST(NULL as decimal(15,3)) END AS Valor_numerico
						 , dbo.V_ParametrosAnalisis.Desc_unidad, dbo.V_ParametrosAnalisis.Desc_breve_unidad, 
                         dbo.V_ParametrosAnalisis.Num_decimales, dbo.V_ParametrosAnalisis.Valor_por_defecto, dbo.Plantillas_calidad_lineas.Valor_min AS Valor_min_plantilla, dbo.Plantillas_calidad_lineas.Valor_max AS Valor_max_plantilla, 
                         dbo.Plantillas_calidad.Imprimir_junto_a_docs, A.Codigo_secundario, A.Fk_articulo_agrupacion, A.Desc_articulo_agrupacion, A.Fk_color, A.Desc_color, dbo.Lotes.Fecha_lote, dbo.Lotes.Añada, dbo.Lotes.Lote_etiqueta, 
                         dbo.Almacenes.Tipo_almacen_analitico,dbo.Calidad_lineas.Observaciones as Obs_calidad_linea,dbo.Calidad_lineas.Conformidad,
						 CASE WHEN dbo.Calidad_lineas.Conformidad=1 THEN ''Conforme''
						 WHEN dbo.Calidad_lineas.Conformidad=0 THEN ''NO onforme''
						 ELSE  ''N/A'' END as Conformidad_descripcion
						 , dbo.V_Calidad.Serie_doc_ext, dbo.V_Calidad.Numero_doc_ext, dbo.V_Calidad.Fecha_doc_ext, dbo.V_Calidad.Codigo_persona_doc_ext, dbo.V_Calidad.Fk_tercero, dbo.V_Calidad.Desc_tercero
						 , (CASE WHEN Tipo_valor=4 THEN (SELECT Descripcion FROM Param_analisis_opciones WHERE Fk_parametro = Calidad_lineas.Fk_parametro AND Codigo_opcion=Calidad_lineas.Valor) ELSE Null END) AS DescValorOpcion
FROM            dbo.V_Calidad RIGHT OUTER JOIN
                         dbo.Calidad_lineas ON dbo.V_Calidad.Id = dbo.Calidad_lineas.Fk_cabecera LEFT OUTER JOIN
                         dbo.V_ParametrosAnalisis ON dbo.Calidad_lineas.Fk_parametro = dbo.V_ParametrosAnalisis.Codigo LEFT OUTER JOIN
                         dbo.Plantillas_calidad_lineas ON dbo.Calidad_lineas.Fk_id_plantilla_calidad_lineas = dbo.Plantillas_calidad_lineas.Id LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Calidad_lineas.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosNombre AS A ON dbo.Calidad_lineas.Fk_articulo = A.Codigo LEFT OUTER JOIN
                         dbo.Plantillas_calidad ON dbo.Plantillas_calidad_lineas.Fk_cabecera = dbo.Plantillas_calidad.Codigo LEFT OUTER JOIN
                         dbo.Lotes ON dbo.V_Calidad.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.V_Calidad.Lote = dbo.Lotes.Lote
'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Parametros]'))
  DROP VIEW [dbo].V_Parametros
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Parametros]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Parametros] AS
SELECT        TOP (1) dbo.Parametros.*, dbo.Paises.Id_iso2 AS Pais_id_iso2
FROM            dbo.Parametros LEFT OUTER JOIN
						 dbo.Paises ON dbo.Parametros.Codigo_pais = dbo.Paises.Id_isonum'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Activos]'))
  DROP VIEW [dbo].V_Activos
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Activos]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Activos] AS
SELECT        dbo.Activos.Codigo, dbo.Activos.Descripcion, dbo.Activos.Tipo_activo, dbo.Activos.Fk_familia,dbo.Familias_activos.Descripcion as Desc_familia, dbo.Activos.Serie_doc, dbo.Activos.Num_doc, dbo.Activos.Fecha_doc, dbo.Activos.Fecha_compra, dbo.Activos.Fecha_alta, 
                         dbo.Activos.Fecha_baja, dbo.Activos.Valor_compra, dbo.Activos.Valor_regularizado, dbo.Activos.Tipo_amortizacion, dbo.Activos.Cuenta_activo, dbo.Activos.Cuenta_amort_acumulada, 
                         dbo.Activos.Cuenta_dotacion_amort, dbo.Activos.Cuenta_beneficio_amort, dbo.Activos.Vida_util, dbo.Activos.Horas_turno, dbo.Activos.Turnos, dbo.Activos.Tasa_minima, dbo.Activos.Tasa_maxima, dbo.Activos.Tasa_actual, 
                         dbo.Activos.En_curso, dbo.Activos.Observaciones, dbo.Activos.Tags, dbo.Activos.Bloqueo, dbo.Activos.Tipo_activo_mobiliario, dbo.Activos.Tipo_activo_inmobiliario, dbo.Activos.Codigo_isin, 
                         dbo.Activos.Periodo_liquidacion_intereses, dbo.Activos.Fecha_vencimiento, dbo.Activos.Tipo_calculo, dbo.Activos.Fk_divisa_origen, dbo.Activos.Precio_compra, dbo.Activos.Precio_nominal, dbo.Activos.Cantidad, 
                         dbo.Activos.Valor_nominal, ESTADO.Importe_rev96, ESTADO.Importe_amortizacion_rev96, ESTADO.Importe_amortizado, ESTADO.Importe_pendiente,
						 ULTI.Fecha_hora as F_ultima_amortizacion,PRIME.Fecha_hora as F_primera_amortizacion
						  ,dbo.Activos.Fk_persona,  dbo.Activos.Numero_vencimientos, dbo.Activos.Fk_centro, 
                         dbo.Activos.Fk_empresa, dbo.Activos.Fk_serie_libro, dbo.Activos.Fk_numero_libro, dbo.V_PersonasSoloNombre.NombreCompleto, CC1.Descripcion AS Desc_cc_activo, CC2.Descripcion AS Desc_cc_amort_acumulada, 
                         CC3.Descripcion AS Desc_cc_dotacion_amort, CC4.Descripcion AS Desc_cc_beneficio_amort, CASE WHEN dbo.activos.Tipo_activo = 0 THEN ''Inmobiliario'' WHEN dbo.activos.tipo_activo = 1 THEN ''Mobiliario'' END AS Desc_tipo_activo, 
                         dbo.Divisas.Descripcion AS Desc_divisa, dbo.Empresas.Descripcion AS Desc_empresa, dbo.Centros.Descripcion AS Desc_centro, 
                         CASE WHEN dbo.activos.Tipo_activo_mobiliario = 1 THEN ''Aciones/Participaciones'' WHEN dbo.activos.Tipo_activo_mobiliario = 2 THEN ''Obligaciones'' WHEN dbo.activos.Tipo_activo_mobiliario = 3 THEN ''Bonos'' WHEN dbo.activos.Tipo_activo_mobiliario
                          = 4 THEN ''Cédulas'' WHEN dbo.activos.Tipo_activo_mobiliario = 5 THEN ''Pagarés'' WHEN dbo.activos.Tipo_activo_mobiliario = 6 THEN ''Derechos'' WHEN dbo.activos.Tipo_activo_mobiliario = 7 THEN ''Participaciones hipotecarias''
                          WHEN dbo.activos.Tipo_activo_mobiliario = 8 THEN ''Participaciones preferentes'' WHEN dbo.activos.Tipo_activo_mobiliario = 9 THEN ''Letras del tesoro'' WHEN dbo.activos.Tipo_activo_mobiliario = 10 THEN ''Opciones'' WHEN dbo.activos.Tipo_activo_mobiliario
                          = 11 THEN ''Futuros'' WHEN dbo.activos.Tipo_activo_mobiliario = 12 THEN ''Subyacentes'' END AS Desc_tipo_activo_mobiliario, 
                         CASE WHEN dbo.Activos.Tipo_activo_inmobiliario = 0 THEN ''Material'' WHEN dbo.Activos.Tipo_activo_inmobiliario = 1 THEN ''Inmaterial'' WHEN dbo.Activos.Tipo_activo_inmobiliario = 2 THEN ''Gastos establecimiento'' END AS Desc_tipo_activo_inmobiliario,
                          CASE WHEN dbo.Activos.Tipo_calculo = 0 THEN ''Porcentaje'' ELSE ''Precio cotización'' END AS Desc_tipo_calculo
						  ,dbo.Activos.Fk_activo_relacionado, dbo.Activos.Importe_maximo_subvencionable, dbo.Activos.porcentaje_subvencion, dbo.Activos.Id_activo_destino_subvencion, ACT2.Descripcion AS DescActivoDestinoSubvencion, dbo.Activos.Entidad_ordenante_subvencion, ENT.NombreCompleto AS DescEntidadOrdenanteSubvencion
						  ,dbo.Activos.Usuario_creacion,dbo.Activos.Usuario_modificacion,dbo.Activos.Fecha_creacion,dbo.Activos.Fecha_modificacion
						  ,dbo.Activos.Valor_venta, dbo.Activos.Valor_cta_1111, dbo.Activos.Valor_beneficio_perdida
FROM            dbo.Activos LEFT OUTER JOIN
                         dbo.Centros ON dbo.Activos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Activos.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Activos ACT2 ON dbo.Activos.Id_activo_destino_subvencion = ACT2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ENT ON dbo.Activos.Entidad_ordenante_subvencion = ENT.Codigo LEFT OUTER JOIN
                         dbo.Divisas ON dbo.Activos.Fk_divisa_origen = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.Familias_activos ON dbo.Activos.Fk_familia = dbo.Familias_activos.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Activos.Fk_persona = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC1 ON dbo.Activos.Cuenta_activo = CC1.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC2 ON dbo.Activos.Cuenta_amort_acumulada = CC2.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC3 ON dbo.Activos.Cuenta_dotacion_amort = CC3.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC4 ON dbo.Activos.Cuenta_beneficio_amort = CC4.Codigo LEFT OUTER JOIN
                             (SELECT        Fk_activo, SUM(CASE WHEN E_S = ''E'' THEN Importe ELSE - Importe END) AS Importe_pendiente, SUM(CASE WHEN SerieTipoDoc = ''A'' THEN Importe ELSE 0 END) AS Importe_amortizado, SUM(CASE WHEN SerieTipoDoc = ''R'' THEN Importe ELSE 0 END) AS Importe_rev96, SUM(CASE WHEN SerieTipoDoc = ''A96'' THEN Importe ELSE 0 END) AS Importe_amortizacion_rev96
                               FROM            dbo.Movs_inmovilizado
                               GROUP BY Fk_activo) AS ESTADO ON dbo.Activos.Codigo = ESTADO.Fk_activo
						 LEFT OUTER JOIN
						 (SELECT * FROM (Select fk_activo,Fecha_hora,row_number() over (
														   partition by Movs_inmovilizado.fk_Activo
															   order by Movs_inmovilizado.Fecha_hora desc) as rn FROM Movs_inmovilizado WHERE SerieTipoDoc = ''A''  ) Movs WHERE Movs.rn=1) AS ULTI ON dbo.Activos.Codigo=ULTI.Fk_activo
						LEFT OUTER JOIN
						 (SELECT * FROM (Select fk_activo,Fecha_hora,row_number() over (
														   partition by Movs_inmovilizado.fk_Activo
															   order by Movs_inmovilizado.Fecha_hora ASC) as rn FROM Movs_inmovilizado WHERE SerieTipoDoc = ''A''  ) Movs WHERE Movs.rn=1) AS PRIME ON dbo.Activos.Codigo=PRIME.Fk_activo

						 '
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesPendientes]'))
  DROP VIEW [dbo].V_OpOperacionesPendientes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesPendientes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpOperacionesPendientes] AS
SELECT        dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op_operaciones.Orden, dbo.Op.Fecha_inicio, dbo.Op.Fecha_fin, dbo.Op_operaciones.Fk_operacion, dbo.Operaciones.Descripcion AS DescOperacion, 
						 dbo.Op_operaciones.Fecha_cerrada, dbo.Op_operaciones.Id, dbo.Op.Fk_centro, dbo.Centros.Descripcion AS DescCentro, dbo.Op.Fk_articulo, dbo.Articulos.Descripcion AS DescArticulo, dbo.Op.Fk_persona, 
						 dbo.Personas.Razon_social AS DescPersona, dbo.Op.Id_auxiliar
FROM            dbo.Op INNER JOIN
						 dbo.Op_operaciones ON dbo.Op.Id = dbo.Op_operaciones.Fk_op INNER JOIN
						 dbo.Operaciones ON dbo.Op_operaciones.Fk_operacion = dbo.Operaciones.Codigo INNER JOIN
						 dbo.Centros ON dbo.Op.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Articulos ON dbo.Op.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
						 dbo.Personas ON dbo.Op.Fk_persona = dbo.Personas.Codigo
WHERE        (ISNULL(dbo.Op_operaciones.Fecha_cerrada, '''') = '''') AND (dbo.Op.Estado <= 2)'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesOperariosPendientes]'))
  DROP VIEW [dbo].V_OpOperacionesOperariosPendientes
  GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpOperacionesOperariosPendientes]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpOperacionesOperariosPendientes] AS
SELECT        dbo.V_OpOperacionesPendientes.*, dbo.Op_operaciones_operarios.Id AS Id_operaciones_operarios, dbo.Op_operaciones_operarios.Fk_op_operaciones, dbo.Op_operaciones_operarios.Fk_operario, 
						 dbo.Operarios.Nombre, dbo.Op_operaciones_operarios.Orden AS Orden_operaciones_operarios, dbo.Op_operaciones_operarios.Fecha_inicio AS Fecha_inicio_operaciones_operarios, dbo.V_OpOperacionesEstado.Estado_operacion
FROM            dbo.V_OpOperacionesPendientes INNER JOIN
						 dbo.Op_operaciones_operarios ON dbo.V_OpOperacionesPendientes.Id = dbo.Op_operaciones_operarios.Fk_op_operaciones INNER JOIN
						 dbo.Operarios ON dbo.Op_operaciones_operarios.Fk_operario = dbo.Operarios.Codigo INNER JOIN
                         dbo.V_OpOperacionesEstado ON dbo.V_OpOperacionesPendientes.Id = dbo.V_OpOperacionesEstado.Id_op_operaciones'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosCompra]'))
DROP VIEW [dbo].V_ContratosCompra
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosCompra]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ContratosCompra] AS
SELECT        dbo.Contratos_compra.Serie, dbo.Contratos_compra.Numero, dbo.Contratos_compra.Fecha_hora, dbo.Contratos_compra.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto, SUM(dbo.Contratos_compra_lineas.Cantidad) 
						 AS Cantidad, dbo.Contratos_compra.Total_factura
FROM            dbo.Contratos_compra INNER JOIN
						 dbo.Contratos_compra_lineas ON dbo.Contratos_compra.Serie = dbo.Contratos_compra_lineas.Serie AND dbo.Contratos_compra.Numero = dbo.Contratos_compra_lineas.Numero INNER JOIN
						 dbo.V_PersonasSoloNombre ON dbo.Contratos_compra.Codigo_persona = dbo.V_PersonasSoloNombre.Codigo
GROUP BY dbo.Contratos_compra.Serie, dbo.Contratos_compra.Numero, dbo.Contratos_compra.Fecha_hora, dbo.Contratos_compra.Fecha_prevista_entrega, dbo.Contratos_compra.Codigo_persona, dbo.V_PersonasSoloNombre.NombreCompleto, 
						 dbo.Contratos_compra.Total_factura'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosContratosCompra]'))
DROP VIEW [dbo].V_DocLinEstadosContratosCompra
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocLinEstadosContratosCompra]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocLinEstadosContratosCompra] AS
SELECT        Fk_centro, Tipo_doc, Id, Serie, Numero, Linea, Fk_articulo, Articulo_descripcion, Cantidad, Cantidad_asociada, Cantidad_anulada, Cantidad_pendiente, Pendiente, AsociadoTotal, AsociadoParcial, AnuladoTotal, 
						 AsociadoAnuladoTotal
FROM            dbo.V_DocLinEstados
WHERE        (Tipo_doc = ''CC'')'
GO


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompra]'))
DROP VIEW [dbo].ContratosCompra
GO
  IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompra]'))
  EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompra] AS
SELECT   ISNULL(dbo.Contratos_compra.Serie, '''') AS Serie, ISNULL(dbo.Contratos_compra.Numero, 0) AS Numero,dbo.Contratos_compra.Id, dbo.Contratos_compra.Fecha_hora, dbo.Contratos_compra.Fecha_hora_real, dbo.Contratos_compra.Codigo_persona, dbo.Contratos_compra.Divisa, dbo.Contratos_compra.Forma_pago, dbo.Contratos_compra.Forma_envio, 
             dbo.Contratos_compra.Dia_pago1, dbo.Contratos_compra.Dia_pago2, dbo.Contratos_compra.Dia_pago3, dbo.Contratos_compra.Codigo_direccion_fiscal, dbo.Contratos_compra.Codigo_direccion_envio, dbo.Contratos_compra.Codigo_transportista, dbo.Contratos_compra.Representante1, dbo.Contratos_compra.Representante2, 
             dbo.Contratos_compra.Dto_pp, dbo.Contratos_compra.Dto_esp, dbo.Contratos_compra.Su_referencia, dbo.Contratos_compra.Notas_internas, dbo.Contratos_compra.Notas_factura, dbo.Contratos_compra.Bloqueo, Personas_direcciones_1.Descripcion AS Dir_fiscal_desc, Personas_direcciones_1.Via_publica AS Dir_fiscal_via, 
             Personas_direcciones_1.Direccion AS Dir_fiscal_direccion, Personas_direcciones_1.Numero AS Dir_fiscal_numero, Personas_direcciones_1.Piso AS Dir_fiscal_piso, Personas_direcciones_1.Puerta AS Dir_fiscal_puerta, Personas_direcciones_1.Municipio AS Dir_fiscal_municipio, Personas_direcciones_1.Codigo_postal AS Dir_fiscal_cp, 
             Personas_direcciones_1.Comarca AS Dir_fiscal_comarca, Personas_direcciones_1.Provincia AS Dir_fiscal_provincia, Personas_direcciones_1.Pais AS Dir_fiscal_pais, dbo.Formas_de_pago.Descripcion AS Desc_forma_pago, dbo.Divisas.Descripcion_breve AS Desc_divisa, dbo.Divisas.Decimales_precio, 
             dbo.Formas_envio.Descripcion AS Desc_forma_envio, dbo.Contratos_compra.Matricula, dbo.V_Personas.NombreCompleto AS Nombre_cliente, V_Personas_2.NombreCompleto AS Nombre_transportista, V_Personas_3.NombreCompleto AS Nombre_representante1, V_Personas_1.NombreCompleto AS Nombre_representante2, 
             dbo.Contratos_compra.Total_factura, dbo.V_Personas.Identificacion AS Identificacion_cliente, dbo.Personas_direcciones.Descripcion AS Dir_envio_desc, dbo.Personas_direcciones.Via_publica AS Dir_envio_via, dbo.Personas_direcciones.Direccion AS Direccion_envio, dbo.Personas_direcciones.Numero AS Dir_envio_numero, 
             dbo.Personas_direcciones.Piso AS Dir_envio_piso, dbo.Personas_direcciones.Puerta AS Dir_envio_puerta, dbo.Personas_direcciones.Codigo_postal AS Dir_envio_cp, dbo.Personas_direcciones.Municipio AS Dir_envio_municipio, dbo.Personas_direcciones.Comarca AS Dir_envio_comarca, 
             dbo.Personas_direcciones.Provincia AS Dir_envio_provincia, dbo.Personas_direcciones.Pais AS Dir_envio_pais, dbo.Personas_direcciones.Warehouse AS Dir_envio_warehouse, dbo.Personas_direcciones.Rc AS Dir_envio_rc, dbo.Personas_direcciones.Cae AS Dir_envio_cae, dbo.V_Personas.Nuestro_cod_cliente, 
             dbo.V_Personas.Tags AS Tags_cliente, dbo.Centros.Descripcion AS Desc_centro, dbo.Series_contratos_compra.Descripcion AS Desc_serie, dbo.Contratos_compra.Fk_centro, dbo.Centros.Via_publica AS Centros_via_publica, dbo.Centros.Direccion AS Centros_direccion, dbo.Centros.Numero AS Centro_direccion_numero, 
             dbo.Centros.Puerta AS Centros_puerta, dbo.Centros.Municipio AS Centro_municipio, dbo.Centros.Codigo_postal AS Centro_codigo_postal, dbo.Centros.Provincia AS Centro_provincia, dbo.Centros.Pais AS Centro_pais, dbo.Centros.Telefono_1 AS Centro_telefono1, dbo.Centros.Telefono_2 AS Centro_telefono2, 
             dbo.Centros.Movil AS Centro_movil, dbo.Centros.Email1 AS Centro_email1, dbo.Centros.Email2 AS Centro_email2, dbo.Centros.Piso AS Centro_piso, dbo.Contratos_compra.Fecha_prevista_entrega, dbo.Contratos_compra.Valorado, A.Cantidad, A.Precio_medio, A.Numero_lineas, A.Importe_bruto, A.Importe_dto1, A.Importe_dto2, 
             A.Importe_comision1, A.Importe_comision2, A.Importe_base, A.Importe_iva, A.Importe_recargo, A.Importe_irpf, A.Estado_asociado, dbo.Portes.Descripcion AS desc_portes, dbo.Contratos_compra.Fecha_inicio, dbo.Contratos_compra.Fecha_fin, dbo.Contratos_compra.Tipo_precio, dbo.fn_GetTipoPrecioDesc(dbo.Contratos_compra.Tipo_precio) 
             AS Tipo_precio_descripcion, dbo.Contratos_compra.Persona_contacto, dbo.Contratos_compra.Fecha_modificacion, dbo.Contratos_compra.Usuario_creacion, dbo.Contratos_compra.Usuario_modificacion, dbo.Contratos_compra.Fecha_creacion, dbo.Contratos_compra.Fk_empresa, dbo.Contratos_compra.Desc_incoterm_extension, 
             dbo.Contratos_compra.Fk_incoterm, dbo.Incoterm.Descripcion AS Desc_incoterm, dbo.V_Personas.Idioma_reportes, dbo.Contratos_compra.Tipo_contrato, dbo.Contratos_compra.Estado_contrato
			  , V_FirmasEstados.Num_firmas_realizadas, V_FirmasEstados.Num_firmas_necesarias, V_FirmasEstados.Num_firmas_pendientes, V_FirmasEstados.Firma_completa
			  ,dbo.Contratos_compra.Fk_seccion,SEC.Descripcion as Desc_seccion, dbo.Contratos_compra.Fk_campanya,CAMP.Descripcion as Desc_campaña
FROM     dbo.V_Personas RIGHT OUTER JOIN
             dbo.V_Personas AS V_Personas_3 RIGHT OUTER JOIN
             dbo.V_Personas AS V_Personas_1 RIGHT OUTER JOIN
             dbo.Personas_direcciones RIGHT OUTER JOIN
             dbo.Contratos_compra LEFT OUTER JOIN
             dbo.Portes ON dbo.Contratos_compra.Porte = dbo.Portes.Codigo LEFT OUTER JOIN
             dbo.Series_contratos_compra ON dbo.Contratos_compra.Serie = dbo.Series_contratos_compra.Serie LEFT OUTER JOIN
             dbo.Centros ON dbo.Contratos_compra.Fk_centro = dbo.Centros.Codigo ON dbo.Personas_direcciones.Codigo = dbo.Contratos_compra.Codigo_direccion_envio ON V_Personas_1.Codigo = dbo.Contratos_compra.Representante2 ON V_Personas_3.Codigo = dbo.Contratos_compra.Representante1 LEFT OUTER JOIN
             dbo.V_Personas AS V_Personas_2 ON dbo.Contratos_compra.Codigo_transportista = V_Personas_2.Codigo ON dbo.V_Personas.Codigo = dbo.Contratos_compra.Codigo_persona LEFT OUTER JOIN
             dbo.Personas_direcciones AS Personas_direcciones_1 ON dbo.Contratos_compra.Codigo_direccion_fiscal = Personas_direcciones_1.Codigo LEFT OUTER JOIN
             dbo.Formas_de_pago ON dbo.Contratos_compra.Forma_pago = dbo.Formas_de_pago.Codigo LEFT OUTER JOIN
             dbo.Formas_envio ON dbo.Contratos_compra.Forma_envio = dbo.Formas_envio.Codigo LEFT OUTER JOIN
             dbo.Divisas ON dbo.Contratos_compra.Divisa = dbo.Divisas.Codigo LEFT OUTER JOIN
             dbo.Incoterm ON dbo.Incoterm.Codigo = dbo.Contratos_compra.Fk_incoterm LEFT OUTER JOIN
						 dbo.Secciones SEC ON dbo.Contratos_compra.Fk_seccion=SEC.Codigo LEFT OUTER JOIN
						 dbo.Campañas CAMP ON dbo.Contratos_compra.Fk_campanya=CAMP.Codigo LEFT OUTER JOIN
			 V_FirmasEstados ON V_FirmasEstados.SerieTipoDoc = ''OP'' AND dbo.Contratos_compra.Serie = V_FirmasEstados.Serie AND dbo.Contratos_compra.Numero = V_FirmasEstados.Numero LEFT OUTER JOIN 
             (SELECT   dbo.Contratos_compra_lineas.Serie, dbo.Contratos_compra_lineas.Numero, SUM(dbo.Contratos_compra_lineas.Cantidad) AS Cantidad, CASE WHEN SUM(ISNULL(dbo.Contratos_compra_lineas.Cantidad, 0)) = 0 THEN 0 ELSE (SUM(ISNULL(dbo.Contratos_compra_lineas.Importe_bruto, 0)) 
                              / SUM(ISNULL(dbo.Contratos_compra_lineas.Cantidad, 0))) END AS Precio_medio, COUNT(dbo.Contratos_compra_lineas.Linea) AS Numero_lineas, SUM(dbo.Contratos_compra_lineas.Importe_bruto) AS Importe_bruto, SUM(dbo.Contratos_compra_lineas.Importe_dto1) AS Importe_dto1, 
                              SUM(dbo.Contratos_compra_lineas.Importe_dto2) AS Importe_dto2, SUM(dbo.Contratos_compra_lineas.Importe_comision1) AS Importe_comision1, SUM(dbo.Contratos_compra_lineas.Importe_comision2) AS Importe_comision2, SUM(dbo.Contratos_compra_lineas.Importe_base) AS Importe_base, 
                              SUM(dbo.Contratos_compra_lineas.Importe_iva) AS Importe_iva, SUM(dbo.Contratos_compra_lineas.Importe_recargo) AS Importe_recargo, CASE WHEN SUM(dbo.V_DocLinEstadosContratosCompra.Pendiente) = COUNT(dbo.V_DocLinEstadosContratosCompra.Linea) 
                              THEN 0 WHEN SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoTotal) = COUNT(dbo.V_DocLinEstadosContratosCompra.Linea) THEN 1 WHEN SUM(dbo.V_DocLinEstadosContratosCompra.AnuladoTotal) = COUNT(dbo.V_DocLinEstadosContratosCompra.Linea) 
                              THEN 3 WHEN SUM(dbo.V_DocLinEstadosContratosCompra.Pendiente) + SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoTotal) + SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoParcial) = COUNT(dbo.V_DocLinEstadosContratosCompra.Linea) THEN 2 WHEN SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoTotal) 
                              + SUM(dbo.V_DocLinEstadosContratosCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoAnuladoTotal) = COUNT(dbo.V_DocLinEstadosContratosCompra.Linea) THEN 4 WHEN (SUM(dbo.V_DocLinEstadosContratosCompra.Pendiente) + SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoParcial)) 
                              > 0 AND (SUM(dbo.V_DocLinEstadosContratosCompra.AnuladoTotal) + SUM(dbo.V_DocLinEstadosContratosCompra.AsociadoAnuladoTotal)) > 0 THEN 5 ELSE 6 END AS Estado_asociado, SUM(dbo.Contratos_compra_lineas.Importe_irpf) AS Importe_irpf
                 FROM     dbo.Contratos_compra_lineas LEFT OUTER JOIN
                dbo.V_DocLinEstadosContratosCompra ON dbo.Contratos_compra_lineas.Id = dbo.V_DocLinEstadosContratosCompra.Id
                 GROUP BY dbo.Contratos_compra_lineas.Serie, dbo.Contratos_compra_lineas.Numero) AS A ON dbo.Contratos_compra.Serie = A.Serie AND dbo.Contratos_compra.Numero = A.Numero'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineas]'))
DROP VIEW [dbo].ContratosCompraLineas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineas] AS
SELECT        CONVERT(date, dbo.Contratos_compra.Fecha_hora, 103) AS Fecha, dbo.Contratos_compra.Codigo_persona, dbo.V_Personas.NombreCompleto, dbo.Contratos_compra_lineas.Id, dbo.Contratos_compra_lineas.Serie,  dbo.Contratos_compra_lineas.Grado_oficial, dbo.Contratos_compra_lineas.Grado,
						dbo.Contratos_compra_lineas.Numero, dbo.Contratos_compra_lineas.Linea, dbo.Contratos_compra_lineas.Fk_articulo, dbo.Contratos_compra_lineas.Articulo_descripcion, dbo.Contratos_compra_lineas.No_inventariable, 
						dbo.Contratos_compra_lineas.Fk_articulo_kit, dbo.Contratos_compra_lineas.Linea_kit, dbo.Contratos_compra_lineas.Precio_coste_articulo, dbo.Contratos_compra_lineas.Precio_bruto, dbo.Contratos_compra_lineas.Precio_neto, 
						dbo.Contratos_compra_lineas.Bultos, dbo.Contratos_compra_lineas.Cantidad, dbo.Contratos_compra_lineas.Importe_bruto, dbo.Contratos_compra_lineas.Imp_dto_pp, dbo.Contratos_compra_lineas.Imp_dto_esp, 
						dbo.Contratos_compra_lineas.Tipo_calculo_dto1, dbo.Contratos_compra_lineas.Valor_dto1, dbo.Contratos_compra_lineas.Importe_dto1, dbo.Contratos_compra_lineas.Tipo_calculo_dto2, dbo.Contratos_compra_lineas.Aplicacion_dto2, 
						dbo.Contratos_compra_lineas.Valor_dto2, dbo.Contratos_compra_lineas.Importe_dto2, dbo.Contratos_compra_lineas.Tipo_calculo_comisiones, dbo.Contratos_compra_lineas.Valor_comision1, 
						dbo.Contratos_compra_lineas.Importe_comision1, dbo.Contratos_compra_lineas.Valor_comision2, dbo.Contratos_compra_lineas.Importe_comision2, dbo.Contratos_compra_lineas.Importe_base, dbo.Contratos_compra_lineas.Valor_iva, 
						dbo.Contratos_compra_lineas.Importe_iva, dbo.Contratos_compra_lineas.Valor_recargo, dbo.Contratos_compra_lineas.Importe_recargo, dbo.Contratos_compra_lineas.Valor_irpf, dbo.Contratos_compra_lineas.Importe_irpf, 
						dbo.Contratos_compra_lineas.Importe_otros_impuestos, dbo.Contratos_compra_lineas.Importe_total_linea, dbo.Contratos_compra_lineas.Centro_analitico1, dbo.Contratos_compra_lineas.Centro_analitico2, 
						dbo.Contratos_compra_lineas.Codigo_iva, dbo.Contratos_compra_lineas.Aplicacion_irpf, dbo.Contratos_compra_lineas.Tipo_doc_asociado, dbo.Contratos_compra_lineas.Serie_doc_asociado, 
						dbo.Contratos_compra_lineas.Numero_doc_asociado, dbo.Contratos_compra_lineas.Id_doc_asociado, dbo.Contratos_compra_lineas.Cantidad_anulada, dbo.Contratos_compra_lineas.Anular_restante, 
						dbo.Contratos_compra_lineas.Observaciones, dbo.Contratos_compra_lineas.Observaciones_internas, dbo.Contratos_compra_lineas.Orden, dbo.Contratos_compra_lineas.Promocion, dbo.Contratos_compra_lineas.PVP, dbo.Contratos_compra_lineas.Importe_impuestos_incluidos, 
						dbo.Contratos_compra_lineas.Importe_neto, dbo.Contratos_compra_lineas.Tarifa_iva_incluido, dbo.Contratos_compra_lineas.Precio_tarifa, dbo.Contratos_compra_lineas.Precio_con_dtos_linea, dbo.V_ArticulosNombre.Aux_codigo, 
						dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion,Contratos_compra_lineas.TinaAlmacenaje,Contratos_compra_lineas.NumCualificacion,Contratos_compra_lineas.SistemaExtraccion,Contratos_compra_lineas.Procedencia,Contratos_compra_lineas.OtrosBaixos
						, CASE WHEN ESTADOS.AsociadoAnuladoTotal=1 AND Pendiente=1 THEN 5
						 WHEN ESTADOS.Pendiente=1  THEN 0 
						 WHEN ESTADOS.AsociadoTotal=1 THEN 1 
						 WHEN ESTADOS.AnuladoTotal=1 THEN 3 
						 WHEN ESTADOS.AsociadoParcial=1 THEN 2
						 WHEN ESTADOS.AsociadoAnuladoTotal=1 THEN 4
						 ELSE 6 END AS Estado_asociado
FROM            dbo.Contratos_compra_lineas INNER JOIN
						dbo.V_ArticulosNombre ON dbo.Contratos_compra_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo INNER JOIN
						dbo.Contratos_compra ON dbo.Contratos_compra_lineas.Serie = dbo.Contratos_compra.Serie AND dbo.Contratos_compra_lineas.Numero = dbo.Contratos_compra.Numero LEFT OUTER JOIN
						dbo.V_Personas ON dbo.Contratos_compra.Codigo_persona = dbo.V_Personas.Codigo
						LEFT OUTER JOIN V_DocLinEstadosContratosCompra ESTADOS ON dbo.Contratos_compra_lineas.Id=ESTADOS.Id
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasImpuestos]'))
DROP VIEW [dbo].ContratosCompraLineasImpuestos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineasImpuestos] AS
SELECT        dbo.Contratos_compra_lineas_impuestos.Id, dbo.Contratos_compra_lineas_impuestos.fk_Id_linea, dbo.Contratos_compra_lineas_impuestos.Codigo_impuesto, dbo.Contratos_compra_lineas_impuestos.Cantidad, 
						 dbo.Contratos_compra_lineas_impuestos.Tipo_valor, dbo.Contratos_compra_lineas_impuestos.Valor_impuesto, dbo.Contratos_compra_lineas_impuestos.Importe_base, dbo.Contratos_compra_lineas_impuestos.Codigo_iva, 
						 dbo.Contratos_compra_lineas_impuestos.Valor_iva, dbo.Contratos_compra_lineas_impuestos.Importe_iva, dbo.Contratos_compra_lineas_impuestos.Valor_recargo, dbo.Contratos_compra_lineas_impuestos.Importe_recargo, 
						 dbo.Contratos_compra_lineas_impuestos.Valor_irpf, dbo.Contratos_compra_lineas_impuestos.Importe_irpf, dbo.Contratos_compra_lineas_impuestos.Aplicacion_irpf, dbo.Contratos_compra_lineas_impuestos.Importe_total, 
						 dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto, dbo.Impuestos.Tipo_impuesto, dbo.Contratos_compra_lineas.Serie, dbo.Contratos_compra_lineas.Numero
FROM            dbo.Contratos_compra_lineas RIGHT OUTER JOIN
						 dbo.Contratos_compra_lineas_impuestos ON dbo.Contratos_compra_lineas.Id = dbo.Contratos_compra_lineas_impuestos.fk_Id_linea LEFT OUTER JOIN
						 dbo.Impuestos_tipos RIGHT OUTER JOIN
						 dbo.Impuestos ON dbo.Impuestos_tipos.Codigo = dbo.Impuestos.Codigo ON dbo.Contratos_compra_lineas_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasIvasImpuestos]'))
DROP VIEW [dbo].ContratosCompraLineasIvasImpuestos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasIvasImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineasIvasImpuestos] AS
SELECT        Serie, Numero, Codigo_iva, SUM(Importe_base) AS Importe_base, SUM(Imp_dto_pp) AS Imp_dto_pp, SUM(Imp_dto_esp) AS Imp_dto_esp, Valor_iva, SUM(Importe_iva) AS Importe_iva, Valor_recargo, 
						 SUM(Importe_recargo) AS Importe_recargo, Valor_irpf, SUM(Importe_irpf) AS Importe_irpf, SUM(Importe_otros_impuestos) AS Importe_otros_impuestos, SUM(Importe_total_linea) AS Importe_total_linea, 
						 SUM(Importe_bruto) AS Importe_bruto
FROM            dbo.Contratos_compra_lineas AS iva
GROUP BY Serie, Numero, Codigo_iva, Valor_iva, Valor_recargo, Valor_irpf
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasLotes]'))
DROP VIEW [dbo].ContratosCompraLineasLotes
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineasLotes]
AS
SELECT CCLL.Id, CCLL.fk_Id_linea, CCL.Fk_articulo, CCLL.Almacen, CCLL.Lote, CCLL.Lote_etiqueta, CCLL.Precio_coste_lote, CCLL.Cantidad, AL.Descripcion AS Desc_almacen, CCL.Serie, CCL.Numero, CCLL.Grado, CCLL.Añada, 
CCLL.Fecha_caducidad, CCLL.Fecha_consumo_preferente, CCLL.Fecha_lote
, LL.Fecha_lote AS LL_Fecha_lote, LL.Lote_etiqueta AS LL_Lote_etiqueta, LL.Añada AS LL_Añada, LL.Fecha_caducidad AS LL_Fecha_caducidad, LL.Fecha_consumo_preferente AS LL_Fecha_consumo_preferente
, LL.Grado AS LL_Grado, LL.Tipo_lote AS LL_Tipo_lote, LL.Grado_oficial AS LL_Grado_oficial, LL.Lote_granel AS LL_Lote_granel, LL.Fk_persona AS LL_Fk_persona, LL.Fk_ficha_tecnica AS LL_Fk_ficha_tecnica
, LL.Observaciones AS LL_Observaciones, LL.Fk_proveedor AS LL_Fk_proveedor, LL.Bloqueado AS LL_Bloqueado, LL.Fecha_bloqueo AS LL_Fecha_bloqueo, LL.Usuario_bloqueo AS LL_Usuario_bloqueo
, LL.Rendimiento AS LL_Rendimiento, LL.Observaciones_internas AS LL_Observaciones_internas
FROM Lotes AS LL 
RIGHT OUTER JOIN Contratos_compra_lineas AS CCL 
ON LL.Fk_articulo = CCL.Fk_articulo 
RIGHT OUTER JOIN Contratos_compra_lineas_lotes AS CCLL 
ON LL.Lote = CCLL.Lote 
AND CCL.Id = CCLL.fk_Id_linea 
LEFT OUTER JOIN Almacenes AS AL 
ON CCLL.Almacen = AL.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasLotesVariedades]'))
DROP VIEW [dbo].ContratosCompraLineasLotesVariedades
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasLotesVariedades]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineasLotesVariedades]
AS
SELECT        CCL.Id AS Id_pedido_compra_linea, CCL.Serie, CCL.Numero, CCLL.Id AS Id_contrato_compra_linea_lote, CCL.Fk_articulo AS Fk_articulo_pedido, CCL.Articulo_descripcion AS Articulo_descripcion_pedido, LLVV.Id AS Id_lote_variedad, 
                         LLVV.Fk_articulo AS Fk_articulo_variedad, dbo.V_ArticulosNombre.Descripcion AS Descripcion_variedad, LLVV.Proporcion
FROM            dbo.Contratos_compra_lineas_lotes AS CCLL INNER JOIN
                         dbo.Lotes AS LL INNER JOIN
                         dbo.Contratos_compra_lineas AS CCL ON LL.Fk_articulo = CCL.Fk_articulo INNER JOIN
                         dbo.Lotes_variedades AS LLVV INNER JOIN
                         dbo.V_ArticulosNombre ON LLVV.Fk_articulo = dbo.V_ArticulosNombre.Codigo ON LL.Id = LLVV.Fk_id_lote ON CCLL.Lote = LL.Lote AND CCLL.fk_Id_linea = CCL.Id
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_RegularizacionSaldoLinea]'))
DROP VIEW [dbo].V_RegularizacionSaldoLinea
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_RegularizacionSaldoLinea]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_RegularizacionSaldoLinea] AS
SELECT        dbo.Regularizacion_saldo_linea.Id, dbo.Regularizacion_saldo_linea.Fk_cabecera, dbo.Regularizacion_saldo_linea.Fk_asientos_cc, dbo.Regularizacion_saldo_linea.Fk_asientos_cc_contrapartida, 
						 dbo.Regularizacion_saldo_linea.Cantidad_saldo, dbo.Regularizacion_saldo_linea.Observaciones, dbo.Regularizacion_saldo_linea.Numero_linea, dbo.Regularizacion_saldo_linea.Generada_automaticamente, 
						 dbo.Regularizacion_saldo_cabecera.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Regularizacion_saldo_cabecera.Serie, dbo.Regularizacion_saldo_cabecera.Id AS IdCabecera, 
						 dbo.Regularizacion_saldo_cabecera.Numero, dbo.Regularizacion_saldo_cabecera.Fecha, dbo.Asientos_cuentas_contables.Descripcion AS DescCC, dbo.Asientos_cuentas_contables.Descripcion AS DescCCContrapartida, 
						 dbo.Asientos_cuentas_contables.Codigo
FROM            dbo.Regularizacion_saldo_linea INNER JOIN
						 dbo.Regularizacion_saldo_cabecera ON dbo.Regularizacion_saldo_linea.Fk_cabecera = dbo.Regularizacion_saldo_cabecera.Id INNER JOIN
						 dbo.Asientos_cuentas_contables ON dbo.Regularizacion_saldo_linea.Fk_asientos_cc = dbo.Asientos_cuentas_contables.Codigo INNER JOIN
						 dbo.Centros ON dbo.Regularizacion_saldo_cabecera.Fk_centro = dbo.Centros.Codigo INNER JOIN
						 dbo.Asientos_cuentas_contables AS Asientos_cuentas_contables_contrapartida ON dbo.Regularizacion_saldo_linea.Fk_asientos_cc_contrapartida = Asientos_cuentas_contables_contrapartida.Codigo
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosEAN]'))
DROP VIEW [dbo].V_ArticulosEAN
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosEAN]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosEAN] AS
SELECT    dbo.Articulos.Codigo + ISNULL(dbo.Articulos_codigos_barras.Codigo,'''') as Id, dbo.Articulos.Codigo, dbo.Articulos.Entrada_web,dbo.Articulos.Descripcion, dbo.Articulos.Tarifa1, dbo.Articulos.Tarifa2, dbo.Articulos.Tarifa3, dbo.Articulos.Tarifa4, dbo.Articulos.Tarifa5, dbo.Articulos.Tarifa6, dbo.Articulos.Tarifa7, 
						 dbo.Articulos.Tarifa8, dbo.Articulos.Tarifa9, dbo.Articulos.Tarifa10, dbo.Articulos_codigos_barras.Cantidad, dbo.Articulos_codigos_barras.Tipo_codigo, dbo.Articulos_codigos_barras.Codigo AS CodigoEAN, 
						 dbo.Articulos.Fecha_act_tarifa2, dbo.Articulos.Fecha_act_tarifa3, dbo.Articulos.Fecha_act_tarifa1, dbo.Articulos.Fecha_act_tarifa4, dbo.Articulos.Fecha_act_tarifa5, dbo.Articulos.Fecha_act_tarifa7, 
						 dbo.Articulos.Fecha_act_tarifa8, dbo.Articulos.Fecha_act_tarifa6, dbo.Articulos.Fecha_act_tarifa9, dbo.Articulos.Fecha_act_tarifa10,dbo.Articulos.Cantidad_por_bulto, dbo.Articulos.Estado_inventario, dbo.Articulos.Estado, dbo.Articulos.Estado_tpv
FROM            dbo.Articulos LEFT OUTER JOIN
						 dbo.Articulos_codigos_barras ON dbo.Articulos.Codigo = dbo.Articulos_codigos_barras.Fk_articulo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosCompraEstados]'))
DROP VIEW [dbo].V_ContratosCompraEstados
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ContratosCompraEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ContratosCompraEstados] AS
SELECT        v.Serie, v.Numero, v.Su_referencia, v.Fecha_hora, v.Codigo_persona, v.Total_factura, v.Fk_centro,
							 (SELECT        CASE WHEN SUM(Pendiente) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosCompra
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Pendiente,
							 (SELECT        CASE WHEN SUM(AsociadoParcial) > 0 THEN 1 ELSE 0 END AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosCompra
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS AsociadoParcial,
							 (SELECT        ISNULL(SUM(Cantidad), 0) AS Expr1
							   FROM            dbo.Alb_compra_lineas
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad,
							 (SELECT        ISNULL(SUM(Cantidad_anulada), 0) AS Expr1
							   FROM            dbo.Alb_compra_lineas AS Alb_compra_lineas_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_anulada,
							 (SELECT        ISNULL(SUM(Cantidad_asociada), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosCompra
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_asociada,
							 (SELECT        ISNULL(SUM(Cantidad_pendiente), 0) AS Expr1
							   FROM            dbo.V_DocLinEstadosContratosCompra AS V_DocLinEstadosContratosCompra_1
							   WHERE        (Serie = v.Serie) AND (Numero = v.Numero)) AS Cantidad_pendiente, dbo.V_Personas.NombreCompleto
FROM            dbo.Contratos_compra AS v INNER JOIN
						 dbo.V_Personas ON v.Codigo_persona = dbo.V_Personas.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Operarios]'))
DROP VIEW [dbo].V_Operarios
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Operarios]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Operarios] AS
SELECT        dbo.Operarios.Codigo, dbo.Operarios.Nombre, dbo.Operarios.Matricula, dbo.Operarios.Fecha_antiguedad, dbo.Operarios.Identificacion, dbo.Operarios.Fk_categoria_profesional, dbo.Operarios.Contrasenya, 
                         dbo.Operarios.Direccion, dbo.Operarios.Fk_municipio, dbo.Operarios.Codigo_postal, dbo.Operarios.Fk_comarca, dbo.Operarios.Fk_provincia, dbo.Operarios.Fk_pais, dbo.Operarios.Telefono_empresa, dbo.Operarios.Extension, 
                         dbo.Operarios.Telefono_particular, dbo.Operarios.Email_empresa, dbo.Operarios.Email_particular, dbo.Operarios.Notas, dbo.Operarios.Notas_internas, dbo.Operarios.Fk_centro, dbo.Operarios.Fk_empresa, 
                         dbo.Operarios.Fk_cargo, dbo.Categorias_profesionales.Descripcion AS Categoria_profesional, dbo.Centros.Descripcion AS Centro, dbo.Empresas.Descripcion AS Empresa, dbo.Municipios.Descripcion AS Municipio, 
                         dbo.Comarcas.Descripcion AS Comarca, dbo.Provincias.Descripcion AS Provincia, dbo.Cargo.Descripcion AS Cargo, dbo.Operarios.Precio_hora, dbo.Operarios.Id_fichaje, dbo.Operarios.Pwd_fichaje, 
                         dbo.Operarios.Card_id_fichaje, dbo.Operarios.Num_afiliacion_ss, dbo.Operarios.Fk_perfil_jornada, dbo.Perfiles_jornadas.Descripcion AS DescPerfilJornada, dbo.Operarios.Fk_proyecto, 
                         dbo.Proyecto.Descripcion AS DescProyecto, dbo.Operarios.Fk_tipo_indicencia, dbo.Tipo_incidencia.Descripcion AS DescTipoIncidencia, dbo.Operarios.Fk_tipo_contrato, 
                         dbo.Tipos_contrato.Descripcion AS DescTipoContrato,dbo.Operarios.Fk_departamento,DEP.Descripcion as Desc_departamento,dbo.Operarios.Fecha_baja
						 ,dbo.Operarios.Grupo_cotizacion,dbo.Operarios.Horas_semanales,dbo.Operarios.Horas_complementarias,dbo.Operarios.Horas_comp_voluntarias,dbo.Operarios.Taquilla
						 ,dbo.Operarios.Supervisor,dbo.Operarios.Cp_fraccion_minutos,dbo.Operarios.Cp_desprecio_primeros_minutos,dbo.Operarios.No_despreciar_minutos
						 ,dbo.Operarios.Usuario_cdseinfco
FROM            dbo.Operarios LEFT OUTER JOIN
                         dbo.Tipos_contrato ON dbo.Operarios.Fk_tipo_contrato = dbo.Tipos_contrato.Codigo LEFT OUTER JOIN
                         dbo.Tipo_incidencia ON dbo.Operarios.Fk_tipo_indicencia = dbo.Tipo_incidencia.Codigo LEFT OUTER JOIN
                         dbo.Proyecto ON dbo.Operarios.Fk_proyecto = dbo.Proyecto.Codigo LEFT OUTER JOIN
                         dbo.Provincias ON dbo.Operarios.Fk_provincia = dbo.Provincias.Codigo LEFT OUTER JOIN
                         dbo.Municipios ON dbo.Operarios.Fk_municipio = dbo.Municipios.Id LEFT OUTER JOIN
                         dbo.Perfiles_jornadas ON dbo.Operarios.Fk_perfil_jornada = dbo.Perfiles_jornadas.Id LEFT OUTER JOIN
                         dbo.Categorias_profesionales ON dbo.Operarios.Fk_categoria_profesional = dbo.Categorias_profesionales.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Operarios.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Operarios.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Comarcas ON dbo.Operarios.Fk_comarca = dbo.Comarcas.Codigo LEFT OUTER JOIN
                         dbo.Cargo ON dbo.Operarios.Fk_cargo = dbo.Cargo.Codigo LEFT OUTER JOIN
						 dbo.Departamentos DEP ON dbo.operarios.Fk_departamento=DEP.Id'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsInmovilizado]'))
DROP VIEW [dbo].V_MovsInmovilizado
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsInmovilizado]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MovsInmovilizado] AS
SELECT        dbo.Movs_inmovilizado.Id, dbo.Movs_inmovilizado.E_S, dbo.Movs_inmovilizado.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa, dbo.Movs_inmovilizado.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, 
						 dbo.Movs_inmovilizado.SerieTipoDoc, dbo.Movs_inmovilizado.Fk_tipo_mov, dbo.Tipos_mov_inmovilizado.Descripcion AS Desc_tipo_mov, dbo.Movs_inmovilizado.Numero, dbo.Movs_inmovilizado.Fecha_hora,
						  dbo.Movs_inmovilizado.Fecha_hora_real, dbo.Movs_inmovilizado.Fk_activo, dbo.Activos.Descripcion AS Desc_activo, dbo.Movs_inmovilizado.Fk_cc_activo, 
						 Asientos_cuentas_contables_2.Descripcion AS Desc_cc_activo, dbo.Movs_inmovilizado.Fk_cc_amort_acumulada, Asientos_cuentas_contables_1.Descripcion AS Desc_cc_amort_acumulada, 
						 dbo.Movs_inmovilizado.Fk_cc_dotacion_amort, dbo.Asientos_cuentas_contables.Descripcion AS Desc_cc_dotacion_amort, dbo.Movs_inmovilizado.Importe, dbo.Movs_inmovilizado.Fecha_integracion
						  ,Fecha_contabilizacion, Usuario_contabilizacion,Fk_asiento_contabilizacion,ASI.numero_asiento as Numero_asiento
						 ,CASE WHEN  dbo.Movs_inmovilizado.E_S=''E''THEN Importe ELSE -Importe END AS ImporteConSigno
						 ,CASE WHEN dbo.Movs_inmovilizado.SerieTipoDoc=''A''THEN ''Amortización''
						 WHEN dbo.Movs_inmovilizado.SerieTipoDoc=''C''THEN ''Compra''
						 WHEN dbo.Movs_inmovilizado.SerieTipoDoc=''R''THEN ''Revalorización''
						  END as Desc_SerieTipoDoc,dbo.Activos.Fecha_alta,dbo.Activos.Fecha_compra
FROM            dbo.Movs_inmovilizado LEFT OUTER JOIN
						 dbo.Centros ON dbo.Movs_inmovilizado.Fk_centro = dbo.Centros.Codigo  LEFT OUTER JOIN
						 dbo.Tipos_mov_inmovilizado ON dbo.Movs_inmovilizado.Fk_tipo_mov = dbo.Tipos_mov_inmovilizado.Codigo  LEFT OUTER JOIN
						 dbo.Activos ON dbo.Movs_inmovilizado.Fk_activo = dbo.Activos.Codigo LEFT OUTER JOIN
						 dbo.Asientos_cuentas_contables ON dbo.Movs_inmovilizado.Fk_cc_dotacion_amort = dbo.Asientos_cuentas_contables.Codigo LEFT OUTER JOIN
						 dbo.Asientos_cuentas_contables AS Asientos_cuentas_contables_1 ON dbo.Movs_inmovilizado.Fk_cc_amort_acumulada = Asientos_cuentas_contables_1.Codigo LEFT OUTER JOIN
						 dbo.Asientos_cuentas_contables AS Asientos_cuentas_contables_2 ON dbo.Movs_inmovilizado.Fk_cc_activo = Asientos_cuentas_contables_2.Codigo LEFT OUTER JOIN
						 dbo.Empresas ON dbo.Movs_inmovilizado.Fk_empresa = dbo.Empresas.Codigo
						 LEFT OUTER JOIN Asientos_cabecera ASI ON dbo.Movs_inmovilizado.Fk_asiento_contabilizacion=ASI.Id'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDirecciones]'))
DROP VIEW [dbo].V_ExpedientesDirecciones
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDirecciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesDirecciones] AS
SELECT      dbo.Expediente.Serie, dbo.Expediente.Numero, dbo.Expediente.Fk_persona, dbo.Personas_direcciones.Direccion, 
			dbo.Personas_direcciones.Via_publica, dbo.Personas_direcciones.Numero AS Numero_direccion, 
			dbo.Personas_direcciones.Municipio, dbo.Personas_direcciones.Codigo_postal, dbo.Personas_direcciones.Fiscal_habitual, 
			dbo.Personas_direcciones.Provincia, dbo.Personas_direcciones.Descripcion, dbo.Expediente.Id
FROM            dbo.Expediente INNER JOIN
						 dbo.Personas_direcciones ON dbo.Expediente.Fk_persona = dbo.Personas_direcciones.Codigo_persona'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosOperaciones]'))
DROP VIEW [dbo].V_EscandallosOperaciones
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosOperaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EscandallosOperaciones] AS
SELECT        dbo.V_EscandallosCabecera.Id AS Id_escandallo, dbo.V_EscandallosCabecera.Descripcion AS Desc_escandallo, dbo.V_EscandallosCabecera.Fk_articulo AS Fk_articulo_Cabecera, 
						 dbo.V_EscandallosCabecera.DescripcionArticulo AS Desc_articulo_cabecera, dbo.Escandallo_operaciones.Id, dbo.Escandallo_operaciones.Fk_operacion, 
						 dbo.Operaciones.Descripcion as Desc_operacion,dbo.Escandallo_operaciones.Desc_escandallo_operacion, dbo.Escandallo_operaciones.Orden, dbo.Escandallo_operaciones.Minutos, dbo.Escandallo_operaciones.Tipo_tiempo, 
						 CASE WHEN dbo.Escandallo_operaciones.Tipo_tiempo = 0 THEN ''Unitario'' WHEN dbo.Escandallo_operaciones.Tipo_tiempo = 1 THEN ''Indistinto unidades'' ELSE '''' END AS Desc_tipo_tiempo, 
						 dbo.Escandallo_operaciones.Fecha_modificacion, dbo.Escandallo_operaciones.Observaciones
FROM            dbo.Escandallo_operaciones LEFT OUTER JOIN
						 dbo.Operaciones ON dbo.Escandallo_operaciones.Fk_operacion = dbo.Operaciones.Codigo LEFT OUTER JOIN
						 dbo.V_EscandallosCabecera ON dbo.Escandallo_operaciones.Fk_escandallo_cabecera = dbo.V_EscandallosCabecera.Id'

GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosOperacionesComponentes]'))
DROP VIEW [dbo].V_EscandallosOperacionesComponentes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EscandallosOperacionesComponentes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EscandallosOperacionesComponentes] AS
SELECT        dbo.Escandallo_oper_comp.Id, dbo.Escandallo_oper_comp.Fk_escandallo_operaciones, dbo.Escandallo_oper_comp.Fk_articulo_operacion, dbo.V_ArticulosNombre.Descripcion, 
						 dbo.Escandallo_oper_comp.Cantidad, dbo.V_ArticulosNombre.Desc_unidad, dbo.Escandallo_oper_comp.Orden, dbo.Escandallo_oper_comp.Observaciones, 
						 dbo.Escandallo_operaciones.Fk_escandallo_cabecera
FROM            dbo.Escandallo_oper_comp INNER JOIN
						 dbo.Escandallo_operaciones ON dbo.Escandallo_oper_comp.Fk_escandallo_operaciones = dbo.Escandallo_operaciones.Id LEFT OUTER JOIN
						 dbo.V_ArticulosNombre ON dbo.Escandallo_oper_comp.Fk_articulo_operacion = dbo.V_ArticulosNombre.Codigo'
GO
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetV_Estoc_articuloAFecha') AND xtype IN (N'FN', N'IF', N'TF')) 
DROP FUNCTION fn_GetV_Estoc_articuloAFecha
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetV_Estoc_articuloAFecha') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_GetV_Estoc_articuloAFecha] (@Fecha DATETIME)
				RETURNS TABLE
				AS
				RETURN
				(
				SELECT        ISNULL(Articulo, 0) AS Articulo, SUM(ISNULL(Cantidad, 0)) AS Cantidad
FROM            dbo.V_Movimientos_estoc
WHERE        (Fecha_consolidacion_inventario IS NULL) AND CAST(dbo.V_Movimientos_estoc.Fecha_hora as date) <= CAST(@fecha as date)
GROUP BY Articulo)'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosTarifas]'))
DROP VIEW [dbo].V_ArticulosTarifas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosTarifas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosTarifas] AS
SELECT        dbo.Articulos.Codigo, dbo.Articulos.Descripcion, dbo.Articulos.Tarifa1, dbo.Articulos.Tarifa2, dbo.Articulos.Tarifa3, dbo.Articulos.Tarifa4, dbo.Articulos.Tarifa5, dbo.Articulos.Tarifa6, dbo.Articulos.Tarifa7, 
                         dbo.Articulos.Tarifa8, dbo.Articulos.Tarifa9, dbo.Articulos.Tarifa10, dbo.Parametros.Tarifa1_iva_incluido, dbo.Parametros.Tarifa2_iva_incluido, dbo.Parametros.Tarifa3_iva_incluido, 
                         dbo.Parametros.Tarifa4_iva_incluido, dbo.Parametros.Tarifa5_iva_incluido, dbo.Parametros.Tarifa6_iva_incluido, dbo.Parametros.Tarifa7_iva_incluido, dbo.Parametros.Tarifa8_iva_incluido, 
                         dbo.Parametros.Tarifa9_iva_incluido, dbo.Parametros.Tarifa10_iva_incluido, dbo.Articulos.Ultimo_precio, dbo.Articulos.Fecha_ultimo_precio
FROM            dbo.Articulos LEFT OUTER JOIN
                         dbo.Parametros ON dbo.Parametros.Codigo = 1'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Palets]'))
DROP VIEW [dbo].V_Palets
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Palets]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Palets] AS
SELECT        dbo.Palets.SSCC, dbo.Palets.GTIN14, dbo.Palets.Fk_articulo, A.Descripcion AS Desc_articulo, dbo.Palets.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Palets.Fk_almacen, 
                         dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Palets.Lote, dbo.Palets.Cantidad, dbo.Palets.Cajas_por_palet, dbo.Palets.Unidades_por_caja, dbo.Palets.Bultos, dbo.Palets.Codigo_barras_sscc, 
                         dbo.Palets.Codigo_barras_sscc_texto, dbo.Palets.Codigo_barras_2, dbo.Palets.Codigo_barras_2_texto, dbo.Palets.Multiproducto, dbo.Palets.Fecha_hora, dbo.Palets.Fecha_hora_salida, dbo.Palets.Entrada_SerieTipoDoc, 
                         dbo.Palets.Entrada_Serie, dbo.Palets.Entrada_Numero, dbo.Palets.Salida_SerieTipoDoc, dbo.Palets.Salida_Serie, dbo.Palets.Salida_Numero, dbo.Palets.GTIN13, dbo.Palets.Fecha_hora_registrada, dbo.Palets.Fk_cierre, dbo.Palets.Sin_logo,
                         CASE WHEN dbo.palets.Fk_cierre IS NOT NULL THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END AS En_cierre_op, CASE WHEN dbo.palets.Fecha_hora_registrada IS NOT NULL THEN CAST(1 AS bit) ELSE CAST(0 AS bit) 
                         END AS Registrado,dbo.Palets.Fecha_caducidad
						 ,A.Tipo_seccion,A.Desc_tipo_seccion,A.Fk_envase,A.Desc_envase,(dbo.Palets.Cantidad*A.Capacidad) As Litros, dbo.Palets.Entrada_linea
						 ,dbo.Palets.Ref_cliente,dbo.Palets.Fecha_fabricacion,dbo.Palets.Fk_empresa,dbo.Palets.Nombre_empresa,dbo.Palets.Hora_fabricacion
FROM            dbo.Palets LEFT OUTER JOIN
                         dbo.V_ArticulosNombre A ON dbo.Palets.Fk_articulo = A.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Palets.Fk_almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Palets.Fk_centro = dbo.Centros.Codigo AND dbo.Almacenes.Fk_centro = dbo.Centros.Codigo AND dbo.Almacenes.Codigo = dbo.Centros.Fk_almacen_habitual'						 
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpControlMermas]'))
DROP VIEW [dbo].V_OpControlMermas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpControlMermas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpControlMermas] AS
SELECT VISTA.*,ARTCOMP.Desc_tipo_articulo, ARTCOMP.Descripcion AS Desc_componente,
vista.Cantidad*ARTCOMP.peso_neto AS Kilos_componente,
vista.Cantidad_cierre*ARTOP.Peso_neto AS Kilos_art_principal,
(VISTA.Cantidad * ARTCOMP.Peso_neto)-(VISTA.Cantidad_cierre * ARTOP.Peso_neto) AS Dif_kilos,
CASE WHEN ISNULL(vista.Cantidad_cierre * ARTOP.peso_neto,0) = 0 THEN NULL ELSE
ROUND(((vista.Cantidad*ARTCOMP.peso_neto-vista.Cantidad_cierre*ARTOP.Peso_neto)/(vista.Cantidad_cierre*ARTOP.Peso_neto))*100,2) END AS Pc_dif_kilos
 FROM
(
SELECT        dbo.V_OpComponentesLotesReales.Fk_op, dbo.V_OpComponentesLotesReales.Fk_cierre, dbo.V_OpComponentesLotesReales.Fk_articulo_componente, 
                         dbo.V_Op.Fk_serie, dbo.V_Op.Numero, dbo.V_Op.Fk_articulo AS Fk_articulo_op, SUM(ISNULL(dbo.V_OpComponentesLotesReales.Cantidad_teorica,0)) as Cantidad_teorica, 
						 dbo.V_OpComponentesLotesReales.Cantidad_cierre
						 , dbo.V_Op.Desc_serie, dbo.V_Op.Desc_articulo AS Desc_articulo_op, dbo.V_Op.Fk_centro, dbo.V_Op.Desc_centro, 
                          MAX(dbo.V_OpComponentesLotesReales.Fecha) AS Fecha, 
						 SUM(dbo.V_OpComponentesLotesReales.Cantidad) AS Cantidad, 
						 
                         SUM(dbo.V_OpComponentesLotesReales.Cantidad) - SUM(ISNULL(dbo.V_OpComponentesLotesReales.Cantidad_teorica,0)) AS Merma, 
                         CASE WHEN SUM(ISNULL(dbo.V_OpComponentesLotesReales.cantidad_teorica,0)) = 0 THEN 0 
						 ELSE ROUND(((SUM(dbo.V_OpComponentesLotesReales.Cantidad) - SUM(ISNULL(dbo.V_OpComponentesLotesReales.cantidad_teorica,0))) 
                         / SUM(ISNULL(dbo.V_OpComponentesLotesReales.cantidad_teorica,0))) * 100, 2) END AS Porcentaje_merma						 
						 , CASE 
							WHEN SUM(dbo.V_OpComponentesLotesReales.Cantidad)=0 THEN 0
							ELSE SUM(ISNULL(dbo.V_OpComponentesLotesReales.Importe, 9)) / SUM(dbo.V_OpComponentesLotesReales.Cantidad) 
						END AS Precio, 
                        SUM(ISNULL(dbo.V_OpComponentesLotesReales.Importe, 9)) AS Importe, 
						MAX(dbo.V_OpComponentesLotesReales.Cantidad_op) AS Cantidad_op

FROM            dbo.V_OpComponentesLotesReales INNER JOIN
                         dbo.V_Op ON dbo.V_OpComponentesLotesReales.Fk_op = dbo.V_Op.Id 
                        
GROUP BY dbo.V_OpComponentesLotesReales.Fk_op, dbo.V_OpComponentesLotesReales.Fk_cierre, dbo.V_OpComponentesLotesReales.Fk_articulo_componente, dbo.V_Op.Fk_serie, 
                         dbo.V_Op.Numero, dbo.V_Op.Fk_articulo, dbo.V_Op.Cantidad,  dbo.V_Op.Desc_serie, dbo.V_Op.Desc_articulo, dbo.V_Op.Fk_centro, dbo.V_Op.Desc_centro, 
                          dbo.V_OpComponentesLotesReales.Cantidad_cierre
						 )  VISTA 
						  LEFT OUTER JOIN dbo.V_ArticulosNombre ARTCOMP ON VISTA.Fk_articulo_componente = ARTCOMP.Codigo
						 LEFT OUTER JOIN dbo.V_articulosNombre ARTOP ON  VISTA.Fk_articulo_op= ARTOP.Codigo						 
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesVencimientos]'))
DROP VIEW [dbo].V_LiquidacionesVencimientos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesVencimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesVencimientos] AS
SELECT        dbo.cartera_vencimientos.fecha_vencimiento, dbo.cartera_vencimientos.importe_vencimiento, dbo.cartera_vencimientos.observaciones, dbo.Divisas.Descripcion_breve AS Desc_divisa, 
                         dbo.cartera_vencimientos.serie_documento, dbo.cartera_vencimientos.numero_documento,liquidaciones.Id as Id_liquidacion
FROM            dbo.cartera_vencimientos LEFT OUTER JOIN
                         dbo.Divisas ON dbo.cartera_vencimientos.fk_divisa = dbo.Divisas.Codigo
LEFT OUTER JOIN Liquidaciones ON dbo.cartera_vencimientos.SerieTipoDoc=''LIQ'' AND dbo.cartera_vencimientos.serie_documento=liquidaciones.Serie 
AND dbo.cartera_vencimientos.numero_documento=Liquidaciones.Numero
WHERE        (dbo.cartera_vencimientos.SerieTipoDoc = ''LIQ'')'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasDiario]'))
DROP VIEW [dbo].ContratosCompraLineasDiario
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosCompraLineasDiario]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosCompraLineasDiario] AS
SELECT        CCL.Cantidad AS ctdContrato, ISNULL(P.ctdPedido, 0) AS ctdPedido, ISNULL(A.ctdAlbaran, 0) + ISNULL(A2.ctdAlbaran, 0) AS ctdAlbaran, ISNULL(P.ctdPedido, 0) - ISNULL(A2.ctdAlbaran, 0) AS ctdCom, 
                         CCL.Cantidad - ISNULL(A2.ctdAlbaran, 0) - ISNULL(A.ctdAlbaran, 0) AS ctdPend, CCL.Fecha, CCL.Codigo_persona, CCL.NombreCompleto, CCL.Id, CCL.Serie, CCL.Numero, CCL.Linea, CCL.Fk_articulo, CCL.Articulo_descripcion, 
                         CCL.No_inventariable, CCL.Fk_articulo_kit, CCL.Linea_kit, CCL.Precio_coste_articulo, CCL.Precio_bruto, CCL.Precio_neto, CCL.Bultos, CCL.Cantidad, CCL.Importe_bruto, CCL.Imp_dto_pp, CCL.Imp_dto_esp, 
                         CCL.Tipo_calculo_dto1, CCL.Valor_dto1, CCL.Importe_dto1, CCL.Tipo_calculo_dto2, CCL.Aplicacion_dto2, CCL.Valor_dto2, CCL.Importe_dto2, CCL.Tipo_calculo_comisiones, CCL.Valor_comision1, CCL.Importe_comision1, 
                         CCL.Valor_comision2, CCL.Importe_comision2, CCL.Importe_base, CCL.Valor_iva, CCL.Importe_iva, CCL.Valor_recargo, CCL.Importe_recargo, CCL.Valor_irpf, CCL.Importe_irpf, CCL.Importe_otros_impuestos, 
                         CCL.Importe_total_linea, CCL.Centro_analitico1, CCL.Centro_analitico2, CCL.Codigo_iva, CCL.Aplicacion_irpf, CCL.Tipo_doc_asociado, CCL.Serie_doc_asociado, CCL.Numero_doc_asociado, CCL.Id_doc_asociado, 
                         CCL.Cantidad_anulada, CCL.Anular_restante, CCL.Observaciones, CCL.Orden, CCL.Promocion, CCL.PVP, CCL.Importe_impuestos_incluidos, CCL.Importe_neto, CCL.Tarifa_iva_incluido, CCL.Precio_tarifa, 
                         CCL.Precio_con_dtos_linea, CCL.Aux_codigo, CCL.Fk_articulo_agrupacion, CCL.Desc_articulo_agrupacion, dbo.Contratos_compra.Fecha_inicio, dbo.Contratos_compra.Fecha_fin,dbo.Contratos_compra.Su_referencia
FROM            dbo.ContratosCompraLineas AS CCL INNER JOIN
                         dbo.Contratos_compra ON CCL.Serie = dbo.Contratos_compra.Serie AND CCL.Numero = dbo.Contratos_compra.Numero LEFT OUTER JOIN
                             (SELECT        SUM(Cantidad) AS ctdPedido, Id_doc_asociado
                               FROM            dbo.PedidosCompraLineas AS PCL
                               GROUP BY Id_doc_asociado, Fk_articulo) AS P ON CCL.Id = P.Id_doc_asociado LEFT OUTER JOIN
                             (SELECT        SUM(Cantidad) AS ctdAlbaran, Id_doc_asociado
                               FROM            dbo.AlbaranesCompraLineas AS ACL
                               GROUP BY Id_doc_asociado, Fk_articulo) AS A ON CCL.Id = A.Id_doc_asociado LEFT OUTER JOIN
                             (SELECT        SUM(ACL.Cantidad) AS ctdAlbaran, PCL.Id_doc_asociado
                               FROM            dbo.AlbaranesCompraLineas AS ACL INNER JOIN
                                                         dbo.PedidosCompraLineas AS PCL ON PCL.Id = ACL.Id_doc_asociado
                               GROUP BY PCL.Id_doc_asociado, ACL.Fk_articulo) AS A2 ON CCL.Id = A2.Id_doc_asociado'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasDiario]'))
DROP VIEW [dbo].ContratosVentaLineasDiario
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCostes]'))
DROP VIEW [dbo].[V_OpCostes]
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCostes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpCostes] AS
SELECT PPAL.Id, PPAL.Fk_serie, PPAL.Numero, PPAL.Fk_centro, PPAL.DescCentro, PPAL.Fk_articulo, PPAL.DescArticulo, PPAL.DO, PPAL.Lote, PPAL.Lote_etiqueta, PPAL.Fecha_fin_real, PPAL.Cantidad_real, PPAL.Fecha_cierre, PPAL.Cantidad_cierre, PPAL.Observaciones_cierre, 
             PPAL.Fecha_inicio_cierre, PPAL.Hora_inicio_cierre, PPAL.Hora_fin_cierre, PPAL.Horas, PPAL.PPH, PPAL.Horas_teoricas, PPAL.Dif_horas, PPAL.Numero_personas, PPAL.Personas_teoricas, PPAL.Prod_hora_persona, PPAL.Prod_hora, PPAL.Coste_Material, 
             PPAL.Coste_Produccion, PPAL.Coste_Comercial, PPAL.Coste_Otros, PPAL.Coste_Total, PPAL.Precio_unidad, PPAL.Maquina, PPAL.DescMaquina, PPAL.DiaNombre, PPAL.MesNombre, PPAL.SemanaNumero, LL.Añada, CASE WHEN (ISNULL(Prod_hora_persona, 0) = 0 OR
             ISNULL(PPH, 0) = 0) THEN 0 ELSE ROUND(((ISNULL(Prod_hora_persona, 0) - ISNULL(PPH, 0)) / ISNULL(Prod_hora_persona, 0)) * 100, 2) END AS Pc_desv_PPH, CASE WHEN (ISNULL(Prod_hora_persona, 0) = 0 OR
             ISNULL(PPH, 0) = 0) THEN 0 ELSE ROUND((ROUND(((ISNULL(Prod_hora_persona, 0) - ISNULL(PPH, 0)) / ISNULL(Prod_hora_persona, 0)) * 100, 2) * PPH) / 100, 2) END AS Desv_unidades, PPAL.Coste_minimo, PPAL.Coste_maximo, 
             CASE WHEN Precio_unidad > Coste_maximo THEN Precio_unidad - Coste_maximo WHEN Precio_unidad < Coste_minimo THEN Precio_unidad - Coste_minimo ELSE 0 END AS Dif_limites_coste, CASE WHEN Precio_unidad > Coste_maximo AND 
             Precio_unidad <> 0 THEN ROUND(((Precio_unidad - Coste_maximo) / Coste_maximo) * 100, 2) WHEN Precio_unidad < Coste_minimo AND Precio_unidad <> 0 THEN ROUND(((Precio_unidad - Coste_minimo) / Coste_minimo) * 100, 2) ELSE 0 END AS Pc_dif_limites_coste
FROM   (SELECT dbo.Op_cierres.Id, dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op.Fk_centro, dbo.Centros.Descripcion AS DescCentro, dbo.Op.Fk_articulo, dbo.Articulos.Descripcion AS DescArticulo, dbo.Articulos.Fk_do AS DO, dbo.Op_cierres.Lote, dbo.Op_cierres.Lote_etiqueta, 
                           dbo.Op.Fecha_fin_real, dbo.Op.Cantidad_real, dbo.Op_cierres.Fecha AS Fecha_cierre, dbo.Op_cierres.Cantidad AS Cantidad_cierre, dbo.Op_cierres.Observaciones AS Observaciones_cierre, dbo.Op_cierres.Fecha_inicio 
						   AS Fecha_inicio_cierre, 
                           dbo.Op_cierres.Hora_inicio AS Hora_inicio_cierre, dbo.Op_cierres.Hora_fin AS Hora_fin_cierre, ROUND(CAST(DATEDIFF(MINUTE, dbo.Op_cierres.Fecha_inicio, dbo.Op_cierres.Fecha) AS decimal(15, 2)) / 60, 2) AS Horas
						   ,dbo.Op_cierres.Numero_personas
						   ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN AM.Produccion_por_hora ELSE EC.Unidades_hora END AS PPH
						   ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN ROUND((dbo.Op_cierres.Cantidad / AM.Produccion_por_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
											  WHEN ISNULL(AM.Produccion_por_hora,0)<>0  THEN ROUND((dbo.Op_cierres.Cantidad / EC.Unidades_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
											  ELSE 0 END AS Horas_teoricas


						   , ROUND(CAST(DATEDIFF(MINUTE, dbo.Op_cierres.Fecha_inicio,dbo.Op_cierres.Fecha) AS decimal(15, 2)) / 60, 2) 
						   -CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN ROUND((dbo.Op_cierres.Cantidad / AM.Produccion_por_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
											  WHEN ISNULL(AM.Produccion_por_hora,0)<>0  THEN ROUND((dbo.Op_cierres.Cantidad / EC.Unidades_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
							END AS Dif_horas
							,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN AM.Num_personas_necesarias ELSE EC.Personas_necesarias END AS Personas_teoricas
						   
						   , CASE WHEN (DATEDIFF(hour, dbo.op_cierres.Fecha_inicio, dbo.Op_cierres.Fecha) <> 0 AND dbo.Op_Cierres.Numero_personas <> 0) 
                           THEN ROUND(dbo.Op_Cierres.Cantidad / (DATEDIFF(hour, dbo.op_cierres.Fecha_inicio, dbo.Op_cierres.Fecha) * dbo.Op_Cierres.Numero_personas), 2) ELSE 0 END AS Prod_hora_persona
						   
						   , CASE WHEN AC.Coste_minimo IS NOT NULL 
                           THEN AC.Coste_minimo ELSE dbo.Articulos.Coste_minimo END AS Coste_minimo, CASE WHEN AC.Coste_maximo IS NOT NULL THEN AC.Coste_maximo ELSE dbo.Articulos.Coste_maximo END AS Coste_maximo, CASE WHEN (DATEDIFF(hour, dbo.op_cierres.Fecha_inicio, 
                           dbo.Op_cierres.Fecha) <> 0) THEN ROUND(dbo.Op_Cierres.Cantidad / DATEDIFF(hour, dbo.op_cierres.Fecha_inicio, dbo.Op_cierres.Fecha), 2) ELSE 0 END AS Prod_hora,
                               (SELECT SUM(ISNULL(dbo.Movimientos.Cantidad, 0) * ISNULL(dbo.Movimientos.Pmp_lote, 0)) AS Expr1
                               FROM    dbo.Movimientos LEFT OUTER JOIN
                                            dbo.Articulos ON dbo.Movimientos.Articulo = dbo.Articulos.Codigo
                               WHERE (dbo.Movimientos.Fk_op_cierre = dbo.Op_cierres.Id) AND (dbo.Movimientos.E_S_N = ''S'') AND (ISNULL(dbo.Articulos.Clasificacion_coste, 0) = 0)) AS Coste_Material, ISNULL
                               ((SELECT SUM(ISNULL(dbo.Movimientos.Cantidad, 0) * ISNULL(dbo.Movimientos.Pmp_lote, 0)) AS Expr1
                                FROM    dbo.Movimientos LEFT OUTER JOIN
                                             dbo.Articulos ON dbo.Movimientos.Articulo = dbo.Articulos.Codigo
                                WHERE (dbo.Movimientos.Fk_op_cierre = dbo.Op_cierres.Id) AND (dbo.Movimientos.E_S_N = ''S'') AND (ISNULL(dbo.Articulos.Clasificacion_coste, 0) = 1)), 0) AS Coste_Produccion, ISNULL
                               ((SELECT SUM(ISNULL(dbo.Movimientos.Cantidad, 0) * ISNULL(dbo.Movimientos.Pmp_lote, 0)) AS Expr1
                                FROM    dbo.Movimientos LEFT OUTER JOIN
                                             dbo.Articulos ON dbo.Movimientos.Articulo = dbo.Articulos.Codigo
                                WHERE (dbo.Movimientos.Fk_op_cierre = dbo.Op_cierres.Id) AND (dbo.Movimientos.E_S_N = ''S'') AND (ISNULL(dbo.Articulos.Clasificacion_coste, 0) = 2)), 0) AS Coste_Comercial, ISNULL
                               ((SELECT SUM(ISNULL(dbo.Movimientos.Cantidad, 0) * ISNULL(dbo.Movimientos.Pmp_lote, 0)) AS Expr1
                                FROM    dbo.Movimientos LEFT OUTER JOIN
                                             dbo.Articulos ON dbo.Movimientos.Articulo = dbo.Articulos.Codigo
                                WHERE (dbo.Movimientos.Fk_op_cierre = dbo.Op_cierres.Id) AND (dbo.Movimientos.E_S_N = ''S'') AND (ISNULL(dbo.Articulos.Clasificacion_coste, 0) = 3)), 0) AS Coste_Otros, ISNULL
                               ((SELECT SUM(ISNULL(dbo.Movimientos.Cantidad, 0) * ISNULL(dbo.Movimientos.Pmp_lote, 0)) AS Expr1
                                FROM    dbo.Movimientos LEFT OUTER JOIN
                                             dbo.Articulos ON dbo.Movimientos.Articulo = dbo.Articulos.Codigo
                                WHERE (dbo.Movimientos.Fk_op_cierre = dbo.Op_cierres.Id) AND (dbo.Movimientos.E_S_N = ''S'')), 0) AS Coste_Total, CASE ISNULL(Op_cierres.Cantidad, 0) WHEN 0 THEN 0 ELSE (ISNULL
                               ((SELECT SUM(ISNULL(Cantidad, 0) * ISNULL(Pmp_lote, 0))
                                FROM    Movimientos LEFT OUTER JOIN
                                             Articulos ON Movimientos.Articulo = Articulos.Codigo
                                WHERE Fk_op_cierre = Op_cierres.Id AND E_S_N = ''S''), 0) / ISNULL(Op_cierres.Cantidad, 0)) END AS Precio_unidad, dbo.Op.Fk_maquina AS Maquina, dbo.Maquinas.Descripcion AS DescMaquina, DATENAME(WEEKDAY, dbo.Op_cierres.Fecha) AS DiaNombre, 
                           DATENAME(MONTH, dbo.Op_cierres.Fecha) AS MesNombre, DATENAME(WEEK, dbo.Op_cierres.Fecha) AS SemanaNumero
             FROM    dbo.Op INNER JOIN
                           dbo.Op_cierres ON dbo.Op.Id = dbo.Op_cierres.Fk_op LEFT OUTER JOIN
                           dbo.Maquinas ON dbo.Op.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
                           dbo.Centros ON dbo.Op.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                           dbo.Articulos ON dbo.Op.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                           dbo.Articulos_centros AS AC ON dbo.Op.Fk_articulo = AC.Fk_articulo AND dbo.Op.Fk_centro = AC.Fk_centro LEFT OUTER JOIN
                           dbo.Escandallo_cabecera AS EC ON dbo.Op.Fk_articulo = EC.Fk_articulo AND dbo.Op.Fk_ficha_tecnica = EC.Fk_ficha_tecnica LEFT OUTER JOIN 
						   dbo.Articulos_maquinas AS AM ON dbo.Op.Fk_articulo=AM.Fk_articulo AND dbo.Op.Fk_maquina=AM.Fk_maquina
						   ) AS PPAL LEFT OUTER JOIN


             dbo.Lotes AS LL ON PPAL.Lote = LL.Lote AND PPAL.Fk_articulo = LL.Fk_articulo
'


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosDescripcionesLineas]'))
DROP VIEW [dbo].V_VencimientosDescripcionesLineas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VencimientosDescripcionesLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VencimientosDescripcionesLineas] AS
SELECT        dbo.V_VencimientosDescripciones.id, dbo.V_VencimientosDescripciones.Grupo_vencimientos, dbo.V_VencimientosDescripciones.cobro_pago, dbo.V_VencimientosDescripciones.Cerrado, 
                         dbo.V_VencimientosDescripciones.SerieTipoDoc, dbo.V_VencimientosDescripciones.serie_documento, dbo.V_VencimientosDescripciones.Concepto, dbo.V_VencimientosDescripciones.numero_documento, 
                         dbo.V_VencimientosDescripciones.fecha_documento, dbo.V_VencimientosDescripciones.fecha_vencimiento, dbo.V_VencimientosDescripciones.fk_persona, dbo.V_VencimientosDescripciones.importe_cobrado, 
                         dbo.V_VencimientosDescripciones.importe_vencimiento, dbo.V_VencimientosDescripciones.fk_divisa, dbo.V_VencimientosDescripciones.fk_forma_pago, 
                         dbo.V_VencimientosDescripciones.fk_pago, dbo.V_VencimientosDescripciones.observaciones, dbo.V_VencimientosDescripciones.Fk_tipo_documentacion, 
                         dbo.V_VencimientosDescripciones.Desc_documentacion_tipo, dbo.V_VencimientosDescripciones.desc_cobro_pago, dbo.V_VencimientosDescripciones.desc_cerrado, dbo.V_VencimientosDescripciones.Vencido, 
                         dbo.V_VencimientosDescripciones.Fk_sepa_cabecera, dbo.V_VencimientosDescripciones.desc_persona, dbo.V_VencimientosDescripciones.desc_divisa, 
                         dbo.V_VencimientosDescripciones.desc_forma_pago, dbo.V_VencimientosDescripciones.Fk_cuenta_banco_empresa, dbo.V_VencimientosDescripciones.nif_persona, 
                         dbo.V_VencimientosDescripciones.Fk_cuenta_contable, dbo.V_VencimientosDescripciones.Fk_cc_cliente, dbo.V_VencimientosDescripciones.Fk_cc_contrapartida, 
                         dbo.V_VencimientosDescripciones.Cuenta_empresa_Iban, dbo.V_VencimientosDescripciones.Fecha_integracion_contable, dbo.V_VencimientosDescripciones.Numero_asiento, 
                         dbo.V_VencimientosDescripciones.Fk_cuenta_contable_gastos, dbo.V_VencimientosDescripciones.Importe_gastos, dbo.V_VencimientosDescripciones.No_contabilizar, 
                         dbo.V_VencimientosDescripciones.Fk_cuenta_cliente, dbo.V_VencimientosDescripciones.Fecha_cobro_pago, dbo.V_VencimientosDescripciones.Entidad_persona, 
                         dbo.V_VencimientosDescripciones.Oficina_persona, dbo.V_VencimientosDescripciones.Dc_persona, dbo.V_VencimientosDescripciones.Cuenta_persona, dbo.V_VencimientosDescripciones.Iban_persona, 
                         dbo.V_VencimientosDescripciones.Swift_persona, dbo.V_VencimientosDescripciones.Sepa_serie, dbo.V_VencimientosDescripciones.Sepa_numero, dbo.V_VencimientosDescripciones.Desc_banco_empresa, 
                         dbo.V_VencimientosDescripciones.Num_registro_caja, dbo.V_VencimientosDescripciones.Su_ref, dbo.V_VencimientosDescripciones.Serie_fac_proveedor, 
                         dbo.V_VencimientosDescripciones.Numero_fac_proveedor, dbo.V_VencimientosDescripciones.Representante1, dbo.V_VencimientosDescripciones.Nombre_representante, 
                         dbo.V_VencimientosDescripciones.Fk_Seccion, dbo.V_VencimientosDescripciones.Fk_Campaña, dbo.V_VencimientosDescripciones.Desc_banco_cliente, 
                         dbo.V_VencimientosDescripciones.Dir_fiscal_descripcion, dbo.V_VencimientosDescripciones.Dir_fiscal_via_publica, dbo.V_VencimientosDescripciones.Dir_fiscal_direccion, 
                         dbo.V_VencimientosDescripciones.Dir_fiscal_municipio, dbo.V_VencimientosDescripciones.Dir_fiscal_codigo_postal, dbo.V_VencimientosDescripciones.Dir_fiscal_provincia, 
                         dbo.V_VencimientosDescripciones.Dir_fiscal_pais, dbo.V_VencimientosDescripciones.Dir_fiscal_telefono, ISNULL(dbo.FacturasVentaLineas.Linea, 0) AS Linea, dbo.FacturasVentaLineas.Articulo, 
                         dbo.FacturasVentaLineas.Articulo_descripcion, dbo.Expediente.Serie AS Expediente_serie, ISNULL( dbo.Expediente.Numero, 0 ) AS Expediente_numero, dbo.FacturasVentaLineas.Fk_expediente
FROM            dbo.V_VencimientosDescripciones LEFT OUTER JOIN
                         dbo.FacturasVentaLineas ON dbo.V_VencimientosDescripciones.serie_documento = dbo.FacturasVentaLineas.Serie AND 
                         dbo.V_VencimientosDescripciones.numero_documento = dbo.FacturasVentaLineas.Numero LEFT OUTER  JOIN
                         dbo.Expediente ON dbo.FacturasVentaLineas.Fk_expediente = dbo.Expediente.Id'


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDOsActividades]'))
DROP VIEW [dbo].V_ExpedientesDOsActividades
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesDOsActividades]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesDOsActividades] AS
SELECT        dbo.Expediente.Id as Expediente, dbo.Personas_direcciones_DOs.Fk_DO, dbo.Personas_direcciones_DOs.Fk_personas_direcciones, dbo.V_PersonasDirecciones.Desc_via_publica, dbo.V_PersonasDirecciones.Direccion, 
                         dbo.V_PersonasDirecciones.Numero, dbo.V_PersonasDirecciones.Descripcion, dbo.V_PersonasDirecciones.Piso, dbo.V_PersonasDirecciones.Provincia, dbo.V_PersonasDirecciones.NombreCompleto, 
                         dbo.V_PersonasDirecciones.Municipio, dbo.V_PersonasDirecciones.Codigo_postal, dbo.V_PersonasDirecciones.Tipo_direccion,
(SELECT        stuff
	( (SELECT '', '' + A.Descripcion
		 FROM            (SELECT        dbo.Actividades.Descripcion
								   FROM            dbo.Actividades INNER JOIN
														   dbo.Personas_direcciones_actividades ON dbo.Actividades.Codigo = dbo.Personas_direcciones_actividades.Fk_actividades INNER JOIN
															 dbo.Personas_direcciones ON dbo.Personas_direcciones.Codigo = dbo.Personas_direcciones_actividades.Fk_personas_direcciones 
															 WHERE dbo.Personas_direcciones_actividades.Fk_personas_direcciones = Personas_direcciones_DOs.Fk_personas_direcciones
								   )  AS A FOR XML PATH('''')), 1, 2, '''')) AS Actividades
FROM            dbo.Personas_direcciones_DOs INNER JOIN
                         dbo.Denom_origen ON dbo.Personas_direcciones_DOs.Fk_DO = dbo.Denom_origen.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDirecciones ON dbo.Personas_direcciones_DOs.Fk_personas_direcciones = dbo.V_PersonasDirecciones.Codigo INNER JOIN
                         dbo.Expediente ON dbo.Expediente.Fk_do = dbo.Personas_direcciones_DOs.Fk_DO INNER JOIN
                         dbo.Expedientes_direcciones ON dbo.Expediente.Id = dbo.Expedientes_direcciones.Fk_expediente AND dbo.V_PersonasDirecciones.Codigo = dbo.Expedientes_direcciones.Fk_direccion
WHERE        (dbo.Expedientes_direcciones.Fecha_baja IS NULL)'

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArchivosRVC]'))
DROP VIEW [dbo].V_ArchivosRVC
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArchivosRVC]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArchivosRVC] AS
SELECT        dbo.Archivo_RVC.Codigo, dbo.Archivo_RVC.Codigo_interno, dbo.Archivo_RVC.Bodega, dbo.Archivo_RVC.NIF, dbo.Archivo_RVC.Variedad, dbo.Archivo_RVC.Aptitud, dbo.Archivo_RVC.Peso, dbo.Archivo_RVC.Grado, 
                         dbo.Archivo_RVC.Fecha_hora, dbo.Archivo_RVC.Correcta, dbo.Archivo_RVC.Partida, dbo.Archivo_RVC.Recibido_DO, dbo.Archivo_RVC.Hl, dbo.Archivo_RVC.Fk_campaña, dbo.Archivo_RVC.Id_articulo, 
                         dbo.Archivo_RVC.Fk_centro, dbo.Archivo_RVC.DO2_entrada, dbo.Archivo_RVC.DO1_entrada, dbo.Archivo_RVC.DO3_entrada, dbo.Archivo_RVC.DO_asignada, dbo.Archivo_RVC.Kilos_grado, 
                         dbo.Archivo_RVC.Kilos_grado_1a, dbo.Archivo_RVC.Lote, dbo.Archivo_RVC.Kilos_grado_2a, dbo.Archivo_RVC.Variedad_cava, dbo.Archivo_RVC.Tina, dbo.Archivo_RVC.Serie, dbo.Archivo_RVC.Numero, 
                         dbo.Archivo_RVC.Fecha_hora_importacion, dbo.Archivo_RVC.Usuario_importacion, dbo.Archivo_RVC.Id_importacion, dbo.Centros.Descripcion AS DescripcionCentro, 
                         dbo.Campañas.Descripcion AS DescripcionCampaña, dbo.Articulos.Descripcion AS DescripcionArticulo
FROM            dbo.Archivo_RVC LEFT OUTER JOIN
                         dbo.Centros ON dbo.Archivo_RVC.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Archivo_RVC.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Archivo_RVC.Id_articulo = dbo.Articulos.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPersonasTercerosEntidad]'))
DROP VIEW [dbo].V_FincasPersonasTercerosEntidad
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPersonasTercerosEntidad]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasPersonasTercerosEntidad] AS

SELECT   
CAST(dbo.fincas.codigo as nvarchar) + cast(dbo.Fincas_parcelas.Id_parcela as nvarchar) + ISNULL(dbo.Productores.Fk_persona,'''') as IdAuto
,dbo.Municipios.Codigo_provincia, dbo.Fincas.Codigo,dbo.Fincas.Usuario_creacion,dbo.Fincas.Usuario_modificacion,dbo.Fincas.Fecha_creacion,dbo.Fincas.Fecha_modificacion
 ,CASE WHEN dbo.Productores.Fk_persona IS NULL THEN
	CASE WHEN dbo.Fincas_parcelas.Superficie IS NULL THEN ISNULL(dbo.Fincas.Sup_secano, 0) + ISNULL(dbo.Fincas.Sup_regadio, 0)
	ELSE dbo.Fincas_parcelas.Superficie
	END
 ELSE CAST(dbo.Productores.Particion * dbo.Fincas_parcelas.Superficie / 100 AS Decimal(10, 4))
 END as Sup_sumar_facturar,
 dbo.Fincas.Sup_catastro-(ISNULL(dbo.Fincas.Sup_secano, 0) + ISNULL(dbo.Fincas.Sup_regadio, 0)) AS Dif_catastro_sup_total,
 dbo.Fincas.Sup_catastro, dbo.Fincas.Sup_secano, dbo.Fincas.Sup_regadio, ISNULL(dbo.Fincas.Sup_secano, 0) + ISNULL(dbo.Fincas.Sup_regadio, 0) AS Sup_total,
                         CAST(dbo.Productores.Particion * dbo.Fincas_parcelas.Superficie / 100 AS Decimal(10, 4)) AS SuperficiePersona, dbo.Fincas_parcelas.Superficie AS SuperficieParcela, dbo.Fincas.Id_finca, dbo.Fincas.Descripcion, dbo.Fincas.Paraje, dbo.Fincas.Fecha_baja, dbo.Fincas.Observaciones, dbo.Fincas.Poligono, dbo.Fincas.Parcela,
                         dbo.Fincas.Ref_catastral_urbana, dbo.Fincas.Direccion_sigpac, dbo.Fincas.Codigo_municipio, dbo.Fincas.Codigo_postal, dbo.Municipios.Descripcion AS DescMunicipio, dbo.Municipios.Ine, dbo.Fincas.Sigpac,
                         dbo.Fincas_parcelas.Id_parcela,
                         dbo.Fincas_parcelas.Tipo_seccion, dbo.Fincas_parcelas.Descripcion AS Desc_parcela, dbo.Productores.Fk_persona, dbo.Productores.Regimen_tenencia, PERTERCERO.NombreCompleto,
                         PERTERCERO.Identificacion AS IdentificacionPersona, PERENTIDAD.Codigo AS Fk_entidad, PERENTIDAD.NombreCompleto AS NombreCompletoEntidad, PERENTIDAD.Identificacion AS IdentificacionEntidad, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_variedad,
                          dbo.Fincas_parcelas.Fk_variedad, dbo.Productores.Particion, CASE WHEN ISNULL(PERENTIDAD2.codigo, '''') = '''' THEN PERENTIDAD.codigo ELSE PERENTIDAD2.Codigo END AS Fk_entidad2,
                         CASE WHEN ISNULL(PERENTIDAD2.NombreCompleto, '''') = '''' THEN PERENTIDAD.NombreCompleto ELSE PERENTIDAD2.NombreCompleto END AS NombreCompletoEntidad2, CASE WHEN ISNULL(PERENTIDAD2.Identificacion,
                         '''') = '''' THEN PERENTIDAD.Identificacion ELSE PERENTIDAD2.Identificacion END AS IdentificacionEntidad2, dbo.Fincas_parcelas.Tipo_agricultura, PERTERCERO.Persona_juridica, dbo.Fincas_parcelas.Declara_DUN,
                         dbo.Fincas_parcelas.Id_recinto, PERTERCERO.Sexo_codigo, PERTERCERO.Fk_representante1, REPRETERCERO.NombreCompleto AS NombreRepresentante, PERTERCERO.Nombre, PERTERCERO.Apellido1,
                         PERTERCERO.Apellido2, dbo.Municipios.Codigo_catastral, dbo.Fincas.Año_plantacion AS Año_plantacion_finca, dbo.Fincas_parcelas.Año_plantacion AS Año_plantacion_parcela, CAST(0.000 AS decimal(15, 6)) AS Diff
						 ,dbo.Fincas_parcelas.Num_elementos, dbo.Fincas.Cava_guarda_superior AS CGS_finca, dbo.Fincas_parcelas.Cava_guarda_superior AS CGS_parcela,dbo.fincas.Codigo_pv_rvc AS Codigo_pv_rvc_finca,dbo.Fincas_parcelas.Codigo_pv_rvc as Codigo_pv_rvc_parcela
						 ,dbo.Fincas.Estado
FROM            dbo.Fincas  LEFT OUTER JOIN
                         dbo.Fincas_parcelas ON dbo.Fincas.Codigo = dbo.Fincas_parcelas.Id_finca LEFT OUTER JOIN
                         dbo.Productores ON dbo.Fincas_parcelas.Tipo_seccion = dbo.Productores.Tipo_seccion AND dbo.Fincas_parcelas.Id_finca = dbo.Productores.Id_finca LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.Fincas_parcelas.Fk_variedad = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Municipios ON dbo.Fincas.Codigo_municipio = dbo.Municipios.Id LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS PERTERCERO ON dbo.Productores.Fk_persona = PERTERCERO.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS PERENTIDAD ON dbo.Fincas.Fk_entidad = PERENTIDAD.Codigo LEFT OUTER JOIN
                         dbo.Personas_terceros AS PT2 ON PERENTIDAD.Codigo = PT2.Fk_tercero LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS PERENTIDAD2 ON PT2.Fk_persona = PERENTIDAD2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS REPRETERCERO ON REPRETERCERO.Codigo = PERTERCERO.Fk_representante1'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPersonasTercerosEntidadAgrupada]'))
DROP VIEW [dbo].V_FincasPersonasTercerosEntidadAgrupada
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPersonasTercerosEntidadAgrupada]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasPersonasTercerosEntidadAgrupada] AS
SELECT 1 AS Codigo, Fk_entidad,NombreCompletoEntidad, IdentificacionEntidad, Fk_persona,NombreCompleto, NULLIF(IdentificacionPersona,'''') AS IdentificacionPersona, Nombre, Apellido1, Apellido2, SUM(SuperficiePersona) AS SuperficiePersona
FROM V_FincasPersonasTercerosEntidad
GROUP BY Fk_entidad, NombreCompletoEntidad, IdentificacionEntidad, Fk_persona,NombreCompleto, NULLIF(IdentificacionPersona,''''), Nombre, Apellido1, Apellido2'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasMunicipios]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasMunicipios]
							AS
							SELECT        dbo.Fincas.Codigo, dbo.Fincas.Id_finca, dbo.Fincas.Descripcion, dbo.Fincas.Paraje, dbo.Fincas.Fecha_baja, dbo.Fincas.Observaciones, dbo.Fincas.Poligono, dbo.Fincas.Parcela, dbo.Fincas.Direccion_sigpac, 
                         dbo.Fincas.Codigo_postal, dbo.Fincas.Codigo_municipio, dbo.Fincas.Sup_catastro, dbo.Fincas.Sup_secano, dbo.Fincas.Sup_regadio, DIF.Suma_sup_parcelas,dbo.Fincas.Usuario_creacion,dbo.Fincas.Usuario_modificacion,dbo.Fincas.Fecha_creacion,dbo.Fincas.Fecha_modificacion
						 , DIF.Dif_sup_catastro_parcela,DIFPER.Suma_sup_personas,DIFPER.Dif_sup_catastro_persona
						 , DIFPER.Suma_pc_particiones
						 , dbo.Fincas.Zona_vitinicola,
                         dbo.Fincas.Parcela_vitivinicola, dbo.Fincas.Tipo_agricultura, dbo.Fincas.Estado, dbo.Fincas.Secano_regadio, dbo.Fincas.Sigpac, dbo.Fincas.Recinto, dbo.Fincas.Dun, dbo.Fincas.Fk_entidad, dbo.Fincas.Paraje2, 
                         dbo.Fincas.Estado_bodega, dbo.Fincas.Codigo_pv_rvc, dbo.Fincas.Ref_catastral_urbana, dbo.Fincas.Año_plantacion, dbo.Municipios.Descripcion AS DescMunicipio, P.NombreCompleto AS NombreCompletoEntidad, 
                         P.Tipo_identificacion AS TipoIdentificacionEntidad, P.Identificacion AS IdentificacionEntidad,dbo.Fincas.Cava_guarda_superior
						 , dbo.Fincas.Tarifa_riego, dbo.Fincas.Tipo_riego
						, CASE dbo.Fincas.Tipo_riego 
							WHEN 0 THEN ''Riego tradicional''
							WHEN 1 THEN ''Riego x goteo''
							ELSE '''' 
						END AS Tipo_riego_desc
FROM            dbo.Fincas LEFT OUTER JOIN
                         dbo.Municipios ON dbo.Fincas.Codigo_municipio = dbo.Municipios.Id LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON dbo.Fincas.Fk_entidad = P.Codigo LEFT OUTER JOIN
                             (SELECT        F.Codigo, F.Sup_catastro, SUM(ISNULL(P.Superficie, 0)) AS Suma_sup_parcelas, F.Sup_catastro - SUM(ISNULL(P.Superficie, 0)) AS Dif_sup_catastro_parcela
                               FROM            dbo.Fincas AS F LEFT OUTER JOIN
                                                         dbo.Fincas_parcelas AS P ON F.Codigo = P.Id_finca
                               GROUP BY F.Codigo, F.Sup_catastro) AS DIF ON dbo.Fincas.Codigo = DIF.Codigo
							   LEFT OUTER JOIN
							   (SELECT        Codigo, Sup_catastro, SUM(ISNULL(P.SuperficiePersona, 0)) AS Suma_sup_personas, Sup_catastro - SUM(ISNULL(P.SuperficiePersona, 0)) AS Dif_sup_catastro_persona, SUM(ISNULL(P.Particion, 0)) AS Suma_pc_particiones
                               FROM
                                                         dbo.V_FincasPersonasTercerosEntidad AS P
                               GROUP BY Codigo, Sup_catastro) AS DIFPER ON dbo.Fincas.Codigo = DIFPER.Codigo
							'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Productores]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Productores]	AS 
SELECT PR.Tipo_seccion, TS.Descripcion AS Desc_tipo_seccion, PR.Fk_persona, VP.NombreCompleto, VP.Identificacion, VFM.Id_finca, 
VFM.Codigo, VFM.Descripcion, VFM.Paraje, VFM.Fecha_baja, VFM.Codigo_postal, VFM.DescMunicipio, 
VFM.Poligono, VFM.Parcela, VFM.Estado, VFM.Sup_catastro, VFM.Secano_regadio, VFM.Codigo_pv_rvc, 
VFM.Cava_guarda_superior, PR.Regimen_tenencia, CAST(PR.Particion * VFM.Sup_catastro / 100 AS Decimal(10, 4)) AS SuperficiePersona, 
PR.Particion, VFM.Direccion_sigpac, VFM.Fk_entidad, VFM.NombreCompletoEntidad, VP.Estado_codigo AS Estado_persona, 
VP.Estado_descripcion AS Desc_estado_persona, VFM.Recinto, VFM.Sup_secano, VFM.Sup_regadio, VFM.Tipo_riego, 
VFM.Tarifa_riego, VFM.TipoIdentificacionEntidad, VFM.IdentificacionEntidad
FROM V_FincasMunicipios AS VFM
LEFT OUTER JOIN Productores AS PR
LEFT OUTER JOIN Tipos_secciones AS TS
ON PR.Tipo_seccion = TS.Codigo 
LEFT OUTER JOIN V_Personas AS VP
ON PR.Fk_persona = VP.Codigo 
ON VFM.Codigo = PR.Id_finca'
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasProductoresDescripciones]'))
							EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasProductoresDescripciones]
							AS 
							SELECT        NEWID() AS Id_auto, Codigo, [Id_finca], Descripcion, Paraje, Fecha_baja, Codigo_postal, DescMunicipio, Tipo_seccion, Desc_tipo_seccion,Poligono,Parcela,Estado, STUFF
                             ((SELECT        '', '' + ''['' + CAST([Fk_persona] AS varchar(MAX)) + '']''
                                 FROM            V_productores
                                 WHERE        (Id_finca = Results.Id_finca) FOR XML PATH('''')), 1, 2, '''') AS Codigos_persona, STUFF
                             ((SELECT        '', '' + ''['' + CAST([Nombrecompleto] AS varchar(MAX)) + '']''
                                 FROM            V_productores
                                 WHERE        (Id_finca = Results.Id_finca) FOR XML PATH('''')), 1, 2, '''') AS Nombres_persona, STUFF
                             ((SELECT        '', '' + ''['' + CAST([Identificacion] AS varchar(MAX)) + '']''
                                 FROM            V_productores
                                 WHERE        (Id_finca = Results.Id_finca) FOR XML PATH('''')), 1, 2, '''') AS Identificadores_persona
FROM            V_productores Results
GROUP BY Codigo, [Id_finca], Descripcion, Paraje, Fecha_baja, Codigo_postal, DescMunicipio, Tipo_seccion, Desc_tipo_seccion,Poligono,Parcela,Estado'

GO
						 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EntidadesAsociadas]'))
DROP VIEW [dbo].V_EntidadesAsociadas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EntidadesAsociadas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EntidadesAsociadas] AS
 SELECT PT.Id, P.Codigo as CodigoPersona,P.NombreCompleto AS NombreCompletoPersona,P.Tipo_identificacion as TipoIdentificacionPersona,P.Identificacion AS IdentificacionPersona,PT.Fecha_alta,PT.Fecha_baja,
PE.Codigo as CodigoEntidad,PE.NombreCompleto AS NombreCompletoEntidad,PE.Tipo_identificacion AS TipoIdentificacionEntidad,PE.Identificacion as IdentificacionEntidad,PT.Notas,PT.Motivo
FROM V_PersonasSoloNombre P LEFT OUTER JOIN Personas_terceros PT ON P.Codigo=PT.Fk_tercero
LEFT OUTER JOIN V_PersonasSoloNombre PE ON PT.Fk_persona=PE.Codigo'
						

	 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DeclaracionCosechaPrimera]'))
DROP VIEW [dbo].V_DeclaracionCosechaPrimera
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DeclaracionCosechaPrimera]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DeclaracionCosechaPrimera] AS
SELECT        dbo.Campañas.Descripcion, dbo.Declaracion_cosecha_primera.Fecha, dbo.Declaracion_cosecha_primera.Kg_total_entrada, dbo.Declaracion_cosecha_primera.Existencias_a_fecha, 
                         dbo.Declaracion_cosecha_primera.Fecha_modificacion, dbo.Declaracion_cosecha_primera.Estado, dbo.Declaracion_cosecha_primera.Fk_campaña, dbo.Declaracion_cosecha_primera.Prod_total_aceite, 
                         dbo.Declaracion_cosecha_primera.Id, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Identificacion, dbo.Declaracion_cosecha_primera.Fk_entidad, dbo.Declaracion_cosecha_primera.Fecha_validacion

FROM            dbo.Declaracion_cosecha_primera LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Declaracion_cosecha_primera.Fk_entidad = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Declaracion_cosecha_primera.Fk_campaña = dbo.Campañas.Codigo'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbVentaLineasLotes]'))
DROP VIEW [dbo].V_AlbVentaLineasLotes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbVentaLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbVentaLineasLotes] AS
SELECT       dbo.Alb_venta.Fk_centro,Centros.Descripcion as Desc_centro,  Alb_venta.Id as Id_alb_venta,dbo.Alb_venta_lineas.Id as Id_Alb_venta_lineas, dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero, CONVERT(date, Alb_venta.Fecha_hora, 103) AS Fecha,
 Alb_venta.Codigo_cliente, dbo.V_Personas.NombreCompleto, 
                         dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, dbo.Alb_venta_lineas.Articulo_descripcion,
						 CASE WHEN ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad,0)<>0 THEN dbo.Alb_venta_lineas_lotes.Cantidad ELSE dbo.Alb_venta_lineas.Cantidad END AS Cantidad,
						  CASE WHEN ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad,0)<>0 THEN  CAST(dbo.Alb_venta_lineas_lotes.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) ELSE  CAST(dbo.Alb_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) END AS Peso_neto_Kg,
						  CASE WHEN ISNULL(dbo.Alb_venta_lineas_lotes.Cantidad,0)<>0 THEN  CAST(dbo.Alb_venta_lineas_lotes.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad, 1) AS decimal(15, 3)) ELSE  CAST(dbo.Alb_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad, 1) AS decimal(15, 3)) END AS Litros,
						 dbo.V_ArticulosNombre.Aux_codigo, 
                         dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Capacidad, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_art_agrupacion, 
                          dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Fito_registro, 
                         dbo.V_ArticulosNombre.Fk_codigo_arancelario, dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, dbo.V_ArticulosNombre.Fk_color,
						 dbo.V_ArticulosNombre.Desc_color as Desc_color,
						 dbo.V_ArticulosNombre.Desc_unidad,
                         dbo.V_ArticulosNombre.Grado_alcoholico, 
                         CASE WHEN ISNULL(dbo.V_ArticulosNombre.Fito_registro, '''') <> '''' THEN 1 ELSE 0 END AS EsFitosanitario, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_do, 
                         dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.V_Personas.Cliente_interno, dbo.V_ArticulosNombre.Tipo_formato, 
						 ISNULL(dbo.Alb_venta_lineas_lotes.Id,N''00000000-0000-0000-0000-000000000000'') AS Id_alb_venta_lineas_lotes, dbo.Alb_venta_lineas_lotes.fk_Id_linea, dbo.Alb_venta_lineas_lotes.Almacen, dbo.Alb_venta_lineas_lotes.Lote, dbo.Alb_venta_lineas_lotes.Lote_etiqueta, 
                         dbo.Alb_venta_lineas_lotes.Precio_coste_lote, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Lotes.Añada, 
                         dbo.Lotes.Fecha_caducidad, dbo.Lotes.Fecha_consumo_preferente, dbo.Alb_venta.Representante1, dbo.Lotes.Km0,dbo.Alb_venta_lineas.Precio_neto as Precio_neto_sin_iva
FROM            dbo.Alb_venta_lineas LEFT OUTER JOIN
                         dbo.Alb_venta  ON dbo.Alb_venta_lineas.Serie = Alb_venta.Serie AND dbo.Alb_venta_lineas.Numero = Alb_venta.Numero LEFT OUTER JOIN
                         dbo.Centros ON dbo.Alb_venta.Fk_centro = dbo.Centros.Codigo  LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = Alb_venta.Codigo_cliente INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo LEFT OUTER JOIN
						 dbo.Alb_venta_lineas_lotes ON dbo.Alb_venta_lineas_lotes.fk_Id_linea = dbo.Alb_venta_lineas.Id LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Alb_venta_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Lotes ON dbo.Alb_venta_lineas.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.Alb_venta_lineas_lotes.Lote = dbo.Lotes.Lote'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraLineasLotes]'))
DROP VIEW [dbo].V_AlbCompraLineasLotes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbCompraLineasLotes] AS
						 SELECT     Alb_compra.Fk_centro,centros.Descripcion as Desc_centro,   Alb_compra.Id as Id_alb_compra,dbo.Alb_compra_lineas.Id as Id_Alb_compra_lineas, dbo.Alb_compra_lineas.Serie, dbo.Alb_compra_lineas.Numero
						 , CONVERT(date, Alb_compra.Fecha_hora, 103) AS Fecha, CAST(Alb_compra.Fecha_alb_proveedor AS date) AS Fecha_alb_proveedor
						 , Alb_compra.Codigo_persona, dbo.V_Personas.NombreCompleto, 
                         dbo.Alb_compra_lineas.Linea, dbo.Alb_compra_lineas.Fk_articulo, dbo.Alb_compra_lineas.Articulo_descripcion,
						 CASE WHEN dbo.Alb_compra_lineas_lotes.Cantidad IS NOT NULL THEN dbo.Alb_compra_lineas_lotes.Cantidad ELSE dbo.Alb_compra_lineas.Cantidad END AS Cantidad,
						  CASE WHEN dbo.Alb_compra_lineas_lotes.Cantidad IS NOT NULL  THEN  CAST(dbo.Alb_compra_lineas_lotes.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) ELSE  CAST(dbo.Alb_compra_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) END AS Peso_neto_Kg,
						  CASE WHEN dbo.Alb_compra_lineas_lotes.Cantidad IS NOT NULL  THEN  CAST(dbo.Alb_compra_lineas_lotes.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad, 1) AS decimal(15, 3)) ELSE  CAST(dbo.Alb_compra_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Capacidad, 1) AS decimal(15, 3)) END AS Litros,
						 dbo.V_ArticulosNombre.Aux_codigo, 
                         dbo.V_ArticulosNombre.Fk_articulo_tipo, dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Capacidad, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_art_agrupacion, 
                          dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Fito_registro, 
                         dbo.V_ArticulosNombre.Fk_codigo_arancelario, dbo.Codigos_arancelarios.Descripcion AS Desc_codigo_arancelario, dbo.V_ArticulosNombre.Fk_color,
						 dbo.V_ArticulosNombre.Desc_color as Desc_color,
						 dbo.V_ArticulosNombre.Desc_unidad,
                         dbo.V_ArticulosNombre.Grado_alcoholico, 
                         CASE WHEN ISNULL(dbo.V_ArticulosNombre.Fito_registro, '''') <> '''' THEN 1 ELSE 0 END AS EsFitosanitario, dbo.V_ArticulosNombre.Desc_do, dbo.V_ArticulosNombre.Fk_do, 
                         dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.V_Personas.Cliente_interno, dbo.V_ArticulosNombre.Tipo_formato, 
						 ISNULL(dbo.Alb_compra_lineas_lotes.Id,N''00000000-0000-0000-0000-000000000000'')  as Id_alb_compra_lineas_lotes, dbo.Alb_compra_lineas_lotes.fk_Id_linea, dbo.Alb_compra_lineas_lotes.Almacen, dbo.Alb_compra_lineas_lotes.Lote, dbo.Alb_compra_lineas_lotes.Lote_etiqueta, 
                         dbo.Alb_compra_lineas_lotes.Precio_coste_lote, dbo.Almacenes.Descripcion AS Desc_almacen, dbo.Lotes.Añada, 
                         dbo.Lotes.Fecha_caducidad, dbo.Lotes.Fecha_consumo_preferente, dbo.V_ArticulosNombre.Desc_tipo_articulo

FROM            dbo.Alb_compra_lineas LEFT OUTER JOIN
                         dbo.Alb_compra ON dbo.Alb_compra_lineas.Serie = Alb_compra.Serie AND dbo.Alb_compra_lineas.Numero = Alb_compra.Numero LEFT OUTER JOIN
                         dbo.Centros ON dbo.Alb_compra.Fk_centro = dbo.Centros.Codigo  LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.V_Personas.Codigo = Alb_compra.Codigo_persona INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_compra_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.V_ArticulosNombre.Fk_articulo_agrupacion = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Codigos_arancelarios ON dbo.V_ArticulosNombre.Fk_codigo_arancelario = dbo.Codigos_arancelarios.Codigo LEFT OUTER JOIN
						 dbo.Alb_compra_lineas_lotes ON dbo.Alb_compra_lineas_lotes.fk_Id_linea = dbo.Alb_compra_lineas.Id LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Alb_compra_lineas_lotes.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
                         dbo.Lotes ON dbo.Alb_compra_lineas.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.Alb_compra_lineas_lotes.Lote = dbo.Lotes.Lote'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasGrupos]'))
DROP VIEW [dbo].V_PersonasGrupos
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasGrupos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasGrupos] AS
						 select ISNULL(G.Codigo,'''') as Codigo_grupo,G.Descripcion as Desc_grupo,P.* from V_Personas P LEFT OUTER JOIN Personas_agrupaciones I 
ON P.Codigo=I.Codigo_persona LEFT OUTER JOIN Personas_grupos G
ON I.Codigo_grupo=G.Codigo'
GO
IF EXISTS(SELECT* FROM sysobjects WHERE id = object_id(N'fn_MinutesToHours') 
AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_MinutesToHours'
GO
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_MinutesToHours]
(
    @minutes int 
)
RETURNS nvarchar(30)

AS
BEGIN
declare @hours  nvarchar(20)

SET @hours = 
    CASE WHEN @minutes >= 60 THEN
        (SELECT CAST((@minutes / 60) AS VARCHAR(2)) + ''h'' +  
                CASE WHEN (@minutes % 60) > 0 THEN
                    CAST((@minutes % 60) AS VARCHAR(2)) + ''m''
                ELSE
                    ''''
                END)
    ELSE 
        CAST((@minutes % 60) AS VARCHAR(2)) + ''m''
    END

return @hours
END
'
GO
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fichajes]'))
DROP VIEW [dbo].V_Fichajes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fichajes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Fichajes] AS
SELECT A.*
, [dbo].[fn_MinutesToHours](Minutos) AS Horas_txt 
, [dbo].[fn_MinutesToHours](Minutos_efectivos) AS Horas_efectivas_txt 
FROM
(
SELECT dbo.Fichajes.id, ISNULL(dbo.Fichajes.Fecha_entrada, ISNULL(dbo.Fichajes.Fecha_salida, dbo.Fichajes.Fecha_creacion)) AS FechaFiltro, dbo.Fichajes.Fk_operario, DATEPART(year, dbo.Fichajes.Fecha_entrada) AS Año, DATEPART(MONTH, dbo.Fichajes.Fecha_entrada) AS Mes, 
             DATEPART(DAY, dbo.Fichajes.Fecha_entrada) AS Dia, DATENAME(WEEKDAY, dbo.Fichajes.Fecha_entrada) AS DiaNombre, DATENAME(MONTH, dbo.Fichajes.Fecha_entrada) AS MesNombre, DATENAME(WEEK, dbo.Fichajes.Fecha_entrada) AS SemanaNumero, 
             dbo.Fichajes.Fecha_entrada AS Fecha_hora_entrada, dbo.Fichajes.Fecha_salida AS Fecha_hora_salida, dbo.Fichajes.Fecha_entrada_ofi AS Fecha_hora_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi AS Fecha_hora_salida_ofi, dbo.Fichajes.Salida_obligada, dbo.Fichajes.Fk_centro, 
             dbo.Fichajes.Observaciones, dbo.Fichajes.Incidencia, dbo.Fichajes.Tipo_incidencia, dbo.Fichajes.Origen_huella, dbo.Fichajes.Fk_concepto, dbo.Operarios.Nombre, CON.Descripcion AS Desc_concepto, dbo.Centros.Descripcion AS Desc_centro, 
             CONVERT(date, dbo.Fichajes.Fecha_entrada, 103) AS Fecha_entrada, CONVERT(nvarchar, dbo.Fichajes.Fecha_entrada, 108) AS Hora_entrada, CONVERT(date, dbo.Fichajes.Fecha_salida, 103) AS Fecha_salida, CONVERT(nvarchar, dbo.Fichajes.Fecha_salida, 108) AS Hora_salida, 
             DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) AS Minutos
			 , CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) AS decimal(20, 2))/60 AS Horas
             , DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) AS Minutos_ofi
			 , CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) AS decimal(20, 2))/60 AS Horas_ofi,
			 
			 CASE WHEN ISNULL(CON.No_suma_a_horas_laborables,0)=0 THEN
				CASE WHEN ISNULL(dbo.Operarios.No_despreciar_minutos,0)=0 THEN
					CASE WHEN ISNULL(Operarios.Cp_fraccion_minutos,0)>0 THEN 
					   FLOOR(((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) - ISNULL(Operarios.Cp_desprecio_primeros_minutos, 0)) / Operarios.Cp_fraccion_minutos) 
						* Operarios.Cp_fraccion_minutos) 
				
					 ELSE
						CASE WHEN ISNULL(PARAMETROS.Cp_fraccion_minutos,0)>0 THEN FLOOR(((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) - ISNULL(PARAMETROS.Cp_desprecio_primeros_minutos, 0)) / PARAMETROS.Cp_fraccion_minutos) 
						* PARAMETROS.Cp_fraccion_minutos) 
						ELSE DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) 
						END
					END
				ELSE
					DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) 
				END
			 ELSE
			 0
			 END AS Minutos_efectivos

			 ,
			 CASE WHEN ISNULL(CON.No_suma_a_horas_laborables,0)=0 THEN
				CASE WHEN ISNULL(dbo.Operarios.No_despreciar_minutos,0)=0 THEN
					 CASE WHEN ISNULL(Operarios.Cp_fraccion_minutos,0)>0 THEN 
						CAST(FLOOR(CONVERT(decimal(20, 2), ((DATEDIFF(MINUTE,dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) - ISNULL(Operarios.Cp_desprecio_primeros_minutos, 0)) 
						/ Operarios.Cp_fraccion_minutos) * Operarios.Cp_fraccion_minutos)) / 60 AS decimal(20, 2)) 
					 ELSE
						CASE WHEN ISNULL(PARAMETROS.Cp_fraccion_minutos,0)>0 THEN 
						CAST(FLOOR(CONVERT(decimal(20, 2), ((DATEDIFF(MINUTE,dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) - ISNULL(PARAMETROS.Cp_desprecio_primeros_minutos, 0)) 
						/ PARAMETROS.Cp_fraccion_minutos) * PARAMETROS.Cp_fraccion_minutos)) / 60 AS decimal(20, 2)) 
						ELSE 
						 CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) AS decimal(20, 2))/60 END
					 END 
				ELSE
					 CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada, dbo.Fichajes.Fecha_salida) AS decimal(20, 2))/60
				END
			 ELSE
			 0
			 END AS Horas_efectivas
			 ,
			 
			 CASE WHEN ISNULL(CON.No_suma_a_horas_laborables,0)=0 THEN
				CASE WHEN ISNULL(dbo.Operarios.No_despreciar_minutos,0)=0 THEN
					 CASE WHEN ISNULL(Operarios.Cp_fraccion_minutos,0)>0 THEN 
						FLOOR(((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) - ISNULL(Operarios.Cp_desprecio_primeros_minutos, 0)) / Operarios.Cp_fraccion_minutos) 
						 * Operarios.Cp_fraccion_minutos) 
					 ELSE
						 CASE WHEN ISNULL(PARAMETROS.Cp_fraccion_minutos,0)>0 THEN 
						 FLOOR(((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) - ISNULL(PARAMETROS.Cp_desprecio_primeros_minutos, 0)) / PARAMETROS.Cp_fraccion_minutos) 
						 * PARAMETROS.Cp_fraccion_minutos) 
						 ELSE DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) END
					 END 
				ELSE
					DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi)
				END
			 ELSE
			 0
			 END AS Minutos_ofi_efectivos
			 
			 
			 , 
			  CASE WHEN ISNULL(CON.No_suma_a_horas_laborables,0)=0 THEN
				CASE WHEN ISNULL(dbo.Operarios.No_despreciar_minutos,0)=0 THEN
				  CASE WHEN ISNULL(Operarios.Cp_fraccion_minutos,0)>0 THEN 
					 CAST(FLOOR(CONVERT(decimal(20, 2), ((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) - ISNULL(Operarios.Cp_desprecio_primeros_minutos, 0)) 
					 / Operarios.Cp_fraccion_minutos) * Operarios.Cp_fraccion_minutos)) / 60 AS decimal(20, 2)) 
				  ELSE
					 CASE WHEN ISNULL(PARAMETROS.Cp_fraccion_minutos,0)>0 
					 THEN CAST(FLOOR(CONVERT(decimal(20, 2), ((DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) - ISNULL(PARAMETROS.Cp_desprecio_primeros_minutos, 0)) 
					 / PARAMETROS.Cp_fraccion_minutos) * PARAMETROS.Cp_fraccion_minutos)) / 60 AS decimal(20, 2)) 
					 ELSE CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) AS decimal(20, 2))/60
					 END 
				   END  
				ELSE
					CAST(DATEDIFF(MINUTE, dbo.Fichajes.Fecha_entrada_ofi, dbo.Fichajes.Fecha_salida_ofi) AS decimal(20, 2))/60
				END
			 ELSE
			 0
			 END AS Horas_ofi_efectivas
			 
			 , CONVERT(date, 
             dbo.Fichajes.Fecha_entrada_ofi, 103) AS Fecha_entrada_ofi, CONVERT(nvarchar, dbo.Fichajes.Fecha_entrada_ofi, 108) AS Hora_entrada_ofi, CONVERT(date, dbo.Fichajes.Fecha_salida_ofi, 103) AS Fecha_salida_ofi, CONVERT(nvarchar, dbo.Fichajes.Fecha_salida_ofi, 108) 
             AS Hora_salida_ofi, dbo.Fichajes.Supervisado, dbo.Operarios.Identificacion AS Identificacion_operario, dbo.Fichajes.Incidencia_historica, dbo.Fichajes.Usuario_creacion, dbo.Fichajes.Fecha_creacion, dbo.Fichajes.Usuario_modificacion, dbo.Fichajes.Fecha_modificacion, 
             dbo.Fichajes.Fk_perfil_calculo, dbo.Fichajes.Cerrado, dbo.Fichajes.Origen, dbo.Fichajes.Metodo_fichaje, dbo.Fichajes.Origen_s, dbo.Fichajes.Metodo_fichaje_s, dbo.Fichajes.Maquina_e, dbo.Fichajes.Maquina_s
FROM   dbo.Fichajes LEFT OUTER JOIN
             dbo.Operarios ON dbo.Fichajes.Fk_operario = dbo.Operarios.Codigo LEFT OUTER JOIN
             dbo.Conceptos_control_presencia CON ON dbo.Fichajes.Fk_concepto = CON.Codigo LEFT OUTER JOIN
             dbo.Centros ON dbo.Fichajes.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                 (SELECT TOP (1) Cp_fraccion_minutos, Cp_desprecio_primeros_minutos
                 FROM    dbo.Parametros AS Parametros_1) AS PARAMETROS ON 1 = 1) AS A
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Declaracio_resum_collita]'))
DROP VIEW [dbo].V_Declaracio_resum_collita
GO

IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Declaracio_resum_collita]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Declaracio_resum_collita] AS
SELECT        V_PersonasSoloNombre_2.NombreCompleto AS NomEntitat_no_elabora_ven, V_PersonasSoloNombre_1.NombreCompleto AS NomEntitat_reb, dbo.Campañas.Descripcion AS Desc_campanya, 
                         dbo.V_PersonasSoloNombre.NombreCompleto AS NomEntitat, V_PersonasSoloNombre_3.NombreCompleto AS NomAltra_entitat, dbo.Declaracio_resum_collita.Id, dbo.Declaracio_resum_collita.Entitat, 
                         dbo.Declaracio_resum_collita.Pregunta_15,
						 dbo.Declaracio_resum_collita.Pregunta_16,
						 dbo.Declaracio_resum_collita.Pregunta_17,
						 dbo.Declaracio_resum_collita.Pregunta_18,
						 dbo.Declaracio_resum_collita.Pregunta_19,
						 dbo.Declaracio_resum_collita.Pregunta_20,
						 dbo.Declaracio_resum_collita.Pregunta_21,
						 dbo.Declaracio_resum_collita.comentaris,
						 dbo.Declaracio_resum_collita.Provisional,
						 dbo.Declaracio_resum_collita.Altres_UE_VE_com,
						 dbo.Declaracio_resum_collita.Altres_UE_aux1_com,
						 dbo.Declaracio_resum_collita.Altres_UE_aux2_com,
						 dbo.Declaracio_resum_collita.Altres_UE_total,
						 dbo.Declaracio_resum_collita.Altres_UE_VE_preu,
						 dbo.Declaracio_resum_collita.Altres_UE_aux1_preu,
						 dbo.Declaracio_resum_collita.Altres_UE_aux2_preu,
						 dbo.Declaracio_resum_collita.Total_oli_entregat_no_inscrita,
						 dbo.Declaracio_resum_collita.Total_olives_entregades_no_inscrita,
						 dbo.Declaracio_resum_collita.Comerciat_No_UE,dbo.Declaracio_resum_collita.Comerciat_UE,dbo.Declaracio_resum_collita.Venut_envasat_3l,dbo.Declaracio_resum_collita.Venut_envasat_250ml,dbo.Declaracio_resum_collita.Campaña, dbo.Declaracio_resum_collita.Venut_envasat_altres_format, dbo.Declaracio_resum_collita.Data, dbo.Declaracio_resum_collita.Total_kg_entrats_moli, dbo.Declaracio_resum_collita.Produccio_total_oli, 
                         dbo.Declaracio_resum_collita.Produccio_total_primera_declaracio, dbo.Declaracio_resum_collita.Motu_diferencia_primera, dbo.Declaracio_resum_collita.Produccio_total_oli_certificada, 
                         dbo.Declaracio_resum_collita.Oli_maquina, dbo.Declaracio_resum_collita.Oli_premsa, dbo.Declaracio_resum_collita.Oli_bassetes, dbo.Declaracio_resum_collita.Acidesa_mitja_maquina, 
                         dbo.Declaracio_resum_collita.Acidesa_mitja_premsa, dbo.Declaracio_resum_collita.Venut_dojo, dbo.Declaracio_resum_collita.Venut_envasat_productors, dbo.Declaracio_resum_collita.Venut_envasat_clients, 
                         dbo.Declaracio_resum_collita.Venut_envasat_5l, dbo.Declaracio_resum_collita.Venut_envasat_2l, dbo.Declaracio_resum_collita.Venut_envasat_1l, dbo.Declaracio_resum_collita.Venut_envasat_750ml, 
                         dbo.Declaracio_resum_collita.Venut_envasat_750ml_DOP, dbo.Declaracio_resum_collita.Venut_envasat_500ml, dbo.Declaracio_resum_collita.Venut_envasat_altres, dbo.Declaracio_resum_collita.Venut_envasat_total, 
                         dbo.Declaracio_resum_collita.Existencies_oli, dbo.Declaracio_resum_collita.Segells_utilitzats, dbo.Declaracio_resum_collita.Segells_pendents, dbo.Declaracio_resum_collita.Total_olives_entregades, 
                         dbo.Declaracio_resum_collita.Total_olives_rebudes, dbo.Declaracio_resum_collita.Total_oli_entregat_envasat, dbo.Declaracio_resum_collita.Total_oli_rebut, dbo.Declaracio_resum_collita.Entitat_reb, 
                         dbo.Declaracio_resum_collita.No_elabora_pero_ven, dbo.Declaracio_resum_collita.Entitat_no_elabora_ven, dbo.Declaracio_resum_collita.Quantitat_no_elavora_pero_ven, dbo.Declaracio_resum_collita.Inclou_oli_altra_entitat, 
                         dbo.Declaracio_resum_collita.Quantitat_altra_entitat, dbo.Declaracio_resum_collita.Altra_entitat, dbo.Declaracio_resum_collita.DE_VE_com, dbo.Declaracio_resum_collita.DE_aux1_com, 
                         dbo.Declaracio_resum_collita.DE_aux2_com, dbo.Declaracio_resum_collita.DE_total, dbo.Declaracio_resum_collita.AT_VE_com, dbo.Declaracio_resum_collita.AT_aux1_com, dbo.Declaracio_resum_collita.AT_aux2_com, 
                         dbo.Declaracio_resum_collita.AT_total, dbo.Declaracio_resum_collita.BE_VE_com, dbo.Declaracio_resum_collita.BE_aux1_com, dbo.Declaracio_resum_collita.BE_aux2_com, dbo.Declaracio_resum_collita.BE_total, 
                         dbo.Declaracio_resum_collita.DK_VE_com, dbo.Declaracio_resum_collita.DK_aux1_com, dbo.Declaracio_resum_collita.DK_aux2_com, dbo.Declaracio_resum_collita.DK_total, dbo.Declaracio_resum_collita.FI_VE_com, 
                         dbo.Declaracio_resum_collita.FI_aux1_com, dbo.Declaracio_resum_collita.FI_aux2_com, dbo.Declaracio_resum_collita.FI_total, dbo.Declaracio_resum_collita.FR_VE_com, dbo.Declaracio_resum_collita.FR_aux1_com, 
                         dbo.Declaracio_resum_collita.FR_aux2_com, dbo.Declaracio_resum_collita.FR_total, dbo.Declaracio_resum_collita.GR_VE_com, dbo.Declaracio_resum_collita.GR_aux1_com, dbo.Declaracio_resum_collita.GR_aux2_com, 
                         dbo.Declaracio_resum_collita.GR_total, dbo.Declaracio_resum_collita.NL_VE_com, dbo.Declaracio_resum_collita.NL_aux1_com, dbo.Declaracio_resum_collita.NL_aux2_com, dbo.Declaracio_resum_collita.NL_total, 
                         dbo.Declaracio_resum_collita.IE_VE_com, dbo.Declaracio_resum_collita.IE_aux1_com, dbo.Declaracio_resum_collita.IE_aux2_com, dbo.Declaracio_resum_collita.IE_total, dbo.Declaracio_resum_collita.IT_VE_com, 
                         dbo.Declaracio_resum_collita.IT_aux1_com, dbo.Declaracio_resum_collita.IT_aux2_com, dbo.Declaracio_resum_collita.IT_total, dbo.Declaracio_resum_collita.LU_VE_com, dbo.Declaracio_resum_collita.LU_aux1_com, 
                         dbo.Declaracio_resum_collita.LU_aux2_com, dbo.Declaracio_resum_collita.LU_total, dbo.Declaracio_resum_collita.PT_VE_com, dbo.Declaracio_resum_collita.PT_aux1_com, dbo.Declaracio_resum_collita.PT_aux2_com, 
                         dbo.Declaracio_resum_collita.PT_total, dbo.Declaracio_resum_collita.GB_VE_com, dbo.Declaracio_resum_collita.GB_aux1_com, dbo.Declaracio_resum_collita.GB_aux2_com, dbo.Declaracio_resum_collita.GB_total, 
                         dbo.Declaracio_resum_collita.SE_VE_com, dbo.Declaracio_resum_collita.SE_aux1_com, dbo.Declaracio_resum_collita.SE_aux2_com, dbo.Declaracio_resum_collita.SE_total, dbo.Declaracio_resum_collita.UE_VE_com, 
                         dbo.Declaracio_resum_collita.UE_aux1_com, dbo.Declaracio_resum_collita.UE_aux2_com, dbo.Declaracio_resum_collita.UE_total, dbo.Declaracio_resum_collita.NO_VE_com, dbo.Declaracio_resum_collita.NO_aux1_com, 
                         dbo.Declaracio_resum_collita.NO_aux2_com, dbo.Declaracio_resum_collita.NO_total, dbo.Declaracio_resum_collita.CH_VE_com, dbo.Declaracio_resum_collita.CH_aux1_com, dbo.Declaracio_resum_collita.CH_aux2_com, 
                         dbo.Declaracio_resum_collita.CH_total, dbo.Declaracio_resum_collita.RU_VE_com, dbo.Declaracio_resum_collita.RU_aux1_com, dbo.Declaracio_resum_collita.RU_aux2_com, dbo.Declaracio_resum_collita.RU_total, 
                         dbo.Declaracio_resum_collita.Resta_UE_VE_com, dbo.Declaracio_resum_collita.Resta_UE_aux1_com, dbo.Declaracio_resum_collita.Resta_UE_aux2_com, dbo.Declaracio_resum_collita.Resta_UE_total, 
                         dbo.Declaracio_resum_collita.AR_VE_com, dbo.Declaracio_resum_collita.AR_aux1_com, dbo.Declaracio_resum_collita.AR_aux2_com, dbo.Declaracio_resum_collita.AR_total, dbo.Declaracio_resum_collita.BR_VE_com, 
                         dbo.Declaracio_resum_collita.BR_aux1_com, dbo.Declaracio_resum_collita.BR_aux2_com, dbo.Declaracio_resum_collita.BR_total, dbo.Declaracio_resum_collita.CA_VE_com, dbo.Declaracio_resum_collita.CA_aux1_com, 
                         dbo.Declaracio_resum_collita.CA_aux2_com, dbo.Declaracio_resum_collita.MX_VE_com, dbo.Declaracio_resum_collita.MX_aux1_com, dbo.Declaracio_resum_collita.MX_aux2_com, dbo.Declaracio_resum_collita.MX_total, 
                         dbo.Declaracio_resum_collita.Resta_America_VE_com, dbo.Declaracio_resum_collita.Resta_America_aux1_com, dbo.Declaracio_resum_collita.Resta_America_aux2_com, dbo.Declaracio_resum_collita.Resta_America_total, 
                         dbo.Declaracio_resum_collita.TW_VE_com, dbo.Declaracio_resum_collita.TW_aux1_com, dbo.Declaracio_resum_collita.TW_aux2_com, dbo.Declaracio_resum_collita.TW_total, dbo.Declaracio_resum_collita.CN_VE_com, 
                         dbo.Declaracio_resum_collita.CN_aux1_com, dbo.Declaracio_resum_collita.CN_aux2_com, dbo.Declaracio_resum_collita.CN_total, dbo.Declaracio_resum_collita.Resta_Asia_VE_com, 
                         dbo.Declaracio_resum_collita.Resta_Asia_aux1_com, dbo.Declaracio_resum_collita.Resta_Asia_aux2_com, dbo.Declaracio_resum_collita.Resta_Asia_total, dbo.Declaracio_resum_collita.AU_VE_com, 
                         dbo.Declaracio_resum_collita.AU_aux1_com, dbo.Declaracio_resum_collita.AU_aux2_com, dbo.Declaracio_resum_collita.AU_total, dbo.Declaracio_resum_collita.Resta_Oceania_VE_com, 
                         dbo.Declaracio_resum_collita.Resta_Oceania_aux1_com, dbo.Declaracio_resum_collita.Resta_Oceania_aux2_com, dbo.Declaracio_resum_collita.Resta_Oceania_total, dbo.Declaracio_resum_collita.Altres_VE_com, 
                         dbo.Declaracio_resum_collita.Altres_aux1_com, dbo.Declaracio_resum_collita.Altres_aux2_com, dbo.Declaracio_resum_collita.Altres_total, dbo.Declaracio_resum_collita.DE_VE_preu, 
                         dbo.Declaracio_resum_collita.DE_aux1_preu, dbo.Declaracio_resum_collita.DE_aux2_preu, dbo.Declaracio_resum_collita.AT_VE_preu, dbo.Declaracio_resum_collita.AT_aux1_preu, 
                         dbo.Declaracio_resum_collita.AT_aux2_preu, dbo.Declaracio_resum_collita.BE_VE_preu, dbo.Declaracio_resum_collita.BE_aux1_preu, dbo.Declaracio_resum_collita.BE_aux2_preu, dbo.Declaracio_resum_collita.DK_VE_preu, 
                         dbo.Declaracio_resum_collita.DK_aux1_preu, dbo.Declaracio_resum_collita.DK_aux2_preu, dbo.Declaracio_resum_collita.FI_VE_preu, dbo.Declaracio_resum_collita.FI_aux1_preu, dbo.Declaracio_resum_collita.FI_aux2_preu, 
                         dbo.Declaracio_resum_collita.FR_VE_preu, dbo.Declaracio_resum_collita.FR_aux1_preu, dbo.Declaracio_resum_collita.FR_aux2_preu, dbo.Declaracio_resum_collita.GR_VE_preu, dbo.Declaracio_resum_collita.GR_aux1_preu, 
                         dbo.Declaracio_resum_collita.GR_aux2_preu, dbo.Declaracio_resum_collita.NL_VE_preu, dbo.Declaracio_resum_collita.NL_aux1_preu, dbo.Declaracio_resum_collita.NL_aux2_preu, dbo.Declaracio_resum_collita.IE_VE_preu, 
                         dbo.Declaracio_resum_collita.IE_aux1_preu, dbo.Declaracio_resum_collita.IE_aux2_preu, dbo.Declaracio_resum_collita.IT_VE_preu, dbo.Declaracio_resum_collita.IT_aux1_preu, dbo.Declaracio_resum_collita.IT_aux2_preu, 
                         dbo.Declaracio_resum_collita.LU_VE_preu, dbo.Declaracio_resum_collita.LU_aux1_preu, dbo.Declaracio_resum_collita.LU_aux2_preu, dbo.Declaracio_resum_collita.PT_VE_preu, dbo.Declaracio_resum_collita.PT_aux1_preu, 
                         dbo.Declaracio_resum_collita.PT_aux2_preu, dbo.Declaracio_resum_collita.GB_VE_preu, dbo.Declaracio_resum_collita.GB_aux1_preu, dbo.Declaracio_resum_collita.GB_aux2_preu, dbo.Declaracio_resum_collita.SE_VE_preu, 
                         dbo.Declaracio_resum_collita.SE_aux1_preu, dbo.Declaracio_resum_collita.SE_aux2_preu, dbo.Declaracio_resum_collita.UE_VE_preu, dbo.Declaracio_resum_collita.UE_aux1_preu, 
                         dbo.Declaracio_resum_collita.UE_aux2_preu, dbo.Declaracio_resum_collita.NO_VE_preu, dbo.Declaracio_resum_collita.NO_aux1_preu, dbo.Declaracio_resum_collita.NO_aux2_preu, 
                         dbo.Declaracio_resum_collita.CH_VE_preu, dbo.Declaracio_resum_collita.CH_aux1_preu, dbo.Declaracio_resum_collita.CH_aux2_preu, dbo.Declaracio_resum_collita.RU_VE_preu, 
                         dbo.Declaracio_resum_collita.RU_aux1_preu, dbo.Declaracio_resum_collita.RU_aux2_preu, dbo.Declaracio_resum_collita.Resta_UE_VE_preu, dbo.Declaracio_resum_collita.Resta_UE_aux1_preu, 
                         dbo.Declaracio_resum_collita.Resta_UE_aux2_preu, dbo.Declaracio_resum_collita.AR_VE_preu, dbo.Declaracio_resum_collita.AR_aux1_preu, dbo.Declaracio_resum_collita.AR_aux2_preu, 
                         dbo.Declaracio_resum_collita.BR_VE_preu, dbo.Declaracio_resum_collita.BR_aux1_preu, dbo.Declaracio_resum_collita.BR_aux2_preu, dbo.Declaracio_resum_collita.CA_VE_preu, dbo.Declaracio_resum_collita.CA_aux1_preu, 
                         dbo.Declaracio_resum_collita.CA_aux2_preu, dbo.Declaracio_resum_collita.MX_VE_preu, dbo.Declaracio_resum_collita.MX_aux1_preu, dbo.Declaracio_resum_collita.MX_aux2_preu, 
                         dbo.Declaracio_resum_collita.Resta_America_VE_preu, dbo.Declaracio_resum_collita.Resta_America_aux1_preu, dbo.Declaracio_resum_collita.Resta_America_aux2_preu, dbo.Declaracio_resum_collita.TW_VE_preu, 
                         dbo.Declaracio_resum_collita.TW_aux1_preu, dbo.Declaracio_resum_collita.TW_aux2_preu, dbo.Declaracio_resum_collita.CN_VE_preu, dbo.Declaracio_resum_collita.CN_aux1_preu, 
                         dbo.Declaracio_resum_collita.CN_aux2_preu, dbo.Declaracio_resum_collita.Resta_Asia_VE_preu, dbo.Declaracio_resum_collita.Resta_Asia_aux1_preu, dbo.Declaracio_resum_collita.Resta_Asia_aux2_preu, 
                         dbo.Declaracio_resum_collita.AU_VE_preu, dbo.Declaracio_resum_collita.AU_aux1_preu, dbo.Declaracio_resum_collita.AU_aux2_preu, dbo.Declaracio_resum_collita.Resta_Oceania_VE_preu, 
                         dbo.Declaracio_resum_collita.Resta_Oceania_aux1_preu, dbo.Declaracio_resum_collita.Resta_Oceania_aux2_preu, dbo.Declaracio_resum_collita.Altres_VE_preu, dbo.Declaracio_resum_collita.Altres_aux1_preu, 
                         dbo.Declaracio_resum_collita.Altres_aux2_preu, dbo.Declaracio_resum_collita.JP_VE_com, dbo.Declaracio_resum_collita.JP_aux1_com, dbo.Declaracio_resum_collita.JP_aux2_com, dbo.Declaracio_resum_collita.JP_VE_preu, 
                         dbo.Declaracio_resum_collita.JP_aux1_preu, dbo.Declaracio_resum_collita.JP_aux2_preu, dbo.Declaracio_resum_collita.Data_validacio, dbo.V_PersonasDireccionFiscal.Direccion, dbo.V_PersonasDireccionFiscal.Descripcion, 
                         dbo.V_PersonasDireccionFiscal.Codigo_postal, dbo.V_PersonasDireccionFiscal.Municipio, dbo.V_PersonasDireccionFiscal.Numero
FROM            dbo.Declaracio_resum_collita LEFT OUTER JOIN
                         dbo.V_PersonasDireccionFiscal ON dbo.Declaracio_resum_collita.Entitat = dbo.V_PersonasDireccionFiscal.Codigo_persona LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_2 ON dbo.Declaracio_resum_collita.Entitat_no_elabora_ven = V_PersonasSoloNombre_2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_1 ON dbo.Declaracio_resum_collita.Entitat_reb = V_PersonasSoloNombre_1.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Declaracio_resum_collita.Campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Declaracio_resum_collita.Entitat = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_3 ON dbo.Declaracio_resum_collita.Altra_entitat = V_PersonasSoloNombre_3.Codigo
' 
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Declaracio_resum_collita_entitats]'))
DROP VIEW [dbo].V_Declaracio_resum_collita_entitats
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Declaracio_resum_collita_entitats]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Declaracio_resum_collita_entitats] AS
SELECT        dbo.Declaracio_resum_collita_entitats.*, dbo.V_PersonasSoloNombre.NombreCompleto
FROM            dbo.Declaracio_resum_collita_entitats LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Declaracio_resum_collita_entitats.Entitat = dbo.V_PersonasSoloNombre.Codigo'
						 GO
IF  EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetV_Estoc_articulo') AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_GetV_Estoc_articulo'
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetV_Estoc_articulo') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_GetV_Estoc_articulo] (@CodigoAlmacenEstoc nvarchar(50))
				RETURNS TABLE
				AS
				RETURN
				(
	SELECT        Fk_centro, Desc_centro,  X.Articulo,  A.Descripcion, Cantidad, C_reservada_venta, C_pedida_a_prov, C_reservada_produccion, C_prevista_prod,  Cantidad_disponible, Cantidad_virtual_futura,
                         CAST((CASE WHEN A.Cantidad_por_bulto <> 0 THEN Cantidad_disponible /  A.cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_disponible,X.Estoc_minimo,X.Estoc_maximo,
                         CAST((CASE WHEN cantidad_por_bulto <> 0 THEN Cantidad /  A.cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_actual,
                         CAST((CASE WHEN cantidad_por_bulto <> 0 THEN Cantidad_virtual_futura /  A.cantidad_por_bulto ELSE 0 END) AS decimal(15, 2)) AS Bultos_futura
						 ,A.Fk_articulo_agrupacion AS Articulo_agrupacion,A.Desc_articulo_agrupacion,A.Fk_color,A.Desc_color
FROM            (SELECT        A.Fk_centro, A.Articulo, A.Cantidad, ISNULL(B.C_reservada_venta, 0) AS C_reservada_venta, ISNULL(C.C_pedida_a_prov, 0) AS C_pedida_a_prov, ISNULL(D.Cantidad_reservada_produccion, 0)
                                                    AS C_reservada_produccion, ISNULL(E.Cantidad_prevista_prod, 0) AS C_prevista_prod,F.estoc_minimo,F.estoc_maximo,
                                                    A.Cantidad - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_disponible, A.Cantidad + ISNULL(C.C_pedida_a_prov, 0) + ISNULL(E.Cantidad_prevista_prod, 0)
                                                    - ISNULL(D.Cantidad_reservada_produccion, 0) - ISNULL(B.C_reservada_venta, 0) AS Cantidad_virtual_futura, G.Desc_centro
                          FROM            (SELECT        ISNULL(dbo.V_Movimientos_estoc.Fk_centro, N'''') AS Fk_centro, ISNULL(dbo.V_Movimientos_estoc.Articulo, N'''') AS Articulo,
                                                                              SUM(ISNULL(dbo.V_Movimientos_estoc.Cantidad, 0)) AS Cantidad
                                                    FROM            dbo.V_Movimientos_estoc
                                                    WHERE        (dbo.V_Movimientos_estoc.Fecha_consolidacion_inventario IS NULL)
													AND ((@CodigoAlmacenEstoc='''' OR @CodigoAlmacenEstoc IS NULL) OR (@CodigoAlmacenEstoc<>'''' AND V_Movimientos_estoc.Almacen=@CodigoAlmacenEstoc))
													
                                                    GROUP BY dbo.V_Movimientos_estoc.Fk_centro,dbo.V_Movimientos_estoc.Articulo) AS A LEFT OUTER JOIN
                                                        (SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_reservada_venta
                                                          FROM            dbo.V_DocLinEstadosPedVenta
                                                          GROUP BY Fk_centro, Fk_articulo) AS B ON A.Articulo = B.Fk_articulo AND A.Fk_centro = B.Fk_centro LEFT OUTER JOIN
                                                        (SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad_pendiente, 0)) AS C_pedida_a_prov
                                                          FROM            dbo.V_DocLinEstadosPedCompra
                                                          GROUP BY Fk_centro, Fk_articulo) AS C ON A.Articulo = C.Fk_articulo AND A.Fk_centro = C.Fk_centro LEFT OUTER JOIN
                                                        (SELECT        OPRES.Fk_centro, OPRES.Fk_articulo_componente, OPRES.Cantidad_reservada_produccion - ISNULL(OPREAL.Cantidad_realizada, 0) AS Cantidad_reservada_produccion
                                                          FROM            (SELECT        dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente, SUM(ISNULL(dbo.Op_Componentes.Cantidad, 0)) AS Cantidad_reservada_produccion
                                                                                    FROM            dbo.Op INNER JOIN
                                                                                                              dbo.Op_Componentes ON dbo.Op.Id = dbo.Op_Componentes.Fk_op
                                                                                    WHERE        (dbo.Op.Estado = 0) OR
                                                                                                              (dbo.Op.Estado = 1) OR
                                                                                                              (dbo.Op.Estado = 2)
                                                                                    GROUP BY dbo.Op.Fk_centro, dbo.Op_Componentes.Fk_articulo_componente) AS OPRES LEFT OUTER JOIN
                                                                                        (SELECT        Op_2.Fk_centro, lr.Fk_articulo_componente, SUM(lr.Cantidad) AS Cantidad_realizada
                                                                                          FROM            dbo.Op AS Op_2 INNER JOIN
                                                                                                                    dbo.Op_componentes_lotes_real AS lr ON Op_2.Id = lr.Fk_op
                                                                                          WHERE        (Op_2.Estado = 2)
                                                                                          GROUP BY Op_2.Fk_centro, lr.Fk_articulo_componente) AS OPREAL ON OPRES.Fk_centro = OPREAL.Fk_centro AND OPRES.Fk_articulo_componente = OPREAL.Fk_articulo_componente) AS D ON
                                                    A.Articulo = D.Fk_articulo_componente AND A.Fk_centro = D.Fk_centro LEFT OUTER JOIN
                                                        (SELECT        Fk_centro, Fk_articulo, SUM(ISNULL(Cantidad, 0) - ISNULL(Cantidad_real, 0)) AS Cantidad_prevista_prod
                                                          FROM            dbo.Op AS Op_1
                                                          WHERE        (Estado <> 3) AND (Estado <> 4)
                                                          GROUP BY Fk_centro, Fk_articulo) AS E ON A.Articulo = E.Fk_articulo AND A.Fk_centro = E.Fk_centro LEFT OUTER JOIN
                                                        (SELECT        Fk_articulo,Fk_centro,Estoc_minimo,Estoc_maximo
                                                          FROM            dbo.V_EstocsMinimoMaximoPorCentro ) AS F ON A.Articulo = F.fk_articulo AND A.Fk_centro=F.fk_centro LEFT OUTER JOIN
                                                        (SELECT        Codigo, Descripcion AS Desc_centro
                                                          FROM            dbo.Centros) AS G ON A.Fk_centro = G.Codigo) AS X
														  LEFT OUTER JOIN V_ArticulosNombre A ON X.Articulo=A.Codigo
)'
GO
IF EXISTS(SELECT * FROM sysobjects WHERE id = object_id(N'fn_GenerateIntegers') 
AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_GenerateIntegers'
GO
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[fn_GenerateIntegers] ( @MaxValue INT )
RETURNS @Integers TABLE ( [number] INT )
AS
BEGIN
    DECLARE @Index    INT
    SET @Index = 1
    WHILE @Index <= @MaxValue
    BEGIN
        INSERT INTO @Integers ( number ) VALUES ( @Index )
        SET @Index = @Index + 1
    END

    RETURN
END
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OperariosAñosMesesDias]'))
DROP VIEW [dbo].OperariosAñosMesesDias
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OperariosAñosMesesDias]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[OperariosAñosMesesDias] AS
SELECT OP.Codigo as Fk_operario, OP.Nombre as NombreOperario, OP.Fecha_baja
, DATEADD(DAY, CC.number, ''01-01-2017'') AS Fecha, DATEPART(YEAR, DATEADD(DAY, CC.number, ''01-01-2017'')) AS Año
, DATEPART(MONTH, DATEADD(DAY, CC.number, ''01-01-2017'')) AS Mes
, DATEPART(DAY, DATEADD(DAY, CC.number, ''01-01-2017'')) AS Dia
, CAST(DATEPART(YEAR, DATEADD(DAY, CC.number, ''01-01-2017'')) AS varchar) + RIGHT(CONVERT(varchar, 100 + DATEPART(MONTH, DATEADD(DAY, CC.number, ''01-01-2017''))), 2) AS AñoMes
, UPPER(DATENAME(MONTH, CONCAT(''2016-'', DATEPART(MONTH, DATEADD(DAY, CC.number, ''01-01-2017'')), ''-12'') )) AS MesNombre
, DATENAME(dw, DATEADD(DAY, CC.number, ''01-01-2017'') ) as DiaSemanaNombre
, DATEPART(dw, DATEADD(DAY, CC.number, ''01-01-2017'') ) as DiaSemanaNumero
FROM (SELECT * FROM [dbo].[fn_GenerateIntegers] (30000)) AS CC
CROSS JOIN dbo.Operarios AS OP
WHERE (DATEADD(DAY, CC.number, ''01-01-2017'') <= ''31-12-2037'')
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OperariosMeses]'))
DROP VIEW [dbo].OperariosMeses
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OperariosMeses]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[OperariosMeses] AS
SELECT O.Codigo, O.Nombre, O.Fk_centro, O.Fk_empresa, O.Fk_departamento, M.Mes, M.NombreMes
FROM Operarios O
CROSS JOIN 
(
    SELECT 1 AS Mes, ''Enero'' AS NombreMes
    UNION ALL SELECT 2, ''Febrero''
    UNION ALL SELECT 3, ''Marzo''
    UNION ALL SELECT 4, ''Abril''
    UNION ALL SELECT 5, ''Mayo''
    UNION ALL SELECT 6, ''Junio''
    UNION ALL SELECT 7, ''Julio''
    UNION ALL SELECT 8, ''Agosto''
    UNION ALL SELECT 9, ''Septiembre''
    UNION ALL SELECT 10, ''Octubre''
    UNION ALL SELECT 11, ''Noviembre''
    UNION ALL SELECT 12, ''Diciembre''
) AS M
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FichajesHorasMesOperario]'))
DROP VIEW [dbo].V_FichajesHorasMesOperario
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FichajesHorasMesOperario]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FichajesHorasMesOperario] AS
SELECT        Fk_operario, Nombre, Año, Mes, CAST(Año as varchar(4)) + RIGHT(CONVERT(varchar,100 + Mes),2) as AñoMes,UPPER(DATENAME(MONTH,concat(''2016-'',Mes,''-12''))) AS MesNombre, SUM(ISNULL(Horas, 0)) AS Horas
FROM            dbo.V_Fichajes
GROUP BY Fk_operario, Nombre, Año, Mes'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FichajesHorasDia]'))
DROP VIEW [dbo].V_FichajesHorasDia
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FichajesHorasDia]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FichajesHorasDia] AS
SELECT * 
, RIGHT(''0'' + CAST(Minutos_totales / 60 AS VARCHAR), 2) + '':'' + RIGHT(''0'' + CAST(Minutos_totales % 60 AS VARCHAR), 2) AS Horas_hhmm
, RIGHT(''0'' + CAST(Minutos_totales_ofi / 60 AS VARCHAR), 2) + '':'' + RIGHT(''0'' + CAST(Minutos_totales_ofi % 60 AS VARCHAR), 2) AS Horas_ofi_hhmm
, RIGHT(''0'' + CAST(Minutos_totales_ofi_efectivos / 60 AS VARCHAR), 2) + '':'' + RIGHT(''0'' + CAST(Minutos_totales_ofi_efectivos % 60 AS VARCHAR), 2) AS Horas_ofi_efectivas_hhmm
FROM
(SELECT Fk_operario, Nombre, Año, Mes,Dia,Fecha_entrada as Fecha, CASE WHEN Año IS NULL OR Mes IS NULL OR Dia IS NULL THEN NULL ELSE CAST(ISNULL(Año,0) AS varchar(4)) + RIGHT(CONVERT(varchar, 100 + ISNULL(Mes,0)), 2) END AS AñoMes
, CASE WHEN Año IS NULL OR Mes IS NULL OR Dia IS NULL THEN NULL ELSE UPPER(DATENAME(MONTH, CONCAT(''2016-'', ISNULL(Mes,''0''), ''-12'')))END  AS MesNombre
, SUM(ISNULL(minutos,0)) as Minutos_totales
, SUM(ISNULL(Horas, 0)) AS Horas
, SUM(ISNULL(minutos_ofi,0)) as Minutos_totales_ofi
, SUM(ISNULL(Horas_ofi, 0)) AS Horas_ofi
, SUM(ISNULL(Minutos_efectivos,0)) as Minutos_totales_efectivos
, SUM(ISNULL(Horas_efectivas, 0)) AS Horas_efectivas
, SUM(ISNULL(Minutos_ofi_efectivos,0)) as Minutos_totales_ofi_efectivos
, SUM(ISNULL(Horas_ofi_efectivas, 0)) AS Horas_ofi_efectivas
FROM            dbo.V_Fichajes 
GROUP BY Fk_operario, Nombre, Año, Mes,Dia,CAST(Fecha_entrada as date)) AS A'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonaSocio]'))
DROP VIEW [dbo].V_PersonaSocio
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonaSocio]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonaSocio] AS
SELECT        dbo.Persona_socio.Id, dbo.Persona_socio.Fk_persona, dbo.V_Personas.NombreCompleto, dbo.Persona_socio.Fk_persona_relacionada, V_PersonasSoloNombre_1.NombreCompleto AS NombreCompletoRelacionada, 
                         dbo.Persona_socio.Num_socio, dbo.Persona_socio.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Persona_socio.Tipo_socio, dbo.Persona_socio.Importe_aportacion, dbo.Persona_socio.Fecha_alta, 
                         dbo.Persona_socio.Fecha_baja, dbo.Persona_socio.Motivo_baja, dbo.Persona_socio.Notas, dbo.V_Personas.Fis_direccion, dbo.V_Personas.Fis_municipio, dbo.V_Personas.Identificacion, dbo.V_Personas.Estado_codigo, 
                         dbo.V_Personas.Estado_descripcion, 
                         CASE WHEN dbo.Persona_Socio.motivo_baja = 1 THEN ''Voluntaria'' WHEN dbo.Persona_socio.motivo_baja = 2 THEN ''Fallecimiento'' WHEN Motivo_baja = 3 THEN ''Otros'' ELSE '''' END AS Desc_motivo_baja, 
                         dbo.V_Personas.Email1, dbo.V_Personas.Email2, dbo.V_Personas.Telefono_particular, dbo.V_Personas.Telefono_trabajo, dbo.V_Personas.Movil, dbo.V_Personas.Tipo_identificacion, V_Personas.No_confidencial, 
						 V_Personas.Fk_representante1
FROM            dbo.Persona_socio INNER JOIN
                         dbo.V_Personas ON dbo.Persona_socio.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS V_PersonasSoloNombre_1 ON dbo.Persona_socio.Fk_persona_relacionada = V_PersonasSoloNombre_1.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Persona_socio.Fk_seccion = dbo.Secciones.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraPrevio]'))
DROP VIEW [dbo].V_AlbCompraPrevio
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraPrevio]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbCompraPrevio] AS
SELECT        dbo.V_Personas.Codigo, dbo.V_Personas.NombreCompleto, dbo.Empresas.Descripcion, Proveedor.NombreCompleto AS Nombre_proveedor, 
                         dbo.Alb_compra_previo.*,CASE WHEN dbo.Alb_compra_previo.Estado = 0 THEN ''PENDIENTE'' WHEN dbo.Alb_compra_previo.Estado = 1 THEN ''PROCESADO'' ELSE ''DESCONOCIDO'' END AS Estado_descripcion
FROM            dbo.Alb_compra_previo INNER JOIN
                         dbo.Empresas ON dbo.Alb_compra_previo.Fk_empresa = dbo.Empresas.Codigo INNER JOIN
                         dbo.Ped_compra ON dbo.Alb_compra_previo.Serie_pedido = dbo.Ped_compra.Serie AND dbo.Alb_compra_previo.Numero_pedido = dbo.Ped_compra.Numero INNER JOIN
                         dbo.V_Personas AS Proveedor ON dbo.Alb_compra_previo.Fk_proveedor = Proveedor.Codigo INNER JOIN
                         dbo.V_Personas ON dbo.Alb_compra_previo.Fk_persona = dbo.V_Personas.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraPrevioLineas]'))
DROP VIEW [dbo].V_AlbCompraPrevioLineas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbCompraPrevioLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbCompraPrevioLineas] AS
SELECT        dbo.Ped_venta_previo_lineas.Id, dbo.Ped_venta_previo_lineas.Dto_adic1, dbo.Ped_venta_previo_lineas.Dto_adic2, dbo.Ped_venta_previo_lineas.Promocion, 
                         dbo.Ped_venta_previo_lineas.Fk_ped_venta_previo, dbo.Ped_venta_previo_lineas.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Ped_venta_previo_lineas.Cantidad, 
                         dbo.Ped_venta_previo_lineas.Dto, dbo.Ped_venta_previo_lineas.Observaciones, dbo.Ped_venta_previo_lineas.Precio, dbo.Ped_venta_previo_lineas.Cajas
FROM            dbo.Ped_venta_previo_lineas INNER JOIN
                         dbo.Articulos ON dbo.Ped_venta_previo_lineas.Fk_articulo = dbo.Articulos.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesPagosAsociados]'))
DROP VIEW [dbo].V_LiquidacionesPagosAsociados
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesPagosAsociados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesPagosAsociados] AS
SELECT        dbo.Liquidaciones_pagos_asociados.Id, dbo.Liquidaciones_pagos_asociados.Fk_vencimiento, dbo.Liquidaciones_pagos_asociados.Fk_liquidacion, dbo.Liquidaciones_pagos_asociados.Serie_pago, 
                         dbo.Liquidaciones_pagos_asociados.Numero_pago, dbo.Liquidaciones_pagos_asociados.Fecha_pago, dbo.Liquidaciones_pagos_asociados.Importe, dbo.V_VencimientosDescripciones.SerieTipoDoc, 
                         dbo.V_VencimientosDescripciones.serie_documento, dbo.V_VencimientosDescripciones.numero_documento, dbo.V_VencimientosDescripciones.fecha_documento
						 ,dbo.Liquidaciones_pagos_asociados.Fk_pago,dbo.Liquidaciones_pagos_asociados.Importe_irpf,dbo.Liquidaciones_pagos_asociados.Importe_base_irpf
						 ,dbo.Liquidaciones_pagos_asociados.Importe_base,dbo.Liquidaciones_pagos_asociados.Importe_iva
FROM            dbo.Liquidaciones_pagos_asociados LEFT OUTER JOIN
                         dbo.V_VencimientosDescripciones ON dbo.Liquidaciones_pagos_asociados.Fk_vencimiento = dbo.V_VencimientosDescripciones.id'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpsAcabadoCantidadMatPrimaOSemiGastada]'))
DROP VIEW [dbo].V_OpsAcabadoCantidadMatPrimaOSemiGastada
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpsAcabadoCantidadMatPrimaOSemiGastada]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpsAcabadoCantidadMatPrimaOSemiGastada] AS
SELECT        M.Fecha_hora, M.Serie, M.Numero, M.Articulo, M.Descripcion, M.CantidadFabricada, M.Fk_op_cierre, M.Desc_tipo_articulo, M.Fk_articulo_tipo, M.LitrosFabricados, M.KilosFabricados, ISNULL(MATPRIMA.CuentaMatPrima, 0) 
                         + ISNULL(SEMI.CuentaSemi, 0) AS CuentaMatPrimaOSemi, ISNULL(MATPRIMA.Cantidad, 0) AS Cantidad_mat_prima_gastada, ISNULL(SEMI.Cantidad, 0) AS Cantidad_semi_gastada, ISNULL(MATPRIMA.Litros, 0) 
                         AS Litros_mat_prima_gastados, ISNULL(SEMI.Litros, 0) AS Litros_semi_gastados,
						  ISNULL(MATPRIMA.Cantidad, 0) + ISNULL(SEMI.Cantidad, 0) AS CantidadTotalGastada,
						   ISNULL(MATPRIMA.Litros, 0) + ISNULL(SEMI.Litros, 0) 
                         AS LitrosGastados,
						 ISNULL(MATPRIMA.Kilos, 0) + ISNULL(SEMI.Kilos, 0) 
                         AS KilosGastados,
						  M.LitrosFabricados - ISNULL(SEMI.Litros, 0) - ISNULL(MATPRIMA.Litros, 0) AS DiferenciaLitros,
						  M.KilosFabricados - ISNULL(SEMI.Kilos, 0) - ISNULL(MATPRIMA.Kilos, 0) AS DiferenciaKilos, 
						   CASE WHEN M.KilosFabricados <> 0 THEN ROUND((((M.KilosFabricados - ISNULL(MATPRIMA.Kilos, 0) 
                         - ISNULL(SEMI.Kilos, 0)) / M.KilosFabricados) * 100), 2) ELSE 0 END AS Pc_DiferenciaKilos,
						  CASE WHEN M.LitrosFabricados <> 0 THEN ROUND((((M.LitrosFabricados - ISNULL(MATPRIMA.Litros, 0) - ISNULL(SEMI.Litros, 0)) 
                         / M.LitrosFabricados) * 100), 2) ELSE 0 END AS Pc_DiferenciaLitros,M.Tipo_op,M.Ref_numerica,M.Añada
FROM            (SELECT        M.Fecha_hora, M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, M.Articulo, A.Descripcion, M.Cantidad AS CantidadFabricada, M.Fk_op_cierre, A.Desc_tipo_articulo, A.Fk_articulo_tipo, 
                                                    M.Cantidad * A.Capacidad AS LitrosFabricados, M.Cantidad * A.Peso_neto AS KilosFabricados,C.Tipo_op,C.Ref_numerica,C.Añada
                          FROM            dbo.Movimientos AS M LEFT OUTER JOIN
                                                    dbo.V_ArticulosNombre AS A ON M.Articulo = A.Codigo LEFT OUTER JOIN
                                                    dbo.V_OpCierres AS C ON M.Fk_op_cierre = C.Id_cierre
                          WHERE        (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''E'') AND (A.Fk_articulo_tipo = 10 OR
                                                    A.Fk_articulo_tipo = 17)) AS M LEFT OUTER JOIN
                             (SELECT        M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, M.Fk_op_cierre, SUM(ISNULL(M.Cantidad, 0)) AS Cantidad, SUM(ISNULL(M.Cantidad, 0) * ISNULL(A.Capacidad, 1)) AS Litros, SUM(ISNULL(M.Cantidad, 0) 
                                                         * ISNULL(A.Peso_neto, 1)) AS Kilos, COUNT(M.Id) AS CuentaMatPrima
                               FROM            dbo.Movimientos AS M LEFT OUTER JOIN
                                                         dbo.V_ArticulosNombre AS A ON M.Articulo = A.Codigo LEFT OUTER JOIN
                                                         dbo.V_OpCierres AS C ON M.Fk_op_cierre = C.Id_cierre
                               WHERE        (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (A.Fk_articulo_tipo = 12)
                               GROUP BY M.Tipo_movimiento, M.Movimiento, M.Fk_op_cierre) AS MATPRIMA ON M.Serie = MATPRIMA.Serie AND M.Numero = MATPRIMA.Numero AND M.Fk_op_cierre = MATPRIMA.Fk_op_cierre 
							   LEFT OUTER JOIN
                             (SELECT        M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, M.Fk_op_cierre, SUM(ISNULL(M.Cantidad, 0)) AS Cantidad, SUM(ISNULL(M.Cantidad, 0) * ISNULL(A.Capacidad, 1)) AS Litros, SUM(ISNULL(M.Cantidad, 0) 
                                                         * ISNULL(A.Peso_neto, 1)) AS Kilos, COUNT(M.Id) AS CuentaSemi
                               FROM            dbo.Movimientos AS M LEFT OUTER JOIN
                                                         dbo.V_ArticulosNombre AS A ON M.Articulo = A.Codigo LEFT OUTER JOIN
                                                         dbo.V_OpCierres AS C ON M.Fk_op_cierre = C.Id_cierre
                               WHERE        (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (A.Fk_articulo_tipo = 17)
							   
                               GROUP BY M.Tipo_movimiento, M.Movimiento, M.Fk_op_cierre
							   ) 
							   AS SEMI ON M.Serie = SEMI.Serie AND M.Numero = SEMI.Numero AND M.Fk_op_cierre = SEMI.Fk_op_cierre'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPropuestasModificacion]'))
DROP VIEW [dbo].V_FincasPropuestasModificacion
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasPropuestasModificacion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasPropuestasModificacion] AS 
SELECT   FPM.Id, FPM.Fk_finca, FPM.Sup_catastro_old, FPM.Sup_catastro, FPM.Sup_secano_old, FPM.Sup_secano, 
             FPM.Sup_regadio_old, FPM.Sup_regadio, FPM.Paraje_old, FPM.Paraje, FPM.Poligono_old, FPM.Poligono, 
             FPM.Parcela_old, FPM.Parcela, FPM.Sigpac_old, FPM.Sigpac, FPM.Codigo_municipio_old, FPM.Codigo_municipio, 
             FPM.NIF_old, FPM.NIF, FPM.Nombre_persona, FPM.Tipo_modif, FPM.Fecha, FPM.Fecha_resolucion, FPM.Aceptada, 
             FPM.Nueva_persona, FPM.Nombre_persona_old, FPM.Observaciones, FPM.Sup_total_old, FPM.Sup_total, dbo.Municipios.Descripcion AS Desc_municipio, 
             dbo.Campañas.Descripcion AS Desc_campaña, Municipios_1.Descripcion AS Desc_municipio_old, dbo.V_PersonasSoloNombre.NombreCompleto, FPM.Campaña, FPM.Fk_entidad, FPM.Tipo_agricultura_old, 
             FPM.Tipo_agricultura, FPM.Regimen_propiedad_old, FPM.Regimen_propiedad, FPM.Persona_juridica_old, FPM.Persona_juridica, 
             FPM.Declara_DUN_old, FPM.Declara_DUN, FPM.Id_recinto_old, FPM.Id_recinto, FPM.Fk_variedad_old, FPM.Fk_variedad, 
             dbo.V_ArticulosSoloNombre.Descripcion AS Variedad_old, V_ArticulosSoloNombre_1.Descripcion AS Variedad, FPM.Nueva_variedad, FPM.Representant_old, FPM.Representant, FPM.Genere_old, 
             FPM.Genere, FPM.Nombre_representante_old, FPM.Nombre_representante, FPM.Nuevo_representante, FPM.Apellido1_persona, FPM.Apellido2_persona, 
             FPM.Apellido1_representante, FPM.Apellido2_representante, FPM.Documentacion, FPM.Documentacion_otros, CampañasDUN.Descripcion AS Desc_campaña_DUN, P.NombreCompleto AS Nombre_entidad_old, 
             FPM.Fk_entidad_old, FPM.Ref_catastral_urbana_old, FPM.Ref_catastral_urbana, FPM.Usuario
			 ,ISNULL(FPM.Apellido1_persona,'''') + '' '' + ISNULL(FPM.Apellido2_persona,'''') + '','' +  ISNULL(FPM.Nombre_persona,'''')   as NombreCompletoPersona
FROM     dbo.Fincas_propuesta_modificacion FPM LEFT OUTER JOIN
             dbo.V_ArticulosSoloNombre ON FPM.Fk_variedad_old = dbo.V_ArticulosSoloNombre.Codigo LEFT OUTER JOIN
             dbo.V_ArticulosSoloNombre AS V_ArticulosSoloNombre_1 ON FPM.Fk_variedad = V_ArticulosSoloNombre_1.Codigo LEFT OUTER JOIN
             dbo.Municipios AS Municipios_1 ON FPM.Codigo_municipio_old = Municipios_1.Id LEFT OUTER JOIN
             dbo.Municipios ON FPM.Codigo_municipio = dbo.Municipios.Id LEFT OUTER JOIN
             dbo.Campañas ON FPM.Campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
             dbo.Campañas AS CampañasDUN ON FPM.Campaña_DUN = CampañasDUN.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre ON dbo.V_PersonasSoloNombre.Codigo = FPM.Fk_entidad LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS P ON P.Codigo = FPM.Fk_entidad_old'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiqPlantillasLineas]'))
DROP VIEW [dbo].V_LiqPlantillasLineas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiqPlantillasLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiqPlantillasLineas] AS 
SELECT        dbo.Liq_plantillas.Id, dbo.Liq_plantillas.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Liq_plantillas.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, 
                         dbo.Liq_plantillas.Descripcion AS Desc_plantilla, dbo.Secciones.Tipo_seccion, dbo.Liq_plantillas_lineas.Id AS Id_liq_plantillas_lineas, dbo.Liq_plantillas_lineas.Fk_articulo, Articulos_1.Descripcion AS Desc_articulo, 
                         dbo.Liq_plantillas_lineas.Fk_parametro, dbo.Liq_plantillas_lineas.Descripcion AS Desc_liq_plantillas_lineas, dbo.Parametros.Descripcion AS Desc_parametro, dbo.Liq_plantillas_lineas.Fecha_alb_desde, 
                         dbo.Liq_plantillas_lineas.Fecha_alb_hasta, dbo.Liq_plantillas_lineas.Penal_bonif, dbo.Liq_plantillas_lineas.Quilos_importe, dbo.Liq_plantillas_lineas.Tipo_valor, dbo.Liq_plantillas_lineas.Valor, 
                         dbo.Liq_plantillas_lineas.Tipo_aplicacion, dbo.Liq_plantillas_lineas.Param_desde, dbo.Liq_plantillas_lineas.Param_hasta, dbo.Liq_plantillas_lineas.Linea, dbo.Liq_plantillas_lineas.Fk_param_cond_no_aplicar, 
                         dbo.Liq_plantillas_lineas.Param_condicion_operador, dbo.Liq_plantillas_lineas.Param_condicion_valor, dbo.Liq_plantillas_lineas.Limite, dbo.Liq_plantillas_lineas.Coef_corrector, 
                         dbo.Liq_plantillas_lineas.Fk_articulo_transformacion, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo_transformacion, dbo.Liq_plantillas_lineas.No_bonificar_si_transforma, dbo.Liq_plantillas_lineas.Orden
						 ,dbo.v_articulosNombre.Desc_do,dbo.V_articulosNombre.Desc_color,dbo.V_ArticulosNombre.Fk_color,dbo.Liq_plantillas_lineas.Param_texto
FROM            dbo.V_ArticulosNombre RIGHT OUTER JOIN
                         dbo.Liq_plantillas_lineas ON dbo.V_ArticulosNombre.Codigo = dbo.Liq_plantillas_lineas.Fk_articulo_transformacion LEFT OUTER JOIN
                         dbo.Parametros ON dbo.Liq_plantillas_lineas.Fk_parametro = dbo.Parametros.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_1 ON dbo.Liq_plantillas_lineas.Fk_articulo = Articulos_1.Codigo RIGHT OUTER JOIN
                         dbo.Liq_plantillas ON dbo.Liq_plantillas_lineas.Fk_id = dbo.Liq_plantillas.Id LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Liq_plantillas.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Liq_plantillas.Fk_seccion = dbo.Secciones.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PlantillasCalidad]'))
DROP VIEW [dbo].V_PlantillasCalidad
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PlantillasCalidad]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PlantillasCalidad] AS 
SELECT        dbo.Plantillas_calidad.Codigo, dbo.Plantillas_calidad.Descripcion, dbo.Plantillas_calidad.Fk_articulo, dbo.Articulos.Descripcion AS DescArticulo, dbo.Plantillas_calidad.Fk_persona, 
                         dbo.V_Personas.NombreCompleto AS DescPersona, dbo.Plantillas_calidad.Serie_tipo_doc, dbo.Plantillas_calidad.Fk_almacen, dbo.Almacenes.Descripcion AS DescAlmacen, dbo.Plantillas_calidad.Tipo_plantilla, 
                         dbo.Plantillas_calidad.Serie, dbo.Plantillas_calidad.Imprimir_junto_a_docs
FROM            dbo.Articulos RIGHT OUTER JOIN
                         dbo.Plantillas_calidad ON dbo.Articulos.Codigo = dbo.Plantillas_calidad.Fk_articulo LEFT OUTER JOIN
                         dbo.V_Personas ON dbo.Plantillas_calidad.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Almacenes ON dbo.Plantillas_calidad.Fk_almacen = dbo.Almacenes.Codigo'
GO


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DeclaracioResumCollitaES]'))
DROP VIEW [dbo].V_DeclaracioResumCollitaES
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DeclaracioResumCollitaES]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DeclaracioResumCollitaES] AS 
SELECT        dbo.Declaracio_resum_collita_ES.Id, dbo.Declaracio_resum_collita_ES.Declaracio_resum_collita, dbo.Declaracio_resum_collita_ES.Mes,UPPER(DATENAME(MONTH,concat(''2016-'',dbo.Declaracio_resum_collita_ES.Mes,''-12''))) as MesNombre,dbo.Declaracio_resum_collita_ES.Entrada_socis, 
                         dbo.Declaracio_resum_collita_ES.Entrada_altres, dbo.Declaracio_resum_collita_ES.Sortida_cisternes, dbo.Declaracio_resum_collita_ES.Sortida_cisternes_aux, 
                         dbo.Declaracio_resum_collita_ES.Sortida_cisternes_DOP, dbo.Declaracio_resum_collita_ES.Sortida_comerc, dbo.Declaracio_resum_collita_ES.Sortida_altres, 
                         dbo.Declaracio_resum_collita_ES.Existencies_inici_mes, dbo.Declaracio_resum_collita_ES.Lot, dbo.Declaracio_resum_collita_ES.Existencies_fi_mes, dbo.V_declaracio_resum_collita.Entitat, 
                         dbo.V_PersonasSoloNombre.NombreCompleto, dbo.V_Declaracio_resum_collita.Campaña, dbo.V_Declaracio_resum_collita.Desc_campanya
FROM            dbo.Declaracio_resum_collita_ES INNER JOIN
                         dbo.V_Declaracio_resum_collita ON dbo.Declaracio_resum_collita_ES.Declaracio_resum_collita = dbo.V_Declaracio_resum_collita.Id INNER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.V_declaracio_resum_collita.Entitat = dbo.V_PersonasSoloNombre.Codigo'
GO


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraDiario]'))
DROP VIEW [dbo].PedidosCompraDiario  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PedidosCompraDiario]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PedidosCompraDiario] AS 
SELECT        PCL.Cantidad AS ctdPedido, ISNULL(A.ctdAlbaran, 0) AS ctdAlbaran, PCL.Cantidad - ISNULL(A.ctdAlbaran, 0) AS ctdPend, PCL.Fecha, PCL.Codigo_persona, PCL.NombreCompleto, PCL.Id, PCL.Serie, PCL.Numero, PCL.Linea, 
                         PCL.Fk_articulo, PCL.Articulo_descripcion, PCL.No_inventariable, PCL.Fk_articulo_kit, PCL.Linea_kit, PCL.Precio_coste_articulo, PCL.Precio_bruto, PCL.Precio_neto, PCL.Bultos, PCL.Cantidad, PCL.Importe_bruto, 
                         PCL.Imp_dto_pp, PCL.Imp_dto_esp, PCL.Tipo_calculo_dto1, PCL.Valor_dto1, PCL.Importe_dto1, PCL.Tipo_calculo_dto2, PCL.Aplicacion_dto2, PCL.Valor_dto2, PCL.Importe_dto2, PCL.Tipo_calculo_comisiones, 
                         PCL.Valor_comision1, PCL.Importe_comision1, PCL.Valor_comision2, PCL.Importe_comision2, PCL.Importe_base, PCL.Valor_iva, PCL.Importe_iva, PCL.Valor_recargo, PCL.Importe_recargo, PCL.Valor_irpf, PCL.Importe_irpf, 
                         PCL.Importe_otros_impuestos, PCL.Importe_total_linea, PCL.Centro_analitico1, PCL.Centro_analitico2, PCL.Codigo_iva, PCL.Aplicacion_irpf, PCL.Tipo_doc_asociado, PCL.Serie_doc_asociado, PCL.Numero_doc_asociado, 
                         PCL.Id_doc_asociado, PCL.Cantidad_anulada, PCL.Anular_restante, PCL.Observaciones, PCL.Orden, PCL.Promocion, PCL.PVP, PCL.Importe_impuestos_incluidos, PCL.Importe_neto, PCL.Tarifa_iva_incluido, PCL.Precio_tarifa, 
                         PCL.Precio_con_dtos_linea, PCL.Aux_codigo, PCL.Fk_articulo_agrupacion, PCL.Desc_articulo_agrupacion, dbo.Ped_compra.Fecha_hora, dbo.Ped_compra.Fk_centro, dbo.Centros.Descripcion as Desc_centro
FROM            dbo.PedidosCompraLineas AS PCL INNER JOIN
                         dbo.Ped_compra ON PCL.Serie = dbo.Ped_compra.Serie AND PCL.Numero = dbo.Ped_compra.Numero LEFT OUTER JOIN
                         dbo.Centros ON dbo.Ped_compra.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                             (SELECT        SUM(Cantidad) AS ctdAlbaran, Id_doc_asociado
                               FROM            dbo.AlbaranesCompraLineas AS ACL
                               GROUP BY Id_doc_asociado, Fk_articulo) AS A ON PCL.Id = A.Id_doc_asociado '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbVentaFacSimplLineas]'))
DROP VIEW [dbo].V_VentasAlbVentaFacSimplLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbVentaFacSimplLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasAlbVentaFacSimplLineas] AS 
SELECT L.Id, ''AV'' AS SerieTipoDoc, L.Serie, L.Numero, C.Fecha_hora, YEAR(C.Fecha_hora) AS Año, MONTH(C.Fecha_hora) AS Mes, Codigo_cliente, PN.NombreCompleto, Fk_articulo, A.Descripcion AS Articulo_descripcion, A.Fk_articulo_agrupacion, 
             AG.Descripcion AS Desc_articulo_agrupacion, Cantidad, Bultos, Precio_neto, Importe_neto, Representante1, Representante2, Forma_pago, Codigo_iva, Fk_cuenta_contable, A.No_incluir_pesos_listados, A.Peso_neto, A.Capacidad, Importe_total_linea, 
             Importe_base, Fk_centro
FROM   dbo.Alb_venta_lineas AS L LEFT OUTER JOIN
             dbo.Alb_venta AS C ON L.Serie + ''-'' + CAST(L.Numero AS nvarchar) = C.Serie + ''-'' + CAST(C.Numero AS nvarchar) LEFT OUTER JOIN
             dbo.Articulos AS A ON L.Fk_articulo= A.Codigo LEFT OUTER JOIN
             dbo.Articulos AS AG ON A.Fk_articulo_agrupacion = AG.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS PN ON C.Codigo_cliente = PN.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS RN ON C.Representante1 = RN.Codigo
UNION ALL
SELECT L.Id, ''FS'' AS SerieTipoDoc, L.Serie, L.Numero, Fecha_hora, YEAR(Fecha_hora) AS Año, MONTH(Fecha_hora) AS Mes, Fk_cliente AS Codigo_cliente, PN.NombreCompleto, Fk_articulo, Articulo_descripcion, A.Fk_articulo_agrupacion
			, AG.Descripcion AS Desc_articulo_agrupacion, Cantidad, Bultos, Precio_neto, Importe_neto, C.Fk_representante1 AS Representante1, C.Fk_representante2 AS Representante2
			,  (SELECT TOP (1) Fk_forma_pago
                 FROM    dbo.V_FacturasSimplFormasPago
                 WHERE (Serie = C.Serie) AND (Numero = C.Numero)) AS Forma_pago, Fk_codigo_iva AS Codigo_iva, fk_cuenta_contable, A.No_incluir_pesos_listados, A.Peso_neto, A.Capacidad, 
             Importe_total_linea, Importe_base, Fk_centro
FROM   dbo.Facturas_simpl_lineas L LEFT OUTER JOIN
             dbo.Facturas_simpl_cabecera C ON L.Serie + ''-'' + CAST(L.Numero AS nvarchar) = C.Serie + ''-'' + CAST(C.Numero AS nvarchar) LEFT OUTER JOIN
             dbo.Articulos AS A ON L.Fk_articulo= A.Codigo LEFT OUTER JOIN
             dbo.Articulos AS AG ON A.Fk_articulo_agrupacion = AG.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS PN ON C.Fk_cliente= PN.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS RN ON C.Fk_representante1= RN.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasFacVentaLineas]'))
DROP VIEW [dbo].V_VentasFacVentaLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasFacVentaLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasFacVentaLineas] AS 
SELECT        L.Id, ''FV'' AS SerieTipoDoc, L.Serie, L.Numero, F.Fecha_hora, YEAR(F.Fecha_hora) AS Año, 
                         MONTH(F.Fecha_hora) AS Mes, F.Codigo_cliente, PN.NombreCompleto
						 , L.Articulo AS Fk_articulo, 
                         A.Descripcion AS Articulo_descripcion
						 , A.Fk_articulo_agrupacion, AG.Descripcion as Desc_articulo_agrupacion
						 , L.Cantidad, 
                         L.Bultos, L.Precio_neto, L.Importe_neto, L.Importe_base, L.Importe_total_linea, 
                         F.Representante1, F.Representante2, F.Forma_pago, L.Codigo_iva, L.Fk_cuenta_contable, 
                         A.No_incluir_pesos_listados, L.Peso_neto, A.Capacidad
FROM Facturas_venta_lineas L LEFT OUTER JOIN facturas_venta F ON L.Serie + ''-'' + cast(L.Numero as nvarchar)=F.Serie + ''-'' + CAST(F.Numero as nvarchar)
                                LEFT OUTER JOIN Articulos A ON L.Articulo=A.Codigo
								LEFT OUTER JOIN Articulos AG ON A.Fk_articulo_agrupacion=AG.Codigo
                                LEFT OUTER JOIN V_PersonasSoloNombre PN ON F.Codigo_cliente=PN.Codigo
                                LEFT OUTER JOIN V_PersonasSoloNombre RN ON F.Representante1=RN.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasPrevisionesLineas]'))
DROP VIEW [dbo].V_VentasPrevisionesLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasPrevisionesLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasPrevisionesLineas] AS 
select V_PrevisionesLineas.Id,''PREV'' AS SerieTipoDoc,Serie,Numero,Fecha as Fecha_hora,YEAR(Fecha) as Año,MONTH(Fecha) as Mes,
 Codigo_cliente,Nombre_cliente as NombreCompleto,Fk_articulo,Articulo_descripcion,
 Fk_articulo_agrupacion,Desc_articulo_agrupacion,
 Cantidad,Bultos,Precio_neto,Importe_neto,Importe_base,Importe_Base as Importe_total_linea,
 Representante1,Representante2,
 NULL as Forma_pago,NULL AS Codigo_iva,Fk_cuenta_contable,No_incluir_pesos_listados,Peso_neto,Capacidad
 from V_PrevisionesLineas where dbo.V_PrevisionesLineas.Compra_venta=0'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasPrevisionesLineas]'))
DROP VIEW [dbo].V_ComprasPrevisionesLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasPrevisionesLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ComprasPrevisionesLineas] AS 
select V_PrevisionesLineas.Id,''PREV'' AS SerieTipoDoc,Serie,Numero,Fecha as Fecha_hora,YEAR(Fecha) as Año,MONTH(Fecha) as Mes,
 Codigo_cliente,Nombre_cliente as NombreCompleto,Fk_articulo,Articulo_descripcion,
 Fk_articulo_agrupacion,Desc_articulo_agrupacion,
 Cantidad,Bultos,Precio_neto,Importe_neto,Importe_base,Importe_base as Importe_total_linea,
 Representante1,Representante2,
 NULL as Forma_pago,NULL AS Codigo_iva,Fk_cuenta_contable,No_incluir_pesos_listados,Peso_neto,Capacidad
 from V_PrevisionesLineas where dbo.V_PrevisionesLineas.Compra_venta=1'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AutoConsumos]'))
DROP VIEW [dbo].V_AutoConsumos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AutoConsumos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AutoConsumos] AS 
SELECT        AUX.Fk_persona, P.NombreCompleto, AUX.Fk_articulo, A.Descripcion AS Desc_articulo, AUX.Fk_campana, C.Descripcion AS Desc_campaña, AUX.Kilos_entrados, AUX.Kilos_vendidos_autoconsumo, AUX.Kilos_pendientes, 
                         AUX.Litros_entrados, AUX.Litros_vendidos_autoconsumo, AUX.Litros_pendientes
FROM            (SELECT        ISNULL(COLLITA.Fk_persona, VENTAS.Fk_persona) AS Fk_persona, ISNULL(COLLITA.Codigo, VENTAS.Codigo) AS Fk_articulo, ISNULL(COLLITA.Fk_campana, VENTAS.Fk_campana) AS Fk_campana, 
                                                    ISNULL(COLLITA.Kilos, 0) AS Kilos_entrados, ISNULL(VENTAS.Kilos, 0) AS Kilos_vendidos_autoconsumo, ISNULL(COLLITA.Kilos, 0) - ISNULL(VENTAS.Kilos, 0) AS Kilos_pendientes, ISNULL(COLLITA.Litros, 0) 
                                                    AS Litros_entrados, ISNULL(VENTAS.Litros, 0) AS Litros_vendidos_autoconsumo, ISNULL(COLLITA.Litros, 0) - ISNULL(VENTAS.Litros, 0) AS Litros_pendientes
                          FROM            
						  (SELECT        PART.Persona AS Fk_persona, AA.Codigo, C.Fk_campaña as Fk_campana, SUM(ISNULL(PART.Cantidad_neta, 0)) AS Cantidad, SUM(ISNULL(PART.Cantidad_neta, 0) * ISNULL(AA.Peso_neto, 1)) AS Kilos, 
                                                                              SUM(ISNULL(PART.Cantidad_neta, 0) * ISNULL(AA.Capacidad, 1)) AS Litros
                                                    FROM            dbo.Alb_liq_lin_part AS PART WITH (NOLOCK) INNER JOIN 																			
																	dbo.Alb_liq_lin AS L WITH (NOLOCK) ON PART.Serie=L.Serie AND PART.Numero=L.Numero AND PART.Linea=L.Linea INNER JOIN
																	dbo.alb_liq AS C ON L.Serie=C.Serie AND L.Numero=C.Numero INNER JOIN
                                                                              dbo.Articulos AS A WITH (NOLOCK) ON L.Articulo = A.Codigo INNER JOIN
                                                                              dbo.Articulos AS AA WITH (NOLOCK) ON A.Fk_art_agrup_autoconsumo = AA.Codigo
                                                    GROUP BY PART.Persona, AA.Codigo, C.Fk_campaña) AS COLLITA 
													
						FULL OUTER JOIN
                                                        (SELECT        Fk_persona, Codigo, Fk_campana, SUM(Cantidad) AS Cantidad, SUM(ISNULL(Cantidad, 0) * ISNULL(Peso_neto, 1)) AS Kilos, SUM(ISNULL(Cantidad, 0) * ISNULL(Capacidad, 1)) AS Litros
                                                          FROM            (SELECT        AA.Codigo, AA.Descripcion,
																							(SELECT        TOP (1) Codigo
																							FROM            dbo.Campañas
																							WHERE        (Fecha_inicio <= cast(C.Fecha_hora as date)) AND (Fecha_fin >= CAST(C.Fecha_hora as date))
																							ORDER BY Fecha_fin DESC) AS Fk_campana, C.Codigo_cliente AS Fk_persona, L.Cantidad, ISNULL(A.Peso_neto, 1) AS Peso_neto, ISNULL(A.Capacidad, 1) 
																						AS Capacidad
															FROM            dbo.Alb_venta_lineas AS L WITH (NOLOCK) INNER JOIN
																						dbo.Alb_venta AS C WITH (NOLOCK) ON C.Serie = L.Serie AND C.Numero = L.Numero INNER JOIN
																						dbo.Articulos AS A WITH (NOLOCK) ON L.Fk_articulo = A.Codigo INNER JOIN
																						dbo.Articulos AS AA WITH (NOLOCK) ON A.Fk_art_agrup_autoconsumo = AA.Codigo
															WHERE        (C.Autoconsumo = 1)) AS AUX_1
                                                          GROUP BY Fk_persona, Codigo, Fk_campana) AS VENTAS 
														ON COLLITA.Fk_persona = VENTAS.Fk_persona AND COLLITA.Codigo = VENTAS.Codigo AND COLLITA.Fk_campana = VENTAS.Fk_campana
						) 
                         AS AUX INNER JOIN
                         dbo.V_PersonasSoloNombre AS P WITH (NOLOCK) ON AUX.Fk_persona = P.Codigo INNER JOIN
                         dbo.Articulos AS A WITH (NOLOCK) ON AUX.Fk_articulo = A.Codigo INNER JOIN
                         dbo.Campañas AS C WITH (NOLOCK) ON AUX.Fk_campana = C.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLineasRepartos]'))
DROP VIEW [dbo].V_LiquidacionesLineasRepartos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesLineasRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesLineasRepartos] AS 
SELECT NEWID() as Id_auto,   C.Serie, C.Numero, L.Linea,C.Fecha,ISNULL(R.id,NEWID()) as id,C.Fk_persona,P.NombreCompleto,L.Fk_articulo,A.Descripcion as Desc_articulo
, R.fk_codigo_reparto, R.importe, L.Fk_liquidacion, L.Fk_cuenta_contable,CC.Descripcion as Desc_cuenta_contable
                         ,L.Linea as fk_linea, CR.descripcion AS Desc_codigo_reparto, CR.Codigo_datisa
						 ,CR.Fk_seccion,S.Descripcion as Desc_seccion
						 ,CR.Fk_campaña,Campañas.Descripcion as Desc_campaña
						 ,CR.fk_tipo_reparto, TR.descripcion AS Desc_tipo_reparto,L.Importe_base_ret as Importe_linea
FROM    dbo.Liquidaciones_lineas L LEFT OUTER JOIN
dbo.Liquidaciones_lineas_repartos R ON R.Fk_liquidacion = L.Fk_liquidacion AND R.fk_linea = L.Linea LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto CR ON R.fk_codigo_reparto = CR.codigo LEFT OUTER JOIN
                         dbo.Asientos_tipo_reparto TR ON CR.fk_tipo_reparto = TR.codigo LEFT OUTER JOIN                         
                         dbo.Liquidaciones C ON L.Fk_liquidacion = C.Id 
						 LEFT OUTER JOIN Asientos_cuentas_contables CC ON L.Fk_cuenta_contable=CC.codigo
						 LEFT OUTER JOIN V_PersonasSoloNombre  P ON C.Fk_persona=P.Codigo
						 LEFT OUTER JOIN Articulos  A ON L.Fk_articulo=A.Codigo
						 LEFT OUTER JOIN Secciones S ON CR.Fk_seccion=S.Codigo
						 LEFT OUTER JOIN Campañas ON CR.Fk_campaña= Campañas.Codigo'
GO


IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosAgrupaciones]'))
DROP VIEW [dbo].V_ArticulosAgrupaciones  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosAgrupaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosAgrupaciones] AS 
	SELECT        dbo.Articulos_grupos.Descripcion, dbo.V_ArticulosNombre.Descripcion AS Articulo, dbo.Articulos_grupos.Notas, dbo.Articulos_grupos.No_mostrar_en_abc, dbo.Articulos_agrupaciones.Codigo_articulo, 
                         dbo.Articulos_agrupaciones.Codigo_grupo
FROM            dbo.V_ArticulosNombre INNER JOIN
                         dbo.Articulos_agrupaciones ON dbo.V_ArticulosNombre.Codigo = dbo.Articulos_agrupaciones.Codigo_articulo INNER JOIN
                         dbo.Articulos_grupos ON dbo.Articulos_agrupaciones.Codigo_grupo = dbo.Articulos_grupos.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasContactosCargos]'))
DROP VIEW [dbo].V_PersonasContactosCargos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasContactosCargos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasContactosCargos] AS 
	SELECT Personas_contactos.Fk_contacto, Personas_contactos.Fk_persona, Personas_contactos_cargos.Fk_cargo, 
	   V_PersonasSoloNombre.NombreCompleto, V_PersonasSoloNombre.Email1, V_PersonasSoloNombre.Email2, V_PersonasSoloNombre.Telefono_particular, V_PersonasSoloNombre.Telefono_trabajo,
	   Contacto.Nombre_apellidos as ContactoNombreCompleto, Contacto.Email1 as ContactoEmail1, Contacto.Email2 as ContactoEmail2, Contacto.Telefono_movil as ContactoTelefono_movil, Contacto.Telefono_particular as ContactoTelefono_particular, Contacto.Telefono_profesional as ContactoTelefono_profesional, Contacto.Direccion as ContactoDireccion, Contacto.Notas as ContactoNotas,
	   Cargo.Desc_corta, Cargo.Descripcion
		FROM V_PersonasSoloNombre INNER JOIN
		Personas_contactos ON Personas_contactos.Fk_persona = V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
		Contacto ON Personas_contactos.Fk_contacto = Contacto.Codigo LEFT OUTER JOIN
		Personas_contactos_cargos ON dbo.Personas_contactos.Fk_persona=dbo.Personas_contactos_cargos.Fk_persona AND  Personas_contactos.Fk_contacto = Personas_contactos_cargos.Fk_contacto LEFT OUTER JOIN
		Cargo ON Cargo.Codigo = Personas_contactos_cargos.Fk_cargo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasFacCompraLineas]'))
DROP VIEW [dbo].V_ComprasFacCompraLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasFacCompraLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ComprasFacCompraLineas] AS 
	SELECT        dbo.FacturasCompraLineas.Id, ''FC'' AS SerieTipoDoc, dbo.FacturasCompraLineas.Serie, dbo.FacturasCompraLineas.Numero, dbo.FacturasCompraLineas.Fecha AS Fecha_hora, YEAR(dbo.FacturasCompraLineas.Fecha) AS Año, 
                         MONTH(dbo.FacturasCompraLineas.Fecha) AS Mes, dbo.FacturasCompraLineas.Codigo_persona, dbo.FacturasCompraLineas.NombreCompleto, dbo.FacturasCompraLineas.Fk_articulo AS Fk_articulo, 
                         dbo.FacturasCompraLineas.Desc_articulo_original AS Articulo_descripcion, dbo.FacturasCompraLineas.Fk_articulo_agrupacion, dbo.FacturasCompraLineas.Desc_articulo_agrupacion, dbo.FacturasCompraLineas.Cantidad, 
                         dbo.FacturasCompraLineas.Bultos, dbo.FacturasCompraLineas.Precio_neto, dbo.FacturasCompraLineas.Importe_neto, dbo.FacturasCompra.Representante1, dbo.FacturasCompra.Representante2, 
                         dbo.FacturasCompra.Forma_pago, dbo.FacturasCompraLineas.Codigo_iva, dbo.FacturasCompraLineas.Fk_cuenta_contable, dbo.FacturasCompraLineas.No_incluir_pesos_listados, dbo.FacturasCompraLineas.Peso_neto, 
                         dbo.FacturasCompraLineas.Capacidad, dbo.FacturasCompra.Estado
FROM            dbo.FacturasCompraLineas INNER JOIN
                         dbo.FacturasCompra ON dbo.FacturasCompra.Serie = dbo.FacturasCompraLineas.Serie AND dbo.FacturasCompra.Numero = dbo.FacturasCompraLineas.Numero'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasAlbCompraLineas]'))
DROP VIEW [dbo].V_ComprasAlbCompraLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ComprasAlbCompraLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ComprasAlbCompraLineas] AS 
SELECT        dbo.AlbaranesCompraLineas.Id, ''AC'' AS SerieTipoDoc, dbo.AlbaranesCompraLineas.Serie, dbo.AlbaranesCompraLineas.Numero, dbo.AlbaranesCompraLineas.Fecha AS Fecha_hora, YEAR(dbo.AlbaranesCompraLineas.Fecha) AS Año, 
                         MONTH(dbo.AlbaranesCompraLineas.Fecha) AS Mes, dbo.AlbaranesCompraLineas.Codigo_persona, dbo.AlbaranesCompraLineas.NombreCompleto, dbo.AlbaranesCompraLineas.Fk_articulo, 
                         dbo.AlbaranesCompraLineas.Desc_articulo_original AS Articulo_descripcion, dbo.AlbaranesCompraLineas.Fk_articulo_agrupacion, dbo.AlbaranesCompraLineas.Desc_articulo_agrupacion, dbo.AlbaranesCompraLineas.Cantidad, 
                         dbo.AlbaranesCompraLineas.Bultos, dbo.AlbaranesCompraLineas.Precio_neto, dbo.AlbaranesCompraLineas.Importe_neto, dbo.AlbaranesCompra.Representante1, dbo.AlbaranesCompra.Representante2, 
                         dbo.AlbaranesCompra.Forma_pago, dbo.AlbaranesCompraLineas.Codigo_iva, dbo.AlbaranesCompraLineas.Fk_cuenta_contable, dbo.AlbaranesCompraLineas.No_incluir_pesos_listados, dbo.AlbaranesCompraLineas.Articulo_peso_neto as Peso_neto, 
                         dbo.AlbaranesCompraLineas.Capacidad
FROM            dbo.AlbaranesCompraLineas INNER JOIN
                         dbo.AlbaranesCompra ON dbo.AlbaranesCompra.Serie = dbo.AlbaranesCompraLineas.Serie AND dbo.AlbaranesCompra.Numero = dbo.AlbaranesCompraLineas.Numero'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_RetencionesCompras]'))
DROP VIEW [dbo].V_RetencionesCompras  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_RetencionesCompras]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_RetencionesCompras] AS 
SELECT        ''FC'' AS SerieTipoDoc, Serie, Numero,CASE WHEN Fecha_recepcion IS NOT NULL THEN Fecha_recepcion ELSE  Fecha_hora END AS Fecha, Codigo_persona AS Fk_persona, Nombre_cliente AS NombreCompleto, Regimen_ss, Identificacion, F.Fk_seccion, F.Desc_seccion, F.Fk_campanya AS Fk_campaña, 
                         F.Desc_campaña, Importe_iva, Importe_base, Importe_irpf, Total_factura AS Importe_final, Importe_base_irpf
FROM            FacturasCompra F
UNION ALL
SELECT        ''LIQ'' AS SerieTipoDoc, Serie, Numero, CASE WHEN L.Fecha_recepcion IS NOT NULL THEN L.Fecha_recepcion ELSE  L.Fecha END as Fecha, Fk_persona, NombreCompleto, Regimen_ss, Identificacion, Fk_seccion, Desc_seccion, Fk_Campaña, Desc_campaña, Importe_iva, Importe_base, Importe_irpf, Importe_final, 
                         Importe_base_irpf
FROM            V_Liquidaciones L
UNION ALL
SELECT        ''PAG'' AS SerieTipoDoc, Fk_serie AS Serie, L.Numero, Fecha_pago AS Fecha, L.Fk_persona, NombreCompleto, L.Regimen_ss, Identificacion, L.Fk_seccion, Desc_seccion, L.Fk_Campanya as Fk_Campaña, Desc_campaña, 
                         SUM(ISNULL(L.Importe_iva, 0)) AS Importe_iva, SUM(ISNULL(L.Importe_base, 0)) AS Importe_base, SUM(ISNULL(L.Importe_irpf, 0)) AS Importe_irpf, SUM(ISNULL(Importe_total, 0)) AS Importe_final
                         , SUM(CASE WHEN ISNULL(L.Importe_irpf,0)=0 THEN 0 ELSE ISNULL(L.Importe_base_irpf,0) END) AS Importe_base_irpf
FROM            V_PagosCuentaLineas L INNER JOIN
                         Liquidaciones LIQ ON L.Fk_liquidacion = LIQ.Id
WHERE        ISNULL(LIQ.Importe_irpf, 0) = 0
GROUP BY Fk_serie, L.Numero, Fecha_pago, L.Fk_persona, NombreCompleto, L.Regimen_ss, Identificacion, L.Fk_seccion, Desc_seccion, L.Fk_Campanya, Desc_campaña
UNION ALL
SELECT        ''LIQ'' AS SerieTipoDoc, L.Serie, L.Numero, CASE WHEN L.Fecha_recepcion IS NOT NULL THEN L.Fecha_recepcion ELSE  L.Fecha END as Fecha, L.Fk_persona, NombreCompleto, L.Regimen_ss, L.Identificacion, L.Fk_seccion, L.Desc_seccion, L.Fk_Campaña, L.Desc_campaña, - SUM(ISNULL(Pa.importe_iva, 0)) 
                         AS Importe_iva, - SUM(ISNULL(Pa.importe_base, 0)) AS Importe_base, - SUM(ISNULL(Pa.Importe_irpf, 0)) AS Importe_irpf, - sUM(PA.importe) AS Importe_final
						 , - SUM(CASE WHEN ISNULL(PA.Importe_irpf,0)=0 THEN 0 ELSE ISNULL(PA.Importe_base_irpf,0) END) AS Importe_base_irpf
FROM            V_Liquidaciones L INNER JOIN
                         Liquidaciones_pagos_asociados PA ON L.Id = PA.Fk_liquidacion INNER JOIN
                         Pagos_cuenta_lineas PCL ON PA.Fk_pago = PCL.Fk_pago LEFT OUTER JOIN
                         Liquidaciones LIQ_ORI ON PCL.Fk_liquidacion = LIQ_ORI.Id
WHERE        ISNULL(LIQ_ORI.Importe_irpf, 0) = 0
GROUP BY L.Serie, L.Numero, CASE WHEN L.Fecha_recepcion IS NOT NULL THEN L.Fecha_recepcion ELSE  L.Fecha END, L.Fk_persona, NombreCompleto, L.Regimen_ss, L.Identificacion, L.Fk_seccion, L.Desc_seccion, L.Fk_Campaña, L.Desc_campaña
UNION ALL
SELECT   ''IE'' AS SerieTipoDoc, Serie, Numero, Fecha, Fk_persona, P.NombreCompleto, F.Regimen_ss, P.Identificacion, F.Fk_seccion,S.Descripcion as Desc_seccion, F.Fk_campaña, C.Descripcion AS Desc_campaña, Importe_iva, 
             Importe_base, Importe_irpf, F.Importe_final
			 , CASE WHEN ISNULL(Importe_irpf,0)=0 THEN 0 ELSE ISNULL(Importe_base_irpf,0) END AS Importe_base_irpf
FROM     Irpf_externos F LEFT OUTER JOIN V_Personas P ON F.Fk_persona=P.Codigo
LEFT OUTER JOIN Secciones S ON F.Fk_seccion=S.Codigo LEFT OUTER JOIN Campañas C ON F.Fk_campaña=C.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SalidasAceiteGranelOPVentas]'))
DROP VIEW [dbo].V_SalidasAceiteGranelOPVentas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SalidasAceiteGranelOPVentas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SalidasAceiteGranelOPVentas] AS 
SELECT        L.Id, CAST(L.Fecha_cierre AS Date) AS Fecha,CONVERT(varchar, L.Fecha_cierre, 108) AS Hora, Litros_componente AS Litros,Kg_componente as Kilos, AP.Capacidad, AP.Fk_do, AP.Desc_do, AP.Fk_envase, AP.Desc_envase, AP.Fk_marca, AP.Desc_marca, L.Fk_articulo_componente AS Fk_articulo, 
                         L.Desc_articulo, L.Fk_articulo_op, L.Desc_articulo_op, L.Lote, L.Lote_etiqueta, L.Fk_almacen, L.Desc_almacen, ''OP'' AS SerieTipoDoc, L.Fk_serie AS Serie, L.Numero, L.Codigo_persona AS Fk_persona, L.NombreCompleto, 
                         V_OpCierres.Num_sellos_utilizados
FROM            V_OpComponentesLotesReales L INNER JOIN
                         V_ArticulosNombre A ON L.Fk_articulo_componente = A.Codigo INNER JOIN
                         V_ArticulosNombre AP ON L.Fk_articulo_op = AP.Codigo INNER JOIN
                         V_OpCierres ON L.Fk_Cierre = V_OpCierres.Id_cierre
WHERE        (A.Tipo_articulo_libros = 0 OR
                         A.Tipo_articulo_libros = 4) AND A.Tipo_formato = 0
UNION ALL
SELECT        LOTES.Id, L.Fecha, L.Hora AS Hora, ROUND(L.Cantidad * L.Capacidad, 2) AS Litros,L.Cantidad_Kg AS Kilos, L.Capacidad, L.fk_do, L.Desc_do, A.Fk_envase, A.desc_envase, A.Fk_marca, A.Desc_marca, L.Fk_articulo, A.Descripcion AS Desc_articulo, NULL 
                         AS Fk_articulo_op, NULL AS Desc_articulo_op, LOTES.Lote, LOTES.Lote_etiqueta, LOTES.Almacen AS Fk_almacen, LOTES.Desc_almacen, ''AV'' AS SerieTipoDoc, L.Serie, L.Numero, L.Codigo_cliente AS Fk_persona, 
                         L.NombreCompleto, NULL AS Num_sellos_utilizados
FROM            AlbaranesVentaLineasLotes LOTES INNER JOIN
                         AlbaranesVentaLineas L ON L.Id = LOTES.fk_Id_linea INNER JOIN
                         V_ArticulosNombre A ON L.Fk_articulo = A.Codigo
WHERE        (A.Tipo_articulo_libros = 0 OR
                         A.Tipo_articulo_libros = 4) AND A.Tipo_formato = 0
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ActivosRepartos]'))
DROP VIEW [dbo].V_ActivosRepartos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ActivosRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ActivosRepartos] AS 
SELECT        
dbo.Activos.Codigo, dbo.Activos.Descripcion, dbo.Activos.Tipo_activo, dbo.Activos.Fk_familia, dbo.Familias_activos.Descripcion AS Desc_familia, dbo.Activos.Serie_doc, dbo.Activos.Num_doc, dbo.Activos.Fecha_doc, 
                         dbo.Activos.Fecha_compra, dbo.Activos.Fecha_alta, dbo.Activos.Fecha_baja, dbo.Activos.Valor_compra, dbo.Activos.Valor_regularizado, dbo.Activos.Tipo_amortizacion, dbo.Activos.Cuenta_activo, 
                         dbo.Activos.Cuenta_amort_acumulada, dbo.Activos.Cuenta_dotacion_amort, dbo.Activos.Cuenta_beneficio_amort, dbo.Activos.Vida_util, dbo.Activos.Horas_turno, dbo.Activos.Turnos, dbo.Activos.Tasa_minima, 
                         dbo.Activos.Tasa_maxima, dbo.Activos.Tasa_actual, dbo.Activos.En_curso, dbo.Activos.Observaciones, dbo.Activos.Tipo_activo_mobiliario, dbo.Activos.Tipo_activo_inmobiliario, 
                         dbo.Activos.Codigo_isin, dbo.Activos.Periodo_liquidacion_intereses, dbo.Activos.Fecha_vencimiento, dbo.Activos.Tipo_calculo, dbo.Activos.Fk_divisa_origen, dbo.Activos.Precio_compra, dbo.Activos.Precio_nominal, 
                         dbo.Activos.Cantidad, dbo.Activos.Valor_nominal, dbo.Activos.Fk_persona,
                          dbo.Activos.Numero_vencimientos, dbo.Activos.Fk_centro, dbo.Activos.Fk_empresa, dbo.Activos.Fk_serie_libro, dbo.Activos.Fk_numero_libro, dbo.V_PersonasSoloNombre.NombreCompleto, CC1.Descripcion AS Desc_cc_activo, 
                         CC2.Descripcion AS Desc_cc_amort_acumulada, CC3.Descripcion AS Desc_cc_dotacion_amort, CC4.Descripcion AS Desc_cc_beneficio_amort, 
                         CASE WHEN dbo.activos.Tipo_activo = 0 THEN ''Inmobiliario'' WHEN dbo.activos.tipo_activo = 1 THEN ''Mobiliario'' END AS Desc_tipo_activo, dbo.Divisas.Descripcion AS Desc_divisa, 
                         dbo.Empresas.Descripcion AS Desc_empresa, dbo.Centros.Descripcion AS Desc_centro, 
                         CASE WHEN dbo.activos.Tipo_activo_mobiliario = 1 THEN ''Aciones/Participaciones'' WHEN dbo.activos.Tipo_activo_mobiliario = 2 THEN ''Obligaciones'' WHEN dbo.activos.Tipo_activo_mobiliario = 3 THEN ''Bonos'' WHEN dbo.activos.Tipo_activo_mobiliario
                          = 4 THEN ''Cédulas'' WHEN dbo.activos.Tipo_activo_mobiliario = 5 THEN ''Pagarés'' WHEN dbo.activos.Tipo_activo_mobiliario = 6 THEN ''Derechos'' WHEN dbo.activos.Tipo_activo_mobiliario = 7 THEN ''Participaciones hipotecarias''
                          WHEN dbo.activos.Tipo_activo_mobiliario = 8 THEN ''Participaciones preferentes'' WHEN dbo.activos.Tipo_activo_mobiliario = 9 THEN ''Letras del tesoro'' WHEN dbo.activos.Tipo_activo_mobiliario = 10 THEN ''Opciones'' WHEN dbo.activos.Tipo_activo_mobiliario
                          = 11 THEN ''Futuros'' WHEN dbo.activos.Tipo_activo_mobiliario = 12 THEN ''Subyacentes'' END AS Desc_tipo_activo_mobiliario, 
                         CASE WHEN dbo.Activos.Tipo_activo_inmobiliario = 0 THEN ''Material'' WHEN dbo.Activos.Tipo_activo_inmobiliario = 1 THEN ''Inmaterial'' WHEN dbo.Activos.Tipo_activo_inmobiliario = 2 THEN ''Gastos establecimiento'' END AS Desc_tipo_activo_inmobiliario,
                          CASE WHEN dbo.Activos.Tipo_calculo = 0 THEN ''Porcentaje'' ELSE ''Precio cotización'' END AS Desc_tipo_calculo, dbo.Activos.Fk_activo_relacionado, dbo.Activos.Importe_maximo_subvencionable, 
                         dbo.Activos.porcentaje_subvencion, dbo.Activos.Id_activo_destino_subvencion, ACT2.Descripcion AS DescActivoDestinoSubvencion, dbo.Activos.Entidad_ordenante_subvencion, 
                         ENT.NombreCompleto AS DescEntidadOrdenanteSubvencion, dbo.Activos.Usuario_creacion, dbo.Activos.Usuario_modificacion, dbo.Activos.Fecha_creacion, dbo.Activos.Fecha_modificacion

,dbo.Activos_repartos.id, dbo.Activos_repartos.fk_codigo_reparto, dbo.Activos_repartos.fk_activo, dbo.Activos_repartos.Porcentaje, dbo.Activos_repartos.importe, dbo.Asientos_codigos_reparto.descripcion AS Desc_reparto, 
                         dbo.Asientos_codigos_reparto.fk_tipo_reparto, dbo.Asientos_tipo_reparto.descripcion AS Desc_tipo_reparto, dbo.Asientos_codigos_reparto.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, 
                         dbo.Asientos_codigos_reparto.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, dbo.Asientos_codigos_reparto.Codigo_datisa
FROM            dbo.Activos_repartos LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto ON dbo.Activos_repartos.fk_codigo_reparto = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
                         dbo.Asientos_tipo_reparto ON dbo.Asientos_codigos_reparto.fk_tipo_reparto = dbo.Asientos_tipo_reparto.codigo LEFT OUTER JOIN
                         dbo.Secciones ON dbo.Asientos_codigos_reparto.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON dbo.Asientos_codigos_reparto.Fk_campaña = dbo.Campañas.Codigo
						 LEFT OUTER JOIN dbo.Activos ON dbo.Activos_repartos.fk_activo=dbo.Activos.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Activos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Activos.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Activos ACT2 ON dbo.Activos.Id_activo_destino_subvencion = ACT2.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ENT ON dbo.Activos.Entidad_ordenante_subvencion = ENT.Codigo LEFT OUTER JOIN
                         dbo.Divisas ON dbo.Activos.Fk_divisa_origen = dbo.Divisas.Codigo LEFT OUTER JOIN
                         dbo.Familias_activos ON dbo.Activos.Fk_familia = dbo.Familias_activos.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Activos.Fk_persona = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC1 ON dbo.Activos.Cuenta_activo = CC1.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC2 ON dbo.Activos.Cuenta_amort_acumulada = CC2.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC3 ON dbo.Activos.Cuenta_dotacion_amort = CC3.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS CC4 ON dbo.Activos.Cuenta_beneficio_amort = CC4.Codigo 

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraPrevio]'))
DROP VIEW [dbo].V_PedCompraPrevio  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraPrevio]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedCompraPrevio] AS 
SELECT        dbo.Empresas.Descripcion AS Empresa_desc, dbo.Ped_compra_previo.Id, dbo.Ped_compra_previo.Fk_empresa, dbo.Ped_compra_previo.Pedido_proveedor,  dbo.Ped_compra_previo.Fecha_hora, CONVERT(date, dbo.Ped_compra_previo.Fecha_hora, 103) AS Fecha, CONVERT(varchar, dbo.Ped_compra_previo.Fecha_hora, 108) AS Hora,
                          dbo.Ped_compra_previo.Fk_persona, dbo.V_Personas.NombreCompleto AS Nombre_persona,  
                         dbo.Ped_compra_previo.Observaciones, dbo.Ped_compra_previo.Estado, 
                         CASE WHEN dbo.Ped_compra_previo.Estado = 0 THEN ''PENDIENTE'' WHEN dbo.Ped_compra_previo.Estado = 1 THEN ''PROCESADO'' ELSE ''DESCONOCIDO'' END AS Estado_descripcion, 
                         dbo.Ped_compra_previo.Tramitar, CASE WHEN dbo.Ped_compra.Numero IS NOT NULL THEN dbo.Ped_compra.Serie + ''-'' + CAST(dbo.Ped_compra.Numero AS nvarchar(50)) ELSE '''' END AS PedidoCompraAsociado
FROM            dbo.Ped_compra_previo LEFT OUTER JOIN
                        
                         dbo.V_Personas ON dbo.Ped_compra_previo.Fk_persona = dbo.V_Personas.Codigo LEFT OUTER JOIN
                         dbo.Ped_compra ON dbo.Ped_compra_previo.Id = dbo.Ped_compra.Fk_prepedido LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Ped_compra_previo.Fk_empresa = dbo.Empresas.Codigo
						 
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraPrevioLineas]'))
DROP VIEW [dbo].V_PedCompraPrevioLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedCompraPrevioLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedCompraPrevioLineas] AS 
SELECT        dbo.Ped_compra_previo_lineas.Id, dbo.Ped_compra_previo_lineas.Dto_adic1, dbo.Ped_compra_previo_lineas.Dto_adic2, dbo.Ped_compra_previo_lineas.Promocion, 
                         dbo.Ped_compra_previo_lineas.Fk_ped_compra_previo, dbo.Ped_compra_previo_lineas.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Ped_compra_previo_lineas.Cantidad, 
                         dbo.Ped_compra_previo_lineas.Dto, dbo.Ped_compra_previo_lineas.Observaciones, dbo.Ped_compra_previo_lineas.Precio, dbo.Ped_compra_previo_lineas.Cajas, dbo.Ped_compra_previo_lineas.Num_linea
FROM            dbo.Ped_compra_previo_lineas INNER JOIN
                         dbo.Articulos ON dbo.Ped_compra_previo_lineas.Fk_articulo = dbo.Articulos.Codigo
						 
'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasAgrupaciones]'))
DROP VIEW [dbo].V_PersonasAgrupaciones  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasAgrupaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasAgrupaciones] AS 
	SELECT        dbo.Personas_grupos.Descripcion, dbo.V_Personas.NombreCompleto, dbo.Personas_agrupaciones.Codigo_persona, 
                         dbo.Personas_agrupaciones.Codigo_grupo
FROM            dbo.V_Personas INNER JOIN
                         dbo.Personas_agrupaciones ON dbo.V_Personas.Codigo = dbo.Personas_agrupaciones.codigo_persona INNER JOIN
                         dbo.Personas_grupos ON dbo.Personas_agrupaciones.Codigo_grupo = dbo.Personas_grupos.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasCultivos]'))
DROP VIEW [dbo].V_FincasCultivos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FincasCultivos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FincasCultivos] AS 
	SELECT CAST(dbo.Fincas.Codigo AS nvarchar) + CAST(dbo.Fincas_parcelas.Id_parcela AS nvarchar) + IIF(dbo.Fincas_cultivos.Id IS NULL, '''', CAST(dbo.Fincas_cultivos.Id AS nvarchar(100))) AS IdAuto
, dbo.Fincas_parcelas.Tipo_seccion
, dbo.Fincas_cultivos.Marco_plantacion1, 
             dbo.Fincas_cultivos.Marco_plantacion2, dbo.Fincas_cultivos.Num_elementos, dbo.Fincas_cultivos.Pie, dbo.Fincas_cultivos.Clon, dbo.Fincas_cultivos.Ha_anejos, dbo.Fincas_cultivos.Observaciones AS Observaciones_cultivos, dbo.Fincas.Codigo, dbo.Fincas.Id_finca, 
             dbo.Fincas.Descripcion, dbo.Fincas.Paraje, dbo.Fincas.Poligono, dbo.Fincas.Parcela, dbo.Fincas.Direccion_sigpac, dbo.Fincas.Codigo_postal, dbo.Fincas.Codigo_municipio, dbo.Fincas.Sigpac, dbo.Fincas.Fk_entidad, dbo.Fincas_parcelas.Declara_DUN, 
             dbo.Fincas.Ref_catastral_urbana, dbo.Fincas_cultivos.Article, dbo.Fincas_cultivos.Fecha_plant_desde, dbo.Fincas_cultivos.Fecha_plant_hasta, dbo.Fincas_cultivos.Semana_desde, dbo.Fincas_cultivos.Semana_hasta, dbo.V_PersonasSoloNombre.NombreCompleto, 
             dbo.V_ArticulosNombre.Descripcion AS Desc_articulo_cultivo, dbo.Fincas_cultivos.Id, dbo.Fincas_parcelas.Fk_variedad, Variedad.Descripcion AS Desc_variedad, dbo.Fincas.Año_plantacion AS Año_plantacion_finca, dbo.Fincas_parcelas.Año_plantacion AS Año_plantacion_parcela, 
             dbo.Fincas.Estado, dbo.Fincas.Fecha_baja, dbo.Fincas_cultivos.Superficie AS Sup_cultivo, dbo.Fincas_parcelas.Superficie AS Sup_parcela, dbo.Fincas.Sup_catastro AS Sup_catastro_finca, dbo.Fincas_parcelas.Cava_guarda_superior AS Cava_guarda_superior_parcela, 
             dbo.Fincas.Cava_guarda_superior AS Cava_guarda_superior_finca, dbo.Fincas_parcelas.Id_parcela, CASE WHEN dbo.Fincas_cultivos.Fecha_plant_hasta IS NOT NULL THEN DATEDIFF(year, dbo.Fincas_cultivos.Fecha_plant_desde, dbo.Fincas_cultivos.Fecha_plant_hasta) 
             ELSE DATEDIFF(year, dbo.Fincas_cultivos.Fecha_plant_desde, GETDATE()) END AS Edad
			 ,PROD.Codigos_persona,PROD.Nombres_persona
FROM   dbo.Fincas LEFT OUTER JOIN
             dbo.Fincas_parcelas ON dbo.Fincas_parcelas.Id_finca = dbo.Fincas.Codigo INNER JOIN
             dbo.Fincas_cultivos ON dbo.Fincas_cultivos.Id_finca = dbo.Fincas_parcelas.Id_finca AND dbo.Fincas_cultivos.Id_parcela = dbo.Fincas_parcelas.Id_parcela LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre ON dbo.V_PersonasSoloNombre.Codigo = dbo.Fincas.Fk_entidad LEFT OUTER JOIN
             dbo.V_ArticulosNombre ON dbo.Fincas_cultivos.Article = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
             dbo.V_ArticulosNombre AS Variedad ON dbo.Fincas_parcelas.Fk_variedad = Variedad.Codigo
			 LEFT OUTER JOIN (
								SELECT P.Id_finca,P.Tipo_seccion,STRING_AGG(''['' + CAST(P.Fk_persona as nvarchar) + '']'', '','') as Codigos_persona 
        						  ,STRING_AGG(''['' + CAST(P.NombreCompleto as nvarchar) + '']'', '','') as Nombres_persona FROM V_Productores P GROUP BY P.id_finca,P.Tipo_seccion ) PROD ON dbo.Fincas.Id_finca=PROD.Id_finca AND dbo.Fincas_parcelas.Tipo_seccion=PROD.Tipo_seccion'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Proyectos]'))
DROP VIEW [dbo].V_Proyectos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Proyectos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Proyectos] AS 
SELECT        dbo.Proyecto.Codigo, dbo.Proyecto.Descripcion, dbo.Proyecto.Fecha_inicio, dbo.Proyecto.Fecha_fin, dbo.Proyecto.Cerrado, dbo.Proyecto.Fk_estado, Estados_1.Descripcion AS Desc_estado, dbo.Proyecto.Fk_cargo_habitual, 
                         dbo.Asientos_codigos_reparto.descripcion AS Desc_cargo, dbo.Proyecto.Notas, PA.Importe, dbo.Proyecto.Fk_pais, dbo.Paises.Descripcion AS Desc_pais, dbo.Paises.Id_iso2, dbo.Proyecto.Fk_provincia, 
                         dbo.Provincias.Descripcion AS Desc_provincia, dbo.Proyecto.Fk_municipio, dbo.Municipios.Descripcion AS Desc_municipio, dbo.Proyecto.Direccion, dbo.Proyecto.Fk_responsable, 
                         dbo.V_PersonasSoloNombre.NombreCompleto AS NombreResponsable, dbo.Proyecto.Fk_grupo_persona, dbo.Personas_grupos.Descripcion AS Desc_grupo_persona, dbo.Proyecto.Fk_resultado, 
                         dbo.Estados.Descripcion AS Desc_resultado, dbo.Proyecto.Codigo_postal,dbo.Proyecto.Valoracion_importe,dbo.Proyecto.Valoracion_horas
						 ,dbo.Proyecto.Fk_cliente,PER_CLI.NombreCompleto as NombreCliente
FROM            dbo.Proyecto LEFT OUTER JOIN
                         dbo.Estados ON dbo.Proyecto.Fk_resultado = dbo.Estados.Codigo LEFT OUTER JOIN
                         dbo.Personas_grupos ON dbo.Proyecto.Fk_grupo_persona = dbo.Personas_grupos.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Proyecto.Fk_responsable = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre PER_CLI ON dbo.Proyecto.Fk_cliente = PER_CLI.Codigo LEFT OUTER JOIN
                         dbo.Municipios ON dbo.Proyecto.Fk_municipio = dbo.Municipios.Id LEFT OUTER JOIN
                         dbo.Provincias ON dbo.Proyecto.Fk_provincia = dbo.Provincias.Codigo LEFT OUTER JOIN
                         dbo.Paises ON dbo.Proyecto.Fk_pais = dbo.Paises.Id_isonum LEFT OUTER JOIN
                         dbo.Estados AS Estados_1 ON dbo.Proyecto.Fk_estado = Estados_1.Codigo LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto ON dbo.Proyecto.Fk_cargo_habitual = dbo.Asientos_codigos_reparto.codigo LEFT OUTER JOIN
                             (SELECT        Fk_proyecto, SUM(ROUND(ISNULL(Cantidad, 0) * ISNULL(Precio, 0), 2)) AS Importe
                               FROM            dbo.Proyectos_articulos
                               GROUP BY Fk_proyecto) AS PA ON dbo.Proyecto.Codigo = PA.Fk_proyecto'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosPersonasContactos]'))
DROP VIEW [dbo].V_ProyectosPersonasContactos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosPersonasContactos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ProyectosPersonasContactos] AS 
	SELECT        NEWID() as Id,dbo.V_Proyectos.Codigo, dbo.V_Proyectos.Descripcion, dbo.V_Proyectos.Fecha_inicio, dbo.V_Proyectos.Fecha_fin, dbo.V_Proyectos.Cerrado, dbo.V_Proyectos.Fk_estado, dbo.V_Proyectos.Desc_estado, 
                         dbo.V_Proyectos.Fk_cargo_habitual, dbo.V_Proyectos.Desc_cargo as Desc_cargo_proyecto, dbo.V_Proyectos.Notas, dbo.V_Proyectos.Importe, dbo.Proyectos_personas.Fk_persona, dbo.Proyectos_personas.Notas AS Notas_persona_proyecto, 
                         dbo.V_PersonasContactosCargos.NombreCompleto, dbo.V_PersonasContactosCargos.Fk_cargo, dbo.V_PersonasContactosCargos.Descripcion AS Desc_cargo_contacto, dbo.V_PersonasContactosCargos.Email1, 
                         dbo.V_PersonasContactosCargos.Email2, dbo.V_PersonasContactosCargos.Telefono_particular, dbo.V_PersonasContactosCargos.Telefono_trabajo, dbo.V_PersonasContactosCargos.ContactoNombreCompleto, 
                         dbo.V_PersonasContactosCargos.ContactoEmail1, dbo.V_PersonasContactosCargos.ContactoEmail2, dbo.V_PersonasContactosCargos.ContactoTelefono_movil, dbo.V_PersonasContactosCargos.ContactoTelefono_particular, 
                         dbo.V_PersonasContactosCargos.ContactoTelefono_profesional, dbo.V_PersonasContactosCargos.ContactoDireccion, dbo.V_PersonasContactosCargos.ContactoNotas, dbo.V_PersonasContactosCargos.Desc_corta,dbo.V_PersonasContactosCargos.Fk_contacto
FROM            dbo.V_Proyectos LEFT OUTER JOIN
                         dbo.Proyectos_personas ON dbo.V_Proyectos.Codigo = dbo.Proyectos_personas.Fk_proyecto LEFT OUTER JOIN
                         dbo.V_PersonasContactosCargos ON dbo.Proyectos_personas.Fk_persona = dbo.V_PersonasContactosCargos.Fk_persona'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosPersonas]'))
DROP VIEW [dbo].V_ProyectosPersonas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosPersonas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ProyectosPersonas] AS 
SELECT        dbo.V_Proyectos.Codigo, dbo.V_Proyectos.Descripcion, dbo.V_Proyectos.Fecha_inicio, dbo.V_Proyectos.Fecha_fin, dbo.V_Proyectos.Cerrado, dbo.V_Proyectos.Fk_estado, dbo.V_Proyectos.Desc_estado, 
                         dbo.V_Proyectos.Fk_cargo_habitual, dbo.V_Proyectos.Desc_cargo AS Desc_cargo_proyecto, dbo.V_Proyectos.Notas, dbo.V_Proyectos.Importe, dbo.Proyectos_personas.Fk_persona, dbo.Proyectos_personas.Fecha,
                         dbo.Proyectos_personas.Notas AS Notas_persona_proyecto, dbo.V_Personas.NombreCompleto, dbo.V_Personas.Socio, dbo.V_Personas.Tercero, dbo.V_Personas.Cliente, dbo.V_Personas.Proveedor, 
                         dbo.V_Personas.Es_acreedor, dbo.V_Personas.Transportista, dbo.V_Personas.Representante, dbo.V_Personas.Identificacion, dbo.V_Personas.NombresGruposPersona, dbo.V_Personas.GruposPersona
						 
FROM            dbo.V_Personas LEFT OUTER JOIN
                         dbo.Proyectos_personas ON dbo.V_Personas.Codigo = dbo.Proyectos_personas.Fk_persona RIGHT OUTER JOIN
                         dbo.V_Proyectos ON dbo.Proyectos_personas.Fk_proyecto = dbo.V_Proyectos.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosArticulos]'))
DROP VIEW [dbo].V_ProyectosArticulos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosArticulos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ProyectosArticulos] AS 
SELECT        dbo.V_Proyectos.Codigo, dbo.V_Proyectos.Descripcion AS Desc_proyecto, dbo.V_Proyectos.Fecha_inicio, dbo.V_Proyectos.Fecha_fin, dbo.V_Proyectos.Cerrado, dbo.V_Proyectos.Fk_estado, dbo.V_Proyectos.Desc_estado, 
                         dbo.V_Proyectos.Fk_cargo_habitual, dbo.V_Proyectos.Desc_cargo, dbo.V_Proyectos.Notas, dbo.V_Proyectos.Importe, dbo.V_Proyectos.Fk_pais, dbo.V_Proyectos.Desc_pais, dbo.V_Proyectos.Id_iso2, 
                         dbo.V_Proyectos.Fk_provincia, dbo.V_Proyectos.Desc_provincia, dbo.V_Proyectos.Fk_municipio, dbo.V_Proyectos.Desc_municipio, dbo.V_Proyectos.Direccion, dbo.V_Proyectos.Fk_responsable, 
                         dbo.V_Proyectos.NombreResponsable, dbo.V_Proyectos.Fk_grupo_persona, dbo.V_Proyectos.Desc_grupo_persona, dbo.V_Proyectos.Fk_resultado, dbo.V_Proyectos.Desc_resultado, dbo.V_Proyectos.Codigo_postal, 
                         dbo.Proyectos_articulos.Cantidad, dbo.Proyectos_articulos.Precio, dbo.Proyectos_articulos.Notas AS Notas_proyecto_articulo, dbo.Proyectos_articulos.Descuento, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, 
                         dbo.Proyectos_articulos.Fk_persona, dbo.V_Personas.NombreCompleto AS Desc_persona, dbo.V_ArticulosNombre.NombresGruposArticulos, dbo.Proyectos_articulos.Id, dbo.Proyectos_articulos.Fk_articulo,dbo.Proyectos_articulos.Fecha
FROM            dbo.V_Proyectos LEFT OUTER JOIN
                         dbo.Proyectos_articulos  ON dbo.Proyectos_articulos.Fk_proyecto = dbo.V_Proyectos.Codigo  LEFT OUTER JOIN
						 dbo.V_Personas ON dbo.V_Personas.Codigo = dbo.Proyectos_articulos.Fk_persona LEFT OUTER JOIN
                         dbo.V_ArticulosNombre ON dbo.Proyectos_articulos.Fk_articulo = dbo.V_ArticulosNombre.Codigo 
                         '
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PoligonosExcluidos]'))
DROP VIEW [dbo].V_PoligonosExcluidos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PoligonosExcluidos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PoligonosExcluidos] AS 
SELECT        dbo.Poligonos_excluidos.Id, dbo.Poligonos_excluidos.Poligono, dbo.Municipios.Descripcion, dbo.Municipios.Codigo_catastral
FROM            dbo.Poligonos_excluidos INNER JOIN
                         dbo.Municipios ON dbo.Poligonos_excluidos.Id_municipio = dbo.Municipios.Id 
                         '
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbaranesMesCliente]'))
DROP VIEW [dbo].V_VentasAlbaranesMesCliente  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbaranesMesCliente]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasAlbaranesMesCliente] AS 
SELECT        dbo.Alb_venta.Codigo_cliente, YEAR(dbo.Alb_venta.Fecha_hora) AS Year, MONTH(dbo.Alb_venta.Fecha_hora) AS Month, ISNULL(SUM(dbo.Alb_venta_lineas.Importe_base), 0) AS Importe_Total
FROM            dbo.Alb_Venta INNER JOIN
                         dbo.Alb_venta_lineas ON dbo.Alb_venta.Serie = dbo.Alb_venta_lineas.Serie AND dbo.Alb_venta.Numero = dbo.Alb_venta_lineas.Numero
GROUP BY dbo.Alb_venta.Codigo_cliente, YEAR(dbo.Alb_venta.Fecha_hora), MONTH(dbo.Alb_venta.Fecha_hora)
                         '
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbaranesMesArticulo]'))
DROP VIEW [dbo].V_VentasAlbaranesMesArticulo  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasAlbaranesMesArticulo]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasAlbaranesMesArticulo] AS 
SELECT        dbo.Alb_venta_lineas.Fk_articulo, YEAR(dbo.Alb_venta.Fecha_hora) AS Year, MONTH(dbo.Alb_venta.Fecha_hora) AS Month
, ISNULL(SUM(dbo.Alb_venta_lineas.Importe_base), 0) AS Importe_Total
, ISNULL(SUM(dbo.Alb_venta_lineas.Cantidad), 0) AS Cantidad
,SUM(ROUND(ISNULL(VAN.Peso_bruto,0) * ISNULL(dbo.alb_venta_lineas.Cantidad,0),2)) as Kilos
,SUM(ROUND(ISNULL(VAN.Capacidad,0) * ISNULL(dbo.alb_venta_lineas.Cantidad,0),2)) as Litros

FROM            dbo.Alb_Venta INNER JOIN
                         dbo.Alb_venta_lineas ON dbo.Alb_venta.Serie = dbo.Alb_venta_lineas.Serie AND dbo.Alb_venta.Numero = dbo.Alb_venta_lineas.Numero
						 LEFT OUTER JOIN V_ArticulosNombre VAN ON dbo.Alb_venta_lineas.Fk_articulo=VAN.Codigo
GROUP BY dbo.Alb_venta_lineas.Fk_articulo, YEAR(dbo.Alb_venta.Fecha_hora), MONTH(dbo.Alb_venta.Fecha_hora) 
                         '
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasFacturasMesArticulo]'))
DROP VIEW [dbo].V_VentasFacturasMesArticulo  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_VentasFacturasMesArticulo]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_VentasFacturasMesArticulo] AS 
SELECT        dbo.Facturas_venta_lineas.Articulo, YEAR(dbo.Alb_venta.Fecha_hora) AS Year, MONTH(dbo.Alb_venta.Fecha_hora) AS Month
, ISNULL(SUM(dbo.Facturas_venta_lineas.Importe_base), 0) AS Importe_Total
, ISNULL(SUM(dbo.Facturas_venta_lineas.Cantidad), 0) AS Cantidad
,SUM(ROUND(ISNULL(VAN.Peso_bruto,0) * ISNULL(dbo.Facturas_venta_lineas.Cantidad,0),2)) as Kilos
,SUM(ROUND(ISNULL(VAN.Capacidad,0) * ISNULL(dbo.Facturas_venta_lineas.Cantidad,0),2)) as Litros

FROM            dbo.Alb_Venta INNER JOIN
                         dbo.Facturas_venta_lineas ON dbo.Alb_venta.Serie = dbo.Facturas_venta_lineas.Serie AND dbo.Alb_venta.Numero = dbo.Facturas_venta_lineas.Numero
						 LEFT OUTER JOIN V_ArticulosNombre VAN ON dbo.Facturas_venta_lineas.Articulo=VAN.Codigo
GROUP BY dbo.Facturas_venta_lineas.Articulo, YEAR(dbo.Alb_venta.Fecha_hora), MONTH(dbo.Alb_venta.Fecha_hora)
                         '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SalidasEntradasMesAño]'))
DROP VIEW [dbo].V_SalidasEntradasMesAño  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_SalidasEntradasMesAño]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_SalidasEntradasMesAño] AS 
SELECT        ISNULL(Fk_articulo_s, ISNULL(Fk_articulo_e, '''')) AS Fk_articulo, ISNULL(Year_s, ISNULL(Year_e, 0)) AS Año, ISNULL(Month_s, ISNULL(Month_e, 0)) AS Mes, Cantidad_s, Kilos_s, Litros_s, Importe_s, Cantidad_e, Kilos_e, 
                         Litros_e, Importe_e
FROM            (SELECT        SALIDAS.Fk_articulo_s, SALIDAS.Year_s, SALIDAS.Month_s, SALIDAS.Importe_s, SALIDAS.Cantidad_s, SALIDAS.Kilos_s, SALIDAS.Litros_s, ENTRADAS.Fk_articulo_e, ENTRADAS.Year_e, ENTRADAS.Month_e, 
                                                    ENTRADAS.Importe_e, ENTRADAS.Cantidad_e, ENTRADAS.Kilos_e, ENTRADAS.Litros_e
                          FROM            (SELECT        dbo.V_Movimientos.Articulo AS Fk_articulo_s, YEAR(dbo.V_Movimientos.Fecha_hora) AS Year_s, MONTH(dbo.V_Movimientos.Fecha_hora) AS Month_s, 
                                                                              - ISNULL(SUM(ISNULL(dbo.V_Movimientos.Cantidad, 0) * ISNULL(dbo.V_Movimientos.Pmp, 0)), 0) AS Importe_s, - ISNULL(SUM(dbo.V_Movimientos.Cantidad), 0) AS Cantidad_s, 
                                                                              - SUM(ROUND(ISNULL(VAN.Peso_bruto, 0) * ISNULL(dbo.V_Movimientos.Cantidad, 0), 2)) AS Kilos_s, - SUM(ROUND(ISNULL(VAN.Capacidad, 0) * ISNULL(dbo.V_Movimientos.Cantidad, 0), 2)) 
                                                                              AS Litros_s
                                                    FROM            dbo.V_Movimientos INNER JOIN
                                                                              dbo.V_ArticulosNombre AS VAN ON dbo.V_Movimientos.Articulo = VAN.Codigo
																			  LEFT OUTER JOIN Series_copages SC ON SerieTipoDoc=''CP'' AND Serie_tipo_mov=V_Movimientos.Serie_tipo_mov
                                                    WHERE        (dbo.V_Movimientos.E_S_N = ''S'')
													AND SerieTipoDoc  NOT IN(''TC'',''CPRE'') 
													AND NOT(SerieTipoDoc=''CP'' AND ISNULL(SC.No_incluir_en_inventarios_globales,0)=1)
                                                    GROUP BY dbo.V_Movimientos.Articulo, YEAR(dbo.V_Movimientos.Fecha_hora), MONTH(dbo.V_Movimientos.Fecha_hora)) AS SALIDAS FULL OUTER JOIN
                                                        (SELECT        dbo.V_Movimientos.Articulo AS Fk_articulo_e, YEAR(dbo.V_Movimientos.Fecha_hora) AS Year_e, MONTH(dbo.V_Movimientos.Fecha_hora) AS Month_e, 
                                                                                    ISNULL(SUM(ISNULL(dbo.V_Movimientos.Cantidad, 0) * ISNULL(dbo.V_Movimientos.Pmp, 0)), 0) AS Importe_e, ISNULL(SUM(dbo.V_Movimientos.Cantidad), 0) AS Cantidad_e, 
                                                                                    SUM(ROUND(ISNULL(VAN.Peso_bruto, 0) * ISNULL(dbo.V_Movimientos.Cantidad, 0), 2)) AS Kilos_e, SUM(ROUND(ISNULL(VAN.Capacidad, 0) * ISNULL(dbo.V_Movimientos.Cantidad, 0), 2)) 
                                                                                    AS Litros_e
                                                          FROM            dbo.V_Movimientos INNER JOIN
                                                                                    dbo.V_ArticulosNombre AS VAN ON dbo.V_Movimientos.Articulo = VAN.Codigo
																					LEFT OUTER JOIN Series_copages SC ON SerieTipoDoc=''CP'' AND Serie_tipo_mov=V_Movimientos.Serie_tipo_mov
                                                          WHERE        (dbo.V_Movimientos.E_S_N = ''E'')
														  AND SerieTipoDoc  NOT IN(''TC'',''CPRE'') 
													AND NOT(SerieTipoDoc=''CP'' AND ISNULL(SC.No_incluir_en_inventarios_globales,0)=1)
                                                          GROUP BY dbo.V_Movimientos.Articulo, YEAR(dbo.V_Movimientos.Fecha_hora), MONTH(dbo.V_Movimientos.Fecha_hora)) AS ENTRADAS ON SALIDAS.Fk_articulo_s = ENTRADAS.Fk_articulo_e AND 
                                                    SALIDAS.Year_s = ENTRADAS.Year_e AND SALIDAS.Month_s = ENTRADAS.Month_e) AS A '
GO

IF  EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetLibrosEstocNCert') AND xtype IN (N'FN', N'IF', N'TF')) EXEC dbo.sp_executesql @statement = N'DROP FUNCTION dbo.fn_GetLibrosEstocNcert'
GO
IF  NOT EXISTS (    SELECT * FROM sysobjects WHERE id = object_id(N'fn_GetLibrosEstocNCert') AND xtype IN (N'FN', N'IF', N'TF')) 
EXEC dbo.sp_executesql @statement = N'CREATE FUNCTION dbo.fn_GetLibrosEstocNcert (@Fecha DATETIME)
				RETURNS TABLE
				AS
				RETURN
				(
				SELECT     dbo.Libros_movimientos.Fk_centro, dbo.Centros.Descripcion AS Desc_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion as Desc_libro, dbo.Libros_movimientos.Fk_denom_origen, dbo.Denom_origen.Descripcion AS Desc_denom_origen, 
						 dbo.Libros_movimientos.Fk_color, dbo.Libros_color.Descripcion AS Desc_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.V_ArticulosSoloNombre.Descripcion AS Desc_variedad, dbo.Libros_movimientos.Fk_tipo_producto, dbo.Libros_tipo_producto.Descripcion AS Desc_tipo_producto,dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion as Desc_almacen,dbo.Libros_movimientos.Numero_doc_certificacion,
						 SUM(ISNULL(CASE WHEN E_S = ''E'' THEN Cantidad_final ELSE - Cantidad_final END, 0)) AS Cantidad_estoc
FROM            dbo.Libros_movimientos LEFT OUTER JOIN
Libros ON  Libros_movimientos.Fk_libro=Libros.Codigo LEFT OUTER JOIN 
						 dbo.Libros_tipo_producto ON dbo.Libros_movimientos.Fk_tipo_producto = dbo.Libros_tipo_producto.Codigo LEFT OUTER JOIN
						 dbo.Denom_origen ON dbo.Libros_movimientos.Fk_denom_origen = dbo.Denom_origen.Codigo LEFT OUTER JOIN
						 dbo.Centros ON dbo.Libros_movimientos.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
						 dbo.Libros_color ON dbo.Libros_movimientos.Fk_color = dbo.Libros_color.Codigo LEFT OUTER JOIN
						 dbo.V_ArticulosSoloNombre ON dbo.Libros_movimientos.Fk_variedad = dbo.V_ArticulosSoloNombre.Codigo
						 LEFT OUTER JOIN Almacenes ON dbo.Libros_movimientos.Fk_almacen=dbo.Almacenes.Codigo
						 where dbo.Libros_movimientos.Fecha <= @Fecha
GROUP BY dbo.Libros_movimientos.Fk_centro,dbo.Libros_movimientos.Fk_libro,dbo.Libros.Descripcion, dbo.Libros_movimientos.Fk_denom_origen, dbo.Libros_movimientos.Fk_color, dbo.Libros_movimientos.Anyada, dbo.Libros_movimientos.Fk_variedad, 
						 dbo.Libros_movimientos.Fk_tipo_producto, dbo.V_ArticulosSoloNombre.Descripcion, dbo.Denom_origen.Descripcion, dbo.Centros.Descripcion, dbo.Libros_color.Descripcion, dbo.Libros_movimientos.Fk_almacen,Almacenes.Descripcion,
						 dbo.Libros_tipo_producto.Descripcion,dbo.Libros_movimientos.Numero_doc_certificacion)'

GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProyectosEstados]'))
DROP VIEW [dbo].V_ProyectosEstados  
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Logo]'))
DROP VIEW [dbo].Logo  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Logo]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Logo] AS 
SELECT        TOP (1) Logo, Logo_largo,Tipo_logo_habitual,Firma
FROM            dbo.Parametros
                         '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesVariedades]'))
DROP VIEW [dbo].V_LotesVariedades  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesVariedades]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LotesVariedades] AS 
SELECT   CASE WHEN LV.Id IS NULL THEN dbo.Lotes.Id ELSE LV.Id END as Id,     LV.Id AS Id_lotes_variedades,dbo.Lotes.Id AS Id_lotes, LV.Fk_articulo AS Art_variedad, ARTVAR.Descripcion AS Desc_variedad, LV.Proporcion,LV.Cantidad, ISNULL(dbo.Lotes.Fk_articulo, 0) AS Articulo_lote, dbo.Articulos.Descripcion AS Desc_articulo_lote, 
                         ISNULL(dbo.Lotes.Lote, 0) AS Lote, dbo.Lotes.Fecha_lote, dbo.Lotes.Lote_etiqueta, dbo.Lotes.Añada AS Anada, dbo.Lotes.Fecha_caducidad, dbo.Lotes.Grado, dbo.Lotes.Grado_oficial, dbo.Lotes.Fecha_consumo_preferente, 
                          dbo.Lotes.Lote_granel, dbo.Lotes.Tipo_lote, dbo.Lotes.Fk_persona, P.NombreCompleto, dbo.Lotes.Fk_ficha_tecnica, FT.Descripcion AS Desc_ficha_tecnica, dbo.Lotes.Observaciones,dbo.Articulos.Desglose_salida_copage_con_entrada
						  ,LV.Num_eti_desde,LV.Num_eti_hasta
FROM        dbo.Lotes  LEFT OUTER JOIN
    dbo.Lotes_variedades AS LV ON LV.Fk_id_lote = dbo.Lotes.Id LEFT OUTER JOIN                         
                         dbo.Articulos ON dbo.Lotes.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON dbo.Lotes.Fk_persona = P.Codigo LEFT OUTER JOIN
                         dbo.FT_articulos AS FT ON dbo.Lotes.Fk_ficha_tecnica = FT.Codigo_FT LEFT OUTER JOIN
                         dbo.Articulos AS ARTVAR ON LV.Fk_articulo = ARTVAR.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasTarjetas]'))
DROP VIEW [dbo].V_PersonasTarjetas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasTarjetas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasTarjetas] AS 
SELECT        P.Codigo, P.NombreCompleto, P.Tipo_identificacion, P.Identificacion, P.Telefono_trabajo AS Telefono1, P.Email1, P.Fis_municipio, P.Fis_direccion, PT.Tipo, ISNULL(PT.Numero_tarjeta, N'''') AS Numero_tarjeta, PT.Fecha_alta, 
                         PT.Fecha_baja, PT.Caducidad_MMAA, P.No_confidencial, P.Fk_representante1, P.Cliente, P.Proveedor, P.Transportista, P.Representante, P.Cliente_seccion_credito, P.Socio, P.Tercero
FROM            dbo.V_Personas AS P LEFT OUTER JOIN
                         dbo.Personas_tarjetas AS PT ON P.Codigo = PT.Fk_persona
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PerfilesJornada]'))
DROP VIEW [dbo].V_PerfilesJornada  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PerfilesJornada]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PerfilesJornada] AS 
SELECT       C.Id,C.Descripcion,LIN.Horas_efectivas, C.Tipo_perfil
FROM            dbo.Perfiles_jornadas C LEFT OUTER JOIN
(
select Fk_perfil_jornada,SUM(ISNULL(Horas_efectivas,0)) as Horas_efectivas  from Perfiles_jornadas_tramos GROUP BY Fk_perfil_jornada
) LIN ON C.Id=LIN.Fk_perfil_jornada
	
	'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperariosLineas]'))
DROP VIEW [dbo].V_CalendariosOperariosLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperariosLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CalendariosOperariosLineas] AS 
SELECT        dbo.Calendarios_operarios_lineas.Id, dbo.Calendarios_operarios.Fk_operario, dbo.Calendarios_operarios_lineas.Fecha,
DATEPART(year, dbo.Calendarios_operarios_lineas.Fecha) AS Año, DATEPART(MONTH, 
                         dbo.Calendarios_operarios_lineas.Fecha) AS Mes, 
						 DATEPART(DAY, dbo.Calendarios_operarios_lineas.Fecha) AS Dia
						 ,DATENAME(WEEKDAY, dbo.Calendarios_operarios_lineas.Fecha) AS DiaNombre
						 ,DATENAME(MONTH,dbo.Calendarios_operarios_lineas.Fecha) AS MesNombre
						 ,DATENAME(WEEK, dbo.Calendarios_operarios_lineas.Fecha) AS SemanaNumero
						 , dbo.Calendarios_operarios_lineas.Fk_perfil_jornada, dbo.Operarios.Nombre, 
                         dbo.Perfiles_jornadas.Descripcion AS Desc_perfil, dbo.Perfiles_jornadas.Color_referencia, dbo.Calendarios_operarios.Anyo
						 ,dbo.Operarios.Fk_departamento,DEP.Descripcion as Desc_departamento
						 ,dbo.Operarios.Fk_centro,Centros.Descripcion as Desc_centro
						 ,TR.Horas_efectivas,tr.Horas_efectivas_ofi,dbo.Perfiles_jornadas.Desc_4d, dbo.Operarios.Fk_empresa
FROM            dbo.Calendarios_operarios INNER JOIN
                         dbo.Calendarios_operarios_lineas ON dbo.Calendarios_operarios.Id = dbo.Calendarios_operarios_lineas.Fk_cabecera INNER JOIN
                         dbo.Perfiles_jornadas ON dbo.Calendarios_operarios_lineas.Fk_perfil_jornada = dbo.Perfiles_jornadas.Id INNER JOIN
                         dbo.Operarios ON dbo.Calendarios_operarios.Fk_operario = dbo.Operarios.Codigo
						 LEFT OUTER JOIN Departamentos DEP ON dbo.Operarios.Fk_departamento=DEP.Id
						 LEFT OUTER JOIN Centros ON dbo.Operarios.Fk_centro=Centros.Codigo
						 LEFT OUTER JOIN (SELECT TR.Fk_perfil_jornada, SUM(TR.Horas_efectivas) as Horas_efectivas,SUM(TR.Horas_efectivas_ofi) as Horas_efectivas_ofi FROM Perfiles_jornadas_tramos TR GROUP BY Fk_perfil_jornada) TR ON dbo.Perfiles_jornadas.Id=TR.Fk_perfil_jornada
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperariosPerfiles]'))
DROP VIEW [dbo].V_CalendariosOperariosPerfiles  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperariosPerfiles]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CalendariosOperariosPerfiles] AS 
SELECT OperariosMeses.Codigo, OperariosMeses.Nombre, OperariosMeses.Mes, OperariosMeses.NombreMes, ISNULL(V_CalendariosOperariosLineas.Año,0) AS Año, COUNT(V_CalendariosOperariosLineas.Fk_perfil_jornada) AS NPerfs
FROM OperariosMeses
LEFT JOIN V_CalendariosOperariosLineas 
ON V_CalendariosOperariosLineas.Fk_operario = OperariosMeses.Codigo 
AND V_CalendariosOperariosLineas.Mes = OperariosMeses.Mes 
WHERE 1=1 
GROUP BY OperariosMeses.Codigo, OperariosMeses.Nombre, OperariosMeses.Mes, OperariosMeses.NombreMes, V_CalendariosOperariosLineas.Año
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalHorasTipoPorPerfilColumnas]'))
DROP VIEW [dbo].V_CalHorasTipoPorPerfilColumnas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalHorasTipoPorPerfilColumnas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CalHorasTipoPorPerfilColumnas] AS 
SELECT Fk_operario,Nombre,Año
,[0] as ''Laborable_ordinario_horas_cal''
,[1] as ''Festivo_no_lab_horas_cal''
,[2] as ''Festivo_trabajado_horas_cal''
,[3] as ''Vacaciones_horas_cal''

FROM
(
SELECT  Fk_operario,Nombre,Año,Tipo_perfil,Cal_horas_efectivas
FROM(
SELECT Fk_operario,Nombre,Año,P.Tipo_perfil
        , CASE WHEN P.Tipo_perfil = 0 THEN ''Laborable ordinario''
        WHEN P.Tipo_perfil = 1 THEN ''Festivo/No laborable''
        WHEN P.Tipo_perfil = 2 THEN ''Festivo que trabaja''
        WHEN P.Tipo_perfil = 3 THEN ''Vacaciones'' END as Desc_tipo_perfil
        ,CASE WHEN P.Tipo_perfil = 1 OR P.Tipo_perfil = 3 THEN ''1''
        WHEN P.Tipo_perfil = 0  THEN ''0''
        WHEN P.Tipo_perfil = 2  THEN ''2''
        ELSE '''' END as Grupo_tipo_perfil
        ,SUM(CASE WHEN Cal_horas_efectivas >0 THEN 1 ELSE 0 END) AS Dias_calendario
        , SUM(CASE WHEN Fichajes_horas_efectivas >0 THEN 1 ELSE 0 END) AS Dias_fichajes
            , SUM(Cal_horas_efectivas) as Cal_horas_efectivas
        ,SUM(Fichajes_horas_efectivas) as Fichajes_horas_efectivas
        ,SUM(Fichajes_horas_efectivas_ofi) as Fichajes_horas_efectivas_ofi
        FROM
        (
        select ISNULL(C.Fk_operario, F.Fk_operario) as Fk_operario
        , ISNULL(C.Nombre, F.Nombre) As Nombre
        , ISNULL(C.Año, F.Año) as Año
        , ISNULL(C.Mes, F.Mes) as Mes
        , ISNULL(C.Dia, F.Dia) as Dia
        , ISNULL(C.Fecha, F.Fecha) as Fecha
        , C.Fk_perfil_jornada
        , ISNULL(C.Horas_efectivas, 0) as Cal_horas_efectivas
        , ISNULL(C.Horas_efectivas_ofi, 0) as Cal_horas_efectivas_ofi
        , ISNULL(F.Horas_efectivas, 0) as Fichajes_horas_efectivas
        , ISNULL(F.Horas_ofi_efectivas, 0) as Fichajes_horas_efectivas_ofi
        , ISNULL(F.Horas, 0) as Fichajes_horas_reales
        , ISNULL(F.Horas_ofi, 0) as Fichajes_horas_ofi
        from V_FichajesHorasDia F
            FULL OUTER JOIN V_CalendariosOperariosLineas C 
            ON C.Fk_operario = F.Fk_operario AND C.Año = F.Año AND C.Mes = F.Mes AND C.Dia = F.Dia
            WHERE 1=1 
        ) AUX 
            LEFT OUTER JOIN Perfiles_jornadas P ON AUX.Fk_perfil_jornada = P.Id
        WHERE 1=1 
        GROUP BY  Fk_operario,Nombre,Año,P.Tipo_perfil
) A
)pvt
PIVOT (MAX(Cal_horas_efectivas) FOR Tipo_perfil IN (
[0],[1],[2],[3]
) ) AS Child
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperarios]'))
DROP VIEW [dbo].V_CalendariosOperarios  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CalendariosOperarios]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CalendariosOperarios] AS 
SELECT        C.Id, C.Fk_operario, C.Anyo, C.Usuario_creacion, C.Usuario_modificacion, C.Fecha_creacion, C.Fecha_modificacion, ISNULL(C.Horas_laborables_teoricas,0)  AS Horas_laborables_teoricas
						, ISNULL(C.Horas_vacaciones_teoricas,0) AS Horas_vacaciones_teoricas, O.Nombre, SUMA.Horas_efectivas, 
                         CONVERT(datetime, ''01-01-'' + CAST(C.Anyo AS nvarchar)) AS FechaFiltrar
						 ,D.Laborable_ordinario_horas_cal,D.Festivo_no_lab_horas_cal,ISNULL(D.Festivo_trabajado_horas_cal,0) AS Festivo_trabajado_horas_cal,D.Vacaciones_horas_cal
						 ,(ISNULL(D.Laborable_ordinario_horas_cal,0) + ISNULL(D.Festivo_trabajado_horas_cal,0)) as Horas_laborables_cal
						 , ISNULL(D.Laborable_ordinario_horas_cal, 0) + ISNULL(D.Festivo_trabajado_horas_cal, 0) 
							+ ISNULL(D.Festivo_no_lab_horas_cal,0) - ISNULL(D.Vacaciones_horas_cal,0)
							+ ISNULL(C.Horas_vacaciones_teoricas,0) AS Horas_compensar_cal
FROM            dbo.Calendarios_operarios AS C LEFT OUTER JOIN
                             (SELECT        L.Fk_cabecera, SUM(PJ.Horas_efectivas) AS Horas_efectivas
                               FROM            dbo.Calendarios_operarios_lineas AS L LEFT OUTER JOIN
                                                         dbo.V_PerfilesJornada AS PJ ON L.Fk_perfil_jornada = PJ.Id
                               GROUP BY L.Fk_cabecera) AS SUMA ON C.Id = SUMA.Fk_cabecera LEFT OUTER JOIN
                         dbo.Operarios AS O ON C.Fk_operario = O.Codigo
				LEFT JOIN V_CalHorasTipoPorPerfilColumnas D ON C.Fk_operario=D.Fk_operario AND C.Anyo=D.Año
						 '

GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosVentaEstadoProduccion]'))
DROP VIEW [dbo].V_PedidosVentaEstadoProduccion  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PedidosVentaEstadoProduccion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PedidosVentaEstadoProduccion] AS 
select P.Id, P.Fk_centro,P.Desc_centro,P.Serie, P.Numero,P.Fecha,P.Codigo_cliente,P.NombreCompleto,P.Fk_articulo,P.Articulo_descripcion, P.Fecha_prevista_entrega,P.Cantidad as Cantidad_pedido
,EST.Cantidad_asociada as Cantidad_servida,EST.Cantidad_anulada,EST.Cantidad_pendiente
,P.Op_relacionada,AUX.Num_ops,AUX.Cantidad_op_propuesta,AUX.Cantidad_producida,P.Representante1,
CASE WHEN AUX.Cantidad_op_propuesta-ISNULL(AUX.Cantidad_producida,0)<=0 THEN 0 ELSE AUX.Cantidad_op_propuesta-ISNULL(AUX.Cantidad_producida,0)END as Cantidad_pendiente_op
,CASE WHEN AUX.Fecha_inicio_real IS NOT NULL THEN AUX.Fecha_inicio_real ELSE AUX.Fecha_inicio END AS Fecha_inicio_op
,CASE WHEN AUX.Fecha_fin_real IS NOT NULL THEN AUX.Fecha_fin_real ELSE AUX.Fecha_fin END AS Fecha_fin_op
from PedidosVentaLineas P LEFT OUTER JOIN 
(
select Fk_ped_venta_linea,COUNT(Op.Id) as Num_ops, SUM(Cantidad) as Cantidad_op_propuesta,SUM(Cantidad_real) as Cantidad_producida
,MIN(Fecha_inicio) as Fecha_inicio,MIN(Fecha_inicio_real) as Fecha_inicio_real,MAX(Fecha_fin) as Fecha_fin,MAX(Fecha_fin_real) as Fecha_fin_real
, STUFF((SELECT '' ['' + 
CASE WHEN Estado=0 THEN ''PROPUESTA'' WHEN Estado=1 THEN ''LANZADA'' WHEN Estado=2 THEN ''CERRADA PARCIAL'' WHEN Estado=3 THEN ''CERRADA'' WHEN Estado=4 THEN ''ANULADA'' END
+ '']''
							FROM dbo.Op SUB 
							WHERE Op.Fk_ped_venta_linea=SUB.Fk_ped_venta_linea group by Estado
							FOR XML PATH ('''') )
							,1,1,'''') as Estados
FROM Op 
GROUP BY Fk_ped_venta_linea
) AUX ON P.Id=AUX.Fk_ped_venta_linea
LEFT OUTER JOIN V_DocLinEstadosPedVenta EST ON P.Id=EST.Id
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsInmovilizadoRepartos]'))
DROP VIEW [dbo].V_MovsInmovilizadoRepartos  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsInmovilizadoRepartos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MovsInmovilizadoRepartos] AS 
SELECT     ISNULL(MOVREP.id, dbo.Movs_inmovilizado.Id) AS Id, dbo.Movs_inmovilizado.Id AS Id_mov, dbo.Movs_inmovilizado.E_S, dbo.Movs_inmovilizado.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa, 
                         dbo.Movs_inmovilizado.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Movs_inmovilizado.SerieTipoDoc, dbo.Movs_inmovilizado.Fk_tipo_mov, dbo.Tipos_mov_inmovilizado.Descripcion AS Desc_tipo_mov, 
                         dbo.Movs_inmovilizado.Numero, dbo.Movs_inmovilizado.Fecha_hora, dbo.Movs_inmovilizado.Fecha_hora_real, dbo.Movs_inmovilizado.Fk_activo, dbo.Activos.Descripcion AS Desc_activo, 
                         dbo.Movs_inmovilizado.Fk_cc_activo, Asientos_cuentas_contables_2.Descripcion AS Desc_cc_activo, dbo.Movs_inmovilizado.Fk_cc_amort_acumulada, 
                         Asientos_cuentas_contables_1.Descripcion AS Desc_cc_amort_acumulada, dbo.Movs_inmovilizado.Fk_cc_dotacion_amort, dbo.Asientos_cuentas_contables.Descripcion AS Desc_cc_dotacion_amort, 
                         dbo.Movs_inmovilizado.Importe, dbo.Movs_inmovilizado.Fecha_integracion, REP.Codigo_datisa,
                         CASE WHEN dbo.Movs_inmovilizado.E_S = ''E'' THEN dbo.Movs_inmovilizado.Importe ELSE - dbo.Movs_inmovilizado.Importe END AS ImporteConSigno, 
                         CASE WHEN dbo.Movs_inmovilizado.SerieTipoDoc = ''A'' THEN ''Amortización'' WHEN dbo.Movs_inmovilizado.SerieTipoDoc = ''C'' THEN ''Compra'' WHEN dbo.Movs_inmovilizado.SerieTipoDoc = ''R'' THEN ''Revalorización'' END AS
                          Desc_SerieTipoDoc, REP.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, REP.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, dbo.Movs_inmovilizado.Linea, MOVREP.fk_codigo_reparto, 
                         REP.descripcion AS Desc_reparto, MOVREP.Porcentaje, ISNULL(MOVREP.importe,dbo.Movs_inmovilizado.Importe) AS Importe_reparto, MOVREP.id AS Id_reparto, 
                         CASE WHEN dbo.Movs_inmovilizado.E_S = ''E'' THEN ISNULL(MOVREP.importe,dbo.Movs_inmovilizado.Importe) ELSE - ISNULL(MOVREP.importe,dbo.Movs_inmovilizado.Importe) END AS ImporteRepartoConSigno
						 ,dbo.Activos.Fecha_alta,dbo.Activos.Fecha_compra
FROM            dbo.Movs_inmovilizado LEFT OUTER JOIN
                         dbo.Centros ON dbo.Movs_inmovilizado.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Tipos_mov_inmovilizado ON dbo.Movs_inmovilizado.Fk_tipo_mov = dbo.Tipos_mov_inmovilizado.Codigo LEFT OUTER JOIN
                         dbo.Activos ON dbo.Movs_inmovilizado.Fk_activo = dbo.Activos.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables ON dbo.Movs_inmovilizado.Fk_cc_dotacion_amort = dbo.Asientos_cuentas_contables.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS Asientos_cuentas_contables_1 ON dbo.Movs_inmovilizado.Fk_cc_amort_acumulada = Asientos_cuentas_contables_1.Codigo LEFT OUTER JOIN
                         dbo.Asientos_cuentas_contables AS Asientos_cuentas_contables_2 ON dbo.Movs_inmovilizado.Fk_cc_activo = Asientos_cuentas_contables_2.Codigo LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Movs_inmovilizado.Fk_empresa = dbo.Empresas.Codigo LEFT OUTER JOIN
                         dbo.Movs_inmovilizado_repartos AS MOVREP ON dbo.Movs_inmovilizado.Id = MOVREP.fk_mov_inmovilizado LEFT OUTER JOIN
                         dbo.Asientos_codigos_reparto AS REP ON MOVREP.fk_codigo_reparto = REP.codigo LEFT OUTER JOIN
                         dbo.Secciones ON REP.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON REP.Fk_campaña = dbo.Campañas.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturacionPersonaActualAnterior]'))
DROP VIEW [dbo].V_FacturacionPersonaActualAnterior  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacturacionPersonaActualAnterior]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacturacionPersonaActualAnterior] AS 
SELECT P.Codigo
,VentasActual.Importe_ventas_año_actual
,VentasAnterior.Importe_ventas_año_anterior
,ComprasActual.Importe_compras_año_actual
,ComprasAnterior.Importe_compras_año_anterior
FROM Personas P
LEFT OUTER JOIN (SELECT Codigo_cliente as Fk_persona, SUM(Importe_base) as Importe_ventas_año_actual FROM FacturasVentaLineas L WHERE Fecha>=DATEFROMPARTS ( YEAR(GETDATE()), 1, 1 ) AND Fecha<=DATEFROMPARTS ( YEAR(GETDATE()), 12, 31 ) GROUP BY Codigo_cliente) VentasActual ON P.Codigo=VentasActual.Fk_persona
LEFT OUTER JOIN (SELECT  Codigo_cliente as Fk_persona,SUM(Importe_base) as Importe_ventas_año_anterior FROM FacturasVentaLineas L WHERE Fecha>=DATEFROMPARTS ( YEAR(GETDATE())-1, 1, 1 ) AND Fecha<=DATEFROMPARTS ( YEAR(GETDATE())-1, 12, 31 )GROUP BY Codigo_cliente) VentasAnterior ON P.Codigo=VentasAnterior.Fk_persona
LEFT OUTER JOIN (SELECT Codigo_persona as Fk_persona,SUM(Importe_base) as Importe_compras_año_actual FROM FacturasCompraLineas L WHERE Fecha>=DATEFROMPARTS ( YEAR(GETDATE()), 1, 1 ) AND Fecha<=DATEFROMPARTS ( YEAR(GETDATE()), 12, 31 )GROUP BY Codigo_persona) ComprasActual ON P.Codigo=ComprasActual.Fk_persona
LEFT OUTER JOIN (SELECT  Codigo_persona as Fk_persona,SUM(Importe_base) as Importe_compras_año_anterior FROM FacturasCompraLineas L WHERE Fecha>=DATEFROMPARTS ( YEAR(GETDATE())-1, 1, 1 ) AND Fecha<=DATEFROMPARTS ( YEAR(GETDATE())-1, 12, 31 )GROUP BY Codigo_persona) ComprasAnterior ON P.Codigo=ComprasAnterior.Fk_persona
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ControlFechasRecepcion]'))
DROP VIEW [dbo].V_ControlFechasRecepcion  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ControlFechasRecepcion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ControlFechasRecepcion] AS 
select PL.Id, PER.Codigo as Codigo_persona,PER.NombreCompleto,P.Serie as Serie_pedido,P.Numero as Numero_pedido,P.Estado_asociado, A.Serie as Serie_albaran,A.Numero as Numero_albaran
,ART.Codigo as Codigo_articulo,ART.Descripcion as Desc_articulo
,A.Fecha_hora as Fecha_recepcion_Alb,A.Fecha_alb_proveedor,P.Fecha_prevista_entrega,P.Fecha_confirm_prov,P.Fecha_hora as Fecha_realizacion_pedido
,DATEDIFF(DAY, P.Fecha_prevista_entrega,P.Fecha_confirm_prov) as Dias_dif_prevista_confirmada
,CASE WHEN AL.Id!=null THEN
	DATEDIFF(DAY, P.Fecha_confirm_prov,A.Fecha_hora)
	WHEN (P.Fecha_confirm_prov IS NOT NULL AND P.Fecha_confirm_prov<GETDATE()) THEN DATEDIFF(DAY,P.Fecha_confirm_prov,GETDATE())
	END as  Dias_dif_recepcion_confirmada
,DATEDIFF(DAY,A.Fecha_alb_proveedor,A.Fecha_hora) as Dias_dif_recepcion_alb_proveedor
FROM   Ped_compra_lineas PL 
LEFT OUTER JOIN PedidosCompra P ON P.Serie=PL.Serie AND P.Numero=PL.Numero
LEFT OUTER JOIN Alb_compra_lineas AL ON AL.Tipo_doc_asociado=''PC'' AND AL.Id_doc_asociado=PL.Id
LEFT OUTER JOIN Alb_compra A ON AL.Serie=A.Serie AND AL.Numero=A.Numero
LEFT OUTER JOIN Articulos ART ON PL.Fk_articulo=ART.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER ON P.Codigo_persona=PER.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PerfilesTrabajadoReal]'))
DROP VIEW [dbo].V_PerfilesTrabajadoReal  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PerfilesTrabajadoReal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PerfilesTrabajadoReal] AS 
SELECT       NEWID() as Id, CAL.Fk_operario, CAL.Fk_perfil_jornada, CAL.Desc_perfil, CAL.Año, COUNT(CAL.Fk_operario) AS Dias, SUM(CASE WHEN PERF.Tipo_perfil = 0 THEN ISNULL(PERF.horas_efectivas, 0) ELSE 0 END) 
                         AS Horas_efectivas_laborables, SUM(CASE WHEN PERF.Tipo_perfil = 1 THEN ISNULL(PERF.horas_efectivas, 0) ELSE 0 END) AS Horas_efectivas_no_laborables, SUM(F.Horas_efectivas) AS Horas_reales_trabajadas, 
                         SUM(CASE WHEN F.Horas_efectivas IS NOT NULL THEN 1 ELSE 0 END) AS Dias_trabajados
FROM            dbo.V_CalendariosOperariosLineas AS CAL LEFT OUTER JOIN
                         dbo.V_PerfilesJornada AS PERF ON CAL.Fk_perfil_jornada = PERF.Id LEFT OUTER JOIN
                             (SELECT        Fk_operario, Año, Mes, Dia, SUM(ISNULL(Horas_efectivas, 0)) AS Horas_efectivas
                               FROM            dbo.V_Fichajes
                               GROUP BY Fk_operario, Año, Mes, Dia) AS F ON CAL.Año = F.Año AND CAL.Mes = F.Mes AND CAL.Dia = F.Dia AND CAL.Fk_operario = F.Fk_operario
GROUP BY CAL.Fk_operario, CAL.Fk_perfil_jornada, CAL.Desc_perfil, CAL.Año
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVenta]'))
DROP VIEW [dbo].V_AlbaranesVenta  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVenta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbaranesVenta] AS 
SELECT 
 A.Fk_centro, A.Serie,A.Numero,CAST(A.Fecha_hora as date) as Fecha, A.Fecha_hora, A.Total_factura,A.Tpv,A.Fecha_hora_real,A.Fk_doc_transporte
,A.Fk_empresa,A.Codigo_cliente,ESTADO.EstadoAsociado,A.Su_referencia,A.Notas_factura,A.Notas_internas
,A.Codigo_transportista,A.Representante1,A.Numero_EMCS,A.Representante2
,P.NombreCompleto,FC.Serie as Hoja_carga_serie,FC.Numero as Hoja_carga_numero
,ISNULL(ESTADO.Cantidad_asociada,0) as Cantidad_asociada, ESTADO.Cantidad_anulada,A.Id_filtro,A.Forma_pago,A.Fk_cierre_caja,A.Terminal, ISNULL(A.Usuario_modificacion, A.Usuario_creacion) AS Usuario
,A.Codigo_direccion_envio
,A.Codigo_ropo,A.num_carnet_aplicador, A.Dni_propietario_carnet_aplicador, A.Nombre_cliente AS Alb_Nombre_cliente, A.Identificacion_cliente AS Alb_Identificacion_cliente
						  , A.Municipio AS Alb_Municipio, A.Codigo_postal AS Alb_Codigo_postal, A.Provincia AS Alb_Provincia, A.Pais AS Alb_Pais
						  , V_FirmasEstados.Num_firmas_realizadas, V_FirmasEstados.Num_firmas_necesarias, V_FirmasEstados.Num_firmas_pendientes, V_FirmasEstados.Firma_completa,A.Fecha_integracion
						  , CONVERT(varchar, A.Fecha_hora, 108) AS Hora, CC.Fecha_cierre_caja
FROM Alb_venta A  WITH(NOLOCK) 
LEFT OUTER JOIN Cierres_caja CC WITH(NOLOCK) ON A.Fk_cierre_caja = CC.Id
LEFT OUTER JOIN V_PersonasSoloNombre P  WITH(NOLOCK) ON A.Codigo_cliente=P.Codigo 
LEFT OUTER JOIN Hoja_carga_cabecera FC  WITH(NOLOCK) ON A.Fk_hoja_carga_cabecera=FC.Id
LEFT OUTER JOIN V_FirmasEstados ON V_FirmasEstados.SerieTipoDoc = ''AV'' AND A.Serie = V_FirmasEstados.Serie AND A.Numero = V_FirmasEstados.Numero 
LEFT OUTER JOIN
(
SELECT A.Serie,A.Numero,A.Cantidad,A.Cantidad_anulada,F.Cantidad_asociada
,(
CASE 
WHEN ISNULL(ISNULL(Cantidad_asociada, 0), 0) = 0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 0 --Pendiente
WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_asociada, 0)) AND ABS(ISNULL(Cantidad_asociada,0))>0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 1 --Asociado
WHEN ABS(Cantidad)>ABS(ISNULL(Cantidad_asociada,0) ) AND ISNULL(Cantidad_anulada,0)=0 THEN 2 --Asociado parcialmente
WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_anulada,0)) AND ISNULL(Cantidad_asociada, 0) = 0 AND ISNULL(Cantidad_anulada,0) <> 0 THEN 3 
WHEN ABS(Cantidad)=(ABS(ISNULL(Cantidad_asociada,0) )+ABS(ISNULL(Cantidad_anulada,0))) AND ISNULL(Cantidad_asociada,0) <>0 AND ISNULL(Cantidad_anulada,0)<>0 THEN 4 --Anulado anulado Total
WHEN ABS(Cantidad)>(ABS(ISNULL(Cantidad_asociada,0) )+ABS(ISNULL(Cantidad_anulada,0))) AND ISNULL(Cantidad_asociada,0) <>0 AND ISNULL(Cantidad_anulada,0)<>0 THEN 5 --Anulado anulado Pero pendiente
ELSE 6 END) AS EstadoAsociado

FROM
(SELECT        Serie, Numero, SUM(ABS(ISNULL(Cantidad, 0))) AS Cantidad, SUM(ABS(ISNULL(Cantidad_anulada, 0))) AS Cantidad_anulada
FROM            dbo.Alb_venta_lineas AS L WITH (NOLOCK)
GROUP BY Serie, Numero) AS A LEFT OUTER JOIN
    (SELECT        Serie_doc_asociado, Numero_doc_asociado, SUM(ABS(ISNULL(Cantidad, 0))) AS Cantidad_asociada
    FROM            dbo.Facturas_venta_lineas AS L WITH (NOLOCK)
    GROUP BY Serie_doc_asociado, Numero_doc_asociado) AS F ON A.Serie = F.Serie_doc_asociado AND A.Numero = F.Numero_doc_asociado
) ESTADO ON A.Serie=ESTADO.Serie AND A.Numero=ESTADO.Numero'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesCompra]'))
DROP VIEW [dbo].V_AlbaranesCompra  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesCompra]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbaranesCompra] AS 
SELECT        A.Fk_centro, A.Serie, A.Numero, CAST(A.Fecha_hora AS date) AS Fecha, CAST(A.Fecha_alb_proveedor AS date) AS Fecha_alb_proveedor, A.Total_factura,  A.Codigo_persona, ESTADO.EstadoAsociado, A.Su_referencia, A.Notas_factura, A.Notas_internas, 
    A.Codigo_transportista, A.Representante1, A.Numero_EMCS, P.NombreCompleto,
	ISNULL(ESTADO.Cantidad_asociada, 0) AS Cantidad_asociada, 
    ESTADO.Cantidad_anulada, A.Fk_empresa, ESTADO.Importe_base, estado.Importe_iva,A.Id_filtro
FROM            dbo.Alb_compra AS A LEFT OUTER JOIN
    dbo.V_PersonasSoloNombre AS P ON A.Codigo_persona = P.Codigo LEFT OUTER JOIN
        (SELECT        A.Serie, A.Numero, A.Cantidad, A.Cantidad_anulada, F.Cantidad_asociada,
		(CASE
		WHEN ISNULL(ISNULL(Cantidad_asociada, 0), 0) = 0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 0 --Pendiente
		WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_asociada, 0)) AND ABS(ISNULL(Cantidad_asociada,0))>0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 1 --Asociado
		WHEN ABS(Cantidad) > ABS(ISNULL(Cantidad_asociada, 0)) AND ISNULL(Cantidad_anulada, 0) = 0 THEN 2 
		WHEN ABS(Cantidad) = Cantidad_anulada AND Cantidad_asociada=0 THEN 3
		WHEN ABS(Cantidad) <= (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(Cantidad_anulada)) AND ISNULL(Cantidad_asociada, 0) <> 0 AND Cantidad_anulada <> 0 THEN 4
		WHEN ABS(Cantidad) > (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(Cantidad_anulada)) AND ISNULL(Cantidad_asociada, 0) <> 0 AND Cantidad_anulada <> 0 THEN 5
		ELSE 6 END) AS EstadoAsociado, A.Importe_base, A.Importe_iva
        FROM            (SELECT        Serie, Numero, SUM(ISNULL(ABS(Cantidad), 0)) AS Cantidad, SUM(ISNULL(ABS(Cantidad_anulada), 0)) AS Cantidad_anulada, SUM(Importe_base) AS Importe_base, SUM(Importe_iva) AS Importe_iva
                                    FROM            dbo.Alb_compra_lineas AS L
                                    GROUP BY Serie, Numero) AS A LEFT OUTER JOIN
                                        (SELECT     Tipo_doc_asociado,Serie_doc_asociado, Numero_doc_asociado, SUM(ISNULL(ABS(Cantidad), 0)) AS Cantidad_asociada
                                        FROM            dbo.Fac_compra_lineas AS L where l.Tipo_doc_asociado=''AC''
                                        GROUP BY Tipo_doc_asociado,Serie_doc_asociado, Numero_doc_asociado) AS F ON A.Serie = F.Serie_doc_asociado AND A.Numero = F.Numero_doc_asociado ) AS ESTADO ON A.Serie = ESTADO.Serie AND 
										
    A.Numero = ESTADO.Numero
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirFiscal]'))
DROP VIEW [dbo].V_PersDirFiscal  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirFiscal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersDirFiscal] AS 
SELECT Codigo, Codigo_persona, Via_publica, Direccion, Numero, Piso, Puerta, Municipio, Codigo_postal, Provincia, Pais, Fiscal_habitual, Envio_habitual, Dir_postal_facturas
FROM dbo.Personas_direcciones
WHERE (ISNULL(Fiscal_habitual, 0) = 1)'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirEnvio_o_Fiscal]'))
DROP VIEW [dbo].V_PersDirEnvio_o_Fiscal  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirEnvio_o_Fiscal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersDirEnvio_o_Fiscal] AS 
SELECT Codigo, Codigo_persona, Via_publica, Direccion, Numero, Piso, Puerta, Municipio, Codigo_postal, Provincia, Pais, Fiscal_habitual, Envio_habitual, Dir_postal_facturas
FROM dbo.Personas_direcciones
WHERE (ISNULL(Fiscal_habitual, 0) = 1)
AND Codigo_persona NOT IN (SELECT Codigo_persona FROM dbo.Personas_direcciones WHERE (ISNULL(Envio_habitual, 0) = 1))
UNION ALL SELECT Codigo, Codigo_persona, Via_publica, Direccion, Numero, Piso, Puerta, Municipio, Codigo_postal, Provincia, Pais, Fiscal_habitual, Envio_habitual, Dir_postal_facturas
FROM dbo.Personas_direcciones
WHERE (ISNULL(Envio_habitual, 0) = 1)'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirPostal_o_Fiscal]'))
DROP VIEW [dbo].V_PersDirPostal_o_Fiscal  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersDirPostal_o_Fiscal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersDirPostal_o_Fiscal] AS 
SELECT Codigo, Codigo_persona, Via_publica, Direccion, Numero, Piso, Puerta, Municipio, Codigo_postal, Provincia, Pais, Fiscal_habitual, Envio_habitual, Dir_postal_facturas
FROM dbo.Personas_direcciones
WHERE (ISNULL(Fiscal_habitual, 0) = 1)
AND Codigo_persona NOT IN (SELECT Codigo_persona FROM dbo.Personas_direcciones WHERE (ISNULL(Dir_postal_facturas, 0) = 1))
UNION ALL SELECT Codigo, Codigo_persona, Via_publica, Direccion, Numero, Piso, Puerta, Municipio, Codigo_postal, Provincia, Pais, Fiscal_habitual, Envio_habitual, Dir_postal_facturas
FROM dbo.Personas_direcciones
WHERE (ISNULL(Dir_postal_facturas, 0) = 1)'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_entitat_campanya_pais]'))
DROP VIEW [dbo].V_MO30_entitat_campanya_pais  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_entitat_campanya_pais'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MO30_entitat_campanya_pais] AS 
				SELECT P.NombreCompleto as Desc_entitat, C.*, ISNULL(PAISES.Descripcion, ''Sin Descripcion'') AS Desc_pais, PAISES.Id_isonum 
				
				FROM (
				SELECT 
				
				ISNULL(COMER.Entitat,ISNULL(COMER_CONV.Entitat,ISNULL(COMER_ECO.Entitat,ISNULL(PRECIO_CONV.Entitat,PRECIO_ECO.Entitat)))) as Entitat
				,ISNULL(COMER.Campanya,ISNULL(COMER_CONV.Campanya,ISNULL(COMER_ECO.Campanya,ISNULL(PRECIO_CONV.Campanya,PRECIO_ECO.Campanya)))) as Campanya
				,ISNULL(COMER.Iso_2,ISNULL(COMER_CONV.Iso_2,ISNULL(COMER_ECO.Iso_2,ISNULL(PRECIO_CONV.Iso_2,PRECIO_ECO.Iso_2)))) as Iso_2
				,COMER.Comercializado as Comercializado_total
				,COMER_CONV.Comercializado as Comercializado_conv
				,COMER_ECO.Comercializado as Comercializado_eco
				,PRECIO_CONV.Comercializado as Precio_conv
				,PRECIO_ECO.Comercializado as Precio_eco
				FROM
				(
				SELECT        Entitat, Campaña as Campanya, Comercializado, replace(Pais, ''_VE_com'', '''') AS Iso_2
                FROM            Declaracio_resum_collita 
				M 
				UNPIVOT (Comercializado FOR Pais IN (DE_VE_com, AT_VE_com, BE_VE_com, DK_VE_com, FI_VE_com, FR_VE_com, GR_VE_com, NL_VE_com, IE_VE_com, IT_VE_com, LU_VE_com, 
                PT_VE_com, GB_VE_com, SE_VE_com, UE_VE_com, NO_VE_com, CH_VE_com, RU_VE_com, Resta_UE_VE_com, AR_VE_com, BR_VE_com, CA_VE_com, MX_VE_com, Resta_America_VE_com, TW_VE_com, 
                CN_VE_com, Resta_Asia_VE_com, AU_VE_com, Resta_Oceania_VE_com, Altres_VE_com, JP_VE_com, Altres_UE_VE_com)) AS UNPIVOT_TABLE
				) COMER
				FULL JOIN
				(
				SELECT        Entitat, Campaña as Campanya, Comercializado, replace(Pais, ''_aux1_com'', '''') AS Iso_2
                FROM            Declaracio_resum_collita 
				M 
				UNPIVOT (Comercializado FOR Pais IN (DE_aux1_com, AT_aux1_com, BE_aux1_com, DK_aux1_com, FI_aux1_com, FR_aux1_com, GR_aux1_com, NL_aux1_com, IE_aux1_com, IT_aux1_com, LU_aux1_com, 
                PT_aux1_com, GB_aux1_com, SE_aux1_com, UE_aux1_com, NO_aux1_com, CH_aux1_com, RU_aux1_com, Resta_UE_aux1_com, AR_aux1_com, BR_aux1_com, CA_aux1_com, MX_aux1_com, Resta_America_aux1_com, TW_aux1_com, 
                CN_aux1_com, Resta_Asia_aux1_com, AU_aux1_com, Resta_Oceania_aux1_com, Altres_aux1_com, JP_aux1_com, Altres_UE_aux1_com)) AS UNPIVOT_TABLE
				) COMER_CONV 
				ON COMER.Entitat=COMER_CONV.Entitat AND COMER.Campanya=COMER_CONV.Campanya AND COMER.Iso_2=COMER_CONV.Iso_2
				FULL JOIN
				(
				SELECT        Entitat, Campaña as Campanya, Comercializado, replace(Pais, ''_aux2_com'', '''') AS Iso_2
                FROM            Declaracio_resum_collita 
				M 
				UNPIVOT (Comercializado FOR Pais IN (DE_aux2_com, AT_aux2_com, BE_aux2_com, DK_aux2_com, FI_aux2_com, FR_aux2_com, GR_aux2_com, NL_aux2_com, IE_aux2_com, IT_aux2_com, LU_aux2_com, 
                PT_aux2_com, GB_aux2_com, SE_aux2_com, UE_aux2_com, NO_aux2_com, CH_aux2_com, RU_aux2_com, Resta_UE_aux2_com, AR_aux2_com, BR_aux2_com, CA_aux2_com, MX_aux2_com, Resta_America_aux2_com, TW_aux2_com, 
                CN_aux2_com, Resta_Asia_aux2_com, AU_aux2_com, Resta_Oceania_aux2_com, Altres_aux2_com, JP_aux2_com, Altres_UE_aux2_com)) AS UNPIVOT_TABLE
				) COMER_ECO 
				ON COMER.Entitat=COMER_ECO.Entitat AND COMER.Campanya= COMER_ECO.Campanya AND COMER.Iso_2= COMER_ECO.Iso_2

				FULL JOIN
				(
				SELECT        Entitat, Campaña as Campanya, Comercializado, replace(Pais, ''_aux1_preu'', '''') AS Iso_2
                FROM            Declaracio_resum_collita 
				M 
				UNPIVOT (Comercializado FOR Pais IN (DE_aux1_preu, AT_aux1_preu, BE_aux1_preu, DK_aux1_preu, FI_aux1_preu, FR_aux1_preu, GR_aux1_preu, NL_aux1_preu, IE_aux1_preu, IT_aux1_preu, LU_aux1_preu, 
                PT_aux1_preu, GB_aux1_preu, SE_aux1_preu, UE_aux1_preu, NO_aux1_preu, CH_aux1_preu, RU_aux1_preu, Resta_UE_aux1_preu, AR_aux1_preu, BR_aux1_preu, CA_aux1_preu, MX_aux1_preu, Resta_America_aux1_preu, TW_aux1_preu, 
                CN_aux1_preu, Resta_Asia_aux1_preu, AU_aux1_preu, Resta_Oceania_aux1_preu, Altres_aux1_preu, JP_aux1_preu, Altres_UE_aux1_preu)) AS UNPIVOT_TABLE
				) PRECIO_CONV ON COMER.Entitat=PRECIO_CONV.Entitat AND COMER.Campanya=PRECIO_CONV.Campanya AND COMER.Iso_2=PRECIO_CONV.Iso_2

				FULL JOIN
				(
				SELECT        Entitat, Campaña as Campanya, Comercializado, replace(Pais, ''_aux2_preu'', '''') AS Iso_2
                FROM            Declaracio_resum_collita 
				M 
				UNPIVOT (Comercializado FOR Pais IN (DE_aux2_preu, AT_aux2_preu, BE_aux2_preu, DK_aux2_preu, FI_aux2_preu, FR_aux2_preu, GR_aux2_preu, NL_aux2_preu, IE_aux2_preu, IT_aux2_preu, LU_aux2_preu, 
                PT_aux2_preu, GB_aux2_preu, SE_aux2_preu, UE_aux2_preu, NO_aux2_preu, CH_aux2_preu, RU_aux2_preu, Resta_UE_aux2_preu, AR_aux2_preu, BR_aux2_preu, CA_aux2_preu, MX_aux2_preu, Resta_America_aux2_preu, TW_aux2_preu, 
                CN_aux2_preu, Resta_Asia_aux2_preu, AU_aux2_preu, Resta_Oceania_aux2_preu, Altres_aux2_preu, JP_aux2_preu, Altres_UE_aux2_preu)) AS UNPIVOT_TABLE
				) PRECIO_ECO ON COMER.Entitat=PRECIO_ECO.Entitat AND COMER.Campanya=PRECIO_ECO.Campanya AND COMER.Iso_2=PRECIO_ECO.Iso_2
				)
				C LEFT OUTER JOIN V_Personas P ON C.Entitat=P.Codigo LEFT OUTER JOIN 
(SELECT        Id_isonum, ISNULL(Aux_mo, Id_iso2) AS Codigo, Descripcion
FROM            PAises P) PAISES ON C.Iso_2 = PAISES.codigo
where (isnull(c.Comercializado_conv,0)<>0 or isnull(c.Comercializado_eco,0)<>0 or isnull(c.Comercializado_total,0)<>0 OR isnull(c.Precio_conv,0)<>0 OR isnull(c.Precio_eco,0)<>0)
				'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_grupos_paises]'))
DROP VIEW [dbo].V_MO30_grupos_paises  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_grupos_paises'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MO30_grupos_paises] AS 
SELECT AUX.Campanya,AUX.Desc_grupo
,AUX.Comercializado_total,AUX.Comercializado_conv,AUX.Comercializado_eco
,CAST(CASE WHEN AUX.Cuenta_precio_conv>0 THEN AUX.Suma_Precio_conv/AUX.Cuenta_precio_conv ELSE 0 END as decimal(15,6)) as Precio_conv
,CAST(CASE WHEN AUX.Cuenta_precio_eco>0 THEN AUX.Suma_Precio_eco/AUX.Cuenta_precio_eco ELSE 0 END as decimal(15,6)) as Precio_eco

FROM (
select P.Campanya,ISNULL(PG.Descripcion, ''Sin Grupo'') AS Desc_grupo
, SUM(ISNULL(P.Comercializado_total,0)) AS Comercializado_total
, SUM(ISNULL(P.Comercializado_conv,0)) AS Comercializado_conv
, SUM(ISNULL(P.Comercializado_eco,0)) AS Comercializado_eco
,SUM(CASE WHEN p.Precio_conv IS NOT NULL THEN 1 ELSE 0 END) as Cuenta_precio_conv
,SUM(ISNULL(P.precio_conv,0)) AS Suma_Precio_conv
,SUM(CASE WHEN p.Precio_eco IS NOT NULL THEN 1 ELSE 0 END) as Cuenta_precio_eco
,SUM(ISNULL(P.precio_eco,0)) AS Suma_Precio_eco

from V_MO30_entitat_campanya_pais P  LEFT OUTER JOIN
                                                    Paises_agrupaciones PA ON P.Id_isonum = PA.Id_isonum LEFT OUTER JOIN
                                                    Paises_grupos PG ON PA.codigo_Grupo = PG.codigo
													group by P.Campanya,ISNULL(PG.Descripcion, ''Sin Grupo'')
													) AUX
													'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_agrup_campanya_pais]'))
DROP VIEW [dbo].V_MO30_agrup_campanya_pais
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_agrup_campanya_pais'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MO30_agrup_campanya_pais] AS
SELECT
	P.Campanya
	,P.Iso_2
	,P.Desc_pais
	,P.Id_isonum
	,SUM(ISNULL(P.Comercializado_total,0)) AS Comercializado_total
	,SUM(ISNULL(P.Comercializado_conv,0)) AS Comercializado_conv
	,SUM(ISNULL(P.Comercializado_eco,0)) AS Comercializado_eco
	,CAST(CASE WHEN SUM(CASE WHEN P.Precio_conv IS NOT NULL THEN 1 ELSE 0 END) > 0
		THEN SUM(ISNULL(P.Precio_conv,0)) / SUM(CASE WHEN P.Precio_conv IS NOT NULL THEN 1 ELSE 0 END)
		ELSE 0 END as decimal(15,6)) as Precio_conv
	,CAST(CASE WHEN SUM(CASE WHEN P.Precio_eco IS NOT NULL THEN 1 ELSE 0 END) > 0
		THEN SUM(ISNULL(P.Precio_eco,0)) / SUM(CASE WHEN P.Precio_eco IS NOT NULL THEN 1 ELSE 0 END)
		ELSE 0 END as decimal(15,6)) as Precio_eco
	,ISNULL(PG.Descripcion, ''Sin Grupo'') AS Desc_grupo
	,ISNULL(PG.Codigo, 0) AS Codigo_grupo
FROM V_MO30_entitat_campanya_pais P
	LEFT OUTER JOIN Paises_agrupaciones PA ON P.Id_isonum = PA.Id_isonum
	LEFT OUTER JOIN Paises_grupos PG ON PA.Codigo_Grupo = PG.Codigo
GROUP BY P.Campanya, P.Iso_2, P.Desc_pais, P.Id_isonum, ISNULL(PG.Descripcion, ''Sin Grupo''), ISNULL(PG.Codigo, 0)
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_agrup_campanya]'))
DROP VIEW [dbo].V_MO30_agrup_campanya  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MO30_agrup_campanya]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MO30_agrup_campanya] AS 
SELECT NEWID() as Id, ISNULL(D.Campaña,0) as Campanya,d.Entidades_adscritas,d.Total_olives_rebudes,d.Produccio_total_oli,d.Produccio_total_oli_certificada
,CASE WHEN ISNULL(Total_olives_rebudes_per_rend,0)=0 THEN 0 ELSE ROUND((ISNULL(Produccio_total_oli_per_rend,0)/Total_olives_rebudes_per_rend)*100,2) END as Rendimiento_medio
,HIST.Sup_total,HIST.Productores_declarados
,d.Venut_envasat_500ml,d.Venut_envasat_750ml,d.Venut_envasat_750_DOP,d.Venut_envasat_1l,d.Venut_envasat_2l,d.Venut_envasat_5l,d.Venut_envasat_altres
FROM
(
select 
d.Campaña
,COUNT(DISTINCT d.Entitat) as Entidades_adscritas
,SUM(ISNULL(Total_olives_rebudes,0)) as Total_olives_rebudes
,SUM(ISNULL(Produccio_total_oli_certificada,0)) as Produccio_total_oli_certificada
,SUM(ISNULL(Produccio_total_oli,0)) as Produccio_total_oli
,SUM(CASE WHEN ISNULL(Total_olives_rebudes,0)=0 OR ISNULL(Produccio_total_oli,0)=0 THEN 0 ELSE ISNULL(Total_olives_rebudes,0) END) as Total_olives_rebudes_per_rend
,SUM(CASE WHEN ISNULL(Total_olives_rebudes,0)=0 OR ISNULL(Produccio_total_oli,0)=0 THEN 0 ELSE ISNULL(Produccio_total_oli,0) END) as Produccio_total_oli_per_rend
,SUM(ISNULL(d.Venut_envasat_5l,0)) as Venut_envasat_5l
,SUM(ISNULL(d.Venut_envasat_2l,0)) as Venut_envasat_2l
,SUM(ISNULL(d.Venut_envasat_1l,0)) as Venut_envasat_1l
,SUM(ISNULL(d.Venut_envasat_750ml,0)) as Venut_envasat_750ml
,SUM(ISNULL(d.Venut_envasat_750ml_DOP,0)) as Venut_envasat_750_DOP
,SUM(ISNULL(d.Venut_envasat_500ml,0)) as Venut_envasat_500ml
,SUM(ISNULL(d.Venut_envasat_altres,0)) as Venut_envasat_altres
,SUM(ISNULL(d.Venut_envasat_total,0)) as Venut_envasat_total
from Declaracio_resum_collita D
		

group by D.Campaña
) D 
LEFT OUTER JOIN (
		SELECT Fk_campana, SUM(Sup_sumar_facturar) as Sup_total,COUNT(DISTINCT L.IdentificacionPersona) as Productores_declarados

		FROM Hist_fpte_lin L
		GROUP BY Fk_campana) HIST ON D.Campaña=HIST.Fk_campana'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVentaLineas]'))
DROP VIEW [dbo].V_AlbaranesVentaLineas  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVentaLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbaranesVentaLineas] AS 
SELECT  L.Id, AV.Fk_centro,C.Descripcion as Desc_centro,AV.Fk_empresa,EMP.Descripcion as Desc_empresa,AV.Su_referencia
,CAST(AV.Fecha_hora as date) as Fecha, L.Serie, L.Numero,L.Linea
,AV.Codigo_cliente,P.NombreCompleto,L.Fk_articulo,ART.Descripcion as Desc_articulo
,L.Bultos, L.Cantidad, ISNULL(L.Cantidad_anulada, 0) AS Cantidad_anulada, ISNULL(F.Cantidad_asociada,0) as Cantidad_asociada,L.Cantidad- ISNULL(L.Cantidad_anulada,0)- ISNULL(F.Cantidad_asociada,0) AS Cantidad_pendiente
, (CASE WHEN Cantidad <> 0 AND ISNULL(ISNULL(Cantidad_asociada, 0), 0) = 0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 0 
WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_asociada, 0)) AND ISNULL(Cantidad_anulada,0) = 0 THEN 1 
WHEN ABS(Cantidad) > ABS(ISNULL(Cantidad_asociada, 0)) AND ISNULL(Cantidad_anulada,0) = 0 THEN 2 
WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_anulada,0)) AND ISNULL(Cantidad_asociada, 0) = 0 AND ISNULL(Cantidad_anulada,0) <> 0 THEN 3 
WHEN ABS(Cantidad) = (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(ISNULL(Cantidad_anulada,0))) AND ISNULL(Cantidad_asociada, 0) <> 0 AND ISNULL(Cantidad_anulada,0) <> 0 THEN 4 
WHEN ABS(Cantidad) > (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(ISNULL(Cantidad_anulada,0))) AND ISNULL(Cantidad_asociada, 0) <> 0 AND ISNULL(Cantidad_anulada,0) <> 0 THEN 5 
ELSE 6 END) AS EstadoAsociado
,L.Precio_bruto,AV.Id_filtro,L.Observaciones,L.Observaciones_internas
,L.Importe_bruto,L.Importe_dto1,L.Importe_dto2,L.Importe_base, L.Importe_base_incrementado,L.Importe_iva,L.Importe_impuestos_incluidos, AV.Representante1
, AV.Identificacion_cliente AS Alb_Identificacion_cliente
FROM   dbo.Alb_venta_lineas  
AS L LEFT OUTER JOIN
    (SELECT       Id_doc_asociado,SUM(ISNULL(Cantidad, 0)) AS Cantidad_asociada
    FROM            dbo.Facturas_venta_lineas AS L
	GROUP BY Id_doc_asociado
    ) 
	AS F ON L.Id = F.Id_doc_asociado
LEFT OUTER JOIN
Alb_venta AV ON L.Serie=AV.Serie AND L.Numero=AV.Numero
LEFT OUTER JOIN V_PersonasSoloNombre P ON AV.Codigo_cliente=P.Codigo
LEFT OUTER JOIN Articulos ART ON L.Fk_articulo=ART.Codigo
LEFT OUTER JOIN Centros C ON AV.Fk_centro=C.Codigo
LEFT OUTER JOIN Empresas EMP ON AV.Fk_empresa=EMP.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVentaLineasPrecio]'))
DROP VIEW [dbo].V_AlbaranesVentaLineasPrecio  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbaranesVentaLineasPrecio]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbaranesVentaLineasPrecio] AS 
SELECT        L.Id, P.Fk_serie_fac_venta AS SerieFactura, AV.Fk_centro, C.Descripcion AS Desc_centro, AV.Fk_empresa, EMP.Descripcion AS Desc_empresa, AV.Su_referencia, CAST(AV.Fecha_hora AS date) AS Fecha, L.Serie, L.Numero, L.Linea, 
                         AV.Codigo_cliente, P.NombreCompleto, P.Telefono_particular, P.Email1, L.Fk_articulo, ART.Descripcion AS Desc_articulo, L.Bultos, L.Cantidad, ISNULL(L.Cantidad_anulada, 0) AS Cantidad_anulada, 
                         ISNULL(F.Cantidad_asociada, 0) AS Cantidad_asociada, L.Cantidad - ISNULL(L.Cantidad_anulada, 0) - ISNULL(F.Cantidad_asociada, 0) AS Cantidad_pendiente, (CASE WHEN Cantidad <> 0 AND 
                         ISNULL(ISNULL(Cantidad_asociada, 0), 0) = 0 AND ISNULL(Cantidad_anulada, 0) = 0 THEN 0 WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_asociada, 0)) AND ISNULL(Cantidad_anulada, 0) = 0 THEN 1 WHEN ABS(Cantidad) 
                         > ABS(ISNULL(Cantidad_asociada, 0)) AND ISNULL(Cantidad_anulada, 0) = 0 THEN 2 WHEN ABS(Cantidad) = ABS(ISNULL(Cantidad_anulada, 0)) AND ISNULL(Cantidad_asociada, 0) = 0 AND ISNULL(Cantidad_anulada, 0) 
                         <> 0 THEN 3 WHEN ABS(Cantidad) = (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(ISNULL(Cantidad_anulada, 0))) AND ISNULL(Cantidad_asociada, 0) <> 0 AND ISNULL(Cantidad_anulada, 0) <> 0 THEN 4 WHEN ABS(Cantidad) 
                         > (ABS(ISNULL(Cantidad_asociada, 0)) + ABS(ISNULL(Cantidad_anulada, 0))) AND ISNULL(Cantidad_asociada, 0) <> 0 AND ISNULL(Cantidad_anulada, 0) <> 0 THEN 5 ELSE 6 END) AS EstadoAsociado, L.Precio_bruto, AV.Id_filtro, L.PVP,L.Tarifa_iva_incluido,
                         L.Observaciones, L.Observaciones_internas, L.Importe_bruto, L.Importe_dto1, L.Importe_dto2, L.Importe_base, L.Importe_iva, L.Importe_impuestos_incluidos, L.Promocion, AV.Representante1, L.Codigo_iva, 
                         dbo.Ivas.Descripcion AS DescIVA, AV.Forma_pago, dbo.Formas_de_pago.Descripcion AS DescFormaPago, AV.Forma_envio, dbo.Formas_envio.Descripcion AS DescFormaEnvio, L.Tipo_calculo_dto1, L.Valor_dto1, L.Tipo_calculo_dto2, L.Aplicacion_dto2, 
                         L.Valor_dto2, L.Descripcion_dto1, L.Descripcion_dto2, AV.Codigo_direccion_envio
FROM            (SELECT        Id_doc_asociado, SUM(ISNULL(Cantidad, 0)) AS Cantidad_asociada
                          FROM            dbo.Facturas_venta_lineas AS L
                          GROUP BY Id_doc_asociado) AS F RIGHT OUTER JOIN
                         dbo.Alb_venta_lineas AS L LEFT OUTER JOIN
                         dbo.Ivas ON L.Codigo_iva = dbo.Ivas.Codigo ON F.Id_doc_asociado = L.Id LEFT OUTER JOIN
                         dbo.Formas_envio RIGHT OUTER JOIN
                         dbo.Alb_venta AS AV ON dbo.Formas_envio.Codigo = AV.Forma_envio LEFT OUTER JOIN
                         dbo.Formas_de_pago ON AV.Forma_pago = dbo.Formas_de_pago.Codigo ON L.Serie = AV.Serie AND L.Numero = AV.Numero LEFT OUTER JOIN
                         dbo.V_Personas AS P ON AV.Codigo_cliente = P.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS ART ON L.Fk_articulo = ART.Codigo LEFT OUTER JOIN
                         dbo.Centros AS C ON AV.Fk_centro = C.Codigo LEFT OUTER JOIN
                         dbo.Empresas AS EMP ON AV.Fk_empresa = EMP.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Plantilla_alb_liq_per_sec_camp]'))
DROP VIEW [dbo].V_Plantilla_alb_liq_per_sec_camp  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Plantilla_alb_liq_per_sec_camp]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Plantilla_alb_liq_per_sec_camp] AS 
select 
Id,Fk_persona,PER.NombreCompleto as Desc_persona
,Fk_seccion,S.Descripcion as Desc_seccion
,Fk_campanya,C.Descripcion as Desc_campanya
,Fk_serie_alb_liq,SER.Descripcion as Desc_serie
,Tipo_liq,TL.Descripcion as Desc_tipo_liq
,Fk_empresa,E.Descripcion as Desc_empresa
,Fk_articulo,A.Descripcion as Desc_articulo
,Fk_finca1,F1.Descripcion as Desc_finca1
,Fk_finca2,F2.Descripcion as Desc_finca2
,Fk_socio_part1,PER1.NombreCompleto as Desc_socio_part1,Pc_socio_part1
,Fk_socio_part2,PER2.NombreCompleto as Desc_socio_part2,Pc_socio_part2
,Fk_socio_part3,PER3.NombreCompleto as Desc_socio_part3,Pc_socio_part3
,Fk_socio_part4,PER4.NombreCompleto as Desc_socio_part4,Pc_socio_part4
,P.Notas,P.Notas_internas
from Plantilla_alb_liq_per_sec_camp P 
LEFT OUTER JOIN V_PersonasSoloNombre PER ON P.Fk_persona=PER.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER1 ON P.Fk_socio_part1=PER1.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER2 ON P.Fk_socio_part2=PER2.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER3 ON P.Fk_socio_part3=PER3.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER4 ON P.Fk_socio_part4=PER4.Codigo
LEFT OUTER JOIN Secciones S ON P.Fk_seccion=S.Codigo
LEFT OUTER JOIN Campañas C ON P.Fk_campanya=C.Codigo
LEFT OUTER JOIN Empresas E ON P.Fk_empresa=E.Codigo
LEFT OUTER JOIN Series_albaranes_liq SER ON P.Fk_serie_alb_liq=SER.Serie
LEFT OUTER JOIN Articulos A ON P.Fk_articulo=A.Codigo
LEFT OUTER JOIN Fincas F1 ON P.Fk_finca1=F1.Codigo
LEFT OUTER JOIN Fincas F2 ON P.Fk_finca2=F2.Codigo
LEFT OUTER JOIN Tipos_liquidacion TL ON P.Tipo_liq=TL.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MaquinasOperaciones]'))
DROP VIEW [dbo].V_MaquinasOperaciones  
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MaquinasOperaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MaquinasOperaciones] AS 
SELECT        dbo.Maquinas_operaciones.Id, dbo.Maquinas_operaciones.Fk_maquina, dbo.Maquinas.Descripcion AS Desc_maquina, dbo.Maquinas_operaciones.Fk_operacion, dbo.Operaciones.Descripcion AS Desc_operacion, 
                         dbo.Maquinas_operaciones.Periodo_mant_horas_funcionamiento, dbo.Maquinas_operaciones.Periodo_mant_dias, dbo.Maquinas_operaciones.Duracion, dbo.Maquinas_operaciones.Coste, 
                         dbo.Maquinas_operaciones.Numero_personas, dbo.Maquinas_operaciones.Operacion_externa, dbo.Maquinas_operaciones.Fk_externo_habitual, dbo.V_PersonasSoloNombre.NombreCompleto, 
                         dbo.Maquinas_operaciones.Notas
FROM            dbo.V_PersonasSoloNombre RIGHT OUTER JOIN
                         dbo.Maquinas_operaciones ON dbo.V_PersonasSoloNombre.Codigo = dbo.Maquinas_operaciones.Fk_externo_habitual LEFT OUTER JOIN
                         dbo.Maquinas ON dbo.Maquinas_operaciones.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
                         dbo.Operaciones ON dbo.Maquinas_operaciones.Fk_operacion = dbo.Operaciones.Codigo LEFT OUTER JOIN
                         dbo.Operaciones_grupos ON dbo.Operaciones.Fk_grupo_operacion = dbo.Operaciones_grupos.Codigo
						 '
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FT_PackagingInformation]'))
DROP VIEW [dbo].V_FT_PackagingInformation 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FT_PackagingInformation]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FT_PackagingInformation] AS 
SELECT        dbo.Escandallo_cabecera.Fk_ficha_tecnica, dbo.Escandallo_cabecera.Fk_articulo, dbo.Escandallo_linea.Fk_articulo_inferior, dbo.Articulos.Descripcion AS DescComponente, dbo.Articulos.Fk_articulo_tipo, 
                         dbo.Articulos_tipos.Descripcion AS DescTipo, dbo.Articulos_tipos.orden_rpt_FT_Articulos
FROM            dbo.Escandallo_cabecera INNER JOIN
                         dbo.Escandallo_linea ON dbo.Escandallo_cabecera.Id = dbo.Escandallo_linea.Fk_escandallo_cabecera INNER JOIN
                         dbo.Articulos_tipos INNER JOIN
                         dbo.Articulos ON dbo.Articulos_tipos.Codigo = dbo.Articulos.Fk_articulo_tipo ON dbo.Escandallo_linea.Fk_articulo_inferior = dbo.Articulos.Codigo
WHERE        (dbo.Articulos_tipos.mostrar_en_rpt_FT_Articulos = 1)'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NumCopias]'))
DROP VIEW [dbo].NumCopias  
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDO]'))
DROP VIEW [dbo].V_LimitesDO 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDO]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LimitesDO] AS 
SELECT Fk_persona ,Fk_do,Do_variedad,Codigo_municipio,Parcela_vitivinicola,SUM(superficie) as Superficie

FROM (
		SELECT ISNULL(DE_PARCELAS.Fk_persona,DE_FINCAS.Fk_persona) as Fk_persona
		,ISNULL(DE_PARCELAS.Finca,DE_FINCAS.Finca) as Finca
		,ISNULL(DE_PARCELAS.Codigo_municipio,DE_FINCAS.Codigo_municipio) as Codigo_municipio
		,ISNULL(DE_PARCELAS.Parcela_vitivinicola,DE_FINCAS.Parcela_vitivinicola) as Parcela_vitivinicola
		,ISNULL(DE_PARCELAS.Do_variedad,DE_FINCAS.Do_variedad) as Do_variedad
		,ISNULL(DE_PARCELAS.Fk_do,DE_FINCAS.Fk_do) as Fk_do
		,ISNULL(DE_PARCELAS.Superficie,DE_FINCAS.Superficie) as Superficie
		 FROM
		(
			SELECT * FROM (
			select PROD.Fk_persona,F.Codigo as Finca,F.Codigo_municipio, PAR.Parcela_vitivinicola,DO_VAR.Codigo as Do_variedad, PAR.Do_1 as Fk_do, SUM(ROUND(PROD.Particion*ISNULL(PAR.Superficie,0),2)) as Superficie
			FROM Fincas_parcelas PAR
			LEFT OUTER JOIN Fincas F ON F.Codigo=PAR.Id_finca AND PAR.Tipo_seccion=''BO''
			LEFT OUTER JOIN Productores PROD ON F.Codigo=PROD.Id_finca AND PROD.Tipo_seccion=''BO''
			LEFT OUTER JOIN Articulos A ON PAR.Fk_variedad=A.Codigo
			LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
			group by PROD.Fk_persona,F.Codigo,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo,PAR.Do_1
			HAVING PROD.fk_persona IS NOT NULL AND PAR.Do_1 IS NOT NULL AND DO_VAR.Codigo IS NOT NULL
			UNION ALL
			select PROD.Fk_persona,F.Codigo as Finca,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo as Do_variedad, PAR.Do_2 as Fk_do, SUM(ROUND(PROD.Particion*ISNULL(PAR.Superficie,0),2)) as Superficie
			FROM Fincas_parcelas PAR
			LEFT OUTER JOIN Fincas F ON F.Codigo=PAR.Id_finca AND PAR.Tipo_seccion=''BO''
			LEFT OUTER JOIN Productores PROD ON F.Codigo=PROD.Id_finca AND PROD.Tipo_seccion=''BO''
			LEFT OUTER JOIN Articulos A ON PAR.Fk_variedad=A.Codigo
			LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
			group by PROD.Fk_persona,F.Codigo,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo,PAR.Do_2
			HAVING PROD.fk_persona IS NOT NULL AND PAR.Do_2 IS NOT NULL AND DO_VAR.Codigo IS NOT NULL
			UNION ALL 
			select PROD.Fk_persona,F.Codigo as Finca,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo as Do_variedad, PAR.Do_3 as Fk_do, SUM(ROUND(PROD.Particion*ISNULL(PAR.Superficie,0),2)) as Superficie
			FROM Fincas_parcelas PAR
			LEFT OUTER JOIN Fincas F ON F.Codigo=PAR.Id_finca AND PAR.Tipo_seccion=''BO''
			LEFT OUTER JOIN Productores PROD ON F.Codigo=PROD.Id_finca AND PROD.Tipo_seccion=''BO''
			LEFT OUTER JOIN Articulos A ON PAR.Fk_variedad=A.Codigo
			LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
			group by PROD.Fk_persona,F.Codigo,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo,PAR.Do_3
			HAVING PROD.fk_persona IS NOT NULL AND PAR.Do_3 IS NOT NULL AND DO_VAR.Codigo IS NOT NULL
			) A
	) DE_PARCELAS

FULL OUTER JOIN
(
		select PROD.Fk_persona,F.Codigo as Finca,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo as Do_variedad, Fincas_do.Fk_do, SUM(ROUND(PROD.Particion*ISNULL(PAR.Superficie,0),2)) as Superficie
		FROM Fincas_parcelas PAR
		LEFT OUTER JOIN Fincas F ON F.Codigo=PAR.Id_finca AND PAR.Tipo_seccion=''BO''
		LEFT OUTER JOIN Fincas_do  ON F.Codigo=Fincas_do.Fk_finca
		LEFT OUTER JOIN Productores PROD ON F.Codigo=PROD.Id_finca AND PROD.Tipo_seccion=''BO''
		LEFT OUTER JOIN Articulos A ON PAR.Fk_variedad=A.Codigo
		LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
		WHERE PAR.Do_1 IS NULL AND PAR.Do_2 IS NULL AND PAR.Do_3 IS NULL
		group by PROD.Fk_persona,F.Codigo,F.Codigo_municipio,PAR.Parcela_vitivinicola,DO_VAR.Codigo,Fincas_do.Fk_do
		HAVING PROD.fk_persona IS NOT NULL AND Fincas_do.Fk_do IS NOT NULL  AND DO_VAR.Codigo IS NOT NULL
	) DE_FINCAS
	ON DE_PARCELAS.Fk_persona=DE_FINCAS.Fk_persona AND DE_PARCELAS.Finca=DE_FINCAS.Finca
	AND DE_PARCELAS.Codigo_municipio=DE_FINCAS.Codigo_municipio
	AND DE_PARCELAS.Parcela_vitivinicola=DE_FINCAS.Parcela_vitivinicola AND DE_PARCELAS.Fk_do=DE_FINCAS.Fk_do
) FINAL
GROUP BY Fk_persona ,Fk_do,Do_variedad,Codigo_municipio,Parcela_vitivinicola
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDO_SumaAlbLiq]'))
DROP VIEW [dbo].V_LimitesDO_SumaAlbLiq 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDO_SumaAlbLiq]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LimitesDO_SumaAlbLiq] AS 
SELECT Fk_Campaña,Persona,Do,Do_variedad,Codigo_municipio,Parcela_vitivinicola,SUM(Cantidad_bruta) as Cantidad_bruta
FROM(
select C.Fk_campaña,PART.Persona,L.Do_1 as Do, DO_VAR.Codigo as Do_variedad,F.Codigo_municipio,FP.Parcela_vitivinicola ,SUM(PART.Cantidad_bruta) as Cantidad_bruta from
Alb_liq_lin L INNER JOIN Alb_liq_lin_part PART ON L.Serie=PART.Serie AND L.Numero=PARt.Numero AND L.Linea=PART.Linea
LEFT OUTER JOIN Alb_liq C ON L.Serie=C.Serie AND L.Numero=C.Numero
LEFT OUTER JOIN Articulos A ON L.Articulo=A.Codigo
LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
LEFT OUTER JOIN Secciones S ON C.Fk_seccion=S.Codigo
LEFT OUTER JOIN Fincas F ON L.Finca=F.Codigo
LEFT OUTER JOIN Fincas_parcelas FP ON L.Finca=FP.Id_finca AND L.Parcela=FP.Id_parcela
WHERE S.Tipo_seccion=''BO'' AND C.Fk_serie_variedad_pri IS NULL AND L.Do_1 IS NOT NULL AND ISNULL(L.Traspasado_rvc,0)=1
GROUP BY C.Fk_campaña,PART.Persona,L.Do_1, DO_VAR.Codigo,F.Codigo_municipio,FP.Parcela_vitivinicola
UNION ALL
select C.Fk_campaña,PART.Persona,L.Do_2 as Do, DO_VAR.Codigo as Do_variedad,F.Codigo_municipio,FP.Parcela_vitivinicola,SUM(PART.Cantidad_bruta) as Cantidad_bruta from
Alb_liq_lin L INNER JOIN Alb_liq_lin_part PART ON L.Serie=PART.Serie AND L.Numero=PARt.Numero AND L.Linea=PART.Linea
LEFT OUTER JOIN Alb_liq C ON L.Serie=C.Serie AND L.Numero=C.Numero
LEFT OUTER JOIN Articulos A ON L.Articulo=A.Codigo
LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
LEFT OUTER JOIN Secciones S ON C.Fk_seccion=S.Codigo
LEFT OUTER JOIN Fincas F ON L.Finca=F.Codigo
LEFT OUTER JOIN Fincas_parcelas FP ON L.Finca=FP.Id_finca AND L.Parcela=FP.Id_parcela
WHERE S.Tipo_seccion=''BO'' AND C.Fk_serie_variedad_pri IS NULL AND L.Do_2 IS NOT NULL AND ISNULL(L.Traspasado_rvc,0)=1
GROUP BY C.Fk_campaña,PART.Persona,L.Do_2, DO_VAR.Codigo,F.Codigo_municipio,FP.Parcela_vitivinicola
UNION ALL
select C.Fk_campaña,PART.Persona,L.Do_3 as Do, DO_VAR.Codigo as Do_variedad,F.Codigo_municipio,FP.Parcela_vitivinicola,SUM(PART.Cantidad_bruta) as Cantidad_bruta from
Alb_liq_lin L INNER JOIN Alb_liq_lin_part PART ON L.Serie=PART.Serie AND L.Numero=PARt.Numero AND L.Linea=PART.Linea
LEFT OUTER JOIN Alb_liq C ON L.Serie=C.Serie AND L.Numero=C.Numero
LEFT OUTER JOIN Articulos A ON L.Articulo=A.Codigo
LEFT OUTER JOIN Denom_origen_variedad DO_VAR ON A.Fk_denom_origen_variedad=DO_VAR.Codigo
LEFT OUTER JOIN Secciones S ON C.Fk_seccion=S.Codigo
LEFT OUTER JOIN Fincas F ON L.Finca=F.Codigo
LEFT OUTER JOIN Fincas_parcelas FP ON L.Finca=FP.Id_finca AND L.Parcela=FP.Id_parcela
WHERE S.Tipo_seccion=''BO'' AND C.Fk_serie_variedad_pri IS NULL AND L.Do_3 IS NOT NULL AND ISNULL(L.Traspasado_rvc,0)=1
GROUP BY C.Fk_campaña,PART.Persona,L.Do_3, DO_VAR.Codigo,F.Codigo_municipio,FP.Parcela_vitivinicola
) A
GROUP BY Fk_Campaña,Persona,Do,Do_variedad,Codigo_municipio,Parcela_vitivinicola

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedad]'))
DROP VIEW [dbo].V_LimitesDoVariedad 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedad]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LimitesDoVariedad] AS 
SELECT ALB.Fk_campaña,CAMP.Descripcion as Desc_campaña,ALB.Persona,PER.NombreCompleto,ALB.Do,DO.Descripcion as Desc_do
,ALB.Do_variedad,VARI.Descripcion AS Desc_do_variedad,ALB.Cantidad_bruta as Quilos_entrados,LIM.Quilos_hectarea,LIM.Grado_minimo,LIM.Factor_correcion,F.Superficie
,ROUND(F.Superficie*LIM.Quilos_hectarea,0) as Quilos_permitidos,ROUND(F.Superficie*LIM.Quilos_hectarea,0)-ALB.Cantidad_bruta as Quilos_pendientes

FROM (
			SELECT        Fk_campaña, Persona, Do, Do_variedad, SUM(Cantidad_bruta) AS Cantidad_bruta
			FROM           V_LimitesDO_SumaAlbLiq
			GROUP BY Fk_campaña, Persona, Do, Do_variedad ) ALB
LEFT OUTER JOIN 
			(SELECT lim.Fk_campanya,Fk_denom_origen as Do,Fk_denom_origen_variedad as Do_variedad,lim.Quilos_hectarea,lim.Grado_minimo,lim.Factor_correcion  
			FROM Denom_origen_variedad_limites  LIM) LIM
			ON ALB.Fk_campaña=LIM.Fk_campanya AND ALB.Do=LIM.Do AND ALB.Do_variedad=LIM.Do_variedad
LEFT OUTER JOIN 
			(SELECT Fk_persona as Persona,Fk_do as Do,Do_variedad,SUM(ISNULL(V_LimitesDO.Superficie,0)) as Superficie  FROM V_LimitesDO
			GROUP BY Fk_persona,Fk_do,Do_variedad) F 
			ON ALB.Persona=f.Persona AND ALB.Do=f.Do AND ALB.Do_variedad=F.Do_variedad 
LEFT OUTER JOIN Denom_origen_variedad VARI ON ALB.Do_variedad=VARI.Codigo
LEFT OUTER JOIN Denom_origen DO ON ALB.Do=DO.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER ON Alb.Persona=PER.Codigo
LEFT OUTER JOIN Campañas CAMP ON ALB.Fk_Campaña=CAMP.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedadMunicipio]'))
DROP VIEW [dbo].V_LimitesDoVariedadMunicipio 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedadMunicipio]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LimitesDoVariedadMunicipio] AS 
SELECT ALB.Fk_Campaña,CAMP.Descripcion as Desc_campaña,ALB.Persona,PER.NombreCompleto,ALB.Do,DO.Descripcion as Desc_do,ALB.Do_variedad,VARI.Descripcion AS Desc_do_variedad,ALB.Codigo_municipio,MUN.Descripcion,ALB.Cantidad_bruta as Quilos_entrados,LIM.Quilos_hectarea,LIM.Grado_minimo,LIM.Factor_correcion,F.Superficie
,ROUND(F.Superficie*LIM.Quilos_hectarea,0) as Quilos_permitidos,ROUND(F.Superficie*LIM.Quilos_hectarea,0)-ALB.Cantidad_bruta as Quilos_pendientes

FROM (
			SELECT        Fk_campaña, Persona, Do, Do_variedad, Codigo_municipio, SUM(Cantidad_bruta) AS Cantidad_bruta
			FROM           V_LimitesDO_SumaAlbLiq WHERE Codigo_municipio IS NOT NULL 
			GROUP BY Fk_campaña, Persona, Do, Do_variedad, Codigo_municipio ) ALB
LEFT OUTER JOIN 
(SELECT lim.Fk_campanya,Fk_denom_origen as Do,Fk_denom_origen_variedad as Do_variedad,lim.Quilos_hectarea,lim.Grado_minimo,lim.Factor_correcion  FROM Denom_origen_variedad_limites  LIM) LIM
ON ALB.Fk_campaña=LIM.Fk_campanya AND ALB.Do=LIM.Do AND ALB.Do_variedad=LIM.Do_variedad
LEFT OUTER JOIN 
(SELECT Fk_persona as Persona,Fk_do as Do,Do_variedad,Codigo_municipio,SUM(ISNULL(V_LimitesDO.Superficie,0)) as Superficie  FROM V_LimitesDO
WHERE Codigo_municipio IS NOT NULL
GROUP BY Fk_persona,Fk_do,Do_variedad,Codigo_municipio) F 
ON ALB.Persona=f.Persona AND ALB.Do=f.Do AND ALB.Do_variedad=F.Do_variedad AND ALB.Codigo_municipio=F.Codigo_municipio
LEFT OUTER JOIN Municipios MUN ON Alb.Codigo_municipio=MUN.Id
LEFT OUTER JOIN Denom_origen_variedad VARI ON ALB.Do_variedad=VARI.Codigo
LEFT OUTER JOIN Denom_origen DO ON ALB.Do=DO.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER ON Alb.Persona=PER.Codigo
LEFT OUTER JOIN Campañas CAMP ON ALB.Fk_Campaña=CAMP.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedadParcela]'))
DROP VIEW [dbo].V_LimitesDoVariedadParcela 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LimitesDoVariedadParcela]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LimitesDoVariedadParcela] AS 
SELECT ALB.Fk_Campaña,CAMP.Descripcion as Desc_campaña,ALB.Persona,PER.NombreCompleto,ALB.Do,DO.Descripcion as Desc_do
,ALB.Do_variedad,VARI.Descripcion AS Desc_do_variedad,ALB.Parcela_vitivinicola,ALB.Cantidad_bruta as Quilos_entrados,LIM.Quilos_hectarea,LIM.Grado_minimo,LIM.Factor_correcion,F.Superficie
,ROUND(F.Superficie*LIM.Quilos_hectarea,0) as Quilos_permitidos,ROUND(F.Superficie*LIM.Quilos_hectarea,0)-ALB.Cantidad_bruta as Quilos_pendientes

FROM (
			SELECT        Fk_campaña, Persona, Do, Do_variedad, Parcela_vitivinicola, SUM(Cantidad_bruta) AS Cantidad_bruta
			FROM           V_LimitesDO_SumaAlbLiq WHERE Parcela_vitivinicola IS NOT NULL 
			GROUP BY Fk_campaña, Persona, Do, Do_variedad, Parcela_vitivinicola ) ALB
LEFT OUTER JOIN 
			(SELECT lim.Fk_campanya,Fk_denom_origen as Do,Fk_denom_origen_variedad as Do_variedad,lim.Quilos_hectarea,lim.Grado_minimo,lim.Factor_correcion  FROM Denom_origen_variedad_limites  LIM) LIM
			ON ALB.Fk_campaña=LIM.Fk_campanya AND ALB.Do=LIM.Do AND ALB.Do_variedad=LIM.Do_variedad
LEFT OUTER JOIN 
			(SELECT Fk_persona as Persona,Fk_do as Do,Do_variedad,Parcela_vitivinicola,SUM(ISNULL(V_LimitesDO.Superficie,0)) as Superficie  FROM V_LimitesDO
			WHERE Parcela_vitivinicola IS NOT NULL
			GROUP BY Fk_persona,Fk_do,Do_variedad,Parcela_vitivinicola) F 
			ON ALB.Persona=f.Persona AND ALB.Do=f.Do AND ALB.Do_variedad=F.Do_variedad AND ALB.Parcela_vitivinicola=F.Parcela_vitivinicola
LEFT OUTER JOIN Denom_origen_variedad VARI ON ALB.Do_variedad=VARI.Codigo
LEFT OUTER JOIN Denom_origen DO ON ALB.Do=DO.Codigo
LEFT OUTER JOIN V_PersonasSoloNombre PER ON Alb.Persona=PER.Codigo
LEFT OUTER JOIN Campañas CAMP ON ALB.Fk_Campaña=CAMP.Codigo

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CierresCaja]'))
DROP VIEW [dbo].V_CierresCaja 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CierresCaja]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CierresCaja] AS 
SELECT CJ.Id, CJ.Usuario_inicia, CJ.Usuario_cierra, CJ.Fecha_apertura_caja, CJ.Fecha_cierre_caja, CJ.Fecha_operacion, CJ.Terminal, CJ.Usuario_modifica, CJ.Fecha_modificacion, CJ.Fk_centro, CJ.Fecha_hora_contabilizacion, CJ.Usuario_Contabilizacion, CJ.Importe_inicial            
			 , ISNULL(CJ.Importe_cierre_entradas, 0) - ISNULL(CJ.Importe_inicial, 0) AS Importe_entradas_efectivo
			 , CJ.Importe_cierre_salidas AS Importe_abonos_efectivo, CJ.Importe_final_caja, 
             CJ.Importe_total_efectivo, CJ.Importe_diferencia_esperado_efectivo, CJ.Modificado_importe_inicial
			 , CJ.Num_cierre_externo, CJ.Numero_remesa_externa,CJ.Importe_total_no_efectivo,CJ.Importe_total_cierre,CJ.Importe_efectivo_sin_saldo_inicial
			 
			 , ISNULL(MOV_CAJA.Importe_entradas_mov_caja, 0) AS Importe_entradas_mov_caja
             ,ISNULL(MOV_CAJA.Importe_salidas_mov_caja, 0) AS Importe_salidas_mov_caja
			 
			 , ISNULL(NUMALB.Num_albaranes, 0) AS Num_albaranes
			 , ISNULL(NUMALB.Importe_albaranes, 0) AS Importe_albaranes

			 , ISNULL(NUMTIC.Num_tickets, 0) AS Num_tickets      
			 ,ISNULL(NUMTIC.Importe_tickets, 0) AS Importe_tickets
			 ,ISNULL(NUMTIC.Importe_tickets_efectivo, 0) AS Importe_tickets_efectivo
			 , ISNULL(NUMTIC.Importe_tickets_no_efectivo, 0) AS Importe_tickets_no_efectivo
			 
			 , ISNULL(NUMTIC.Importe_tickets, 0) + ISNULL(NUMALB.Importe_albaranes, 0) AS Importe_total_ventas
			 
			 
FROM   dbo.Cierres_caja AS CJ LEFT OUTER JOIN

                 (SELECT Fk_cierre_caja, COUNT(*) AS Num_albaranes, SUM(ISNULL(Total_factura, 0)) AS Importe_albaranes
                 FROM    dbo.Alb_venta
                 WHERE (Fk_cierre_caja IS NOT NULL)
                 GROUP BY Fk_cierre_caja) AS NUMALB ON CJ.Id = NUMALB.Fk_cierre_caja 
				 
				 
				 LEFT OUTER JOIN
                 (SELECT dbo.Facturas_simpl_cabecera.Fk_cierre_caja, COUNT(*) AS Num_tickets
				 , SUM(FAC_FP.Importe) AS Importe_tickets
				 , SUM(CASE WHEN ISNULL(FP.Efectivo, 0) = 1 THEN FAC_FP.Importe ELSE 0 END) AS Importe_tickets_efectivo
				 , SUM(CASE WHEN ISNULL(FP.Efectivo, 0) = 0 THEN FAC_FP.Importe ELSE 0 END) AS Importe_tickets_no_efectivo
                 FROM    dbo.Facturas_simpl_cabecera LEFT OUTER JOIN
                              dbo.Facturas_simpl_formas_pago AS FAC_FP ON dbo.Facturas_simpl_cabecera.Serie = FAC_FP.Serie AND dbo.Facturas_simpl_cabecera.Numero = FAC_FP.Numero LEFT OUTER JOIN
                              dbo.Formas_de_pago AS FP ON FAC_FP.Fk_forma_pago = FP.Codigo
                 WHERE (dbo.Facturas_simpl_cabecera.Fk_cierre_caja IS NOT NULL)
                 GROUP BY dbo.Facturas_simpl_cabecera.Fk_cierre_caja) AS NUMTIC ON CJ.Id = NUMTIC.Fk_cierre_caja 
				 
				 
				 
				 LEFT OUTER JOIN
                 (SELECT Fk_cierre_caja, SUM(CASE WHEN E_S = ''E'' THEN Importe ELSE 0 END) AS Importe_entradas_mov_caja
				 , SUM(CASE WHEN E_S = ''S'' THEN Importe ELSE 0 END) AS Importe_salidas_mov_caja
                 FROM    dbo.Movimientos_caja
                 WHERE (Fk_cierre_caja IS NOT NULL)
                 GROUP BY Fk_cierre_caja) AS MOV_CAJA ON CJ.Id = MOV_CAJA.Fk_cierre_caja
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstadoAlmacenes]'))
DROP VIEW [dbo].V_EstadoAlmacenes 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstadoAlmacenes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstadoAlmacenes] AS 
SELECT A.Codigo as Almacen, A.Descripcion AS Desc_almacen, C.Codigo AS Fk_centro, C.Descripcion AS Desc_centro, ISNULL(ESTOC.Cantidad,0) as Cantidad, A.Capacidad
, CASE WHEN ISNULL(A.Capacidad, 0) <> 0 THEN ROUND((ISNULL(ESTOC.Cantidad,0) / A.Capacidad) * 100, 2) 
             ELSE 0 END AS Porcentaje
FROM Almacenes A LEFT OUTER JOIN  (SELECT Almacen, SUM(ISNULL(Cantidad, 0)) AS Cantidad
             FROM    dbo.V_Movimientos_estoc
             WHERE  (Fecha_consolidacion_inventario IS NULL) AND (Almacen IS NOT NULL)
             GROUP BY Almacen) AS ESTOC  ON A.Codigo=ESTOC.Almacen LEFT OUTER JOIN
             dbo.Centros AS C ON A.Fk_centro = C.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamExtensa]'))
DROP VIEW [dbo].V_AlbLiqLinParamExtensa 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinParamExtensa]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinParamExtensa] AS 
SELECT        C.Fecha, LIN.Articulo, C.Fk_centro, CEN.Descripcion AS Desc_centro, C.Fk_seccion, S.Descripcion AS Desc_seccion, C.Fk_campaña, CAMP.Descripcion AS Desc_campaña, PAR.Serie, PAR.Numero, PAR.Linea, 
                         A.Descripcion AS Desc_articulo, PAR.Parametro, P.Descripcion AS Desc_parametro, P.Tipo_valor, 
                         CASE WHEN P.Tipo_valor = 0 THEN ''Numérico'' WHEN P.Tipo_valor = 1 THEN ''Porcentaje'' WHEN P.Tipo_valor = 2 THEN ''Texto'' WHEN P.Tipo_valor = 3 THEN ''Si-No'' WHEN P.Tipo_valor = 4 THEN ''Opción'' WHEN P.Tipo_valor =
                          5 THEN ''Fecha'' END AS Desc_tipo_valor, PAR.Valor, U.Descripcion AS Desc_unidad, U.Descripcion_breve AS Desc_unidad_breve, CASE WHEN ISNULL(Tipo_valor, 0) = 0 THEN Valor WHEN ISNULL(Tipo_valor, 0) = 1 AND 
                         (ISNULL(valor, '''') = '''') THEN ''0 %'' WHEN ISNULL(Tipo_valor, 0) = 1 THEN CONVERT(nvarchar, ROUND(CONVERT(float, REPLACE(Valor, '','', ''.'')), 2)) + '' %'' WHEN ISNULL(Tipo_valor, 0) = 2 THEN Valor WHEN ISNULL(Tipo_valor, 0) 
                         = 3 THEN CASE WHEN ISNULL(Valor, '''') = ''1'' THEN ''SI'' ELSE ''NO'' END WHEN ISNULL(Tipo_valor, 0) = 4 THEN OPCION.Descripcion END AS ValorFormateado
						 ,LIN.Cantidad_bruta,LIN.Cantidad_neta,VSU.Codigos_persona,VSU.Nombres_persona,VSU.Particiones
						 ,LIN.Finca,F.Descripcion as Desc_finca,F.Id_finca,LIN.Do_1,DO.Descripcion as Desc_do
						 ,LIN.Finca2,F2.Descripcion as Desc_finca2,F2.Id_finca as Id_finca2,LIN.Do_2,DO2.Descripcion as Desc_do2
						 ,LIN.Finca3,F3.Descripcion as Desc_finca3,F3.Id_finca as Id_finca3,LIN.Do_3,DO3.Descripcion as Desc_do3
						 ,LIN.Finca4,F4.Descripcion as Desc_finca4,F4.Id_finca as Id_finca4
FROM            dbo.Alb_liq_lin_param AS PAR LEFT OUTER JOIN
                         dbo.Parametros_analisis AS P ON PAR.Parametro = P.Codigo LEFT OUTER JOIN
                         dbo.Unidades AS U ON P.Fk_unidad = U.Codigo LEFT OUTER JOIN
                         dbo.Param_analisis_opciones AS OPCION ON P.Codigo = OPCION.Fk_parametro AND PAR.Valor = OPCION.Codigo_opcion LEFT OUTER JOIN
                         dbo.Alb_liq_lin AS LIN ON PAR.Serie = LIN.Serie AND PAR.Numero = LIN.Numero AND PAR.Linea = LIN.Linea LEFT OUTER JOIN
                         dbo.Alb_liq AS C ON LIN.Serie = C.Serie AND LIN.Numero = C.Numero LEFT OUTER JOIN
                         dbo.Articulos AS A ON LIN.Articulo = A.Codigo LEFT OUTER JOIN
                         dbo.Secciones AS S ON C.Fk_seccion = S.Codigo LEFT OUTER JOIN
                         dbo.Campañas AS CAMP ON C.Fk_campaña = CAMP.Codigo LEFT OUTER JOIN
                         dbo.Centros AS CEN ON C.Fk_centro = CEN.Codigo
						 LEFT OUTER JOIN Denom_origen DO ON LIN.Do_1=DO.Codigo
						 LEFT OUTER JOIN Fincas F ON LIN.Finca=F.Codigo
						 LEFT OUTER JOIN Denom_origen DO2 ON LIN.Do_2=DO2.Codigo
						 LEFT OUTER JOIN Fincas F2 ON LIN.Finca2=F2.Codigo
						 LEFT OUTER JOIN Denom_origen DO3 ON LIN.Do_3=DO3.Codigo
						 LEFT OUTER JOIN Fincas F3 ON LIN.Finca3=F3.Codigo
						 LEFT OUTER JOIN Fincas F4 ON LIN.Finca4=F4.Codigo
						 LEFT OUTER JOIN V_AlbLiqLinPartSociosUnidos VSU ON LIN.Serie=VSU.Serie AND LIN.Numero=VSU.Numero AND LIN.Linea=VSU.Linea
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TarifasParametros]'))
DROP VIEW [dbo].V_TarifasParametros 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TarifasParametros]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TarifasParametros] AS 
SELECT TOP (1) 1 AS Codigo, Desc_tarifa_1 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 2 AS Codigo, Desc_tarifa_2 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 3 AS Codigo, Desc_tarifa_3 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 4 AS Codigo, Desc_tarifa_4 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 5 AS Codigo, Desc_tarifa_5 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 6 AS Codigo, Desc_tarifa_6 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 7 AS Codigo, Desc_tarifa_7 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 8 AS Codigo, Desc_tarifa_8 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 9 AS Codigo, Desc_tarifa_9 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 10 AS Codigo, Desc_tarifa_10 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 11 AS Codigo, Desc_tarifa_11 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 12 AS Codigo, Desc_tarifa_12 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 13 AS Codigo, Desc_tarifa_13 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 14 AS Codigo, Desc_tarifa_14 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 15 AS Codigo, Desc_tarifa_15 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 16 AS Codigo, Desc_tarifa_16 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 17 AS Codigo, Desc_tarifa_17 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 18 AS Codigo, Desc_tarifa_18 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 19 AS Codigo, Desc_tarifa_19 AS Descripcion FROM dbo.Parametros
UNION SELECT TOP (1) 20 AS Codigo, Desc_tarifa_20 AS Descripcion FROM dbo.Parametros
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ClientesVentasArticulos]'))
DROP VIEW [dbo].V_ClientesVentasArticulos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ClientesVentasArticulos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ClientesVentasArticulos] AS 
SELECT F_FC.Codigo_cliente,  F_FL.Articulo, MAX(F_FL.Articulo_descripcion) AS Articulo_descripcion, 
SUM( F_FL.Importe_base) AS ImporteTotal, SUM(F_FL.Cantidad) AS Unidades, MAX(F_FC.fecha_hora) As Fecha_hora,
(SELECT TOP 1 PFL.Precio_bruto FROM Facturas_venta_lineas PFL
		INNER JOIN Facturas_venta PFC
		ON  PFL.Serie =  PFC.Serie 
		AND  PFL.Numero =  PFC.Numero
		WHERE PFC.Codigo_cliente=F_FC.Codigo_cliente
		AND  PFL.Articulo=F_FL.Articulo
		ORDER BY PFC.Fecha_hora DESC) AS UltPrecio
FROM Facturas_venta_lineas F_FL
INNER JOIN Facturas_venta F_FC
ON  F_FL.Serie =  F_FC.Serie 
AND  F_FL.Numero =  F_FC.Numero
GROUP BY  F_FC.Codigo_cliente,  F_FL.Articulo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ClientesDatosPedidos]'))
DROP VIEW [dbo].V_ClientesDatosPedidos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ClientesDatosPedidos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ClientesDatosPedidos] AS 
SELECT P.Codigo, PED.UltimoPedido, PED.DiasUltimoPedido, 
		ACT.ACT_Año, ACT.ACT_NumeroPedidos, ACT.ACT_Importe_medio_pedido, ACT.ACT_Bultos,
		ANT.ANT_Año, ANT.ANT_NumeroPedidos, ANT.ANT_Importe_medio_pedido, ANT.ANT_Bultos
FROM Personas P
LEFT JOIN
	(SELECT Codigo_cliente, MAX(Fecha_hora) AS UltimoPedido, DATEDIFF(d, MAX(Fecha_hora), GETDATE()) AS DiasUltimoPedido
	FROM Ped_venta 
	GROUP BY Codigo_cliente) AS PED
ON P.Codigo=PED.Codigo_cliente
LEFT JOIN
	(SELECT Ped_venta.Codigo_cliente, YEAR(GETDATE()) AS ACT_Año, COUNT(Ped_venta.Id) AS ACT_NumeroPedidos, 
	SUM(Ped_venta_lineas.Importe_base) / COUNT(Ped_venta.Id) AS ACT_Importe_medio_pedido, SUM(Ped_venta_lineas.Bultos) AS ACT_Bultos
	FROM Ped_venta 
	INNER JOIN Ped_venta_lineas 
	ON Ped_venta.Serie = Ped_venta_lineas.Serie 
	AND Ped_venta.Numero = Ped_venta_lineas.Numero
	WHERE YEAR(Ped_venta.Fecha_hora) = YEAR(GETDATE())
	GROUP BY Ped_venta.Codigo_cliente) AS ACT
ON P.Codigo=ACT.Codigo_cliente
LEFT JOIN
	(SELECT Ped_venta.Codigo_cliente, YEAR(GETDATE())-1 AS ANT_Año, COUNT(Ped_venta.Id) AS ANT_NumeroPedidos, 
	SUM(Ped_venta_lineas.Importe_base) / COUNT(Ped_venta.Id) AS ANT_Importe_medio_pedido, SUM(Ped_venta_lineas.Bultos) AS ANT_Bultos
	FROM Ped_venta 
	INNER JOIN Ped_venta_lineas 
	ON Ped_venta.Serie = Ped_venta_lineas.Serie 
	AND Ped_venta.Numero = Ped_venta_lineas.Numero
	WHERE YEAR(Ped_venta.Fecha_hora) = (YEAR(GETDATE())-1)
	GROUP BY Ped_venta.Codigo_cliente) AS ANT
ON P.Codigo=ANT.Codigo_cliente
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqCuentaLiquidados]'))
DROP VIEW [dbo].V_AlbLiqCuentaLiquidados 
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCostesTotal]'))
DROP VIEW [dbo].V_OpCostesTotal 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpCostesTotal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpCostesTotal] AS 
SELECT dbo.Op.Fk_serie AS Serie, dbo.Op.Numero, dbo.Op.Fecha_propuesta, TOTALES.Fecha_inicio_op, TOTALES.Fecha_fin_op, dbo.Op.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Op.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, TOTALES.Cantidad, 
             TOTALES.Horas_produccion, TOTALES.Horas_operaciones, TOTALES.Horas_total, TOTALES.Horas_teoricas, TOTALES.Dif_horas, TOTALES.PPH_teorico, TOTALES.Prod_hora, CASE WHEN PPH_teorico IS NULL THEN CAST(NULL AS decimal(5, 2)) 
             ELSE CAST(((Prod_hora - PPH_teorico) / PPH_teorico) * 100 AS decimal(5, 2)) END AS Pc_desv_prod_hora, TOTALES.Prod_hora_total, CASE WHEN PPH_teorico IS NULL THEN CAST(NULL AS decimal(5, 2)) ELSE CAST(((Prod_hora_total - PPH_teorico) / PPH_teorico) 
             * 100 AS decimal(5, 2)) END AS Pc_desv_prod_hora_total, TOTALES.PPH_persona_teorico, TOTALES.Prod_hora_persona, CASE WHEN PPH_persona_teorico IS NULL THEN CAST(NULL AS decimal(5, 2)) ELSE CAST(((Prod_hora_persona - PPH_persona_teorico) 
             / PPH_persona_teorico) * 100 AS decimal(5, 2)) END AS Pc_desv_prod_hora_persona, TOTALES.Prod_hora_persona_total, CASE WHEN PPH_persona_teorico IS NULL THEN CAST(NULL AS decimal(5, 2)) ELSE CAST(((Prod_hora_persona_total - PPH_persona_teorico) 
             / PPH_persona_teorico) * 100 AS decimal(5, 2)) END AS Pc_desv_prod_hora_persona_total
FROM   dbo.Op INNER JOIN
                 (SELECT Serie, Numero, Fecha_inicio_op, Fecha_fin_op, Cantidad, PPH_teorico, PPH_persona_teorico, Horas_teoricas, Horas_produccion, Horas_operaciones, Horas_total, Horas_produccion - Horas_teoricas AS Dif_horas, CASE WHEN (Horas_produccion <> 0 AND 
                              Numero_personas <> 0) THEN ROUND(TOTALES.Cantidad / (Horas_produccion * Numero_personas), 2) ELSE 0 END AS Prod_hora_persona, CASE WHEN (Horas_produccion <> 0) THEN ROUND(TOTALES.Cantidad / (Horas_produccion), 2) ELSE 0 END AS Prod_hora, 
                              CASE WHEN ((Horas_total) <> 0 AND Numero_personas <> 0) THEN ROUND(TOTALES.Cantidad / (Horas_total * Numero_personas), 2) ELSE 0 END AS Prod_hora_persona_total, CASE WHEN ((Horas_total) <> 0) THEN ROUND(TOTALES.Cantidad / (Horas_total), 2) 
                              ELSE 0 END AS Prod_hora_total, Pc_margen_desv_alerta_prod_hora, Pc_margen_desv_alerta_prod_hora_pers
                 FROM    (SELECT dbo.Op.Fk_serie AS Serie, dbo.Op.Numero, CANTIDAD_HORAS.Cantidad, ISNULL(CANTIDAD_HORAS.Horas, 0) AS Horas_produccion, CANTIDAD_HORAS.Fecha_inicio_op, CANTIDAD_HORAS.Fecha_fin_op, CANTIDAD_HORAS.Numero_personas
				 , ISNULL(OPER_HORAS.Horas_operaciones, 0) AS Horas_operaciones
											 , ISNULL(CANTIDAD_HORAS.Horas, 0) + ISNULL(OPER_HORAS.Horas_operaciones, 0) AS Horas_total
                                             ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN AM.Produccion_por_hora ELSE EC.Unidades_hora END AS PPH_teorico
											 ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN CAST(AM.Produccion_por_hora/ ISNULL(AM.Num_personas_necesarias, 1) AS int) ELSE CAST(EC.Unidades_hora / ISNULL(EC.Personas_necesarias, 1) AS int) END AS PPH_persona_teorico
											 ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN AM.Num_personas_necesarias ELSE EC.Personas_necesarias END AS Personas_teoricas
											 ,CASE WHEN ISNULL(AM.Pc_margen_desv_alerta_prod_hora,0)<>0 THEN AM.Pc_margen_desv_alerta_prod_hora ELSE EC.Pc_margen_desv_alerta_prod_hora END AS Pc_margen_desv_alerta_prod_hora
											 ,CASE WHEN ISNULL(AM.Pc_margen_desv_alerta_prod_hora_pers,0)<>0 THEN AM.Pc_margen_desv_alerta_prod_hora_pers ELSE EC.Pc_margen_desv_alerta_prod_hora_pers END AS Pc_margen_desv_alerta_prod_hora_pers
											 ,CASE WHEN ISNULL(AM.Produccion_por_hora,0)<>0 THEN ROUND((CANTIDAD_HORAS.Cantidad / AM.Produccion_por_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
											  WHEN ISNULL(AM.Produccion_por_hora,0)<>0  THEN ROUND((CANTIDAD_HORAS.Cantidad / EC.Unidades_hora) + CAST(EC.Tiempo_preparacion AS decimal(15, 2)) / 60, 2)
											  ELSE 0 END AS Horas_teoricas

                               FROM    dbo.Op LEFT OUTER JOIN
                                                 (SELECT dbo.Op.Fk_serie AS Serie, dbo.Op.Numero, SUM(CI.Cantidad) AS Cantidad, SUM(ISNULL(ROUND(CAST(DATEDIFF(MINUTE, CI.Fecha_inicio, CI.Fecha) AS decimal(15, 2)) / 60, 2), 0)) AS Horas, MIN(CI.Fecha_inicio) AS Fecha_inicio_op, MAX(CI.Fecha) 
                                                              AS Fecha_fin_op, MAX(CI.Numero_personas) AS Numero_personas
                                                 FROM    dbo.Op_cierres AS CI INNER JOIN
                                                              dbo.Op ON dbo.Op.Id = CI.Fk_op
                                                 GROUP BY dbo.Op.Fk_serie, dbo.Op.Numero) AS CANTIDAD_HORAS ON dbo.Op.Fk_serie = CANTIDAD_HORAS.Serie AND dbo.Op.Numero = CANTIDAD_HORAS.Numero LEFT OUTER JOIN
                                                 (SELECT dbo.Op.Fk_serie AS Serie, dbo.Op.Numero, SUM(ROUND(CAST(ISNULL(OPER.Minutos, 0) AS decimal(15, 2)) / 60, 2)) AS Horas_operaciones
                                                 FROM    dbo.Op_operaciones AS OPER INNER JOIN
                                                              dbo.Op ON OPER.Fk_op = dbo.Op.Id
                                                 GROUP BY dbo.Op.Fk_serie, dbo.Op.Numero) AS OPER_HORAS ON dbo.Op.Fk_serie = OPER_HORAS.Serie AND dbo.Op.Numero = OPER_HORAS.Numero LEFT OUTER JOIN
                                                 (SELECT OP.Serie, OP.Numero, CosteMaterial.Coste_material, CosteProduccion.Coste_produccion, CosteComercial.Coste_comercial, CosteOtros.Coste_otros, CosteTotal.Coste_total
                                                 FROM    (SELECT DISTINCT Fk_serie AS Serie, Numero
                                                               FROM    dbo.Op) AS OP LEFT OUTER JOIN
                                                                  (SELECT M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, SUM(ISNULL(M.Cantidad, 0) * ISNULL(M.Pmp_lote, 0)) AS Coste_material
                                                                  FROM    dbo.Movimientos AS M LEFT OUTER JOIN
                                                                               dbo.Articulos AS A ON M.Articulo = A.Codigo
                                                                  WHERE (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (ISNULL(A.Clasificacion_coste, 0) = 0)
                                                                  GROUP BY M.Tipo_movimiento, M.Movimiento) AS CosteMaterial ON OP.Serie = CosteMaterial.Serie AND OP.Numero = CosteMaterial.Numero LEFT OUTER JOIN
                                                                  (SELECT M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, SUM(ISNULL(M.Cantidad, 0) * ISNULL(M.Pmp_lote, 0)) AS Coste_produccion
                                                                  FROM    dbo.Movimientos AS M LEFT OUTER JOIN
                                                                               dbo.Articulos AS A ON M.Articulo = A.Codigo
                                                                  WHERE (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (ISNULL(A.Clasificacion_coste, 1) = 0)
                                                                  GROUP BY M.Tipo_movimiento, M.Movimiento) AS CosteProduccion ON OP.Serie = CosteMaterial.Serie AND OP.Numero = CosteProduccion.Numero LEFT OUTER JOIN
                                                                  (SELECT M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, SUM(ISNULL(M.Cantidad, 0) * ISNULL(M.Pmp_lote, 0)) AS Coste_comercial
                                                                  FROM    dbo.Movimientos AS M LEFT OUTER JOIN
                                                                               dbo.Articulos AS A ON M.Articulo = A.Codigo
                                                                  WHERE (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (ISNULL(A.Clasificacion_coste, 2) = 0)
                                                                  GROUP BY M.Tipo_movimiento, M.Movimiento) AS CosteComercial ON OP.Serie = CosteMaterial.Serie AND OP.Numero = CosteComercial.Numero LEFT OUTER JOIN
                                                                  (SELECT M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, SUM(ISNULL(M.Cantidad, 0) * ISNULL(M.Pmp_lote, 0)) AS Coste_otros
                                                                  FROM    dbo.Movimientos AS M LEFT OUTER JOIN
                                                                               dbo.Articulos AS A ON M.Articulo = A.Codigo
                                                                  WHERE (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'') AND (ISNULL(A.Clasificacion_coste, 3) = 0)
                                                                  GROUP BY M.Tipo_movimiento, M.Movimiento) AS CosteOtros ON OP.Serie = CosteMaterial.Serie AND OP.Numero = CosteOtros.Numero LEFT OUTER JOIN
                                                                  (SELECT M.Tipo_movimiento AS Serie, M.Movimiento AS Numero, SUM(ISNULL(M.Cantidad, 0) * ISNULL(M.Pmp_lote, 0)) AS Coste_total
                                                                  FROM    dbo.Movimientos AS M LEFT OUTER JOIN
                                                                               dbo.Articulos AS A ON M.Articulo = A.Codigo
                                                                  WHERE (M.SerieTipoDoc = ''OP'') AND (M.E_S_N = ''S'')
                                                                  GROUP BY M.Tipo_movimiento, M.Movimiento) AS CosteTotal ON OP.Serie = CosteMaterial.Serie AND OP.Numero = CosteTotal.Numero) AS COSTES_GENERALES ON CANTIDAD_HORAS.Serie = COSTES_GENERALES.Serie AND 
                                             CANTIDAD_HORAS.Numero = COSTES_GENERALES.Numero LEFT OUTER JOIN
                                             dbo.Escandallo_cabecera AS EC ON dbo.Op.Fk_articulo = EC.Fk_articulo AND dbo.Op.Fk_ficha_tecnica = EC.Fk_ficha_tecnica LEFT OUTER JOIN 
											 dbo.Articulos_maquinas AS AM ON dbo.Op.Fk_articulo=AM.Fk_articulo AND dbo.Op.Fk_maquina=AM.Fk_maquina

						) AS TOTALES) AS TOTALES ON dbo.Op.Fk_serie = TOTALES.Serie AND dbo.Op.Numero = TOTALES.Numero LEFT OUTER JOIN
             dbo.Maquinas ON dbo.Op.Fk_maquina = dbo.Maquinas.Codigo LEFT OUTER JOIN
             dbo.Centros ON dbo.Op.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
             dbo.Articulos ON dbo.Op.Fk_articulo = dbo.Articulos.Codigo
WHERE (TOTALES.Fecha_fin_op IS NOT NULL)
'
GO

GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ALbLiqLinPartEstados]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ALbLiqLinPartEstados] AS 
SELECT        EST.Id_alb_liq, PART.Serie, PART.Numero, PART.Linea, PART.Persona, P.NombreCompleto, C.Fecha, C.Portador_codigo, C.Portador_nombre, C.Portador_nif, L.Articulo, A.Descripcion AS Desc_articulo, PART.Particion, 
                         PART.Cantidad_bruta, PART.Cantidad_bruta_corregida, PART.Cantidad_neta, PART.Cantidad_neta_corregida, EST.Cuenta_liq_prov, CASE WHEN EST.Cuenta_liq_prov > 0 THEN 1 ELSE 0 END AS Est_liq_prov, 
                         CASE WHEN EST.Cuenta_liq_prov > 0 THEN ''LIQUIDADO'' ELSE ''PENDIENTE'' END AS Desc_est_liq_prov, EST.Cuenta_liq_def, CASE WHEN EST.Cuenta_liq_def > 0 THEN 1 ELSE 0 END AS Est_liq_def, 
                         CASE WHEN EST.Cuenta_liq_def > 0 THEN ''LIQUIDADO'' ELSE ''PENDIENTE'' END AS Desc_est_liq_def, EST.Cuenta_valor_Campaña, CASE WHEN EST.Cuenta_valor_Campaña > 0 THEN 1 ELSE 0 END AS Est_valorado_campaña,
                          CASE WHEN EST.Cuenta_valor_Campaña > 0 THEN ''LIQUIDADO'' ELSE ''PENDIENTE'' END AS Desc_est_valorado_campaña,  C.Fk_seccion, S.Descripcion AS Desc_seccion, C.Fk_campaña, CAMP.Descripcion AS Desc_campaña, C.Tipo_liq, 
                         TL.Descripcion AS Desc_tipo_liq, L.Precio, AUX_LIQS.Cantidad_bruta_liq_def, AUX_LIQS.Cantidad_neta_liq_def, AUX_LIQS.Importe_base_ret_liq_def, P.Identificacion, C.Fk_centro
						 ,EST.Fecha_ultima_liq_def,EST.Fecha_ultima_liq_prov
FROM            dbo.A_AlbLiqLinGrupLiquidados AS EST INNER JOIN
                         dbo.Alb_liq AS C ON C.Id = EST.Id_alb_liq INNER JOIN
                         dbo.Alb_liq_lin AS L ON EST.Serie = L.Serie AND EST.Numero = L.Numero AND EST.Linea = L.Linea INNER JOIN
                         dbo.Alb_liq_lin_part AS PART ON EST.Serie = PART.Serie AND EST.Numero = PART.Numero AND EST.Linea = PART.Linea AND EST.Persona = PART.Persona LEFT OUTER JOIN
                         dbo.Articulos AS A ON L.Articulo = A.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON EST.Persona = P.Codigo LEFT OUTER JOIN
                         dbo.Secciones AS S ON C.Fk_seccion = S.Codigo LEFT OUTER JOIN
                         dbo.Campañas AS CAMP ON C.Fk_campaña = CAMP.Codigo LEFT OUTER JOIN
                         dbo.Tipos_liquidacion AS TL ON C.Tipo_liq = TL.Codigo LEFT OUTER JOIN
                             (SELECT        C.Fk_persona, L.Albaran_serie, L.Albaran_numero, L.Albaran_linea, SUM(ISNULL(L.Cantidad_bruta, 0)) AS Cantidad_bruta_liq_def, SUM(ISNULL(L.Cantidad_neta, 0)) AS Cantidad_neta_liq_def, 
                                                         SUM(ISNULL(L.Importe_base_ret, 0)) AS Importe_base_ret_liq_def
                               FROM            dbo.Liquidaciones AS C INNER JOIN
                                                         dbo.Liquidaciones_lineas AS L ON C.Id = L.Fk_liquidacion
                               WHERE        (C.Clase_liquidacion = 2)
                               GROUP BY C.Fk_persona, L.Albaran_serie, L.Albaran_numero, L.Albaran_linea) AS AUX_LIQS ON PART.Persona = AUX_LIQS.Fk_persona AND PART.Serie = AUX_LIQS.Albaran_serie AND 
                         PART.Numero = AUX_LIQS.Albaran_numero AND PART.Linea = AUX_LIQS.Albaran_linea

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacVentaLineasLotes]'))
DROP VIEW [dbo].V_FacVentaLineasLotes 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacVentaLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacVentaLineasLotes] AS 
SELECT ISNULL(LOT.Id,L.Id) as Id_lote_o_linea,  L.Serie, L.Numero,CAST(F.Fecha_hora as date) as Fecha, A.Desc_color,A.Capacidad,LOTES.Añada,LOT.lote
,ISNULL(LOT.Cantidad,L.Cantidad) as Cantidad,A.Desc_unidad,A.Desc_marca,L.Articulo,A.Descripcion as Desc_articulo
,LOT.Id as Id_lote, L.Id as Id_linea, LOT.Almacen, LOT.Lote_etiqueta, dbo.Almacenes.Descripcion AS Desc_almacen
,F.Codigo_cliente,P.NombreCompleto,P.Tipo_identificacion,P.Identificacion, F.Representante1
FROM      Facturas_venta_lineas  L 
			LEFT OUTER JOIN Facturas_venta_lineas_lotes LOT ON LOT.fk_Id_linea = L.Id 
			 LEFT OUTER JOIN Facturas_venta F ON L.Serie=F.Serie AND L.Numero=F.Numero 
             LEFT OUTER JOIN Almacenes ON LOT.Almacen = dbo.Almacenes.Codigo
			 LEFT OUTER JOIN V_ArticulosNombre A ON L.Articulo=A.Codigo
			 LEFT OUTER JOIN Lotes ON L.Articulo=Lotes.Fk_articulo AND LOT.Lote=Lotes.Lote
			 LEFT OUTER JOIN V_Personas P ON F.codigo_cliente=P.codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacCompraLineasLotes]'))
DROP VIEW [dbo].V_FacCompraLineasLotes 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FacCompraLineasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FacCompraLineasLotes] AS 
SELECT ISNULL(LOT.Id, L.Id) AS Id_lote_o_linea, L.Serie, L.Numero, CAST(F.Fecha_hora AS date) AS Fecha, A.Desc_color, A.Capacidad, dbo.Lotes.Añada, LOT.Lote, ISNULL(LOT.Cantidad, L.Cantidad) AS Cantidad, A.Desc_unidad, A.Desc_marca
, L.Fk_articulo, A.Descripcion AS Desc_articulo, 
             LOT.Id AS Id_lote, L.Id AS Id_linea, LOT.Almacen, LOT.Lote_etiqueta, dbo.Almacenes.Descripcion AS Desc_almacen, F.Codigo_persona, P.NombreCompleto, P.Tipo_identificacion, P.Identificacion, F.Representante1, F.Fecha_recepcion
FROM   dbo.Fac_compra_lineas AS L LEFT OUTER JOIN
             dbo.Fac_compra_lineas_lotes AS LOT ON LOT.fk_Id_linea = L.Id LEFT OUTER JOIN
             dbo.Fac_compra AS F ON L.Serie = F.Serie AND L.Numero = F.Numero LEFT OUTER JOIN
             dbo.Almacenes ON LOT.Almacen = dbo.Almacenes.Codigo LEFT OUTER JOIN
             dbo.V_ArticulosNombre AS A ON L.Fk_articulo = A.Codigo LEFT OUTER JOIN
             dbo.Lotes ON L.Fk_articulo  = dbo.Lotes.Fk_articulo AND LOT.Lote = dbo.Lotes.Lote LEFT OUTER JOIN
             dbo.V_Personas AS P ON F.Codigo_persona = P.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasDiario]'))
DROP VIEW [dbo].ContratosVentaLineasDiario 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ContratosVentaLineasDiario]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ContratosVentaLineasDiario] AS 
SELECT CCL.Cantidad AS ctdContrato, ISNULL(P.ctdPedido, 0) AS ctdPedido, ISNULL(A.ctdAlbaran, 0) + ISNULL(A2.ctdAlbaran, 0) AS ctdAlbaran, ISNULL(P.ctdPedido, 0) - ISNULL(A2.ctdAlbaran, 0) AS ctdCom, CCL.Cantidad - ISNULL(A2.ctdAlbaran, 0) - ISNULL(A.ctdAlbaran, 0) AS ctdPend, 
             CCL.Fecha, CCL.Codigo_persona, CCL.NombreCompleto, CCL.Id, CCL.Serie, CCL.Numero, CCL.Linea, CCL.Fk_articulo, CCL.Articulo_descripcion, CCL.No_inventariable, CCL.Fk_articulo_kit, CCL.Linea_kit, CCL.Precio_coste_articulo, CCL.Precio_bruto, CCL.Precio_neto, CCL.Bultos, 
             CCL.Cantidad, CCL.Importe_bruto, CCL.Imp_dto_pp, CCL.Imp_dto_esp, CCL.Tipo_calculo_dto1, CCL.Valor_dto1, CCL.Importe_dto1, CCL.Tipo_calculo_dto2, CCL.Aplicacion_dto2, CCL.Valor_dto2, CCL.Importe_dto2, CCL.Tipo_calculo_comisiones, CCL.Valor_comision1, 
             CCL.Importe_comision1, CCL.Valor_comision2, CCL.Importe_comision2, CCL.Importe_base, CCL.Valor_iva, CCL.Importe_iva, CCL.Valor_recargo, CCL.Importe_recargo, CCL.Valor_irpf, CCL.Importe_irpf, CCL.Importe_otros_impuestos, CCL.Importe_total_linea, CCL.Centro_analitico1, 
             CCL.Centro_analitico2, CCL.Codigo_iva, CCL.Aplicacion_irpf, CCL.Tipo_doc_asociado, CCL.Serie_doc_asociado, CCL.Numero_doc_asociado, CCL.Id_doc_asociado, CCL.Cantidad_anulada, CCL.Anular_restante, CCL.Observaciones, CCL.Orden, CCL.Promocion, CCL.PVP, 
             CCL.Importe_impuestos_incluidos, CCL.Importe_neto, CCL.Tarifa_iva_incluido, CCL.Precio_tarifa, CCL.Precio_con_dtos_linea, CCL.Aux_codigo, CCL.Fk_articulo_agrupacion, CCL.Desc_articulo_agrupacion, dbo.Contratos_Venta.Fecha_inicio,
             dbo.Contratos_Venta.Fecha_fin,dbo.Contratos_venta.Su_referencia
FROM   dbo.ContratosVentaLineas AS CCL INNER JOIN
             dbo.Contratos_Venta ON CCL.Serie = dbo.Contratos_Venta.Serie AND CCL.Numero = dbo.Contratos_Venta.Numero LEFT OUTER JOIN
                 (SELECT SUM(Cantidad) AS ctdPedido, Id_doc_asociado
                 FROM    dbo.PedidosVentaLineas AS PCL
                 GROUP BY Id_doc_asociado, Fk_articulo) AS P ON CCL.Id = P.Id_doc_asociado LEFT OUTER JOIN
                 (SELECT SUM(Cantidad) AS ctdAlbaran, Id_doc_asociado
                 FROM    dbo.AlbaranesVentaLineas AS ACL
                 GROUP BY Id_doc_asociado, Fk_articulo) AS A ON CCL.Id = A.Id_doc_asociado LEFT OUTER JOIN
                 (SELECT SUM(ACL.Cantidad) AS ctdAlbaran, PCL.Id_doc_asociado
                 FROM    dbo.AlbaranesVentaLineas AS ACL INNER JOIN
                              dbo.PedidosVentaLineas AS PCL ON PCL.Id = ACL.Id_doc_asociado
                 GROUP BY PCL.Id_doc_asociado, ACL.Fk_articulo) AS A2 ON CCL.Id = A2.Id_doc_asociado
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ColArticulos]'))
DROP VIEW [dbo].V_ColArticulos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ColArticulos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ColArticulos] AS 
select  A.Codigo,CAST(A.Descripcion as varchar(100)) Collate SQL_Latin1_General_CP1253_CI_AI AS Descripcion,Descripcion_abreviada,Articulo_cosecha,Articulo_libros,
                        Estado,Estado_inventario,Estado_tpv,Perm_modif_desc_docs,A.Tipo_seccion,Unidades.Descripcion as Desc_unidad,Seleccion_lotes
                        ,Seleccion_lotes_prod,Seleccion_lotes_compras,Producto_supervisor,DO.Descripcion as Desc_do
                        ,Grado_alcoholico,No_sumar_cantidades_en_copages,Pc_mermas_ops,Art_sello_do,Estoc_minimo,fk_almacen_entradas as Almacen_habitual,Lote_por_defecto_compras,Tipo_articulo_libros,Tipo_formato,Fk_articulo_tipo
                        ,Clasificacion_coste,Coste_produccion,Fito_categoria,Tarifa1,Tarifa2,Tarifa3,Tarifa4,Tarifa5,Tarifa6,Tarifa7,Tarifa8,Tarifa9,Tarifa10,Fk_grupo_dto_compras,Fk_grupo_dto_ventas
                        ,Grupo_iva_recibido,Grupo_iva_emitido,Seleccion_lotes_tpv,Articulo_kit,Precio_suma_desglose,Precio_kit_es_desglose_fijo,Notas_internas,Capacidad,Fk_cuenta_ventas,Peso_bruto,Peso_neto,Codigo_muestra_bascula
                        ,Tarifa11,Tarifa12,Tarifa13,Tarifa14,Tarifa15,Tarifa16,Tarifa17,Tarifa18,Tarifa19,Tarifa20,Cte_transformacion,Fk_art_agrup_autoconsumo,Fk_cuenta_compras
                         from Articulos A LEFT OUTER JOIN Denom_origen DO ON A.Fk_do=DO.Codigo
                         LEFT OUTER JOIN Unidades ON A.Fk_unidad_salida=Unidades.Codigo 
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Contactos]'))
DROP VIEW [dbo].V_Contactos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Contactos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Contactos] AS 
SELECT IIF(P.Codigo IS NULL,CAST(C.Codigo as nvarchar), CAST(C.Codigo as nvarchar) + ''-'' + CAST(P.Codigo as nvarchar)) as Id
 ,C.Codigo as Codigo_contacto
,C.Nombre_apellidos AS ContactoNombreCompleto, C.Email1 AS ContactoEmail1, 
C.Email2 AS ContactoEmail2, C.Telefono_movil AS ContactoTelefono_movil, C.Telefono_particular AS ContactoTelefono_particular, 
C.Telefono_profesional AS ContactoTelefono_profesional, C.Direccion AS ContactoDireccion, C.Notas AS ContactoNotas
,CARGOS_AGRUPADOS.Cargos,CARGOS_AGRUPADOS.Desc_cargos

,P.Codigo as Fk_persona, P.NombreCompleto, P.Email1, P.Email2,P.Telefono_particular, P.Telefono_trabajo,P.GruposPersona,P.NombresGruposPersona
,P.Identificacion,P.Fis_municipio,P.Fis_comarca,P.Fis_provincia,P.Web,P.Notas,P.Fis_codigo_postal              
, C.Num_carnet_aplicador, C.Codigo_ropo, C.Dni_propietario_carnet_aplicador, C.Fecha_caducidad_carnet_aplicador, C.Ropo_propietario_razon_fiscal, C.Ropo_propietario_direccion
, C.Ropo_propietario_email, C.Ropo_propietario_telefono, C.Ropo_propietario_codigo_postal, C.Ropo_propietario_municipio, C.Ropo_propietario_pais
FROM     Contacto C LEFT OUTER JOIN
dbo.Personas_contactos PC ON Pc.Fk_contacto=C.Codigo  LEFT OUTER JOIN
V_Personas P ON  PC.Fk_persona=P.Codigo  LEFT OUTER JOIN
                   (SELECT        PCC.Fk_contacto,PCC.Fk_persona, STUFF
                ((SELECT        '' ['' + Cargo.Desc_corta + '']''
                    FROM            Personas_contactos_cargos  LEFT OUTER JOIN Cargo ON Personas_contactos_cargos.Fk_cargo=Cargo.Codigo
                    WHERE        Personas_contactos_cargos.Fk_contacto = PCC.Fk_contacto AND Personas_contactos_cargos.Fk_persona=PCC.Fk_persona FOR XML PATH('''')), 1, 1, '''') as Desc_corta_cargos
					, STUFF
                ((SELECT        '' ['' + Cargo.Descripcion + '']''
                    FROM            Personas_contactos_cargos  LEFT OUTER JOIN Cargo ON Personas_contactos_cargos.Fk_cargo=Cargo.Codigo
                    WHERE        Personas_contactos_cargos.Fk_contacto = PCC.Fk_contacto AND Personas_contactos_cargos.Fk_persona=PCC.Fk_persona FOR XML PATH('''')), 1, 1, '''') as Desc_cargos
					, STUFF ((SELECT        '' ['' + CAST(Personas_contactos_cargos.Fk_cargo as nvarchar) + '']''
                    FROM            Personas_contactos_cargos  LEFT OUTER JOIN Cargo ON Personas_contactos_cargos.Fk_cargo=Cargo.Codigo
                    WHERE        Personas_contactos_cargos.Fk_contacto = PCC.Fk_contacto AND Personas_contactos_cargos.Fk_persona=PCC.Fk_persona FOR XML PATH('''')), 1, 1, '''') as Cargos
FROM            Personas_contactos_cargos PCC
GROUP BY PCC.Fk_contacto,PCC.Fk_persona) as CARGOS_AGRUPADOS ON PC.Fk_persona=CARGOS_AGRUPADOS.Fk_persona AND PC.Fk_contacto=CARGOS_AGRUPADOS.Fk_contacto
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesTerceros]'))
DROP VIEW [dbo].V_LiquidacionesTerceros 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesTerceros]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesTerceros] AS 
SELECT dbo.Liquidaciones_terceros.Serie, dbo.Series_liquidaciones_terceros.Descripcion AS Desc_serie, dbo.Liquidaciones_terceros.Numero, dbo.Liquidaciones_terceros.Fecha, dbo.Liquidaciones_terceros.Tipo_liq_tercero, dbo.Liquidaciones_terceros.Tipo_calculo, 
             dbo.Liquidaciones_terceros.Fk_operario, dbo.Operarios.Nombre AS Nombre_operario, dbo.Liquidaciones_terceros.Total_liquidacion, dbo.Liquidaciones_terceros.Usuario_creacion, dbo.Liquidaciones_terceros.Fecha_creacion
FROM   dbo.Liquidaciones_terceros LEFT OUTER JOIN
             dbo.Series_liquidaciones_terceros ON dbo.Liquidaciones_terceros.Serie = dbo.Series_liquidaciones_terceros.Serie LEFT OUTER JOIN
             dbo.Operarios ON dbo.Liquidaciones_terceros.Fk_operario = dbo.Operarios.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesTercerosLineas]'))
DROP VIEW [dbo].V_LiquidacionesTercerosLineas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LiquidacionesTercerosLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LiquidacionesTercerosLineas] AS 
SELECT Liquidaciones_terceros_lineas.Id,NULLIF (Liquidaciones_terceros_lineas.Serie, '''') as Serie,NULLIF (Liquidaciones_terceros_lineas.Numero, 0) as Numero, dbo.Series_liquidaciones_terceros.Descripcion AS Desc_serie, L.Fecha, L.Tipo_liq_tercero, L.Tipo_calculo, L.Fk_operario, dbo.Operarios.Nombre AS Nombre_operario, L.Total_liquidacion, L.Usuario_creacion, L.Fecha_creacion,Liquidaciones_terceros_lineas.Linea, 
             Liquidaciones_terceros_lineas.SerieTipoDoc, Liquidaciones_terceros_lineas.Serie_doc, Liquidaciones_terceros_lineas.Numero_doc, Liquidaciones_terceros_lineas.Fecha_doc, Liquidaciones_terceros_lineas.Cantidad_doc, Liquidaciones_terceros_lineas.Fk_centro, Liquidaciones_terceros_lineas.Fk_maquina, Liquidaciones_terceros_lineas.Prod_por_hora_teorico, Liquidaciones_terceros_lineas.PPH_teorico, Liquidaciones_terceros_lineas.Personas_por_turno_teorico, Liquidaciones_terceros_lineas.Personas_por_turno_real, Liquidaciones_terceros_lineas.Prima_prod_personal_directo, 
             Liquidaciones_terceros_lineas.Prima_prod_personasl_indirecto, Liquidaciones_terceros_lineas.Cantidad_horas_prod, Liquidaciones_terceros_lineas.Prod_por_hora_real, Liquidaciones_terceros_lineas.PPH_real, Liquidaciones_terceros_lineas.Cantidad_a_primar, Liquidaciones_terceros_lineas.Total_linea, Liquidaciones_terceros_lineas.Importe_prima_directa, Liquidaciones_terceros_lineas.Importe_prima_indirecta, C.Descripcion AS Desc_centro, M.Descripcion AS Desc_maquina
FROM   Liquidaciones_terceros_lineas  LEFT OUTER JOIN dbo.Liquidaciones_terceros AS L  ON L.Serie = Liquidaciones_terceros_lineas.Serie AND L.Numero = Liquidaciones_terceros_lineas.Numero  
			LEFT OUTER JOIN
             dbo.Series_liquidaciones_terceros ON L.Serie = dbo.Series_liquidaciones_terceros.Serie LEFT OUTER JOIN
             dbo.Operarios ON L.Fk_operario = dbo.Operarios.Codigo
             LEFT OUTER JOIN
             dbo.Centros AS C ON Liquidaciones_terceros_lineas.Fk_centro = C.Codigo LEFT OUTER JOIN
             dbo.Maquinas AS M ON Liquidaciones_terceros_lineas.Fk_maquina = M.Codigo'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotalAlmacen]'))
DROP VIEW [dbo].V_EstocTotalAlmacen
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocTotalAlmacen]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstocTotalAlmacen]
					 AS SELECT   Articulo,Fk_centro, Almacen, SUM(ISNULL(Cantidad, 0)) AS Cantidad
FROM     dbo.V_MiniMovsEstoc
GROUP BY Articulo,Fk_centro, Almacen'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OperariosHistorico]'))
DROP VIEW [dbo].V_OperariosHistorico 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OperariosHistorico]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OperariosHistorico] AS 
SELECT   dbo.Operarios_historico.Id, dbo.Operarios_historico.Fk_operario, dbo.Operarios.Nombre, dbo.Operarios.Identificacion
, dbo.Operarios_historico.Fecha_alta, dbo.Operarios_historico.Fecha_baja, dbo.Operarios_historico.Observaciones
FROM     dbo.Operarios INNER JOIN
             dbo.Operarios_historico ON dbo.Operarios.Codigo = dbo.Operarios_historico.Fk_operario'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Centros]'))
DROP VIEW [dbo].V_Centros 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Centros]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Centros] AS 
SELECT   dbo.Centros.Codigo, dbo.Centros.Descripcion, dbo.Centros.Via_publica, dbo.Centros.Direccion, dbo.Centros.Numero, dbo.Centros.Puerta, dbo.Centros.Codigo_municipio, dbo.Centros.Municipio, dbo.Centros.Codigo_postal, dbo.Centros.Codigo_comarca, dbo.Centros.Comarca, dbo.Centros.Codigo_provincia, dbo.Centros.Provincia, 
             dbo.Centros.Codigo_pais, dbo.Centros.Pais, dbo.Centros.Fk_almacen_habitual, dbo.Centros.Fk_serie_fac_venta, dbo.Centros.Fk_serie_pres_venta, dbo.Centros.Fk_serie_ped_venta, dbo.Centros.Fk_serie_alb_venta, dbo.Centros.Fk_serie_ped_compra, dbo.Centros.Fk_serie_alb_compra, dbo.Centros.Fk_serie_fac_compra, 
             dbo.Centros.Fk_serie_rec_fac_venta, dbo.Centros.Fk_serie_op, dbo.Centros.Telefono_1, dbo.Centros.Telefono_2, dbo.Centros.Movil, dbo.Centros.Fax, dbo.Centros.Email1, dbo.Centros.Email2, dbo.Centros.Piso, dbo.Centros.Fk_serie_alb_venta_tpv, dbo.Centros.Fk_serie_hoja_carga, dbo.Centros.Validar_alb_venta_manual, 
             dbo.Centros.gs1_indicador_extension, dbo.Centros.gs1_prefijo, dbo.Centros.gs1_codigo_empresa, dbo.Centros.gs1_contador, dbo.Centros.Tipo_centro, dbo.Centros.Cae, dbo.Centros.Letra_inicio_lote_automatico, dbo.Centros.Fk_plantilla1, dbo.Centros.Fk_plantilla2, dbo.Centros.Rvc_punto_descarga, dbo.Centros.Rvc_usuario, 
             dbo.Centros.Rvc_password, dbo.Centros.Fk_serie_alb_liq, dbo.Centros.Fk_seccion, dbo.Centros.Envio_rvc, dbo.Centros.Fk_bascula_habitual, dbo.Centros.Codigo_empresa_safata, dbo.Centros.habilitar_alta_componentes_op, dbo.Centros.Fk_empresa_habitual, dbo.Com_autonomas.Codigo AS Com_autonoma, 
             dbo.Com_autonomas.Descripcion AS Desc_com_autonoma,dbo.Centros.Codigo_ropo,dbo.Centros.Codigo_icg
FROM     dbo.Com_autonomas RIGHT OUTER JOIN
             dbo.Provincias ON dbo.Com_autonomas.Codigo = dbo.Provincias.Fk_ccaa RIGHT OUTER JOIN
             dbo.Centros ON dbo.Provincias.Codigo = dbo.Centros.Codigo_provincia'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocTransporte]'))
DROP VIEW [dbo].V_DocTransporte 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DocTransporte]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DocTransporte] AS 
select T.Numero,''AT'' + RIGHT(''000000'' +  CAST(T.Numero as varchar),6) as Doc_transporte,T.Fecha,T.Usuario_creacion,T.Fecha_creacion
,C.Fk_empresa,E.Descripcion as Desc_empresa
,SUM(ISNULL(C.Peso_bruto,0)) as Peso_bruto
,SUM(ISNULL(C.Peso_neto,0)) as Peso_neto
FROM 
Doc_transporte T INNER JOIN  Alb_Venta C ON T.Numero=C.Fk_doc_transporte 
LEFT OUTER JOIN Empresas E ON C.Fk_empresa=E.Codigo
GROUP BY T.Numero,''AT'' + RIGHT(''000000'' +  CAST(T.Numero as varchar),6)
,C.Fk_empresa,E.Descripcion,T.Fecha,T.Usuario_creacion,T.Fecha_creacion'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Alb_venta_firma]'))
DROP VIEW [dbo].V_Alb_venta_firma 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Alb_venta_firma]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Alb_venta_firma] AS
SELECT Alb_venta.Serie, Alb_venta.Numero, Alb_venta.Fecha_hora, Alb_venta.Codigo_cliente, Personas_1.Nombre, Personas_1.Email1, Alb_venta.Horario_entrega, Alb_venta.Fecha_entrega_concreta, 
	Alb_venta.Notas_factura, Personas_direcciones.Descripcion, Personas_direcciones.Municipio, Personas_direcciones.Codigo_postal, Alb_venta.Fecha_hora_real, Alb_venta_firma.Fecha AS FechaFirma, 
	Alb_venta_firma.Nombre AS NombreFirma, Personas.Transporte_nuestro
FROM Personas RIGHT OUTER JOIN
    Alb_venta ON Personas.Codigo = Alb_venta.Codigo_transportista LEFT OUTER JOIN
    Personas AS Personas_1 ON Alb_venta.Codigo_cliente = Personas_1.Codigo LEFT OUTER JOIN
    Personas_direcciones ON Alb_venta.Codigo_direccion_envio = Personas_direcciones.Codigo LEFT OUTER JOIN
    Alb_venta_firma ON Alb_venta.Serie = Alb_venta_firma.Serie AND Alb_venta.Numero = Alb_venta_firma.Numero'
GO

IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocAlmacen]'))
DROP VIEW [dbo].V_EstocAlmacen 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_EstocAlmacen]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_EstocAlmacen] AS
SELECT ALM.Codigo, ISNULL(ALM.ubicacion_variable,0) As ubicacion_variable, ISNULL(ALM.formato_almacen,0) As formato_almacen, SUM(ISNULL(MM.Cantidad, 0)) AS Cantidad, MAX(MM.Fecha_hora) AS Fecha_ultimo_uso
FROM Almacenes AS ALM 
LEFT JOIN V_MiniMovsEstoc AS MM
ON MM.Almacen = ALM.Codigo
GROUP BY ALM.Codigo, ALM.ubicacion_variable, ALM.formato_almacen'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Emcs]'))
DROP VIEW [dbo].V_Emcs 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Emcs]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Emcs] AS
SELECT dbo.Emcs.Id, dbo.Emcs.Tipo, dbo.Emcs.SerieTipoDoc, dbo.Emcs.Fk_serie, dbo.Emcs.Numero, dbo.Emcs.Fecha, dbo.Emcs.Arc, dbo.Emcs.Estado, dbo.Emcs.Fecha_validado, dbo.Emcs.Fk_centro, CEN.Descripcion AS Desc_centro, dbo.Emcs.Fk_empresa, 
             EMP.Descripcion AS Desc_empresa, dbo.Emcs.Fk_persona, PER.NombreCompleto, dbo.Emcs.Fk_art_partida1, ART.Descripcion AS Desc_art_partida1, dbo.Emcs.Num_ref_local, dbo.Emcs.Csv, PER.Identificacion as Nif_persona
			 ,Emcs.Usuario_creacion,Emcs.Usuario_modificacion,Emcs.Fecha_creacion,Emcs.Fecha_modificacion
			 ,CASE WHEN Emcs.Estado=0 THEN ''CREADO'' 				   
				   WHEN Emcs.Estado=1 THEN ''ACEPTADO''
				   WHEN Emcs.Estado=2 THEN ''CONFIRMADO''
				   WHEN Emcs.EStado=3 THEN ''CANCELADO''
				   ELSE ''DESCONOCIDO'' END As Desc_estado
			,case WHEN Emcs.Tipo=0 THEN ''Documento acompañamiento INTERNO / EXPORT (IE115 v2)''
					WHEN Emcs.Tipo=1 THEN ''Comunicación cancelación INTERNO / EXPORT (IE110 v2)''
					WHEN Emcs.Tipo=2 THEN ''Comunicación cambio destino INTERNO / EXPORT (IE113 v2)''
					WHEN Emcs.Tipo=3 THEN ''Documento acompañamiento INTRACOMUNITARIO (CD815A v32)''
					WHEN Emcs.Tipo=4 THEN ''Comunicación cancelación INTRACOMUNITARIO (CD810A v32)''
					WHEN Emcs.Tipo=5 THEN ''Comunicación cambio destino INTRACOMUNITARIO (CD813 v32)''
					ELSE ''DESCONOCIDO'' END as Desc_tipo_emcs


FROM   dbo.Emcs LEFT OUTER JOIN
             dbo.Articulos AS ART ON dbo.Emcs.Fk_art_partida1 = ART.Codigo LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre AS PER ON dbo.Emcs.Fk_persona = PER.Codigo LEFT OUTER JOIN
             dbo.Centros AS CEN ON dbo.Emcs.Fk_centro = CEN.Codigo LEFT OUTER JOIN
             dbo.Empresas AS EMP ON dbo.Emcs.Fk_empresa = EMP.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CampPerVariedad_AlbLiqDefLiqTrans]'))
DROP VIEW [dbo].V_CampPerVariedad_AlbLiqDefLiqTrans 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CampPerVariedad_AlbLiqDefLiqTrans]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CampPerVariedad_AlbLiqDefLiqTrans] AS
SELECT 
PRINCIPAL.Fk_campaña ,CAMP.Descripcion as Desc_campaña
,PRINCIPAL.Tipo_liq,tliq.Descripcion as Desc_tipo_liq
,PRINCIPAL.Fk_persona,PER.NombreCompleto,PER.Identificacion as Nif,PER.Fis_pais_iso2 as Pais_iso2
,PRINCIPAL.Fk_articulo,ART.Descripcion as Desc_articulo
,PRINCIPAL.C_bruta_alb,PRINCIPAL.C_neta_alb
,PRINCIPAL.C_bruta_liq_def,PRINCIPAL.C_neta_liq_def,PRINCIPAL.Precio_c_bruta_liq_def,PRINCIPAL.Precio_c_neta_liq_def,PRINCIPAL.C_bruta_pend_liq_def
,PRINCIPAL.C_bruta_liq_trans,PRINCIPAL.C_neta_liq_trans,PRINCIPAL.Precio_c_bruta_liq_trans,PRINCIPAL.Precio_c_neta_liq_trans,PRINCIPAL.C_bruta_pend_liq_trans
,round(PRINCIPAL.C_bruta_alb*PRINCIPAL.Precio_c_bruta_liq_def,2) AS Importe_bruto_alb
,round(PRINCIPAL.C_neta_alb * PRINCIPAL.Precio_c_neta_liq_def,2) AS Importe_neto_alb
,round(PRINCIPAL.C_bruta_liq_def * PRINCIPAL.Precio_c_bruta_liq_def,2) AS Importe_bruto_liq
,round(PRINCIPAL.C_neta_liq_def* PRINCIPAL.Precio_c_neta_liq_def,2) AS Importe_neto_liq

FROM
(
	select ALB.Fk_campaña,Alb.Tipo_liq,ALB.Fk_persona,ALB.Fk_articulo
	,SUM(ISNULL(ALB.C_bruta_alb,0)) as C_bruta_alb
	,SUM(ISNULL(ALB.C_neta_alb,0)) as C_neta_alb

	,SUM(ISNULL(LIQ_DEF.C_bruta_liq_def,0)) as C_bruta_liq_def
	,SUM(ISNULL(LIQ_DEF.C_neta_liq_def,0)) as C_neta_liq_def
	,CASE WHEN SUM(ISNULL(LIQ_DEF.C_bruta_liq_def,0))<>0 THEN SUM(ISNULL(LIQ_DEF.Importe_base_liq_def,0))/SUM(ISNULL(LIQ_DEF.C_bruta_liq_def,0)) ELSE 0 END AS Precio_c_bruta_liq_def
	,CASE WHEN SUM(ISNULL(LIQ_DEF.C_neta_liq_def,0))<>0 THEN SUM(ISNULL(LIQ_DEF.Importe_base_liq_def,0))/SUM(ISNULL(LIQ_DEF.C_neta_liq_def,0)) ELSE 0 END AS Precio_c_neta_liq_def
	,SUM(ISNULL(ALB.C_bruta_alb,0)) - SUM(ISNULL(LIQ_DEF.C_bruta_liq_def,0)) as C_bruta_pend_liq_def

	,SUM(ISNULL(LIQ_TRANS.C_bruta_liq_trans,0)) as C_bruta_liq_trans
	,SUM(ISNULL(LIQ_TRANS.C_neta_liq_trans,0)) as C_neta_liq_trans
	,CASE WHEN SUM(ISNULL(LIQ_TRANS.C_bruta_liq_trans,0))<>0 THEN SUM(ISNULL(LIQ_TRANS.Importe_base_liq_trans,0))/SUM(ISNULL(LIQ_TRANS.C_bruta_liq_trans,0)) ELSE 0 END AS Precio_c_bruta_liq_trans
	,CASE WHEN  SUM(ISNULL(LIQ_TRANS.C_neta_liq_trans,0))<>0 THEN SUM(ISNULL(LIQ_TRANS.Importe_base_liq_trans,0))/SUM(ISNULL(LIQ_TRANS.C_neta_liq_trans,0)) ELSE 0 END AS Precio_c_neta_liq_trans
	,SUM(ISNULL(ALB.C_bruta_alb,0)) - SUM(ISNULL(LIQ_TRANS.C_bruta_liq_trans,0)) as C_bruta_pend_liq_trans
	from 
	(
		SELECT alb.Fecha, alb.Fk_campaña,alb.Tipo_liq,part.Persona as Fk_persona
		,alb.Serie,alb.Numero,LIN.Linea,LIN.Articulo as Fk_articulo
		,PART.Cantidad_bruta as C_bruta_alb,PART.Cantidad_neta as C_neta_alb 
		FROM Alb_liq_lin LIN INNER JOIN Alb_liq ALB ON Alb.Serie=LIN.Serie AND Alb.Numero=LIN.Numero INNER JOIN Alb_liq_lin_part PART ON LIN.Serie=PART.Serie AND LIN.Numero=PART.Numero AND LIN.Linea=PART.Linea
	)
	ALB
	LEFT OUTER JOIN
	(
		select LIQ.Fk_Campaña,PART.Persona as Fk_persona
		,LIN.Albaran_serie,LIN.Albaran_numero,LIN.Albaran_linea,LIN.Fk_articulo
		,SUM(ISNULL(PART.Cantidad_bruta,0)) as C_bruta_liq_trans
		,SUM(ISNULL(PART.Cantidad_neta,0)) as C_neta_liq_trans
		,ROUND(SUM(LIN.Importe_base_ret*part.Cantidad_bruta/lin_alb.Cantidad_bruta),2) as Importe_base_liq_trans
		from Liquidaciones_lineas LIN INNER JOIN Liquidaciones LIQ ON LIN.Fk_liquidacion=LIQ.Id
		LEFT OUTER JOIN Alb_liq_lin LIN_ALB ON LIN.Albaran_serie=LIN_ALB .Serie AND LIN.Albaran_numero=LIN_ALB.Numero AND LIN.Albaran_linea=LIN_ALB.Linea
		LEFT OUTER JOIN Alb_liq_lin_part PART ON LIN.Albaran_serie=PARt.Serie  AND LIN.Albaran_numero=PART.Numero AND LIN.Albaran_linea=PART.Linea
		where Clase_liquidacion=5
		GROUP BY LIQ.Fk_Campaña,PART.Persona,LIN.Albaran_serie,LIN.Albaran_numero,LIN.Albaran_linea,LIN.Fk_articulo
	)
	LIQ_TRANS ON ALB.Fk_persona=LIQ_TRANS.Fk_persona AND ALB.Serie=LIQ_TRANS.Albaran_serie AND Alb.Numero=LIQ_TRANS.Albaran_numero AND ALB.Linea=LIQ_TRANS.Albaran_linea
	LEFT OUTER JOIN
	(
			select LIQ.Fk_Campaña,LIQ.Fk_persona
			,LIN.Albaran_serie,LIN.Albaran_numero,LIN.Albaran_linea,LIN.Fk_articulo
			,SUM(ISNULL(LIN.Cantidad_bruta,0)) as C_bruta_liq_def
			,SUM(ISNULL(LIN.Cantidad_neta,0)) as C_neta_liq_def
			,SUM(ISNULL(LIN.Importe_base_ret,0)) as Importe_base_liq_def
			from Liquidaciones_lineas LIN INNER JOIN Liquidaciones LIQ ON LIN.Fk_liquidacion=LIQ.Id
			where Clase_liquidacion=2
			GROUP BY LIQ.Fk_Campaña,LIQ.Fk_persona,LIN.Albaran_serie,LIN.Albaran_numero,LIN.Albaran_linea,LIN.Fk_articulo
	)LIQ_DEF ON ALB.Fk_persona=LIQ_DEF.Fk_persona AND ALB.Serie=LIQ_DEF.Albaran_serie AND Alb.Numero=LIQ_DEF.Albaran_numero AND ALB.Linea=LIQ_DEF.Albaran_linea


GROUP BY  ALB.Fk_campaña,Alb.Tipo_liq,ALB.Fk_persona,ALB.Fk_articulo
) 
PRINCIPAL
LEFT OUTER JOIN V_Personas PER ON PRINCIPAL.Fk_persona=PER.Codigo
LEFT OUTER JOIN Articulos ART ON PRINCIPAL.Fk_articulo=ART.Codigo
LEFT OUTER JOIN Tipos_liquidacion TLIQ ON PRINCIPAL.Tipo_liq=TLIQ.Codigo
LEFT OUTER JOIN Campañas CAMP ON PRINCIPAL.Fk_campaña=CAMP.Codigo

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqFirmas]'))
DROP VIEW [dbo].V_AlbLiqFirmas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqFirmas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqFirmas] AS
SELECT ALB.Bascula, ALB.Serie, ALB.Numero, ALB.Fk_seccion, ALB.Desc_seccion, ALB.Fk_campaña, ALB.Desc_campaña, ALB.Fecha, ALB.Fecha_operacion, ALB.Fk_empresa, ALB.Desc_empresa,  
ALB.Tipo_liq, ALB.Fk_centro, ALB.Desc_centro, LIN.Articulo, LIN.Tipo_seccion, ALB.Id,
LIN.Desc_articulo, LINPARTS.Codigos_persona, LINPARTS.Nombres_persona, LINPARTS.Particiones, ALB.Fecha_cerrado, LIN.Linea, ALB.Tipo, ART.Descripcion,
FF.Identificacion AS IdFirma, FF.Nombre AS NombreFirma, FF.Usuario AS UsFirma, FF.Fecha_hora AS FechaFirma, 
FF_INV.Identificacion AS IdFirmaINV, FF_INV.Nombre AS NombreFirmaINV, FF_INV.Usuario AS UsFirmaINV, FF_INV.Fecha_hora AS FechaFirmaINV, 
FF_INV.Fecha_invalidacion AS Fecha_invalidacionINV,  FF_INV.Usuario_invalidacion AS Usuario_invalidacionINV,ALB.Corredor_socio,ALB.Contrato
FROM Articulos AS ART 
RIGHT OUTER JOIN V_AlbLiqLin AS LIN 
ON ART.Codigo = LIN.Articulo 
RIGHT OUTER JOIN V_AlbLiq AS ALB 
ON LIN.Serie = ALB.Serie 
AND LIN.Numero = ALB.Numero 
LEFT OUTER JOIN V_AlbLiqLinPartSociosUnidos AS LINPARTS 
ON LIN.Serie = LINPARTS.Serie 
AND LIN.Numero = LINPARTS.Numero 
AND LIN.Linea = LINPARTS.Linea
LEFT OUTER JOIN
	(SELECT Serie, Numero, Identificacion, Nombre, Usuario, Fecha_hora, Firma, pdf, Pdf_hash
	FROM Firmas_digitales_docs
	WHERE SerieTipoDoc = ''AL''
	AND Fecha_invalidacion IS NULL) AS FF
ON ALB.Serie=FF.Serie
AND ALB.Numero=FF.Numero
LEFT OUTER JOIN
	(SELECT Serie, Numero, Identificacion, Nombre, Usuario, Fecha_hora, Firma, pdf, Pdf_hash, Fecha_invalidacion, Usuario_invalidacion
	FROM Firmas_digitales_docs
	WHERE SerieTipoDoc = ''AL''
	AND Fecha_invalidacion IS NOT NULL) AS FF_INV
ON ALB.Serie=FF_INV.Serie
AND ALB.Numero=FF_INV.Numero
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccion]'))
DROP VIEW [dbo].V_ExpedientesAccion 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccion]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesAccion]
AS
SELECT        dbo.Accion.Id AS IdAccion, dbo.Accion.Descripcion AS DescripcionAccion, dbo.Accion.Formato_datos_accion, dbo.Accion.Desc_corta AS Desc_cortaAccion, dbo.Accion.Orden AS OrdenAccion, 
                         dbo.Accion.Fk_expediente_seccion_habitual, dbo.Expediente_seccion.Descripcion AS DescripcionSeccion, dbo.Expediente_seccion.Orden AS OrdenSeccion, dbo.Expediente_tareas_generales.Descripcion AS DescripcionTarea, 
                         dbo.Expediente_tareas_generales.Id AS IdTarea
FROM            dbo.Accion INNER JOIN
                         dbo.Expediente_seccion ON dbo.Accion.Fk_expediente_seccion_habitual = dbo.Expediente_seccion.Codigo INNER JOIN
                         dbo.Expediente_tareas_generales ON dbo.Accion.Fk_expediente_tareas_generales = dbo.Expediente_tareas_generales.Id
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccionRespuesta]'))
DROP VIEW [dbo].V_ExpedientesAccion 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpedientesAccionRespuesta]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpedientesAccionRespuesta]
AS
SELECT        dbo.V_ExpedientesAccion.*, dbo.Expediente_accion_respuesta.Fk_expediente, dbo.Expediente_accion_respuesta.Valor, dbo.Expediente_accion_respuesta.Evidencia, dbo.Expediente_accion_respuesta.Notas_auditor, 
                         dbo.Expediente_accion_respuesta.Fk_accion_opciones, dbo.Expediente_accion_respuesta.Fk_persona, dbo.Expediente_accion_respuesta.FechaGuardado
						 ,dbo.Expediente_accion_respuesta.Tipo_no_conformidad, dbo.Expediente_accion_respuesta.No_conformidad
FROM            dbo.Expediente_accion_respuesta RIGHT OUTER JOIN
                         dbo.V_ExpedientesAccion ON dbo.Expediente_accion_respuesta.Fk_accion = dbo.V_ExpedientesAccion.IdAccion
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones]'))
DROP VIEW [dbo].V_Fincas_parcelas_operaciones 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Fincas_parcelas_operaciones]
AS
SELECT        f.Codigo, f.Id_finca, fp.Id_parcela, f.Descripcion, f.Poligono, f.Paraje, p.Fk_persona, p.Particion, m.Descripcion AS DescripcionMunicipio, 
				fp.Superficie, COUNT(fpo.Id_operacion) AS NumeroOperaciones, t.Descripcion AS DescripcionTipoSeccion, fp.Descripcion AS DescripcionParcela
FROM            dbo.Fincas AS f INNER JOIN
                         dbo.Fincas_parcelas AS fp ON f.Codigo = fp.Id_finca INNER JOIN
                         dbo.Productores AS p ON fp.Id_finca = p.Id_finca AND fp.Tipo_seccion = p.Tipo_seccion INNER JOIN
                         dbo.Municipios AS m ON m.Id = f.Codigo_municipio LEFT OUTER JOIN
                         dbo.Fincas_parcelas_operaciones AS fpo ON fp.Id_finca = fpo.Id_finca AND fp.Id_parcela = fpo.Id_parcela INNER JOIN
                         dbo.Tipos_secciones AS t ON t.Codigo = fp.Tipo_seccion
GROUP BY f.Codigo, f.Id_finca, fp.Id_parcela, f.Descripcion, f.Poligono, f.Paraje, p.Fk_persona, p.Particion, m.Descripcion, fp.Superficie, t.Descripcion, fp.Descripcion
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones_lista]'))
DROP VIEW [dbo].V_Fincas_parcelas_operaciones_lista 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Fincas_parcelas_operaciones_lista]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Fincas_parcelas_operaciones_lista]
AS
SELECT o.Id_finca, o.Id_parcela, o.Id_operacion, o.Fecha, o.Fk_tarea, o.Fk_operario, o.Fk_maquina, o.Fk_articulo,
				o.Cantidad, o.TiempoMinutos, o.Notas, o.Fk_usuario_creacion, o.Fecha_creacion, et.Descripcion, op.Nombre AS NombreOperario, 
				m.Descripcion AS DescripcionMaquina, a.Descripcion AS DescripcionArticulo
				FROM Fincas_parcelas_operaciones AS o LEFT JOIN
				Expediente_tareas_generales as et ON o.Fk_tarea = et.Id LEFT JOIN
				Operarios AS op ON o.Fk_operario = op.Codigo LEFT JOIN
				Maquinas AS m ON o.Fk_maquina = m.Codigo LEFT JOIN
				Articulos AS a ON o.Fk_articulo = a.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProcesosTiquets]'))
DROP VIEW [dbo].V_ProcesosTiquets 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ProcesosTiquets]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ProcesosTiquets]
AS
SELECT        T.Numero, T.Descripcion, T.Notas, T.Fecha_propuesta, T.Fecha_vencimiento, T.Fecha_completado, T.Fk_proyecto, dbo.Proyecto.Descripcion AS Desc_proyecto, T.Tags, T.Fk_user, T.Fk_persona, 
                         P.NombreCompleto AS Nombre_persona, dbo.Users.Username AS Usuario, T.Fk_contacto, dbo.Contacto.Nombre_apellidos AS NombreContacto, T.Prioridad_proceso, T.Horas_previstas, 
                         CASE WHEN Prioridad_proceso = 0 THEN ''Alta'' WHEN Prioridad_proceso = 1 THEN ''Media'' WHEN Prioridad_proceso = 2 THEN ''Baja'' ELSE ''Sin Prioridad'' END AS Desc_prioridad, T.Referencia_1, T.Estado, 
                         T.Valoracion_responsable_it, T.Fk_departamento, dbo.Departamentos.Descripcion AS DescDepartamento, T.Fk_tipo_incidencia, dbo.Tipo_incidencia.Descripcion AS DescTipoIncidencia
						 , T.Usuario_creacion, T.Fecha_creacion, T.Usuario_modificacion, T.Fecha_modificacion
FROM            dbo.Procesos_tiquets AS T LEFT OUTER JOIN
                         dbo.Tipo_incidencia ON T.Fk_tipo_incidencia = dbo.Tipo_incidencia.Codigo LEFT OUTER JOIN
                         dbo.Departamentos ON T.Fk_departamento = dbo.Departamentos.Id LEFT OUTER JOIN
                         dbo.Contacto ON T.Fk_contacto = dbo.Contacto.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre AS P ON T.Fk_persona = P.Codigo LEFT OUTER JOIN
                         dbo.Users ON T.Fk_user = dbo.Users.Codigo LEFT OUTER JOIN
                         dbo.Proyecto ON T.Fk_proyecto = dbo.Proyecto.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ofertas]'))
DROP VIEW [dbo].V_Ofertas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Ofertas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Ofertas]
AS
SELECT   dbo.Ofertas.Id, dbo.Ofertas.Serie, dbo.Series_otros_documentos.Descripcion AS Desc_serie, dbo.Ofertas.Numero, dbo.Ofertas.Fecha_propuesta, dbo.Ofertas.Fecha_inicio_validez, dbo.Ofertas.Fecha_fin_validez, dbo.Ofertas.Fecha_aprobacion, dbo.Ofertas.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Ofertas.Fk_cliente, 
             dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Ofertas.Cantidad_por_entrega_minima, dbo.Ofertas.Cantidad_consumo_anual_minimo, dbo.Ofertas.Estado, dbo.Ofertas.Notas, dbo.Ofertas.Fecha_creacion, dbo.Ofertas.Usuario_Creacion, dbo.Ofertas.Fecha_modificacion, dbo.Ofertas.Usuario_modificacion
			 ,dbo.Ofertas.Fk_empresa,dbo.Empresas.Descripcion as Desc_empresa, dbo.Ofertas.Importe_final
FROM            dbo.Ofertas INNER JOIN
                         dbo.Articulos ON dbo.Ofertas.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Ofertas.Fk_cliente = dbo.V_PersonasSoloNombre.Codigo LEFT OUTER JOIN
                         dbo.Series_otros_documentos ON dbo.Ofertas.Serie = dbo.Series_otros_documentos.Serie LEFT OUTER JOIN
                         dbo.Empresas ON dbo.Ofertas.Fk_empresa = dbo.Empresas.Codigo

'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OfertasLineas]'))
DROP VIEW [dbo].V_OfertasLineas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OfertasLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OfertasLineas]
AS
SELECT   dbo.Ofertas.Id, dbo.Ofertas_lineas.Fk_id_cabecera, dbo.Ofertas.Serie, dbo.Series_otros_documentos.Descripcion AS Desc_serie, dbo.Ofertas.Numero, dbo.Ofertas.Fecha_propuesta, dbo.Ofertas.Fecha_inicio_validez, dbo.Ofertas.Fecha_fin_validez, dbo.Ofertas.Fk_articulo AS Articulo_principal, dbo.Articulos.Descripcion AS Desc_art_principal, dbo.Ofertas.Fk_cliente, 
             dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Ofertas_lineas.Orden, dbo.Ofertas_lineas.Grupo, dbo.Ofertas_lineas.Desc_grupo, dbo.Ofertas_lineas.Fk_articulo_linea, dbo.Ofertas_lineas.Articulo_descripcion, dbo.Ofertas_lineas.Cantidad, dbo.Ofertas_lineas.Desc_unidad, dbo.Ofertas_lineas.Pmp, 
             dbo.Ofertas_lineas.Precio_ultima_entrada, dbo.Ofertas_lineas.Precio_oferta, dbo.Ofertas_lineas.Pc_incremento, dbo.Ofertas_lineas.Pc_merma, dbo.Ofertas_lineas.Importe, dbo.Ofertas_lineas.Fecha_modificacion, dbo.Ofertas_lineas.Usuario_modificacion
			  ,dbo.Ofertas.Fk_empresa,dbo.Empresas.Descripcion as Desc_empresa,dbo.Ofertas_lineas.Precio_base,dbo.Ofertas_lineas.Observaciones
FROM     dbo.Ofertas_lineas 
			INNER JOIN dbo.Ofertas ON dbo.Ofertas.Id = dbo.Ofertas_lineas.Fk_id_cabecera  
			LEFT OUTER JOIN dbo.Articulos ON dbo.Articulos.Codigo = dbo.Ofertas.Fk_articulo           
            LEFT OUTER JOIN dbo.Series_otros_documentos ON dbo.Ofertas.Serie = dbo.Series_otros_documentos.Serie 
			LEFT OUTER JOIN  dbo.V_PersonasSoloNombre ON dbo.Ofertas.Fk_cliente = dbo.V_PersonasSoloNombre.Codigo
			LEFT OUTER JOIN dbo.Empresas ON dbo.Ofertas.Fk_empresa=dbo.Empresas.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesReservasLotes]'))
DROP VIEW [dbo].V_CopagesReservasLotes 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesReservasLotes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CopagesReservasLotes]
AS
SELECT   C.Fk_centro AS Centro, L.Fk_articulo AS Articulo, L.Fk_almacen AS Almacen, L.Lote AS Lote, SUM(ISNULL(L.Cantidad, 0)) AS Cantidad_reservada
FROM     dbo.Copages C INNER JOIN
             dbo.Copages_lineas L ON C.Id = L.Fk_cabecera
WHERE   (C.Estado = 0) OR (C.Estado = 1)
GROUP BY C.Fk_centro,L.Fk_articulo,L.Fk_almacen,L.Lote
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasMensajes]'))
DROP VIEW [dbo].V_PersonasMensajes 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasMensajes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasMensajes]
AS
SELECT        dbo.Personas_mensajes.Id, dbo.Personas_mensajes.Fk_persona, dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Personas_mensajes.Fk_mensaje, dbo.Mensaje.Descripcion_corta, dbo.Mensaje.Descripcion, 
                         dbo.Personas_mensajes.Fecha_desde, dbo.Personas_mensajes.Fecha_hasta, dbo.Personas_mensajes.Fecha_desactivado, dbo.Personas_mensajes.Usuario_desativado, dbo.Personas_mensajes.Series_tipo_doc
						 ,dbo.Mensaje.Mensaje_impeditivo
FROM        dbo.Personas_mensajes  LEFT OUTER JOIN   dbo.V_PersonasSoloNombre ON   dbo.V_PersonasSoloNombre.Codigo = dbo.Personas_mensajes.Fk_persona 
LEFT OUTER JOIN Mensaje ON dbo.Mensaje.Codigo = dbo.Personas_mensajes.Fk_mensaje
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpDir]'))
DROP VIEW [dbo].V_ExpDir 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpDir]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpDir]
AS
SELECT ED.*
	, CAST
	 ((SELECT DISTINCT CAST(Actividades.Descripcion AS varchar) + '',''
	 FROM Expedientes_direcciones_actividades 
	 INNER JOIN Actividades 
	 ON Expedientes_direcciones_actividades.Fk_actividades = Actividades.Codigo
	 WHERE Expedientes_direcciones_actividades.Fk_Expedientes_direcciones = ED.Id FOR XML PATH('''')) AS varchar(1000)) AS Actividades
	 , CAST
	 ((SELECT DISTINCT CAST(Denom_origen.Descripcion AS varchar) + '',''
	 FROM Expedientes_direcciones_DOs 
	 INNER JOIN Denom_origen 
	 ON Expedientes_direcciones_DOs.Fk_DO = Denom_origen.Codigo
	 WHERE Expedientes_direcciones_DOs.Fk_Expedientes_direcciones = ED.Id FOR XML PATH('''')) AS varchar(1000)) AS DOs
FROM Expedientes_direcciones AS ED
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpDirAmp]'))
DROP VIEW [dbo].V_ExpDirAmp 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ExpDirAmp]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ExpDirAmp]
AS
SELECT E.Id, E.Conforme, E.Tiempo_estimado, E.Trazas_adicionales, E.Serie, E.Numero, E.Fecha_finalizacion, E.Fk_persona, E.Fk_do, E.Id_alternativo, E.Numero_certificado, E.Fecha_auditoria, E.Fecha_apertura, E.Fecha_caducidad, 
 E.Fecha_limite_cierre, E.Fecha_emision_certificado, E.Fecha_proxima_renovacion, E.Fecha_prevista_auditoria, E.Fecha_contracte_us_marca, E.Fecha_comite_certificacion, E.Fecha_plan_auditoria, E.Fecha_modificacion, 
 DO.Descripcion AS Desc_do, P.NombreCompleto, EE.Descripcion AS Estado_descripcion
 , ED.Id AS IdExpDir, ED.Fk_expediente, ED.Fk_direccion, ED.Usuario_alta, ED.Fecha_alta, ED.Usuario_baja, ED.Fecha_baja, ED.Descripcion, ED.Direccion, ED.Municipio, ED.Codigo_postal, ED.Comarca, ED.Provincia
 	, CAST
	 ((SELECT DISTINCT CAST(Actividades.Descripcion AS varchar) + '',''
	 FROM Expedientes_direcciones_actividades 
	 INNER JOIN Actividades 
	 ON Expedientes_direcciones_actividades.Fk_actividades = Actividades.Codigo
	 WHERE Expedientes_direcciones_actividades.Fk_Expedientes_direcciones = ED.Id FOR XML PATH('''')) AS varchar(1000)) AS Actividades
	 , CAST
	 ((SELECT DISTINCT CAST(Denom_origen.Descripcion AS varchar) + '',''
	 FROM Expedientes_direcciones_DOs 
	 INNER JOIN Denom_origen 
	 ON Expedientes_direcciones_DOs.Fk_DO = Denom_origen.Codigo
	 WHERE Expedientes_direcciones_DOs.Fk_Expedientes_direcciones = ED.Id FOR XML PATH('''')) AS varchar(1000)) AS DOs
FROM Expediente AS E 
INNER JOIN Expedientes_direcciones AS ED
ON ED.Fk_expediente = E.Id 
INNER JOIN Denom_origen AS DO
ON E.Fk_do = DO.Codigo 
INNER JOIN V_Personas AS P 
ON E.Fk_persona = P.Codigo 
LEFT OUTER JOIN Expediente_estados AS EE 
ON E.Fk_estado = EE.Codigo 
INNER JOIN
 (SELECT ID
 FROM (SELECT Id, Fk_persona, Fk_do, Serie, ROW_NUMBER() OVER (PARTITION BY Fk_persona, Fk_do ORDER BY fecha_comite_certificacion DESC) AS Rown
		FROM expediente
		WHERE Fecha_comite_certificacion IS NOT NULL AND Conforme = 1 AND Fk_estado = 3) A
 WHERE A.Rown = 1 AND ISNULL((SELECT count(AUX.Serie) FROM expediente AUX WHERE AUX.Fk_persona = A.Fk_persona AND AUX.Fk_do = A.Fk_do AND AUX.Serie > A.Serie AND ((Fk_estado = 4 OR
 Fk_estado = 5) OR (Conforme IS NOT NULL AND Conforme = 0))), 0) = 0) VIGENTES 
 ON E.Id = VIGENTES.Id
WHERE ED.Fecha_baja IS NULL
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DoCualificaciones]'))
DROP VIEW [dbo].V_DoCualificaciones 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DoCualificaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DoCualificaciones]
AS
SELECT Do_cualificacion.*, Lotes.Fk_articulo,Lotes.Lote, Denom_origen.descripcion as Desc_do, Articulos.Descripcion as Desc_articulo from Do_cualificacion
left outer join Lotes  ON Do_cualificacion.Id = Lotes.Fk_do_cualificacion
left outer join Denom_origen ON Do_cualificacion.Fk_do = Denom_origen.Codigo
left outer join Articulos ON Lotes.Fk_articulo = Articulos.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Dav]'))
DROP VIEW [dbo].V_Dav 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Dav]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Dav]
AS
SELECT   dbo.Dav.Id,dbo.Dav.Serie,dbo.Dav.Numero_referencia, dbo.Dav.Usuario_creacion, dbo.Dav.Usuario_modificacion, dbo.Dav.Fecha_creacion, dbo.Dav.Fecha_modificacion, dbo.Dav.Fecha_expedicion, dbo.Dav.Fk_centro_salida, dbo.Dav.Fk_destinatario, 
                         dbo.Dav.Fk_transportista, dbo.Dav.Indicaciones_transportista, dbo.Dav.Lugar_de_entrega, dbo.Dav.Autoridad_competente_lugar_salida, dbo.Dav.Datos_complementarios_ac, dbo.Dav.Certificados, dbo.Dav.Controles_ac, 
                         dbo.Dav.Fk_empresa, dbo.Dav.Firma_nombre, dbo.Dav.Firma_fecha, dbo.Dav.Firma_localidad, dbo.Dav.Autorizado_por, dbo.Dav.Numero_autorizacion
						 , EMP.Descripcion as Empresa_descripcion, EMP.Telefono_1 AS Empresa_telefono,EMP.Cif as Empresa_cif
						 ,TR.NombreCompleto AS Nombre_transportista,TR.Identificacion as Transportista_nif
						 ,Centros.Descripcion as Desc_centro, dbo.Centros.Cae as Centro_cae,dbo.Centros.Direccion as Centro_direccion,Centros.Municipio AS Centro_municipio,Centros.Codigo_postal as Centro_cp
						 , DEST.Identificacion AS Dest_nif,DEST.NombreCompleto as Dest_nombre,DEST_DIR.Cae AS Dest_cae,DEST_DIR.Direccion as Dest_dir,DEST_DIR.Municipio as Dest_municipio,DEST_DIR.Codigo_postal as Dest_cp
						 ,dbo.Dav.Medio_transporte,dbo.Dav.Matricula,dbo.Dav.SerieTipoDoc,dbo.Dav.Serie_documento,dbo.Dav.Numero_documento
FROM            dbo.Dav LEFT OUTER JOIN
                         dbo.Centros ON dbo.Dav.Fk_centro_salida = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Empresas EMP ON dbo.Dav.Fk_empresa = EMP.Codigo LEFT OUTER JOIN
						 dbo.V_PersonasSoloNombre DEST ON  dbo.Dav.Fk_destinatario = DEST.Codigo LEFT OUTER JOIN
                         dbo.V_PersonasDireccionFiscal AS DEST_DIR ON dbo.Dav.Fk_destinatario = DEST_DIR.Codigo_persona  LEFT OUTER JOIN
                         dbo.V_Personas AS TR ON dbo.Dav.Fk_transportista = TR.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PaletsLineas]'))
DROP VIEW [dbo].V_PaletsLineas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PaletsLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PaletsLineas]
AS
    SELECT dbo.Palets_lineas.Id, dbo.Palets.SSCC, dbo.Palets_lineas.Fk_palet, dbo.Palets_lineas.Fk_articulo, dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.Palets_lineas.GTIN13, dbo.Palets_lineas.GTIN14, dbo.Palets_lineas.Bultos, dbo.Palets_lineas.Cantidad, 
             dbo.Palets_lineas.Lote, dbo.Palets_lineas.Unidades_por_caja, dbo.Palets_lineas.Cajas_por_palet, dbo.Palets_lineas.Fecha_caducidad, dbo.Palets.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Palets.Fk_almacen, dbo.Almacenes.Descripcion AS Desc_almacen, 
             dbo.Palets.Fk_cliente, dbo.Palets.Nombre_cliente, dbo.Palets.Entrada_SerieTipoDoc, dbo.Palets.Entrada_Serie, dbo.Palets.Entrada_Numero, dbo.Palets.Salida_SerieTipoDoc, dbo.Palets.Salida_Serie, dbo.Palets.Salida_Numero, dbo.Palets.Fecha_hora, 
             dbo.Palets.Fecha_hora_salida
FROM   dbo.V_ArticulosNombre RIGHT OUTER JOIN
             dbo.Palets_lineas ON dbo.V_ArticulosNombre.Codigo = dbo.Palets_lineas.Fk_articulo LEFT OUTER JOIN
             dbo.Centros RIGHT OUTER JOIN
             dbo.Palets ON dbo.Centros.Codigo = dbo.Palets.Fk_centro LEFT OUTER JOIN
             dbo.Almacenes ON dbo.Palets.Fk_almacen = dbo.Almacenes.Codigo ON dbo.Palets_lineas.Fk_palet = dbo.Palets.SSCC             
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinMin]'))
DROP VIEW [dbo].V_AlbLiqLinMin 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AlbLiqLinMin]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AlbLiqLinMin]
AS
SELECT        A.Fk_centro, Centros.Descripcion AS Desc_centro, A.Serie, Series_albaranes_liq.Descripcion AS Desc_serie, A.Numero, L.Linea, A.Fecha, A.Fk_seccion, Secciones.Descripcion AS Desc_seccion, A.Fk_campaña, 
                         Campañas.Descripcion AS Desc_campaña, A.Fecha_validacion, A.Usuario_validacion, L.Cantidad_bruta, L.Cantidad_neta, A.Serie_doc_origen, A.Doc_origen, A.Socio_doc_origen, A.Replica_serie, A.Replica_numero, 
                         CASE WHEN Replica_serie IS NOT NULL THEN CAST(1 AS BIT) ELSE 0 END AS Replicado_desglosado, Fk_serie_padre, Fk_numero_padre, S.CodigosPersona, S.NombresPersona, P.Rendimiento, P.Humedad,P.Estimacion_rendimiento_industrial, L.Articulo, 
                         ART.Descripcion AS Desc_articulo, L.Lote, ISNULL
                             ((SELECT        COUNT(A_SUB.Numero)
                                 FROM            Alb_liq A_SUB
                                 WHERE        A_SUB.Fk_serie_padre = A.Serie AND A_SUB.Fk_numero_padre = A.Numero
                                 GROUP BY A_SUB.Fk_serie_padre, A_SUB.Fk_numero_padre), 0) AS CuentaAlbsHijos, L.Rendimiento_anterior, L.Fecha_cambio_rendimiento, L.Pa_serie_copage, L.Pa_numero_copage, L.Pa_rend_copage, 
                         L.Pa_rend_salidas_copage, L.Pa_estimacion_ri
FROM            alb_liq A LEFT OUTER JOIN
                         Alb_liq_lin L ON A.Serie = L.Serie AND A.Numero = L.Numero LEFT OUTER JOIN
                             (SELECT        Serie, Numero, Linea, CAST(REPLACE([1000], '','', ''.'') AS decimal(10, 2)) AS ''Rendimiento'', CAST(REPLACE([1001], '','', ''.'') AS decimal(10, 2)) AS ''Humedad'',CAST(REPLACE([1021], '','', ''.'') AS decimal(10, 2)) AS ''Estimacion_rendimiento_industrial''
                               FROM            (SELECT        Serie, Numero, Linea, parametro, valor
                                                         FROM            Alb_liq_lin_param) pvt PIVOT (MIN(valor) FOR parametro IN ([1000], [1001] , [1021])) AS Child) P ON L.Serie = P.Serie AND L.Numero = P.Numero AND L.Linea = P.Linea LEFT OUTER JOIN
                             (SELECT        Serie, Numero, Linea, STRING_AGG(''['' + CAST(S.Persona AS nvarchar) + '']'', '','') AS CodigosPersona, STRING_AGG(N .NombreCompleto + ''--> ('' + CAST(S.Particion AS nvarchar) + '' %)'', '' , '') 
                                                         AS NombresPersona
                               FROM            Alb_liq_lin_part S LEFT OUTER JOIN
                                                         V_PersonasSoloNombre N ON S.Persona = N .Codigo
                               GROUP BY Serie, Numero, Linea) S ON L.Serie = S.Serie AND L.Numero = S.Numero AND L.Linea = S.Linea LEFT OUTER JOIN
                         dbo.Tipos_liquidacion ON A.Tipo_liq = dbo.Tipos_liquidacion.Codigo LEFT OUTER JOIN
                         dbo.Secciones ON A.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
                         dbo.Campañas ON A.Fk_campaña = dbo.Campañas.Codigo AND A.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
                         dbo.Centros ON A.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         Series_albaranes_liq ON A.Serie = Series_albaranes_liq.Serie LEFT OUTER JOIN
                         Articulos ART ON L.Articulo = ART.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesProdAceiteRendimientos]'))
DROP VIEW [dbo].V_CopagesProdAceiteRendimientos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CopagesProdAceiteRendimientos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CopagesProdAceiteRendimientos]
AS
SELECT C.Fk_serie, C.Numero, SUM(CASE WHEN CL.E_S = ''S'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) AS SalidasCopage, SUM(CASE WHEN CL.E_S = ''E'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) AS EntradasCopage, 
             
			 ROUND(CASE WHEN (SUM(CASE WHEN CL.E_S = ''S'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) = 0) THEN 0 
			 ELSE SUM(CASE WHEN CL.E_S = ''E'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) * 100 / SUM(CASE WHEN CL.E_S = ''S'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) END, 2) 
             AS RendCopage,
			 
			 ROUND(CASE WHEN (SUM(CASE WHEN CL.E_S = ''S'' THEN ISNULL(CL.Cantidad, 0) ELSE 0 END) = 0) THEN 0 ELSE SUM(CASE WHEN CL.E_S = ''S'' THEN CL.Cantidad * ISNULL(Lotes.rendimiento, 0) ELSE 0 END) 
             / SUM(CASE WHEN CL.E_S = ''S'' THEN CL.Cantidad ELSE 0 END) END, 2) AS RendMedioSalidas
			 ,SUM(CASE WHEN CL.E_S = ''E'' OR CL.Rendimiento IS NULL THEN 0 ELSE 1 END) AS CuentaSalidasConRendimiento 
			 ,SUM(CASE WHEN CL.E_S = ''E''  THEN 0 ELSE 1 END) AS CuentaSalidas
			 ,CAST(CASE WHEN SUM(CASE WHEN CL.E_S = ''E''  THEN 0 ELSE 1 END) <> SUM(CASE WHEN CL.E_S = ''E'' OR CL.Rendimiento IS NULL THEN 0 ELSE 1 END) THEN 0 ELSE 1 END as BIT) AS CopageRendimientosCompleto
FROM   dbo.Copages_lineas AS CL LEFT OUTER JOIN
             dbo.Copages AS C ON CL.Fk_cabecera = C.Id LEFT OUTER JOIN
             dbo.Series_copages AS SC ON C.Fk_serie = SC.Serie LEFT OUTER JOIN
             dbo.Articulos AS A ON CL.Fk_articulo = A.Codigo LEFT OUTER JOIN
             dbo.Lotes ON CL.Fk_articulo = dbo.Lotes.Fk_articulo AND CL.Lote = dbo.Lotes.Lote
WHERE (SC.Tipo_proceso = 1) AND (ISNULL(A.no_calcular_rend_copage, 0) = 0)
GROUP BY C.Fk_serie, C.Numero
'
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesTemporal]'))
DROP VIEW [dbo].V_OpComponentesTemporal 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesTemporal]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpComponentesTemporal]
AS
SELECT   dbo.V_ArticulosNombre.Descripcion AS Desc_articulo, dbo.Op.Fk_serie, dbo.Op.Numero, dbo.Op_Componentes.Id, dbo.Op_Componentes.Fk_op, dbo.Op_Componentes.Fk_articulo_componente, dbo.Op_Componentes.Cantidad_unitaria, dbo.Op_Componentes.Cantidad AS CantidadOP, dbo.Op_Componentes.Cantidad_real, dbo.Op.Estado, 
             dbo.V_ArticulosNombre.Cajas_por_palet, dbo.V_ArticulosNombre.Cantidad_por_bulto,
                 (SELECT   SUM(Cantidad) AS CantidadTemporal
                 FROM     dbo.Op_componentes_temporal
                 WHERE   (Fk_op_componente_lote = dbo.Op_componentes_lotes.Id) AND (Fk_op_componente = dbo.Op_Componentes.Id)) AS CantidadTemporal, dbo.Op_Componentes.Orden, dbo.Op.Fecha, dbo.Op_componentes_lotes.Lote, dbo.Op_componentes_lotes.Cantidad AS CantidadLote, CASE WHEN dbo.Op_componentes_lotes.Cantidad IS NULL 
             THEN dbo.Op_Componentes.Cantidad ELSE dbo.Op_componentes_lotes.Cantidad END AS Cantidad, dbo.Op_componentes_lotes.Id AS IdComponenteLote, dbo.Op_componentes_lotes.Lote_etiqueta, dbo.Op.Fk_centro
FROM     dbo.Op INNER JOIN
             dbo.Op_Componentes ON dbo.Op.Id = dbo.Op_Componentes.Fk_op LEFT OUTER JOIN
             dbo.V_ArticulosNombre ON dbo.Op_Componentes.Fk_articulo_componente = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
             dbo.Op_componentes_lotes ON dbo.Op_Componentes.Id = dbo.Op_componentes_lotes.Fk_op_componentes
WHERE   (dbo.Op.Estado IN (0, 1, 2)) AND (dbo.V_ArticulosNombre.Ocultar_carga_componentes_intranet IS NULL OR
             dbo.V_ArticulosNombre.Ocultar_carga_componentes_intranet = 0)
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesTemporalDejar]'))
DROP VIEW [dbo].V_OpComponentesTemporalDejar 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpComponentesTemporalDejar]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpComponentesTemporalDejar]
AS
SELECT dbo.Op_componentes_temporal.Id, dbo.Op_componentes_temporal.Fk_op_componente, dbo.Op_componentes_temporal.Fk_persona_carga, dbo.Op_componentes_temporal.Cantidad, dbo.Op_componentes_temporal.Fecha_hora_carga, dbo.Op_componentes_temporal.Lote, dbo.Op_componentes_temporal.Orden, dbo.Articulos.Descripcion, dbo.Op.Fk_serie, dbo.Op.Numero, 
         dbo.Op_Componentes.Fk_articulo_componente, dbo.Articulos.Cantidad_por_bulto, dbo.Articulos.Cajas_por_palet, dbo.Op_componentes_temporal.IdRelaciónDejar, dbo.Op_componentes_temporal.Lote_etiqueta, dbo.Op.Fk_centro
		 , dbo.Op_componentes_temporal.Fk_almacen
FROM  dbo.Op_componentes_temporal INNER JOIN
         dbo.Op_Componentes ON dbo.Op_componentes_temporal.Fk_op_componente = dbo.Op_Componentes.Id INNER JOIN
         dbo.Articulos ON dbo.Op_Componentes.Fk_articulo_componente = dbo.Articulos.Codigo INNER JOIN
         dbo.Op ON dbo.Op_Componentes.Fk_op = dbo.Op.Id
WHERE (dbo.Op_componentes_temporal.CompletadoWeb IS NULL) OR
         (dbo.Op_componentes_temporal.CompletadoWeb = 0)
'

GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TraspasosQueSonConsumo]'))
DROP VIEW [dbo].V_TraspasosQueSonConsumo 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_TraspasosQueSonConsumo]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_TraspasosQueSonConsumo]
AS
SELECT ''TC'' as SerieTipoDoc, T.Fk_serie,T.Numero,C_DESTINO.Trasp_consumo_otros_centros
	FROM  dbo.Traspasos  T 
       LEFT OUTER JOIN Centros C_DESTINO ON T.Fk_centro_destino=C_DESTINO.Codigo
	   WHERE T.Estado=2 AND ISNULL(C_DESTINO.Trasp_consumo_otros_centros,0)=1
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DavLineas]'))
DROP VIEW [dbo].V_DavLineas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_DavLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_DavLineas]
AS
SELECT dbo.Dav.Serie, dbo.Dav.Numero_referencia, dbo.Dav.Fecha_expedicion,dbo.Dav.SerieTipoDoc,Dav.Serie_documento,Dav.Numero_documento, dbo.Dav_lineas.Id, dbo.Dav_lineas.Numero_linea, dbo.Dav_lineas.Fk_articulo, dbo.Dav_lineas.Articulo_descripcion, dbo.Dav_lineas.Lote, dbo.Dav_lineas.Grado, 
dbo.Dav_lineas.Manipulacion
             ,dbo.Dav_lineas.Densidad, dbo.Dav_lineas.Residuos, dbo.Unidades.Descripcion as Desc_unidad, dbo.Unidades.Descripcion_breve as Desc_unidad_breve,dbo.Dav_lineas.Cantidad, dbo.Dav_lineas.Cosecha, dbo.Dav_lineas.Fk_cabecera
FROM   dbo.Dav RIGHT OUTER JOIN
             dbo.Dav_lineas ON dbo.Dav.Id = dbo.Dav_lineas.Fk_cabecera LEFT OUTER JOIN
             dbo.Articulos ON dbo.Dav_lineas.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
             dbo.Unidades ON dbo.Articulos.Fk_unidad_salida = dbo.Unidades.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesManipulaciones]'))
DROP VIEW [dbo].V_LotesManipulaciones 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LotesManipulaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LotesManipulaciones]
AS
SELECT dbo.Lotes.Fk_articulo, dbo.Lotes.Lote, dbo.Lotes_manipulaciones.Id, dbo.Lotes.Id AS Id_cabecera, dbo.Lotes_manipulaciones.Fecha, dbo.Lotes_manipulaciones.Fk_manipulacion, dbo.Libros_manipulaciones.Descripcion AS Desc_manipulacion, dbo.Lotes_manipulaciones.Notas, 
             dbo.Lotes_manipulaciones.SerieTipoDoc, dbo.Lotes_manipulaciones.Serie, dbo.Lotes_manipulaciones.Numero
FROM   dbo.Lotes INNER JOIN
             dbo.Lotes_manipulaciones ON dbo.Lotes.Id = dbo.Lotes_manipulaciones.Fk_lote INNER JOIN
             dbo.Libros_manipulaciones ON dbo.Lotes_manipulaciones.Fk_manipulacion = dbo.Libros_manipulaciones.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpPendientesEtiquetarGenerica]'))
DROP VIEW [dbo].V_OpPendientesEtiquetarGenerica 
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpPendientesEtiquetar]'))
DROP VIEW [dbo].V_OpPendientesEtiquetar 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_OpPendientesEtiquetar]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_OpPendientesEtiquetar] AS

SELECT Fk_centro, Desc_centro, Id, Articulo, Desc_articulo, Cliente, Nombre_cliente, Cantidad, CASE WHEN Ft_cantidad_por_bulto IS NOT NULL
THEN Ft_cantidad_por_bulto ELSE Art_cantidad_por_bulto END AS Cantidad_por_bulto,
CASE WHEN Ft_GTIN13 IS NOT NULL
             THEN Ft_GTIN13 ELSE GTIN13 END AS GTIN13, CASE WHEN ISNULL(Ft_GTIN14,'''')<>'''' THEN Ft_GTIN14 ELSE GTIN14 END AS GTIN14
			
			 , Lote, Lote_etiqueta, Fecha_caducidad, Fecha_consumo_preferente, Fk_maquina, Desc_maquina, Layout_caja, Layout_caja_clarisoft,Layout_palet,Layout_palet_clarisoft
             ,CAST(COALESCE (Ft_cantidad_por_bulto, Art_cantidad_por_bulto, 0) AS int) AS Cantidad_por_bulto_Num

			 , CASE ISNULL(Ft_cantidad_por_bulto, Art_cantidad_por_bulto) WHEN 6 THEN ''10 KG'' WHEN 12 THEN ''20 KG'' ELSE '''' END AS Peso_bulto,
             COALESCE (CAST(Ft_GTIN13 AS bigint)
			 , CAST(GTIN13 AS bigint), 0) AS GTIN13_Num
			 ,CAST(FORMAT(GETDATE(), ''dd/MM/yy'') as nvarchar(20)) as Fecha_hoy
						 ,Fecha_lanzada,Desc_tipo
						 , ROUND(FT_Peso_bruto_caja,1) AS FT_Peso_bruto_caja
						 , ROUND(ART_Peso_bruto,1) ART_Peso_bruto_caja

FROM   (SELECT A.Desc_tipo_prod_etiq_caja as Desc_tipo, dbo.op.Fecha_lanzada,dbo.Op.Fk_centro, C.Descripcion AS Desc_centro, dbo.Op.Fk_serie + ''-'' + CAST(dbo.Op.Numero AS nvarchar) AS Id, dbo.Op.Fk_articulo AS Articulo, A.Descripcion AS Desc_articulo, P.Codigo AS Cliente, P.NombreCompleto AS Nombre_cliente, dbo.Op.Cantidad,
                           FT.Cantidad_por_bulto AS Ft_cantidad_por_bulto, FT.Fk_GTIN13 AS Ft_GTIN13, FT.Fk_GTIN14 AS Ft_GTIN14, CB.Codigo AS GTIN13, CB14.Codigo AS GTIN14, A.Cantidad_por_bulto AS Art_cantidad_por_bulto, dbo.Op.Lote, dbo.Op.Lote_etiqueta, dbo.Op.Fecha_caducidad,
                           dbo.Op.Fecha_consumo_preferente, dbo.Op.Fk_maquina, M.Descripcion AS Desc_maquina
						
						   , CASE
						   WHEN ISNULL(ARP.Nombre_etiqueta_caja,'''')<>'''' THEN ARP.Nombre_etiqueta_caja
						   WHEN ISNULL(P.Nombre_etiqueta_caja,'''')<>'''' THEN P.Nombre_etiqueta_caja
						   WHEN ISNULL(A.Nombre_etiqueta_caja,'''')<>'''' THEN A.Nombre_etiqueta_caja
						   ELSE (SELECT TOP (1) Nombre_etiqueta_caja FROM    Parametros)
						   END AS Layout_caja
						   , CASE
						   WHEN ISNULL(ARP.Nombre_etiqueta_caja_clarisoft,'''')<>'''' THEN ARP.Nombre_etiqueta_caja
						   WHEN ISNULL(P.Nombre_etiqueta_caja_clarisoft,'''')<>'''' THEN P.Nombre_etiqueta_caja
						   WHEN ISNULL(A.Nombre_etiqueta_caja_clarisoft,'''')<>'''' THEN A.Nombre_etiqueta_caja
						   ELSE (SELECT TOP (1) Nombre_etiqueta_caja_clarisoft FROM    Parametros)
						   END AS Layout_caja_clarisoft
						   , CASE
						   WHEN ISNULL(ARP.Nombre_etiqueta_palet,'''')<>'''' THEN ARP.Nombre_etiqueta_caja
						   WHEN ISNULL(P.Nombre_etiqueta_palet,'''')<>'''' THEN P.Nombre_etiqueta_caja
						   WHEN ISNULL(A.Nombre_etiqueta_palet,'''')<>'''' THEN A.Nombre_etiqueta_caja
						   ELSE (SELECT TOP (1) Nombre_etiqueta_palet FROM    Parametros)
						   END AS Layout_palet
						   , CASE
						   WHEN ISNULL(ARP.Nombre_etiqueta_palet_clarisoft,'''')<>'''' THEN ARP.Nombre_etiqueta_caja
						   WHEN ISNULL(P.Nombre_etiqueta_palet_clarisoft,'''')<>'''' THEN P.Nombre_etiqueta_caja
						   WHEN ISNULL(A.Nombre_etiqueta_palet_clarisoft,'''')<>'''' THEN A.Nombre_etiqueta_caja
						   ELSE (SELECT TOP (1) Nombre_etiqueta_palet_clarisoft FROM    Parametros)
						   END AS Layout_palet_clarisoft
						   ,FT.Peso_bruto_caja AS FT_Peso_bruto_caja
						   ,A.Peso_bruto * FT.Cantidad_por_bulto AS ART_Peso_bruto
             FROM    dbo.Op LEFT OUTER JOIN
                           dbo.Articulos AS A ON dbo.Op.Fk_articulo = A.Codigo LEFT OUTER JOIN
                           dbo.FT_articulos AS FT ON dbo.Op.Fk_ficha_tecnica = FT.Codigo_FT LEFT OUTER JOIN
                           dbo.V_Personas AS P ON dbo.Op.Fk_persona = P.Codigo LEFT OUTER JOIN
                           dbo.Articulos_referencia_persona AS ARP ON dbo.Op.Fk_articulo = ARP.Fk_articulo AND dbo.Op.Fk_persona = ARP.Fk_persona LEFT OUTER JOIN
                           dbo.Maquinas AS M ON dbo.Op.Fk_maquina = M.Codigo LEFT OUTER JOIN
                           dbo.Centros AS C ON dbo.Op.Fk_centro = C.Codigo LEFT OUTER JOIN
                           dbo.Articulos_codigos_barras AS CB ON CB.Fk_articulo = A.Codigo AND (CB.Tipo_codigo = 1 OR
                           CB.Tipo_codigo = 4) LEFT OUTER JOIN
                           dbo.Articulos_codigos_barras AS CB14 ON CB14.Fk_articulo = A.Codigo AND (CB14.Tipo_codigo = 2 OR
                           CB.Tipo_codigo = 5)
             WHERE  (dbo.Op.Estado = 1) OR
                           (dbo.Op.Estado = 2) OR ISNULL(dbo.Op.Visible_etiquetas,0)=1) AS A
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Denom_origen_acciones]'))
DROP VIEW [dbo].V_Denom_origen_acciones 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Denom_origen_acciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Denom_origen_acciones] AS
SELECT        dbo.Denom_origen_acciones.Id, dbo.Denom_origen_acciones.Fk_Do, dbo.Denom_origen_acciones.Fk_accion, dbo.Accion.Descripcion, dbo.Accion.Formato_datos_accion, dbo.Accion.Desc_corta, 
                         dbo.Accion.Fk_expediente_seccion_habitual, dbo.Expediente_seccion.Descripcion AS DescSeccion, dbo.Accion.Orden, dbo.Accion.Fk_expediente_tareas_generales, 
                         dbo.Expediente_tareas_generales.Descripcion AS DescTarea, dbo.Accion.Respuesta_si, dbo.Accion.Respuesta_no, dbo.Accion.Respuesta_na, dbo.Accion.Info_valoracion, dbo.Accion.Info_tipificacion, dbo.Denom_origen_acciones.Fecha_baja,
						  CAST(dbo.Accion.Fk_expediente_seccion_habitual AS varchar) + ''.'' + CAST(dbo.Accion.Orden AS varchar) AS StrOrden, dbo.Accion.Info_accion_correctora,dbo.Accion.Info_analisis_desviacion
						  , dbo.Denom_origen_acciones.Fecha_inicio, dbo.Denom_origen_acciones.Fecha_fin
FROM            dbo.Accion INNER JOIN
                         dbo.Denom_origen_acciones ON dbo.Accion.Id = dbo.Denom_origen_acciones.Fk_accion LEFT OUTER JOIN
                         dbo.Expediente_tareas_generales ON dbo.Accion.Fk_expediente_tareas_generales = dbo.Expediente_tareas_generales.Id LEFT OUTER JOIN
                         dbo.Expediente_seccion ON dbo.Accion.Fk_expediente_seccion_habitual = dbo.Expediente_seccion.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PsCalidad]'))
DROP VIEW [dbo].V_PsCalidad 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PsCalidad]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PsCalidad] AS
SELECT dbo.Ps_calidad.Id, dbo.Ps_calidad.Fk_serie, dbo.Series_otros_documentos.Descripcion as Desc_serie
, dbo.Ps_calidad.Numero, dbo.Ps_calidad.Fecha, dbo.Ps_calidad.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo
, dbo.Ps_calidad.Cantidad_verde, dbo.Ps_calidad.Cantidad_pelado, dbo.Ps_calidad.Cantidad_seco, dbo.Ps_calidad.Cantidad_muestra,ALBS.Albaranes
,dbo.Ps_calidad.Fk_empresa,Empresas.Descripcion as Desc_empresa,dbo.Ps_calidad.Usuario_creacion,dbo.Ps_calidad.Fecha_creacion,dbo.Ps_calidad.Usuario_modificacion,dbo.Ps_calidad.Fecha_modificacion,dbo.Ps_calidad.Observaciones,dbo.Ps_calidad.Factor_conv_150_160_170 
,dbo.Ps_calidad.Codigo_plantilla_precios_persona,dbo.Ps_calidad.Fk_articulo_escandallo,ART_ESC.Descripcion AS Desc_articulo_escandallo,Ps_calidad.Fk_persona,V_Personas.NombreCompleto,V_Personas.Identificacion,V_Personas.Fis_direccion,V_Personas.Fis_codigo_postal,V_Personas.Fis_municipio,V_Personas.Fis_provincia
FROM   dbo.Ps_calidad LEFT OUTER JOIN
             dbo.Series_otros_documentos ON dbo.Ps_calidad.Fk_serie = dbo.Series_otros_documentos.Serie LEFT OUTER JOIN
             dbo.Articulos ON dbo.Ps_calidad.Fk_articulo = dbo.Articulos.Codigo
			 LEFT OUTER JOIN Articulos AS ART_ESC ON dbo.Ps_calidad.Fk_articulo_escandallo = ART_ESC.Codigo
			 LEFT OUTER JOIN (SELECT Fk_cabecera, STRING_AGG(''['' + Serie_albaran + ''-'' +  CAST(Numero_albaran AS nvarchar) + '']'','' '') AS Albaranes FROM Ps_calidad_albs group by Fk_cabecera) ALBS
			 ON Ps_calidad.Id=ALBS.Fk_cabecera
			 LEFT OUTER JOIN Empresas ON Ps_calidad.Fk_empresa=Empresas.Codigo
			 LEFT OUTER JOIN V_Personas ON Ps_calidad.Fk_persona=V_Personas.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PsCalidadLineas]'))
DROP VIEW [dbo].V_PsCalidadLineas 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PsCalidadLineas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PsCalidadLineas] AS
SELECT dbo.Ps_calidad_lineas.Id, dbo.Ps_calidad_lineas.Fk_cabecera, dbo.V_PsCalidad.Fk_serie, dbo.V_PsCalidad.Desc_serie, dbo.V_PsCalidad.Numero, dbo.V_PsCalidad.Fecha, dbo.V_PsCalidad.Fk_articulo AS Articulo_analitica, dbo.V_PsCalidad.Desc_articulo AS Desc_articulo_analitica, 
             dbo.V_PsCalidad.Cantidad_verde, dbo.V_PsCalidad.Cantidad_pelado, dbo.V_PsCalidad.Cantidad_seco, dbo.V_PsCalidad.Cantidad_muestra, dbo.V_PsCalidad.Albaranes, dbo.Ps_calidad_lineas.Orden, dbo.Ps_calidad_lineas.Descripcion, dbo.Ps_calidad_lineas.Fk_articulo, 
             dbo.Articulos.Descripcion AS Desc_articulo, dbo.Ps_calidad_lineas.Cantidad_total_kg, dbo.Ps_calidad_lineas.Cantidad_muestra_linea, dbo.Ps_calidad_lineas.Unidad, dbo.Ps_calidad_lineas.Cantidad, dbo.Ps_calidad_lineas.Porcentaje, dbo.Ps_calidad_lineas.Cantidad_submuestra, 
             dbo.Ps_calidad_lineas.Unidad_submuestra, dbo.Ps_calidad_lineas.Precio,dbo.V_PsCalidad.Fk_empresa,dbo.V_PsCalidad.Desc_empresa,dbo.Ps_calidad_lineas.Importe,dbo.Ps_calidad_lineas.Cantidad_total_fc,dbo.Ps_calidad_lineas.Cantidad_fc,dbo.Ps_calidad_lineas.Porcentaje_fc
FROM  dbo.Ps_calidad_lineas LEFT OUTER JOIN dbo.V_PsCalidad  ON dbo.V_PsCalidad.Id = dbo.Ps_calidad_lineas.Id  
             LEFT OUTER JOIN dbo.Articulos ON dbo.Ps_calidad_lineas.Fk_articulo = dbo.Articulos.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsMonedero]'))
DROP VIEW [dbo].V_MovsMonedero 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsMonedero]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MovsMonedero] AS
SELECT dbo.Movs_monedero.Id, dbo.Movs_monedero.Terminal, dbo.Movs_monedero.Fecha, dbo.Movs_monedero.Fk_persona, dbo.V_PersonasSoloNombre.NombreCompleto, dbo.Movs_monedero.Concepto, dbo.Movs_monedero.E_S, dbo.Movs_monedero.Importe, 
             dbo.Movs_monedero.SerieTipoDoc_origen, dbo.Movs_monedero.SerieTipoMov_origen, dbo.Movs_monedero.NumeroMov_origen, dbo.Movs_monedero.Usuario_alta, dbo.Movs_monedero.Fecha_alta, dbo.Asientos_cabecera.numero_asiento, 
             dbo.Movs_monedero.Fk_asiento_contabilizacion, dbo.Movs_monedero.Fecha_hora_contabilizacion, dbo.Movs_monedero.Usuario_contabilizacion, dbo.Movs_monedero.Fecha_valor
FROM   dbo.Movs_monedero LEFT OUTER JOIN
             dbo.Asientos_cabecera ON dbo.Movs_monedero.Fk_asiento_contabilizacion = dbo.Asientos_cabecera.id LEFT OUTER JOIN
             dbo.V_PersonasSoloNombre ON dbo.Movs_monedero.Fk_persona = dbo.V_PersonasSoloNombre.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ParcelasCultivos]'))
DROP VIEW [dbo].V_ParcelasCultivos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ParcelasCultivos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ParcelasCultivos] AS
SELECT        dbo.Fincas_parcelas.Id_finca, dbo.Fincas_parcelas.Tipo_seccion, dbo.Fincas_parcelas.Id_parcela, dbo.Fincas_parcelas.Descripcion, dbo.Fincas_parcelas.Superficie, dbo.Fincas_parcelas.Do_1, dbo.Fincas_parcelas.Do_2, 
                         dbo.Fincas_parcelas.Do_3, dbo.Fincas_parcelas.Parcela_vitivinicola, dbo.Fincas_parcelas.Id_recinto, dbo.Fincas_parcelas.Fk_variedad, dbo.Articulos.Descripcion AS DescVariedad, dbo.Fincas_parcelas.Codigo_pv_rvc, 
                         dbo.Fincas_cultivos.Article, Articulos_cultivo.Descripcion AS DescCultivo, dbo.Fincas_parcelas.Cava_guarda_superior, dbo.Fincas_cultivos.Num_elementos, CASE WHEN dbo.Fincas_cultivos.Fecha_plant_hasta IS NOT NULL 
                         THEN DATEDIFF(year, dbo.Fincas_cultivos.Fecha_plant_desde, dbo.Fincas_cultivos.Fecha_plant_hasta) ELSE DATEDIFF(year, dbo.Fincas_cultivos.Fecha_plant_desde, GETDATE()) END AS Edad
FROM            dbo.Fincas_parcelas INNER JOIN
                         dbo.Fincas_cultivos ON dbo.Fincas_parcelas.Id_finca = dbo.Fincas_cultivos.Id_finca AND dbo.Fincas_parcelas.Id_parcela = dbo.Fincas_cultivos.Id_parcela LEFT OUTER JOIN
                         dbo.Articulos ON dbo.Fincas_parcelas.Fk_variedad = dbo.Articulos.Codigo LEFT OUTER JOIN
                         dbo.Articulos AS Articulos_cultivo ON dbo.Fincas_cultivos.Article = Articulos_cultivo.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FirmasDigitalesDocs]'))
DROP VIEW [dbo].V_FirmasDigitalesDocs 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_FirmasDigitalesDocs]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_FirmasDigitalesDocs] AS
SELECT FDD.*,
             dbo.V_PersonasSoloNombre.NombreCompleto AS Nombre_Persona, dbo.Docs_firmar.Descripcion AS Desc_doc_firmar, dbo.Docs_firmar.Fk_seccion, dbo.Secciones.Descripcion AS Desc_seccion, dbo.Docs_firmar.Fk_campaña, dbo.Campañas.Descripcion AS Desc_campaña, 
             dbo.Docs_firmar.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo
FROM   dbo.Firmas_digitales_docs FDD  LEFT OUTER JOIN dbo.Docs_firmar ON FDD.Fk_doc_firmar=Docs_firmar.Id LEFT OUTER JOIN
             dbo.Articulos ON dbo.Docs_firmar.Fk_articulo = dbo.Articulos.Codigo LEFT OUTER JOIN
             dbo.Secciones ON dbo.Docs_firmar.Fk_seccion = dbo.Secciones.Codigo LEFT OUTER JOIN
             dbo.Campañas ON dbo.Docs_firmar.Fk_campaña = dbo.Campañas.Codigo LEFT OUTER JOIN
			 dbo.V_PersonasSoloNombre ON FDD.Fk_persona = dbo.V_PersonasSoloNombre.Codigo      
			 
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LineasTiquetsAlbsTpv]'))
DROP VIEW [dbo].V_LineasTiquetsAlbsTpv 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_LineasTiquetsAlbsTpv]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_LineasTiquetsAlbsTpv] AS
SELECT      ''FS'' as SerieTipoDoc,  dbo.Facturas_simpl_lineas.Serie, dbo.Facturas_simpl_lineas.Numero, dbo.Facturas_simpl_lineas.Linea, dbo.Facturas_simpl_lineas.Fk_articulo, dbo.Facturas_simpl_lineas.Articulo_descripcion, 
                         dbo.Facturas_simpl_lineas.Precio_bruto, dbo.Facturas_simpl_lineas.Precio_neto, dbo.Facturas_simpl_lineas.Cantidad, dbo.Facturas_simpl_lineas.Importe_bruto, dbo.Facturas_simpl_lineas.Imp_dto_pp, 
                         dbo.Facturas_simpl_lineas.Imp_dto_esp, dbo.Facturas_simpl_lineas.Importe_dto1, dbo.Facturas_simpl_lineas.Importe_dto2, dbo.Facturas_simpl_lineas.Valor_iva, dbo.Facturas_simpl_lineas.Importe_neto, 
                         dbo.Facturas_simpl_lineas.Id, dbo.Facturas_simpl_lineas.Precio_coste_articulo, dbo.Facturas_simpl_cabecera.Fecha_hora, dbo.Facturas_simpl_cabecera.Fk_persona_tpv, dbo.Facturas_simpl_cabecera.Fk_cierre_caja, 
                         dbo.Facturas_simpl_cabecera.Fk_centro, dbo.Facturas_simpl_cabecera.Terminal, dbo.Facturas_simpl_cabecera.Usuario, dbo.Facturas_simpl_cabecera.Fk_cliente, dbo.V_Personas.NombreCompleto, 
                         dbo.Facturas_simpl_lineas.PVP, dbo.Facturas_simpl_lineas.Importe_total_linea, dbo.Facturas_simpl_lineas.Valor_dto1, dbo.Facturas_simpl_lineas.Valor_dto2, dbo.Facturas_simpl_lineas.Tipo_calculo_dto2, 
                         dbo.Facturas_simpl_lineas.Aplicacion_dto2, dbo.Facturas_simpl_lineas.Bultos, dbo.Facturas_simpl_lineas.Tipo_calculo_dto1, dbo.Facturas_simpl_lineas.Importe_base, dbo.Facturas_simpl_lineas.Importe_iva, 
                         dbo.Facturas_simpl_lineas.Valor_recargo, dbo.Facturas_simpl_lineas.Importe_recargo, dbo.Facturas_simpl_lineas.Valor_irpf, dbo.Facturas_simpl_lineas.Importe_irpf, dbo.Facturas_simpl_lineas.Importe_otros_impuestos, 
                         dbo.Facturas_simpl_lineas.Fk_codigo_iva, dbo.Facturas_simpl_lineas.Cantidad_anulada, dbo.Facturas_simpl_lineas.Lote, dbo.Facturas_simpl_lineas.Lote_etiqueta, dbo.Facturas_simpl_lineas.Pmp, 
                         dbo.Facturas_simpl_lineas.Pmp_lote, dbo.Facturas_simpl_lineas.Observaciones, dbo.Facturas_simpl_lineas.Tipo_doc_asociado, dbo.Facturas_simpl_lineas.Serie_doc_asociado, 
                         dbo.Facturas_simpl_lineas.Numero_doc_asociado, dbo.V_ArticulosNombre.Fito_registro, dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Tags AS Tags_articulo, dbo.V_Personas.Cliente_interno, 
                         dbo.V_ArticulosNombre.Tipo_articulo_libros, dbo.V_ArticulosNombre.Tipo_formato, dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, 
                         CAST(dbo.Facturas_simpl_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) AS Cantidad_Kg, dbo.Facturas_simpl_lineas.Fk_almacen, dbo.Centros.Descripcion AS Desc_centro, 
                         dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Imprimir_lote_fac_simpl,
                             (SELECT        TOP (1) Fk_forma_pago
                               FROM            dbo.V_FacturasSimplFormasPago
                               WHERE        (Serie = dbo.Facturas_simpl_cabecera.Serie) AND (Numero = dbo.Facturas_simpl_cabecera.Numero)) AS Primera_forma_pago, dbo.Facturas_simpl_cabecera.Fk_representante1, 
                         dbo.Facturas_simpl_cabecera.Fk_representante2, dbo.Facturas_simpl_lineas.Fk_cuenta_contable, dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Capacidad, dbo.Facturas_simpl_lineas.Linea_kit, 
                         dbo.Facturas_simpl_lineas.Fk_Articulo_kit, dbo.Facturas_simpl_lineas.Precio_tarifa, dbo.Facturas_simpl_lineas.Promocion, dbo.Facturas_simpl_lineas.Cantidad_con_tara, dbo.Facturas_simpl_lineas.Cantidad_tara
                         , dbo.Lotes.Km0
						 , CASE 
							WHEN ISNULL(dbo.Facturas_simpl_lineas.Importe_base,0) = 0 THEN 0
							ELSE ((dbo.Facturas_simpl_lineas.Importe_base - (dbo.Facturas_simpl_lineas.Cantidad * dbo.Facturas_simpl_lineas.Pmp)) / dbo.Facturas_simpl_lineas.Importe_base) *100
							END AS Porcent_margen_venta
						 , dbo.Facturas_simpl_lineas.Importe_base - (dbo.Facturas_simpl_lineas.Cantidad * dbo.Facturas_simpl_lineas.Pmp) AS Margen_absoluto
FROM            dbo.Facturas_simpl_lineas INNER JOIN
                         dbo.Facturas_simpl_cabecera ON dbo.Facturas_simpl_lineas.Serie = dbo.Facturas_simpl_cabecera.Serie AND dbo.Facturas_simpl_lineas.Numero = dbo.Facturas_simpl_cabecera.Numero INNER JOIN
                         dbo.V_Personas ON dbo.Facturas_simpl_cabecera.Fk_cliente = dbo.V_Personas.Codigo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Facturas_simpl_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Facturas_simpl_cabecera.Fk_centro = dbo.Centros.Codigo LEFT OUTER JOIN
                         dbo.Lotes ON dbo.Facturas_simpl_lineas.Fk_articulo = dbo.Lotes.Fk_articulo AND dbo.Facturas_simpl_lineas.Lote = dbo.Lotes.Lote
UNION ALL
SELECT     ''AV'' as SerieTipoDoc,   dbo.Alb_venta_lineas.Serie, dbo.Alb_venta_lineas.Numero, dbo.Alb_venta_lineas.Linea, dbo.Alb_venta_lineas.Fk_articulo, dbo.Alb_venta_lineas.Articulo_descripcion, 
                         dbo.Alb_venta_lineas.Precio_bruto, dbo.Alb_venta_lineas.Precio_neto, dbo.Alb_venta_lineas.Cantidad, dbo.Alb_venta_lineas.Importe_bruto, dbo.Alb_venta_lineas.Imp_dto_pp, 
                         dbo.Alb_venta_lineas.Imp_dto_esp, dbo.Alb_venta_lineas.Importe_dto1, dbo.Alb_venta_lineas.Importe_dto2, dbo.Alb_venta_lineas.Valor_iva, dbo.Alb_venta_lineas.Importe_neto, 
                         dbo.Alb_venta_lineas.Id, dbo.Alb_venta_lineas.Precio_coste_articulo, dbo.Alb_venta.Fecha_hora, NULL AS Fk_persona_tpv, dbo.Alb_venta.Fk_cierre_caja, 
                         dbo.Alb_venta.Fk_centro, dbo.Alb_venta.Terminal, dbo.Alb_venta.Usuario_modificacion as Usuario, dbo.Alb_venta.Codigo_cliente AS Fk_cliente, dbo.V_Personas.NombreCompleto, 
                         dbo.Alb_venta_lineas.PVP, dbo.Alb_venta_lineas.Importe_total_linea, dbo.Alb_venta_lineas.Valor_dto1, dbo.Alb_venta_lineas.Valor_dto2, dbo.Alb_venta_lineas.Tipo_calculo_dto2, 
                         dbo.Alb_venta_lineas.Aplicacion_dto2, dbo.Alb_venta_lineas.Bultos, dbo.Alb_venta_lineas.Tipo_calculo_dto1, dbo.Alb_venta_lineas.Importe_base, dbo.Alb_venta_lineas.Importe_iva, 
                         dbo.Alb_venta_lineas.Valor_recargo, dbo.Alb_venta_lineas.Importe_recargo, dbo.Alb_venta_lineas.Valor_irpf, dbo.Alb_venta_lineas.Importe_irpf, dbo.Alb_venta_lineas.Importe_otros_impuestos, 
                         dbo.Alb_venta_lineas.Codigo_iva as Fk_codigo_iva, dbo.Alb_venta_lineas.Cantidad_anulada, LINLOTES.Lote, LINLOTES.Lote_etiqueta, LINLOTES.Pmp, 
                         LINLOTES.Pmp_lote, dbo.Alb_venta_lineas.Observaciones, dbo.Alb_venta_lineas.Tipo_doc_asociado, dbo.Alb_venta_lineas.Serie_doc_asociado, 
                         dbo.Alb_venta_lineas.Numero_doc_asociado, dbo.V_ArticulosNombre.Fito_registro, dbo.V_ArticulosNombre.Fito_categoria, dbo.V_ArticulosNombre.Tags AS Tags_articulo, '''' as Cliente_interno, 
                         dbo.V_ArticulosNombre.Tipo_articulo_libros, dbo.V_ArticulosNombre.Tipo_formato, dbo.V_ArticulosNombre.Peso_neto AS Articulo_peso_neto, 
                         CAST(dbo.Alb_venta_lineas.Cantidad * ISNULL(dbo.V_ArticulosNombre.Peso_neto, 1) AS decimal(15, 3)) AS Cantidad_Kg, LINLOTES.Almacen as Fk_almacen, dbo.Centros.Descripcion AS Desc_centro, 
                         dbo.V_ArticulosNombre.Fk_articulo_agrupacion, dbo.V_ArticulosNombre.Desc_articulo_agrupacion, dbo.V_ArticulosNombre.Imprimir_lote_fac_simpl,
                             dbo.Alb_venta.Forma_pago as Primera_forma_pago, dbo.Alb_venta.Representante1 Fk_representante1, 
                         dbo.Alb_venta.Representante2 Fk_representante2, dbo.Alb_venta_lineas.Fk_cuenta_contable, dbo.V_ArticulosNombre.No_incluir_pesos_listados, dbo.V_ArticulosNombre.Capacidad, dbo.Alb_venta_lineas.Linea_kit, 
                         dbo.Alb_venta_lineas.Fk_Articulo_kit, dbo.Alb_venta_lineas.Precio_tarifa, dbo.Alb_venta_lineas.Promocion,
						dbo.Alb_venta_lineas.Cantidad_con_tara, dbo.Alb_venta_lineas.Cantidad_tara, dbo.Lotes.Km0
						 , CASE 
							WHEN ISNULL(dbo.Alb_venta_lineas.Importe_base,0) = 0 THEN 0
							ELSE ((dbo.Alb_venta_lineas.Importe_base - (dbo.Alb_venta_lineas.Cantidad * LINLOTES.Pmp)) / dbo.Alb_venta_lineas.Importe_base) *100
							END AS Porcent_margen_venta
						 , dbo.Alb_venta_lineas.Importe_base - (dbo.Alb_venta_lineas.Cantidad * LINLOTES.Pmp) AS Margen_absoluto
FROM            dbo.Alb_venta_lineas INNER JOIN
                         dbo.Alb_venta ON dbo.Alb_venta_lineas.Serie = dbo.Alb_venta.Serie AND dbo.Alb_venta_lineas.Numero = dbo.Alb_venta.Numero INNER JOIN
                         dbo.V_Personas ON dbo.Alb_venta.Codigo_cliente = dbo.V_Personas.Codigo INNER JOIN
                         dbo.V_ArticulosNombre ON dbo.Alb_venta_lineas.Fk_articulo = dbo.V_ArticulosNombre.Codigo LEFT OUTER JOIN
                         dbo.Centros ON dbo.Alb_venta.Fk_centro = dbo.Centros.Codigo
						 LEFT OUTER JOIN Alb_venta_lineas_lotes LINLOTES ON dbo.Alb_venta_lineas.Id=LINLOTES.fk_Id_linea
                         LEFT OUTER JOIN dbo.Lotes ON dbo.Alb_venta_lineas.Fk_articulo = dbo.Lotes.Fk_articulo AND LINLOTES.Lote = dbo.Lotes.Lote
						 WHERE dbo.Alb_venta.Tpv=1			 
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Auditoria]'))
DROP VIEW [dbo].V_Auditoria 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Auditoria]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Auditoria] AS
SELECT        Id, Fecha_hora, Tipo_proceso, Tipo_objeto, Tipo_accion, Usuario, Descripcion, Articulo, Persona, SerieTipoDoc, Serie, Numero, Programa, Observaciones
FROM            dbo.Auditoria     
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AnaWin_Fitosanitaris]'))
DROP VIEW [dbo].V_AnaWin_Fitosanitaris 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_AnaWin_Fitosanitaris]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_AnaWin_Fitosanitaris] AS
/*albarans venta*/ 
SELECT c.Serie, c.Numero, c.Id, CASE WHEN c.Fecha_exp_anawin IS NULL THEN ''A'' WHEN c.Fecha_modificacion is not null THEN ''M'' END AS Tipus_accio, ''AV'' AS Tipus_document, l.Linea AS Numero_linia,
                          ISNULL(c.Identificacion_cliente, p.Identificacion) AS CIF, p.Nombre AS Nom, c.Fecha_hora AS Data_moviment, a.Fito_categoria AS Categoria, l.Fk_articulo AS Codi_producte, a.Descripcion AS Nom_producte, 
                         a.Fito_registro AS Codi_registre, lo.Lote AS Lote, l.Cantidad AS Unitats, CASE WHEN a.Fk_unidad_salida = NULL THEN ''unitats'' ELSE LOWER(ISNULL(u.Descripcion_breve, ''unitats'')) END AS Unitat_metrica, 
                         a.Capacidad AS Pes_vol_unitari, l.Precio_neto AS preu_unitat, l.PVP AS preu_unitat_iva, a.Porcent_nitrogeno AS Nitrogen
FROM            Alb_venta c INNER JOIN
                         Alb_venta_lineas l ON c.Serie = l.Serie AND c.Numero = l.Numero INNER JOIN
                         Articulos a ON l.Fk_articulo = a.Codigo INNER JOIN
                         Personas p ON c.Codigo_cliente = p.Codigo INNER JOIN
                         Alb_venta_lineas_lotes AS lo ON l.Id = lo.fk_Id_linea INNER JOIN
                         Series_albaranes_venta s ON c.Serie = s.Serie LEFT JOIN
                         Unidades u ON u.Codigo = a.Fk_unidad_salida
WHERE        ISNULL(a.Fito_categoria, '''') <> '''' AND isnull(s.No_exp_anawin, 0) = 0 
UNION ALL
/*facturas simplificades capcelera*/ 
SELECT c.Serie, c.Numero, c.Id, CASE WHEN c.Fecha_exp_anawin IS NULL THEN ''A'' WHEN c.Fecha_modificacion is not null THEN ''M'' END AS Tipus_accio, ''FS'' AS Tipus_document, 
                         l.Linea AS Numero_linia, ISNULL(c.Identificacion_cliente, p.Identificacion) AS CIF, p.Nombre AS Nom, c.Fecha_hora AS Data_moviment, a.Fito_categoria AS Categoria, l.Fk_articulo AS Codi_producte, 
                         a.Descripcion AS Nom_producte, a.Fito_registro AS Codi_registre, l.Lote AS Lote, l.Cantidad AS Unitats, CASE WHEN a.Fk_unidad_salida = NULL THEN ''unitats'' ELSE LOWER(ISNULL(u.Descripcion_breve, ''unitats'')) 
                         END AS Unitat_metrica, a.Capacidad AS Pes_vol_unitari, l.Precio_neto AS preu_unitat, l.PVP AS preu_unitat_iva, a.Porcent_nitrogeno AS Nitrogen
FROM            Facturas_simpl_cabecera c INNER JOIN
                         Facturas_simpl_lineas l ON c.Serie = l.Serie AND c.Numero = l.Numero INNER JOIN
                         Personas p ON c.Fk_cliente = p.Codigo INNER JOIN
                         Articulos a ON l.Fk_articulo = a.Codigo INNER JOIN
                         Series_facturas_venta_simpl s ON c.Serie = s.Serie LEFT JOIN
                         Unidades u ON u.Codigo = a.Fk_unidad_salida
WHERE        ISNULL(a.Fito_categoria, '''') <> '''' AND isnull(s.No_exp_anawin, 0) = 0     
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosOtrosImpuestos]'))
DROP VIEW [dbo].V_ArticulosOtrosImpuestos 
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosOtrosImpuestos]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosOtrosImpuestos] AS
SELECT dbo.Articulos_impuestos.Codigo_impuesto, dbo.Impuestos.Descripcion AS Desc_impuesto, dbo.Impuestos.Tipo_impuesto, dbo.Impuestos_tipos.Descripcion AS Desc_tipo_impuesto, dbo.Articulos_impuestos.Codigo_articulo, dbo.Articulos.Descripcion AS Desc_articulo, 
             dbo.Articulos_impuestos.Unidades,dbo.Impuestos.Valor_impuesto,dbo.Impuestos.Repercutir_total_documento,dbo.Impuestos.Id_ecoembes,dbo.Impuestos.No_imprimir_en_documentos
FROM   dbo.Articulos INNER JOIN
             dbo.Articulos_impuestos ON dbo.Articulos.Codigo = dbo.Articulos_impuestos.Codigo_articulo INNER JOIN
             dbo.Impuestos ON dbo.Articulos_impuestos.Codigo_impuesto = dbo.Impuestos.Codigo INNER JOIN
             dbo.Impuestos_tipos ON dbo.Impuestos.Tipo_impuesto = dbo.Impuestos_tipos.Codigo
  
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsAportaciones]'))
DROP VIEW [dbo].V_MovsAportaciones
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsAportaciones]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MovsAportaciones] AS
SELECT MA.*, PP.NombreCompleto AS DescPersona, SS.Descripcion AS DescSeccion, CC.Descripcion AS DescCampaña, LR.Descripcion AS DescLiquidacionRetencion, TPP.Fecha_ultima_liq_intereses
FROM Movimientos_aportaciones AS MA
LEFT OUTER JOIN Personas AS TPP 
ON MA.Fk_persona = TPP.Codigo
LEFT OUTER JOIN Liquidaciones_retenciones AS LR 
ON MA.Fk_liquidaciones_retenciones = LR.Id 
LEFT OUTER JOIN Campañas AS CC
ON MA.Fk_Campaña = CC.Codigo 
LEFT OUTER JOIN Secciones AS SS
ON MA.Fk_seccion = SS.Codigo 
LEFT OUTER JOIN V_PersonasSoloNombre AS PP
ON MA.Fk_persona = PP.Codigo'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsAportacionesPendientes]'))
DROP VIEW [dbo].V_MovsAportacionesPendientes
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_MovsAportacionesPendientes]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_MovsAportacionesPendientes] AS
SELECT MA.*, PP.Fecha_ultima_liq_intereses, PP.Fk_cc_intereses
FROM Movimientos_aportaciones AS MA
INNER JOIN Personas AS PP
ON MA.Fk_persona = PP.Codigo
WHERE MA.Fecha_contabilizacion Is Null'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasShort]'))
DROP VIEW [dbo].FacturasVentaLineasShort
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FacturasVentaLineasShort]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FacturasVentaLineasShort] AS 
SELECT CONVERT(date, FV.Fecha_hora, 103) AS Fecha, FV.Codigo_cliente, PERS.NombreCompleto, FVL.Id, FVL.Serie, FV.Fk_centro, CEN.Descripcion AS Desc_centro, FVL.Numero, FVL.Linea, FVL.Articulo, FVL.Articulo_descripcion, 
                         FVL.No_inventariable, FVL.Articulo_kit, FVL.Linea_kit, FVL.Precio_tarifa, FVL.Precio_con_dtos_linea, FVL.Precio_coste_articulo, FVL.Precio_bruto, FVL.Precio_neto, FVL.Bultos, FVL.Cantidad, FVL.Importe_bruto, FVL.Imp_dto_pp, 
                         FVL.Imp_dto_esp, FVL.Tipo_calculo_dto1, FVL.Valor_dto1, FVL.Importe_dto1, FVL.Tipo_calculo_dto2, FVL.Aplicacion_dto2, FVL.Valor_dto2, FVL.Importe_dto2, FVL.Tipo_calculo_comisiones, FVL.Valor_comision1, 
                         FVL.Importe_comision1, FVL.Valor_comision2, FVL.Importe_comision2, FVL.Importe_base, FVL.Importe_base_incrementado, FVL.Valor_iva, FVL.Importe_iva, FVL.Valor_recargo, FVL.Importe_recargo, FVL.Valor_irpf, 
                         FVL.Importe_irpf, FVL.Importe_otros_impuestos, FVL.Importe_total_linea, FVL.Centro_analitico1, FVL.Centro_analitico2, FVL.Codigo_iva, FVL.Aplicacion_irpf, FVL.Tipo_doc_asociado, FVL.Serie_doc_asociado, 
                         FVL.Numero_doc_asociado, FVL.Id_doc_asociado, FVL.Cantidad_anulada, FVL.Anular_restante, FVL.Observaciones, FVL.Observaciones_internas, FVL.Fk_cuenta_contable, FVL.Orden, FVL.Peso_bruto, FVL.Peso_neto, 
                         FVL.Descripcion_dto1, FVL.Descripcion_dto2, FVL.Promocion, FVL.PVP, FVL.Importe_impuestos_incluidos, FVL.Importe_neto, FVL.Fk_expediente, FVL.Serie_expediente, FVL.Numero_expediente, FVL.Tarifa_iva_incluido, 
                         FVL.Num_pales, FVL.Num_pisos_pale, ART.Fk_codigo_arancelario, ART.Fk_color, ART.Grado_alcoholico, ART.Aux_codigo, ART.Fk_articulo_tipo, ART.Cantidad_por_bulto, ART.Fk_articulo_agrupacion, 
                         VDLA.Su_referencia_cabecera AS Su_referencia_doc_asociado, ART.Capacidad, VDLA.Fecha_hora AS Fecha_doc_asociado, ART.Codigo_secundario, ART.Fito_categoria, ART.Fito_registro, CASE WHEN ISNULL(ART.Fito_registro,
                          '''') <> '''' THEN 1 ELSE 0 END AS EsFitosanitario, ART.Desc_do, ART.Fk_do, EE.Serie AS Expediente_serie, ISNULL(EE.Numero, 0) AS Expediente_numero, ART.No_imprimir_caducidad_docs, ART.No_mostrar_añada_en_docs, 
                         FVL.Cantidad2, FVL.Precio2, FV.Representante1, FV.Representante2, ART.Descripcion AS Desc_articulo_original, FV.Forma_pago, ART.No_incluir_pesos_listados, FVL.Autoconsumo0_excedido1, 
                         ART.Fk_art_agrup_autoconsumo, CAST(FVL.Cantidad * ISNULL(ART.Capacidad, 0) AS decimal(15, 3)) AS Cantidad_litros, CAST(FVL.Cantidad * ISNULL(ART.Peso_neto, 0) AS decimal(15, 3)) AS Cantidad_Kg, FV.Id AS Id_cabecera, 
                         FVL.Id_validacion1, FVL.Id_validacion2, FV.Fk_campana, ART.Clasificacion_ECO, ART.Desc_clasificacion_Eco, FV.Su_referencia, ART.Peso_neto AS Articulo_peso_neto, ISNULL(PERS.Desc_pais, PERS.Fk_pais) AS Pais, 
                         PERS.Fis_municipio, PERS.Fis_provincia, PERS.Telefono_particular AS Persona_telefono1, PERS.Email1 AS Persona_email1, PERS.Tipo_identificacion AS Tipo_identificacion_cliente, 
                         PERS.Identificacion AS Identificacion_cliente, CASE WHEN FVL.Precio_tarifa IS NOT NULL THEN FVL.Precio_bruto - FVL.Precio_tarifa ELSE NULL END AS Dif_precio_tarifa, ART.Texto_alb_fac
FROM            dbo.Facturas_venta_lineas AS FVL LEFT OUTER JOIN
                         dbo.Facturas_venta AS FV ON FVL.Serie = FV.Serie AND FVL.Numero = FV.Numero LEFT OUTER JOIN
                         dbo.Centros AS CEN ON FV.Fk_centro = CEN.Codigo LEFT OUTER JOIN
                         dbo.V_Personas AS PERS ON PERS.Codigo = FV.Codigo_cliente INNER JOIN
                         dbo.V_ArticulosNombre AS ART ON FVL.Articulo = ART.Codigo LEFT OUTER JOIN
                         dbo.Expediente AS EE ON FVL.Fk_expediente = EE.Id LEFT OUTER JOIN
                         dbo.V_DocLinAsociados AS VDLA ON FVL.Id_doc_asociado = VDLA.Id'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasAlb]'))
DROP VIEW [dbo].V_CartaPortesFitosanitariosLineasAlb
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasAlb]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CartaPortesFitosanitariosLineasAlb] AS 
SELECT LL.Id, LL.Serie, LL.Numero, LL.Linea, LL.Fk_articulo, LL.Articulo_descripcion, LL.No_inventariable, LL.Fk_articulo_kit, LL.Linea_kit, LL.Bultos, LL.Cantidad, LL.Tipo_doc_asociado, LL.Serie_doc_asociado, LL.Numero_doc_asociado, LL.Id_doc_asociado, LL.Cantidad_anulada, 
LL.Orden, LL.Peso_bruto, LL.Peso_neto, LL.Cantidad_por_bulto, LL.Cantidad2
FROM Alb_venta_lineas AS LL
INNER JOIN Articulos AS AA
ON AA.Codigo = LL.Fk_articulo
WHERE ISNULL(AA.Reto_carta_portes,0) = 1
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasFac]'))
DROP VIEW [dbo].V_CartaPortesFitosanitariosLineasFac
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasFac]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CartaPortesFitosanitariosLineasFac] AS 
SELECT LL.Id, LL.Serie, LL.Numero, LL.Linea, LL.Articulo AS Fk_articulo, LL.Articulo_descripcion, LL.No_inventariable, LL.Articulo_kit AS Fk_articulo_kit, LL.Linea_kit, LL.Bultos, LL.Cantidad, LL.Tipo_doc_asociado, LL.Serie_doc_asociado, LL.Numero_doc_asociado, LL.Id_doc_asociado, LL.Cantidad_anulada, 
LL.Orden, LL.Peso_bruto, LL.Peso_neto, LL.Cantidad_por_bulto, LL.Cantidad2
FROM Facturas_venta_lineas AS LL
INNER JOIN Articulos AS AA
ON AA.Codigo = LL.Articulo
WHERE ISNULL(AA.Reto_carta_portes,0) = 1
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasFS]'))
DROP VIEW [dbo].V_CartaPortesFitosanitariosLineasFS
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosanitariosLineasFS]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CartaPortesFitosanitariosLineasFS] AS 
SELECT LL.Id, LL.Serie, LL.Numero, LL.Linea, LL.Fk_articulo AS Fk_articulo, LL.Articulo_descripcion, LL.No_inventariable, LL.Fk_Articulo_kit AS Fk_articulo_kit, LL.Linea_kit, LL.Bultos, LL.Cantidad, LL.Tipo_doc_asociado, LL.Serie_doc_asociado, LL.Numero_doc_asociado, LL.Id_doc_asociado, LL.Cantidad_anulada, 
LL.Orden, 0 as Peso_bruto, 0 as Peso_neto, 0 as Cantidad_por_bulto, 0 as Cantidad2
FROM Facturas_simpl_lineas AS LL
INNER JOIN Articulos AS AA
ON AA.Codigo = LL.Fk_articulo
WHERE ISNULL(AA.Reto_carta_portes,0) = 1
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosCabAlb]'))
DROP VIEW [dbo].V_CartaPortesFitosCabAlb
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosCabAlb]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CartaPortesFitosCabAlb] AS 
SELECT DOC.Serie, DOC.Numero, DOC.Fecha_hora, DOC.Matricula, DOC.Conductor_nombre, DOC.Conductor_dni, DOC.Codigo_transportista, PP.NombreCompleto AS Nombre_transportista
FROM Alb_venta AS DOC
LEFT OUTER JOIN V_Personas AS PP 
ON DOC.Codigo_transportista = PP.Codigo 
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosCabFS]'))
DROP VIEW [dbo].V_CartaPortesFitosCabFS
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_CartaPortesFitosCabFS]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_CartaPortesFitosCabFS] AS 
SELECT DOC.Serie, DOC.Numero, DOC.Fecha_hora, DOC.Matricula, DOC.Conductor_nombre, DOC.Conductor_dni, DOC.Codigo_transportista, PP.NombreCompleto AS Nombre_transportista
FROM Facturas_simpl_cabecera AS DOC
LEFT OUTER JOIN V_Personas AS PP 
ON DOC.Codigo_transportista = PP.Codigo  
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosMaquinas]'))
DROP VIEW [dbo].V_ArticulosMaquinas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosMaquinas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosMaquinas] AS 
SELECT dbo.Articulos_maquinas.Id, dbo.Articulos_maquinas.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Articulos_maquinas.Fk_maquina, dbo.Maquinas.Descripcion AS Desc_maquina, dbo.Articulos_maquinas.Produccion_por_hora,dbo.Articulos_maquinas.Num_personas_necesarias
FROM   dbo.Articulos INNER JOIN
             dbo.Articulos_maquinas ON dbo.Articulos.Codigo = dbo.Articulos_maquinas.Fk_articulo INNER JOIN
             dbo.Maquinas ON dbo.Articulos_maquinas.Fk_maquina = dbo.Maquinas.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasEmpresas]'))
DROP VIEW [dbo].V_PersonasEmpresas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_PersonasEmpresas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_PersonasEmpresas] AS 
SELECT        dbo.Personas_empresas.*, dbo.V_PersonasSoloNombre.NombreCompleto AS Desc_persona, dbo.Empresas.Descripcion AS Desc_empresa
FROM            dbo.Personas_empresas INNER JOIN
                         dbo.Empresas ON dbo.Personas_empresas.Fk_empresa = dbo.Empresas.Codigo INNER JOIN
                         dbo.V_PersonasSoloNombre ON dbo.Personas_empresas.Fk_persona = dbo.V_PersonasSoloNombre.Codigo
'
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosEmpresas]'))
DROP VIEW [dbo].V_ArticulosEmpresas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosEmpresas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosEmpresas] AS 
SELECT        dbo.Articulos_empresas.Fk_articulo, dbo.V_ArticulosSoloNombre.Descripcion AS Desc_articulo, dbo.Articulos_empresas.Fk_empresa, dbo.Empresas.Descripcion AS Desc_empresa, 
                         dbo.Articulos_empresas.Cuenta_contable_SAP, dbo.Articulos_empresas.Cebe_SAP, dbo.Articulos_empresas.Ceco_SAP, dbo.Empresas.Codigo_sociedad_SAP
FROM            dbo.Articulos_empresas LEFT JOIN
                         dbo.Empresas ON dbo.Articulos_empresas.Fk_empresa = dbo.Empresas.Codigo LEFT  JOIN
                         dbo.V_ArticulosSoloNombre ON dbo.Articulos_empresas.Fk_articulo = dbo.V_ArticulosSoloNombre.Codigo
'
GO

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosCostesConf]'))
DROP VIEW [dbo].V_ArticulosCostesConf
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_ArticulosCostesConf]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_ArticulosCostesConf] AS 
SELECT dbo.Articulos_costes_conf.Id, dbo.Articulos_costes_conf.Fk_articulo, dbo.Articulos.Descripcion AS Desc_articulo, dbo.Articulos_costes_conf.Fk_centro, dbo.Centros.Descripcion AS Desc_centro, dbo.Articulos_costes_conf.Fecha_desde, dbo.Articulos_costes_conf.Coste_estandard, dbo.Articulos_costes_conf.Coste_optimo, dbo.Articulos_costes_conf.Pc_desviacion_alerta
FROM dbo.Articulos_costes_conf INNER JOIN
                    dbo.Articulos ON dbo.Articulos_costes_conf.Fk_articulo = dbo.Articulos.Codigo INNER JOIN
                    dbo.Centros ON dbo.Articulos_costes_conf.Fk_centro = dbo.Centros.Codigo
'
GO
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Visitas]'))
DROP VIEW [dbo].V_Visitas
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_Visitas]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_Visitas] AS 
SELECT        dbo.Visitas.*, dbo.Visitantes.Nombre, dbo.Visitantes.Empresa, dbo.Visitantes.Identificacion, dbo.Visitantes.Telefono
FROM            dbo.Visitas INNER JOIN
                         dbo.Visitantes ON dbo.Visitas.Fk_visitante = dbo.Visitantes.Id
'
