paperclip-plugin-autopilot-ops 0.1.36 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/manifest.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/manifest.ts
2
2
  var PLUGIN_ID = "alephoo.autopilot-ops";
3
- var PLUGIN_VERSION = "0.1.36";
3
+ var PLUGIN_VERSION = "0.1.37";
4
4
  var DB_NAMESPACE_SLUG = "autopilot_ops";
5
5
  var PAGE_ROUTE = "autopilot";
6
6
  var TOOL_NAMES = {
package/dist/ui/index.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
 
9
9
  // src/manifest.ts
10
10
  var PLUGIN_ID = "alephoo.autopilot-ops";
11
- var PLUGIN_VERSION = "0.1.36";
11
+ var PLUGIN_VERSION = "0.1.37";
12
12
  var DB_NAMESPACE_SLUG = "autopilot_ops";
13
13
  var PAGE_ROUTE = "autopilot";
14
14
  var TOOL_NAMES = {
package/dist/worker.js CHANGED
@@ -39932,7 +39932,7 @@ function startWorkerRpcHost(options) {
39932
39932
 
39933
39933
  // src/manifest.ts
39934
39934
  var PLUGIN_ID = "alephoo.autopilot-ops";
39935
- var PLUGIN_VERSION = "0.1.36";
39935
+ var PLUGIN_VERSION = "0.1.37";
39936
39936
  var DB_NAMESPACE_SLUG = "autopilot_ops";
39937
39937
  var PAGE_ROUTE = "autopilot";
39938
39938
  var TOOL_NAMES = {
@@ -41057,7 +41057,7 @@ var FORMULA_POR_DEFECTO = { componentes: [{ serie: "ipc_general", peso: 100 }] }
41057
41057
  var TOPE_AJUSTE_POR_DEFECTO = 15;
41058
41058
  var LIMITES_TOPE_AJUSTE = [1, 100];
41059
41059
  var LIMITES_PORCENTAJE = [-50, 100];
41060
- function leerVolumenes(v, dias) {
41060
+ function leerVolumenes(v, dias, periodo) {
41061
41061
  if (v === void 0 || v === null) return null;
41062
41062
  if (!Array.isArray(v)) return { error: "volumenes tiene que ser una lista [{codigo, cantidad}]" };
41063
41063
  const d = typeof dias === "number" && Number.isInteger(dias) && dias >= 7 && dias <= 999 ? dias : null;
@@ -41070,7 +41070,9 @@ function leerVolumenes(v, dias) {
41070
41070
  if (!codigo || !Number.isFinite(cantidad2) || cantidad2 < 0) return { error: `volumenes[${i}]: c\xF3digo y cantidad mayor o igual a 0` };
41071
41071
  porCodigo[codigo] = (porCodigo[codigo] ?? 0) + cantidad2;
41072
41072
  }
41073
- return { porCodigo, dias: d };
41073
+ const p = periodo && typeof periodo === "object" ? periodo : {};
41074
+ const fecha5 = (x) => typeof x === "string" && /^\d{4}-\d{2}-\d{2}$/.test(x) ? x : void 0;
41075
+ return { porCodigo, dias: d, ...fecha5(p.desde) ? { desde: fecha5(p.desde) } : {}, ...fecha5(p.hasta) ? { hasta: fecha5(p.hasta) } : {} };
41074
41076
  }
41075
41077
  var redondear2 = (n, dec = 2) => Math.round(n * 10 ** dec) / 10 ** dec;
41076
41078
  var periodoValido = (p) => typeof p === "string" && /^\d{4}-(0[1-9]|1[0-2])$/.test(p);
@@ -41177,7 +41179,8 @@ function resumenAjuste(items, excluir, porcentaje3, porcentajeCalculado, tope, v
41177
41179
  total_nuevo: redondear2(cargan.reduce((a, i) => a + (i.valor_nuevo ?? 0), 0)),
41178
41180
  tope,
41179
41181
  supera_tope: Math.abs(porcentaje3) > tope,
41180
- impacto_mensual: volumenes ? redondear2(cargan.reduce((a, i) => a + ((i.valor_nuevo ?? 0) - (i.valor_actual ?? 0)) * (volumenes.porCodigo[i.codigo] ?? 0), 0) * 30 / volumenes.dias, 0) : null
41182
+ // Sin nada facturado de estas prácticas en el período no hay con qué estimar: null, no 0.
41183
+ impacto_mensual: volumenes && cargan.some((i) => (volumenes.porCodigo[i.codigo] ?? 0) > 0) ? redondear2(cargan.reduce((a, i) => a + ((i.valor_nuevo ?? 0) - (i.valor_actual ?? 0)) * (volumenes.porCodigo[i.codigo] ?? 0), 0) * 30 / volumenes.dias, 0) : null
41181
41184
  };
41182
41185
  }
41183
41186
  function textoIndices(detalle, desde, hasta) {
@@ -45396,7 +45399,8 @@ async function transicionar(ctx, input2) {
45396
45399
  delete datos.excluir;
45397
45400
  const c = calcularAjuste(caso, datos, contexto);
45398
45401
  const act = leerActual(datos.actual);
45399
- const vl = leerVolumenes(datos.volumenes, datos.dias_volumen);
45402
+ const vl = leerVolumenes(datos.volumenes, datos.dias_volumen, datos.periodo_volumen);
45403
+ delete datos.periodo_volumen;
45400
45404
  const vol = vl && !("error" in vl) ? vl : null;
45401
45405
  delete datos.dias_volumen;
45402
45406
  if (c.ok && "practicas" in act) {
@@ -45420,6 +45424,7 @@ async function transicionar(ctx, input2) {
45420
45424
  delete datos.indices;
45421
45425
  delete datos.volumenes;
45422
45426
  delete datos.dias_volumen;
45427
+ delete datos.periodo_volumen;
45423
45428
  }
45424
45429
  if (resultado.via === "ajustar") {
45425
45430
  const excluir = Array.isArray(datos.excluir) ? datos.excluir.map(normalizarCodigo) : caso.datos.excluir ?? [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paperclip-plugin-autopilot-ops",
3
- "version": "0.1.36",
3
+ "version": "0.1.37",
4
4
  "type": "module",
5
5
  "description": "Autopilot Care · operación autónoma gobernada para instituciones de salud: workflows determinísticos, validaciones, registro de negocio, políticas (observa/propone/ejecuta/corte) y tablero del director, como plugin de Paperclip.",
6
6
  "files": [