# API — Datos de Cocinas Modulares (MARMOTECH) Servicio REST para consultar, por período, las ventas, gastos y consumo de insumos de las cocinas modulares. --- ## Conexión | | | |---|---| | **URL** | `https://ws.marmotech.com.do/gas/ws/r/restserver` | | **Método** | `POST` | | **Header** | `Content-Type: dbsync/json` | | **Header** | `DBSync-Client: mbs` | > Ambos headers son **obligatorios**. Si `DBSync-Client` no es exactamente `mbs` > o el `Content-Type` no empieza con `dbsync/json`, el servidor responde `400 Bad request`. --- ## Cuerpo del request (body) El body es un JSON con dos campos: `oper` y `data`. **Importante:** `data` NO es un objeto — es un **string** que contiene otro JSON (por eso sus comillas van escapadas con `\`). ```json { "oper": "datos_cocinas", "data": "{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}" } ``` ### Parámetros dentro de `data` | Campo | Tipo | Descripción | |---|---|---| | `usuario` | string | Usuario de base de datos para la conexión. | | `clave` | string | Clave del usuario. | | `fechaCorte` | string `YYYY-MM-DD` | Cualquier fecha dentro del **mes de producción** a consultar. El servicio toma el año/mes de esta fecha para calcular el rango (`fecha1`–`fecha2`). | --- ## Ejemplos por herramienta ### curl — Linux / Mac / Git Bash ```bash curl -i -X POST "https://ws.marmotech.com.do/gas/ws/r/restserver" \ -H "Content-Type: dbsync/json" \ -H "DBSync-Client: mbs" \ -d '{"oper":"datos_cocinas","data":"{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"}' ``` ### curl — Windows CMD (cmd.exe) ```bat curl.exe -i -X POST "https://ws.marmotech.com.do/gas/ws/r/restserver" -H "Content-Type: dbsync/json" -H "DBSync-Client: mbs" -d "{\"oper\":\"datos_cocinas\",\"data\":\"{\\\"usuario\\\":\\\"conecta\\\",\\\"clave\\\":\\\"conecta\\\",\\\"fechaCorte\\\":\\\"2026-07-01\\\"}\"}" ``` ### Windows PowerShell (recomendado en Windows) PowerShell maltrata las comillas al pasarlas a `curl.exe`; usa `Invoke-RestMethod`: ```powershell $body = @' {"oper":"datos_cocinas","data":"{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"} '@ Invoke-RestMethod -Uri "https://ws.marmotech.com.do/gas/ws/r/restserver" ` -Method Post -ContentType "dbsync/json" ` -Headers @{ "DBSync-Client" = "mbs" } -Body $body ``` ### Postman 1. Método **POST**, URL `https://ws.marmotech.com.do/gas/ws/r/restserver` 2. Pestaña **Headers**: agregar `Content-Type: dbsync/json` y `DBSync-Client: mbs` 3. Pestaña **Body** → **raw** → pegar el JSON de la sección *Cuerpo del request*. --- ## Respuesta `HTTP/1.1 200 OK` con `Content-Type: dbsync/json`. El cuerpo es un JSON: ```json { "ventasCantidad": 99, "cantidadInsumos": 3568.904, "ventasVAlor": 2347966.48, "gastos": 128799.65, "valorIsumos": 794649.12, "cod_msg": 200, "descripcion": "OPERACION EXITOSA" } ``` | Campo | Descripción | |---|---| | `ventasCantidad` | Unidades vendidas de cocinas modulares en el período. | | `ventasVAlor` | Ventas netas (bruto − descuento) de las facturas de cocinas. | | `gastos` | Gastos del departamento de Ensamble Modulares (6118) en el período. | | `cantidadInsumos` | Cantidad de insumos consumidos en el período. | | `valorIsumos` | Valor de esos insumos al costo estándar. | | `cod_msg` | `200` = OK. `400` = error (ver `descripcion`). | | `descripcion` | Mensaje del resultado. Ej.: `OPERACION EXITOSA`, `USUARIO NO VALIDO`. | ### Errores comunes | Situación | Respuesta | |---|---| | Usuario/clave de BD inválidos | `cod_msg: 400`, `descripcion: "USUARIO NO VALIDO ..."` | | Header `DBSync-Client` o `Content-Type` incorrecto | `HTTP 400 Bad request` | | `data` con JSON mal escapado | Error de parseo JSON (`-8109`) — revisar el escape de comillas |