diff --git a/Dashboards MARMOTECH/Análisis de Ordenes (Ana y Maria).pbix b/Dashboards MARMOTECH/Análisis de Ordenes (Ana y Maria).pbix new file mode 100644 index 0000000..f779942 Binary files /dev/null and b/Dashboards MARMOTECH/Análisis de Ordenes (Ana y Maria).pbix differ diff --git a/Dashboards MARMOTECH/Análisis de Ordenes - nuevo.pbix b/Dashboards MARMOTECH/Análisis de Ordenes - nuevo.pbix new file mode 100644 index 0000000..5083ee7 Binary files /dev/null and b/Dashboards MARMOTECH/Análisis de Ordenes - nuevo.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas CDELACRUZ.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas CDELACRUZ.pbix new file mode 100644 index 0000000..fc50940 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas CDELACRUZ.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JEFRANCISCO.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JEFRANCISCO.pbix new file mode 100644 index 0000000..5711d2a Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JEFRANCISCO.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JISA.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JISA.pbix new file mode 100644 index 0000000..22dd116 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas JISA.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MHURTADO.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MHURTADO.pbix new file mode 100644 index 0000000..8dbeac6 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MHURTADO.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MPUIG.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MPUIG.pbix new file mode 100644 index 0000000..1f3f5a5 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MPUIG.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MVARGAS.pbix b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MVARGAS.pbix new file mode 100644 index 0000000..e3c8718 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion Por EquipoVentas Dashboards individuales/Cotizacion por EquipoVentas MVARGAS.pbix differ diff --git a/Dashboards MARMOTECH/Cotizacion por EquipoVentas.pbix b/Dashboards MARMOTECH/Cotizacion por EquipoVentas.pbix new file mode 100644 index 0000000..76ad654 Binary files /dev/null and b/Dashboards MARMOTECH/Cotizacion por EquipoVentas.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Estado_resultado.pbix b/Dashboards MARMOTECH/Dashboard-Estado_resultado.pbix new file mode 100644 index 0000000..f4462f3 Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Estado_resultado.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Produccion-caribbean.pbix b/Dashboards MARMOTECH/Dashboard-Produccion-caribbean.pbix new file mode 100644 index 0000000..20f12a2 Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Produccion-caribbean.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Produccion-marmotecnologia.pbix b/Dashboards MARMOTECH/Dashboard-Produccion-marmotecnologia.pbix new file mode 100644 index 0000000..9d60637 Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Produccion-marmotecnologia.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Produccion.BACKUP-20260727-090301.pbix b/Dashboards MARMOTECH/Dashboard-Produccion.BACKUP-20260727-090301.pbix new file mode 100644 index 0000000..da720b7 Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Produccion.BACKUP-20260727-090301.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Produccion.pbix b/Dashboards MARMOTECH/Dashboard-Produccion.pbix new file mode 100644 index 0000000..4f81337 Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Produccion.pbix differ diff --git a/Dashboards MARMOTECH/Dashboard-Producción-MarmotechBI.pbix b/Dashboards MARMOTECH/Dashboard-Producción-MarmotechBI.pbix new file mode 100644 index 0000000..eaaf61e Binary files /dev/null and b/Dashboards MARMOTECH/Dashboard-Producción-MarmotechBI.pbix differ diff --git a/Dashboards MARMOTECH/DashbordBSC.pbix b/Dashboards MARMOTECH/DashbordBSC.pbix new file mode 100644 index 0000000..0b45230 Binary files /dev/null and b/Dashboards MARMOTECH/DashbordBSC.pbix differ diff --git a/Dashboards MARMOTECH/Documentacion_MarmotechBI.docx b/Dashboards MARMOTECH/Documentacion_MarmotechBI.docx new file mode 100644 index 0000000..1bb51dd Binary files /dev/null and b/Dashboards MARMOTECH/Documentacion_MarmotechBI.docx differ diff --git a/Dashboards MARMOTECH/Documentacion_MarmotechBI.md b/Dashboards MARMOTECH/Documentacion_MarmotechBI.md new file mode 100644 index 0000000..5040674 --- /dev/null +++ b/Dashboards MARMOTECH/Documentacion_MarmotechBI.md @@ -0,0 +1,328 @@ +# Documentación de la base de datos **MarmotechBI** +### Guía para el desarrollo de dashboards en Power BI + +| | | +|---|---| +| **Servidor** | `192.168.40.8` (SQL Server 2016) | +| **Base de datos** | `MarmotechBI` | +| **Origen de los datos** | Se actualiza en vivo desde los sistemas operativos de la empresa | +| **Naturaleza** | Capa semántica de **vistas** (54 vistas + 2 tablas). No almacena datos propios salvo 2 tablas de carga manual | +| **Propósito** | Esquema estrella para que usuarios de negocio armen sus propios dashboards con nombres de negocio | +| **Fecha de este documento** | 2026-08-25 | + +> **Idea clave:** casi todo en `MarmotechBI` es una **vista** que presenta la información con nombres de negocio (`vwFactVentas`, `vwDimProducto`, etc.). Como son vistas, **no existen llaves foráneas físicas**: las relaciones son *lógicas* y hay que **crearlas manualmente en Power BI** (ver la sección [Relaciones para Power BI](#relaciones-recomendadas-en-power-bi)). + +--- + +## 1. Cómo conectarse desde Power BI + +1. **Obtener datos → SQL Server**. +2. Servidor: `192.168.40.8`  ·  Base de datos: `MarmotechBI`. +3. Modo: **Import** (recomendado para tableros publicados) o **DirectQuery** si se necesita tiempo real. +4. Seleccionar las vistas del área que se va a analizar (ej. `vwFactVentas` + sus dimensiones `vwDim*`). +5. En la vista **Modelo**, crear las relaciones según la sección 6. + +> **Permisos:** el acceso es por login de Windows con rol de lectura (`db_datareader`) sobre `MarmotechBI`. Solicitarlo a Tecnología con el usuario de dominio. + +--- + +## 2. Convenciones de nombres + +| Prefijo | Significado | Rol en el modelo | +|---|---|---| +| `vwDim…` | **Dimensión** — describe (quién, qué, dónde, cuándo) | Tabla de "look up" | +| `vwFact…` / `VWFACT…` | **Hecho** — mide (cuánto, cuántos) | Tabla central de valores | +| `vwBridge…` | **Puente** — resuelve relaciones muchos-a-muchos | Entre dimensiones | +| `VW_DIM_…` / `VW_HECHOS_…` | Esquema del **Balanced Scorecard / Indicadores** (área independiente) | Dim / Hecho de gestión | +| Sin prefijo (`ventas_facturas`, `estadoResultado`, `item_conteo_ciclico`…) | **Vistas planas de reporte** — ya vienen denormalizadas | Se usan solas, no requieren relaciones | +| `…_usuario` (`_cdelacruz`, `_jisa`, `_mpuig`…) | **Copias personales** filtradas por vendedor/supervisor | Uso individual, no para el modelo general | + +**Claves compuestas** — se repiten en casi todo el modelo: + +- **Producto** = `cod_n` + `cod_grupo` + `cod_tipo` + `cod_sec` (4 columnas). En `vwDimProducto` existe también `producto_id` que las concatena como texto (`cod_n-cod_grupo-cod_tipo-cod_sec`). +- **Cliente** = `tipo_cliente` + `sec_cliente` (2 columnas). + +--- + +## 3. Áreas temáticas (subject areas) + +| # | Área | Hecho(s) principal(es) | Dimensiones que usa | +|---|---|---|---| +| A | **Comercial / Ventas** | `vwFactVentas`, `VWFACTCOTIZACIONES`, `vwfactPipeline`, `vwFactPresupuesto` | Fecha, Cliente, Vendedor, EquipoVentas, Producto, Categoría, Provincia, Zona, TipoVenta | +| B | **Cuentas por Cobrar** | `vwFactCxC_Base`, `vwFactCxC_Real` | Cliente, Vendedor, TipoVenta | +| C | **Despacho / Pendientes** | `vwOrdenesPendientesDespacho`, `vwReqCotizaciones`, `vwProductoDisponible` | Cliente, Vendedor, Producto | +| D | **Producción** | `vwProduccion_pub` | DepartamentoProducción, Producto | +| E | **Contabilidad / Finanzas** | `vwFactContabilidad`, `estadoResultado` | (Departamento, Cuenta — internas) | +| F | **Inventario** | `vwRotacionInventario_pub`, `vwRotacionInventarioPorBodega_pub`, `item_conteo_ciclico` | (planas, autocontenidas) | +| G | **Indicadores / Balanced Scorecard** | `VW_HECHOS_INDICADORES`, `VW_HECHOS_DOWNTIME`, `VW_HECHOS_TICKETS` | Calendario, Departamentos, Indicadores, Perspectivas, Procesos | +| H | **Datos externos** (tabla física) | `FactMercadoEdificaciones` | (independiente) | + +--- + +## 4. Diccionario de dimensiones (área comercial) + +### `vwDimFecha` — Calendario (grano mensual) +Grano = mes. +| Columna | Tipo | Descripción | +|---|---|---| +| `ano` | smallint | Año | +| `numeroMes` | smallint | Número de mes (1-12) — **llave para ordenar** | +| `mes` | char(10) | Nombre del mes | +| `AnoMes` | varchar(7) | `AAAA-MM` | + +### `vwDimCliente` — Clientes  · PK = `tipo_cliente` + `sec_cliente` +| Columna | Tipo | Descripción | +|---|---|---| +| `tipo_cliente` | smallint | Tipo/segmento de cliente (parte 1 de la llave) | +| `sec_cliente` | int | Secuencia del cliente (parte 2 de la llave) | +| `nombre` | char(100) | Razón social | +| `num_rnc` | char(25) | RNC/Cédula | +| `direccion` | varchar(173) | Dirección | + +### `vwDimVendedor` — Vendedores  · PK = `vendedor_id` +| Columna | Tipo | Descripción | +|---|---|---| +| `vendedor_id` | smallint | Código de vendedor (corresponde al nº de empleado) | +| `vendedor` | varchar(31) | Nombre y apellido | +| `equipo_id` | smallint | **FK → `vwDimEquipoVentas.equipo_id`** | + +### `vwDimEquipoVentas` — Equipos de venta  · PK = `equipo_id` +| Columna | Tipo | Descripción | +|---|---|---| +| `equipo_id` | smallint | Código del equipo/departamento comercial | +| `equipoVentas` | nchar(200) | Nombre del equipo | + +### `vwDimProducto` — Productos  · PK = `cod_n`+`cod_grupo`+`cod_tipo`+`cod_sec` +**Es la dimensión central de producto de todo el modelo.** +| Columna | Tipo | Descripción | +|---|---|---| +| `cod_n`, `cod_grupo`, `cod_tipo`, `cod_sec` | int | Llave compuesta del producto | +| `producto_id` | varchar(43) | Llave concatenada (`cod_n-cod_grupo-cod_tipo-cod_sec`) — **usar esta para relacionar en Power BI** | +| `descripcion_producto` | varchar(180) | Nombre del producto | +| `unidad_med` | char(4) | Unidad de medida | +| `clase` / `grupo` / `tipo` | char/nvarchar | Jerarquía de clasificación | +| `origen` | char(20) | Origen (nacional/importado/producción) | +| `categoria_titulo` | varchar(100) | Categoría comercial | +| `GerenteMarcas` | varchar(31) | Gerente de marca responsable | + +### `vwDimCategoria` — Categorías comerciales  · PK = `cod_categoria` +| Columna | Tipo | Descripción | +|---|---|---| +| `cod_categoria` | smallint | Código de categoría | +| `categoria` | varchar(100) | Nombre de la categoría | + +### `vwBridgeProductoCategoria` — Puente Producto ↔ Categoría +Resuelve que un producto (por `cod_n`+`cod_grupo`+`cod_tipo`) pertenece a una categoría. +| Columna | Tipo | Descripción | +|---|---|---| +| `cod_n`, `cod_grupo`, `cod_tipo` | smallint | Parte de la llave del producto | +| `cod_categoria` | smallint | **FK → `vwDimCategoria.cod_categoria`** | + +### `vwDimProvincia` — Provincias  · PK = `cod_provincia` +| Columna | Tipo | Descripción | +|---|---|---| +| `cod_provincia` | smallint | Código de provincia | +| `nombre_provincia` | char(30) | Nombre | +| `pais` | nchar(20) | País | +| `idZona` | smallint | **FK → `vwDimZona.cod_zona`** | + +### `vwDimZona` — Zonas geográficas  · PK = `cod_zona` +| Columna | Tipo | Descripción | +|---|---|---| +| `cod_zona` | smallint | Código de zona | +| `zonaGeografica` | char(30) | Nombre de la zona | + +### `vwDimTipoVenta` — Tipo de venta / Moneda  · PK = `ventas` +Contiene la **tasa de cambio** usada para convertir a RD$. +| Columna | Tipo | Descripción | +|---|---|---| +| `ventas` | smallint | Código de tipo de venta | +| `descripcion` | nvarchar(80) | Descripción | +| `simbolo` | nvarchar(40) | Símbolo de moneda | +| `descripcion_moneda` | nchar(40) | Moneda | +| `tasa` | decimal | Tasa de cambio a RD$ | +| `tipo_operacion` | varchar(11) | `LOCAL_RD` / `LOCAL_USD` / `EXPORTACION` / `EURO` / `OTRO` | + +### `vwDimDepartamentoProduccion` — Departamentos de producción  · PK = `codigodepto` +| Columna | Tipo | Descripción | +|---|---|---| +| `codigodepto` | smallint | Código de departamento | +| `nombre_depto` | char(30) | Nombre | +| `tipo_departamento` | nchar(40) | Tipo | +| `proceso_agrupado` | varchar(13) | Agrupación de proceso | + +--- + +## 5. Diccionario de hechos (measures) + +### `vwFactVentas` — Ventas facturadas  · grano: **línea de factura** +Una fila por cada línea de factura. Solo incluye documentos activos (no anulados). +| Columna | Tipo | Rol | Descripción | +|---|---|---|---| +| `factura`, `sucid` | int | Grano | Nº de factura + sucursal | +| `fecha`, `ano`, `mes` | date/int | → Fecha | Fecha de factura | +| `tipo_cliente`, `sec_cliente` | — | → Cliente | Llave del cliente | +| `vendedor` | smallint | → Vendedor | `sec_vend` (código del vendedor) | +| `ventas` | — | → TipoVenta | Código de moneda/tipo venta | +| `tipoVenta`, `simbolo`, `tasa` | — | Atributo | Descripción de moneda y tasa | +| `cod_provincia` | — | → Provincia | Provincia del cliente | +| `cotizacion_no` | int | → Cotización | Cotización que originó la venta | +| `cod_n`,`cod_grupo`,`cod_tipo`,`cod_sec` | — | → Producto | Llave del producto | +| `cantidad` | numeric | Medida | Cantidad vendida | +| `precio` | numeric | Medida | Precio unitario | +| `porc_desc` | numeric | Medida | % de descuento | +| `valor_bruto` | numeric | Medida | cantidad × precio | +| `valor_descuento` | numeric | Medida | Monto del descuento | +| `neto` | numeric | Medida | Neto en moneda original | +| **`neto_rd`** | numeric | Medida | **Neto convertido a RD$ (neto × tasa)** — usar para totales | + +### `VWFACTCOTIZACIONES` — Cotizaciones  · grano: línea de cotización +Llaves: `cotizacion_no`, `tipo_cliente`+`sec_cliente`, `vendedor_id`, `cod_zona`, `cod_provincia`, `cod_n…cod_sec`. +Medidas: `cantidad`, `precio`, `porc_desc`, `neto_rd`, `monto_bruto`, `monto_descuento`, `estado`. + +### `vwfactPipeline` — Embudo comercial (cotizado → vendido → despachado) · grano: cotización +Medidas: `cotizado_rd`, `vendido_rd`, `pendiente_venta_rd`, `conversion_pct`, `despachado_rd`, `pendiente_despacho_rd`. +Llaves: `cotizacion_no`, `tipo_cliente`+`sec_cliente`, `vendedor`, `cod_zona`, `cod_provincia`, `ventas`. + +### `vwFactPresupuesto` — Presupuesto/meta de ventas +Llaves: `ano`,`mes`, `vendedor`, `ventas`, `cod_n…cod_sec`, `cod_categoria`. +Medidas: `cantidad`, `valor`, `valor_rd`. + +### `vwFactCxC_Base` — Movimientos de Cuentas por Cobrar +Llaves: `tipo_cliente`+`sec_cliente`, `vendedor`, `num_doc`, `tipo_doc`, `ventas`. +Medidas: `monto`, `monto_rd`, `monto_signado`, `monto_signado_rd`, `dias_vencimiento`, `tipo_movimiento`. + +### `vwFactCxC_Real` — Balance vigente de CxC por factura +Llaves: `tipo_cliente`+`sec_cliente`, `vendedor`, `factura`, `ventas`. +Medidas: `balance_rd`, `dias_vencimiento`. + +### `vwProductoDisponible` — Disponibilidad de inventario (snapshot) +Disponibilidad calculada con la misma lógica del sistema operativo de inventario. Llave: `producto_id` / `cod_n…cod_sec`. +Medidas: `existencia`, `ordenes_abiertas`, `despachado`, `reservado`, `transito`, **`disponible`** (= existencia − (ordenes_abiertas − despachado) − reservado). + +### `vwOrdenesPendientesDespacho` — Órdenes pendientes de despacho +Llaves: `cotizacion_no`, `tipo_cliente`+`sec_cliente`, `vendedor_id`, `cod_n…cod_sec`. +Medidas: `cantidadCotizada`, `cantidadDespachada`, `cantidadPendiente`, `valorCotizadoLinea`. + +### `vwReqCotizaciones` — Requisiciones vs. cotizaciones +Medidas: `cantidadCotizada`, `cantidadDespachada`, `cantidadPendiente`, `valorRequisicion`, `valorPendienteDespachar`. + +### `vwProduccion_pub` — Producción diaria  · grano: producto/día +Llaves: `codigodepto` → DepartamentoProducción, `cod_n…cod_sec` → Producto. +Medidas: `unidades`, `cantidad`, `existencia`, `cantidadVendida`. + +### `vwFactContabilidad` — Movimientos contables +Llaves: `cuenta`, `codigodepartamento`, `ano`, `mes`, `tipo`, `banco`. +Medidas: `debito`, `credito`, `balance`, `presupuesto`. Incluye auditoría (`usuariocreador`, `fechacreacion`…). + +--- + +## 6. Relaciones recomendadas en Power BI + +> Como son vistas, **Power BI no detecta relaciones automáticamente**. Créalas a mano en la vista *Modelo*, con cardinalidad **Dimensión (1) → Hecho (\*)** y filtro en **dirección única**. + +### 6.1 Área comercial (estrella) + +| Dimensión (lado 1) | Columna | Hecho (lado \*) | Columna | +|---|---|---|---| +| `vwDimFecha` | `AnoMes` | `vwFactVentas` / cotizaciones / pipeline | `AnoMes` derivado de `ano`+`mes` | +| `vwDimCliente` | *clave compuesta* | `vwFactVentas`, `VWFACTCOTIZACIONES`, CxC | `tipo_cliente` + `sec_cliente` | +| `vwDimVendedor` | `vendedor_id` | `vwFactVentas` (`vendedor`), cotizaciones (`vendedor_id`) | vendedor | +| `vwDimEquipoVentas` | `equipo_id` | `vwDimVendedor` | `equipo_id` | +| `vwDimProducto` | `producto_id` | hechos con `cod_n…cod_sec` | *clave compuesta* | +| `vwDimCategoria` | `cod_categoria` | `vwBridgeProductoCategoria` | `cod_categoria` | +| `vwBridgeProductoCategoria` | `cod_n`+`cod_grupo`+`cod_tipo` | `vwDimProducto` | mismas columnas | +| `vwDimProvincia` | `cod_provincia` | `vwFactVentas`, cotizaciones, pipeline | `cod_provincia` | +| `vwDimZona` | `cod_zona` | `vwDimProvincia` | `idZona` | +| `vwDimTipoVenta` | `ventas` | hechos con `ventas` | `ventas` | + +### 6.2 Claves compuestas — cómo resolverlas + +Power BI **solo permite relaciones por UNA columna**. Para `Cliente` y `Producto` (llaves de 2 y 4 columnas) crea una **columna llave concatenada** con la misma fórmula en la dimensión y en el hecho: + +``` +// Cliente — en vwDimCliente y en cada hecho: +ClienteKey = FORMAT([tipo_cliente],"00") & "-" & FORMAT([sec_cliente],"0000000") + +// Producto — usar el producto_id que ya trae vwDimProducto; en los hechos: +ProductoKey = FORMAT([cod_n],"0") & "-" & FORMAT([cod_grupo],"0") & "-" & FORMAT([cod_tipo],"0") & "-" & FORMAT([cod_sec],"0") +``` +Luego relaciona por `ClienteKey` / `ProductoKey`. + +### 6.3 Fechas +Los hechos traen `ano` + `mes`/`numeroMes` (grano mensual). Recomendado: +- Crear una **tabla de calendario** en Power BI (`CALENDAR`/`CALENDARAUTO`) y una columna `AnoMes` en cada hecho para relacionar; **o** +- Reutilizar `VW_DIM_CALENDARIO` (grano diario) como calendario compartido cuando se cruce con Indicadores. + +### 6.4 Moneda +Los valores `*_rd` **ya vienen convertidos a RD$** usando la `tasa` de `vwDimTipoVenta`. Para totales monetarios usar siempre las columnas `neto_rd`, `monto_rd`, `valor_rd`, `balance_rd`. + +--- + +## 7. Área de Indicadores / Balanced Scorecard (esquema `VW_*`) + +Modelo estrella independiente para el tablero de gestión (indicadores, tiempos de caída, tickets de soporte). + +**Dimensiones** +| Vista | PK | Descripción | +|---|---|---| +| `VW_DIM_CALENDARIO` | `Fecha` | Calendario diario (Año, Mes, Trimestre, Semana, EsFinDeSemana) | +| `VW_DIM_DEPARTAMENTOS` | `IdDepartamento` | Departamentos (Nombre, Tipo, Responsable, Activo) | +| `VW_DIM_INDICADORES` | `IdIndicador` | Indicadores (Meta, Peso, Frecuencia, UnidadMedida; FK `IdDepartamento`) | +| `VW_DIM_PERSPECTIVAS` | `IdPerspectiva` | Perspectivas del BSC (Financiera, Cliente, Procesos, Aprendizaje) | +| `VW_DIM_PROCESOS` | `IdProceso` | Procesos (Área, Criticidad, Tipo; FK `IdDepartamento`) | + +**Hechos** +| Vista | Llaves | Medidas | +|---|---|---| +| `VW_HECHOS_INDICADORES` | `IdIndicador`, `Fecha`, `IdPerspectiva` | `ValorReal`, `ValorMeta`, `Cumplimiento`, `Score` | +| `VW_HECHOS_DOWNTIME` | `Fecha`, `IdDepartamento`, `IdProceso` | `HorasCaidas`, `ImpactoEstimado` | +| `VW_HECHOS_TICKETS` | `Fecha`, `IdProceso`, `IdDepartamento` | `HorasResolucion`, conteos por `status`/`priority`/`category` | +| `VW_SCORE_DEPARTAMENTO` | (derivada) | `ScorePromedio` por Departamento/Año/Mes | + +**Relaciones** +- `VW_DIM_INDICADORES[IdIndicador]` → `VW_HECHOS_INDICADORES[IdIndicador]` +- `VW_DIM_PERSPECTIVAS[IdPerspectiva]` → `VW_HECHOS_INDICADORES[IdPerspectiva]` +- `VW_DIM_CALENDARIO[Fecha]` → `VW_HECHOS_INDICADORES / DOWNTIME / TICKETS[Fecha]` +- `VW_DIM_DEPARTAMENTOS[IdDepartamento]` → `VW_DIM_INDICADORES / VW_DIM_PROCESOS / hechos[IdDepartamento]` +- `VW_DIM_PROCESOS[IdProceso]` → `VW_HECHOS_DOWNTIME / VW_HECHOS_TICKETS[IdProceso]` + +--- + +## 8. Tablas físicas (carga manual) + +| Tabla | Contenido | Notas | +|---|---|---| +| `FactMercadoEdificaciones` | Datos de mercado de la construcción (municipio, barrio, tipo de destino, m² construidos, unidades, precio/m², situación del mercado, fuente) | Se carga con datos externos (ej. estadísticas de edificaciones) | + +--- + +## 9. Vistas planas y personales (uso directo, fuera del modelo estrella) + +Estas vistas **ya vienen denormalizadas** (traen las descripciones incorporadas): se conectan solas, sin relaciones. + +| Vista | Uso | +|---|---| +| `ventas_facturas` | Vista completa de ventas con cliente, vendedor, producto, zona, moneda ya resueltos — ideal para una tabla dinámica rápida | +| `vwRotacionInventario_pub` / `vwRotacionInventarioPorBodega_pub` | Rotación de inventario (global / por bodega): cantidad vendida, valor ventas, `rotacion` | +| `item_conteo_ciclico` | Programación de conteo cíclico por clase ABC | +| `estadoResultado` | Estado de resultados por mes (`aplica_a`, `Balance`) | +| `vwProduccion_pub` | Producción diaria en formato plano | +| `analisisCotizaciones`, `analisisRequisiciones` | Análisis de cotizaciones y requisiciones (unidades/valores cotizados vs. despachados) | + +**Copias personales (filtradas por vendedor/supervisor)** — *no usar para el modelo corporativo*: +`analisisCotizaciones_cdelacruz`, `_jefrancisco`, `_jisa`, `_mhurtado`, `_mpuig`, `_mvargas`; +`analisisRequisiciones_cdelacruz`, `_jefrancisco`, `_JISA`, `_mhurtado`, `_mpuig`; +`vwreportesfactura_cdelacruz`, `_jisa`, `_mpuig`; +`vwDimProductoMariaAna` (copia de `vwDimProducto`). + +--- + +## 10. Buenas prácticas para el equipo de dashboards + +1. **Un modelo por área** — no mezclar el esquema comercial con el de Indicadores en un mismo reporte salvo que se comparta el calendario. +2. **Usar siempre las columnas `*_rd`** para importes; la conversión de moneda ya está hecha. +3. **Dimensión en el lado 1, hecho en el lado \*** y filtro cruzado **unidireccional** (evita ambigüedad). +4. **Crear medidas DAX** (SUM, DISTINCTCOUNT…) en lugar de arrastrar columnas numéricas directamente. +5. **No apuntar a las vistas `_usuario`** para tableros compartidos; usar la vista base y filtrar con seguridad a nivel de fila (RLS) si se requiere segmentar por vendedor. +6. Ante dudas sobre el significado de una columna, consultar a Tecnología. diff --git a/Dashboards MARMOTECH/Informe de ventas anuales 2.pbix b/Dashboards MARMOTECH/Informe de ventas anuales 2.pbix new file mode 100644 index 0000000..026e271 Binary files /dev/null and b/Dashboards MARMOTECH/Informe de ventas anuales 2.pbix differ diff --git a/Dashboards MARMOTECH/Informe de ventas anuales.pbix b/Dashboards MARMOTECH/Informe de ventas anuales.pbix new file mode 100644 index 0000000..281195b Binary files /dev/null and b/Dashboards MARMOTECH/Informe de ventas anuales.pbix differ diff --git a/Dashboards MARMOTECH/Ordenes - Ana y Maria.pbix b/Dashboards MARMOTECH/Ordenes - Ana y Maria.pbix new file mode 100644 index 0000000..5b4268f Binary files /dev/null and b/Dashboards MARMOTECH/Ordenes - Ana y Maria.pbix differ diff --git a/Dashboards MARMOTECH/Ordenes - Ana y Maria2.pbix b/Dashboards MARMOTECH/Ordenes - Ana y Maria2.pbix new file mode 100644 index 0000000..a2f3138 Binary files /dev/null and b/Dashboards MARMOTECH/Ordenes - Ana y Maria2.pbix differ diff --git a/Dashboards MARMOTECH/Reporte Encuesta LABORAL - MEJORADO.pbix b/Dashboards MARMOTECH/Reporte Encuesta LABORAL - MEJORADO.pbix new file mode 100644 index 0000000..939adb7 Binary files /dev/null and b/Dashboards MARMOTECH/Reporte Encuesta LABORAL - MEJORADO.pbix differ diff --git a/Dashboards MARMOTECH/Reporte Encuesta LABORAL.pbix b/Dashboards MARMOTECH/Reporte Encuesta LABORAL.pbix new file mode 100644 index 0000000..0f9bd4e Binary files /dev/null and b/Dashboards MARMOTECH/Reporte Encuesta LABORAL.pbix differ diff --git a/Dashboards MARMOTECH/Reporte Facturas - JISA.pbix b/Dashboards MARMOTECH/Reporte Facturas - JISA.pbix new file mode 100644 index 0000000..e2abd9c Binary files /dev/null and b/Dashboards MARMOTECH/Reporte Facturas - JISA.pbix differ diff --git a/Dashboards MARMOTECH/Rotación de inventario-marmotecnologia.pbix b/Dashboards MARMOTECH/Rotación de inventario-marmotecnologia.pbix new file mode 100644 index 0000000..7616b87 Binary files /dev/null and b/Dashboards MARMOTECH/Rotación de inventario-marmotecnologia.pbix differ diff --git a/Dashboards MARMOTECH/Rotación de inventario.pbix b/Dashboards MARMOTECH/Rotación de inventario.pbix new file mode 100644 index 0000000..2e95ccb Binary files /dev/null and b/Dashboards MARMOTECH/Rotación de inventario.pbix differ diff --git a/Dashboards MARMOTECH/Satisfacción de los clientes.pbix b/Dashboards MARMOTECH/Satisfacción de los clientes.pbix new file mode 100644 index 0000000..7d5056b Binary files /dev/null and b/Dashboards MARMOTECH/Satisfacción de los clientes.pbix differ diff --git a/Dashboards MARMOTECH/conteo_ciclico.pbix b/Dashboards MARMOTECH/conteo_ciclico.pbix new file mode 100644 index 0000000..3eede7a Binary files /dev/null and b/Dashboards MARMOTECH/conteo_ciclico.pbix differ diff --git a/Dashboards MARMOTECH/tabla_con_imagenes.pbix b/Dashboards MARMOTECH/tabla_con_imagenes.pbix new file mode 100644 index 0000000..e5c6c12 Binary files /dev/null and b/Dashboards MARMOTECH/tabla_con_imagenes.pbix differ