Orden de trabajo

Mantenimiento correctivo o preventivo: el equipo intervenido, las tareas con su estado, los materiales y las condiciones de seguridad.

orden-de-trabajo, con el diseño premium: qué hay que hacer, sobre qué equipo, quién lo ejecuta y bajo qué condiciones.

"workOrder": {
  "number": "OT-2026-0417", "date": "2026-10-14",                 // obligatorios
  "clase": "Preventivo",                                          // obligatorio: se imprime como llega
  "prioridad": "Media", "estado": "Ejecutada",
  "programadaPara": "2026-10-14 08:00", "inicio": "…", "fin": "…" // opcionales
},
"asset": { "nombre": "Planta eléctrica de emergencia",            // nombre es obligatorio
           "codigo": "EQ-PE-002", "ubicacion": "Cuarto técnico, sótano 2",
           "marca": "Cummins", "serie": "C150D5-2019-884" },
"billTo": { "name": "…" },                                        // quien solicita
"assignedTo": { "nombre": "…", "documento": "…", "rol": "…", "contacto": "…" },
"description": "Mantenimiento preventivo trimestral según la rutina del fabricante…",
"tasks": [
  { "descripcion": "Cambio de aceite y filtro", "estado": "Ejecutada", "observacion": "…" }
],
"materials": [
  { "codigo": "LU-15W40", "descripcion": "Aceite 15W40", "cantidad": 12, "unidad": "litro", "total": 384000 }
],
"safety": { "permisos": ["Trabajo en caliente"], "condiciones": ["Bloquear y etiquetar…"] },
"signatures": [
  { "nombre": "…", "documento": "…", "rol": "Ejecuta el trabajo",
    "trazo": "data:image/png;base64,…",                           // opcional
    "sello": { "fechaHora": "2026-10-14 11:45:12 -05:00", "recibidoPor": "App de campo",
               "origen": "Envigado · dispositivo TEC-114" } }
]
  • Correctivo y preventivo son el mismo tipo, con otra clase. Se imprime en mayúsculas y dentro de un marco, porque es lo que decide la urgencia con que alguien atiende la orden. No se valida contra una lista: si usted maneja «Predictivo», el documento lo dice.
  • Nada se programa ni se calcula aquí. Ni la próxima fecha de un preventivo, ni el costo de los repuestos, ni la duración a partir de las horas: todo llega hecho. El total de un material se imprime como llega, sin multiplicar cantidad por precio.
  • El estado de cada tarea es texto libre —«Ejecutada», «Pendiente», «No aplica»—: quién decide si una tarea quedó hecha es quien la hizo.
  • Sin materials no se dibuja la tabla de materiales, porque una orden de inspección no gasta repuestos y una tabla vacía diría que faltan. Sin tasks dice «Sin tareas»: una orden puede abrirse para diagnosticar.
  • Las firmas llevan su trazo y su sello de tiempo, y el sello llega como dato: la orden se firmó cuando la persona firmó, no cuando se compuso el PDF. El trazo tiene que ser PNG o JPEG; si no se puede dibujar, sale la línea con los datos y el documento se compone igual. Ver Qué va dentro de data.
  • Lo obligatorio es workOrder.number, workOrder.date, workOrder.clase y asset.nombre. Sin ellos la respuesta es 400 con la lista de lo que falta, y no se compone ningún PDF.
  • También sale en tirilla de 80 mm: el mismo cuerpo con "plantilla": "tirilla", para la térmica portátil del sitio. Lo que no cabe en el ancho se reorganiza —las tablas pierden sus columnas y cada fila pasa a un bloque de dos renglones—, no se omite.
  • Y en media carta con "plantilla": "media-carta": el mismo documento en 14 × 21,6 cm, para imprimir dos por hoja y cortarlos. Las columnas se reparten a la escala del papel; no se quita nada.
  • Y en cuatro paletas más —corporativa (azul), profesional (verde), minimalista (violeta) y basica (naranja)—: la misma hoja con otro acento en el título, la cabecera de las tablas y las bandas. El diseño de defecto sigue siendo premium, en gris, y los demás papeles salen en él.
  • Acepta además notes, fields, sideNotes y selectedCurrency.

Ejemplo: orden-de-trabajo.json.