hbox-docs/docs/formularios/recepcion.html

144 lines
9.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Acta de recepción e inspección — HBOX</title>
<link rel="stylesheet" href="acta.css">
</head>
<body>
<div id="acta"></div>
<script src="flota.js"></script>
<script src="series.js"></script>
<script src="acta.js"></script>
<script>
const enciende = v => String(v.enciende || '').startsWith('Sí');
const corto = v => String(v.continuidad || '').startsWith('Sí');
const conBat = v => !String(v.bateria_fisica || '').startsWith('La unidad no trae');
const batMala = v => ['Hinchada','Con manchas','Caliente'].some(t => String(v.bateria_fisica || '').startsWith(t));
const puedeEnergizar = v => !corto(v);
Acta.render({
tipo: 'recepcion',
repetible: true,
tecnicoDesdeUsuario: true,
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez' },
unidades: window.SERIES,
etiquetaSerie: 'Unidad que se recibe',
titulo: 'Acta de recepción e inspección',
subtitulo: 'Una por unidad, al abrir la caja y antes de entrar al puerto. Procedimiento: Ciclo de vida §7.',
textoOK: 'LISTA PARA ENTRAR',
intro: 'Compara contra el acta de envío (firmware, SIM, contenido) y busca daño de transporte. '
+ 'Kit: fuente de 24 V (≥ 1 A; límite en 1 A si lo tiene), multímetro, cable USB con datos, laptop. '
+ '<b>Orden:</b> inspección → multímetro sin energía → energizar → prueba de vida.',
secciones: [
{ titulo: '0 · Qué llega y dónde',
items: [
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha' },
{ tipo:'radio', clave:'donde', req:true, guardaEn:'clasificacion', txt:'Dónde se recibe',
opciones:['Taller Veracruz','Oficina ICAVE','Otra terminal','Querétaro'] },
{ tipo:'texto', clave:'guia', rows:'1', txt:'Guía o quién la entregó' },
{ tipo:'texto', clave:'maquina_destino', rows:'1', guardaEn:'maquina_id', txt:'Máquina destino', ph:'FL-JUN-060' },
] },
{ titulo: '1 · El paquete, antes de abrir',
items: [
{ tipo:'foto', clave:'f_paquete', req:true, etiqueta:'paquete', txt:'Caja cerrada como llegó.' },
{ tipo:'radio', clave:'paquete', req:true, txt:'Estado del paquete',
opciones:['Intacto','Golpeado o aplastado','Abierto o con cinta distinta','Mojado'] },
{ tipo:'foto', clave:'f_dano_paquete', etiqueta:'paquete-dano', si:v=>!String(v.paquete||'').startsWith('Intacto'), req:true,
txt:'Daño del paquete, antes de abrir.' },
] },
{ titulo: '2 · Contenido contra el acta de envío',
sub:'Abre el acta de envío (expediente, arriba) y compara punto por punto.',
items: [
{ tipo:'check', clave:'c_unidad', req:true, txt:'Unidad presente; la serie coincide con el envío.' },
{ tipo:'check', clave:'c_ant_gnss', txt:'Antena GNSS con cable.' },
{ tipo:'check', clave:'c_ant_lte', txt:'2 antenas LTE.' },
{ tipo:'check', clave:'c_gx16', txt:'Arnés GX16.' },
{ tipo:'check', clave:'c_docs', txt:'Hoja con serie, máquina y contacto.' },
{ tipo:'texto', clave:'faltante', rows:'2', txt:'Faltantes o sobrantes' },
{ tipo:'foto', clave:'f_contenido', req:true, etiqueta:'contenido', txt:'Contenido desplegado.' },
] },
{ titulo: '3 · Inspección física',
sub:'Tapa abierta, sin energía. Golpes, piezas sueltas y módulos fuera de su zócalo por la vibración.',
items: [
{ tipo:'check', clave:'i_sacudir', req:true, txt:'Sacudida junto al oído: nada suelto.' },
{ tipo:'radio', clave:'gabinete', req:true, txt:'Gabinete y prensaestopas',
opciones:['Sin daño','Rayado o marcado (cosmético)','Golpeado, agrietado o deformado','Con humedad adentro'] },
{ tipo:'check', clave:'i_zocalos', req:true, txt:'Módulos asentados (Blackpill si lo lleva, simpleRTK2B, módem): empujados con el dedo, sin pines fuera.' },
{ tipo:'check', clave:'i_conectores', req:true, txt:'Meneo de conectores, Dupont y SMA: SMA apretados, GX16 con seguro, ningún cable pelado o pellizcado.' },
{ tipo:'radio', clave:'placa', req:true, txt:'Tarjeta',
opciones:['Normal','Componente desprendido o pista levantada','Marca de quemado o decoloración','Corrosión o humedad'] },
{ tipo:'radio', clave:'bateria_fisica', req:true, txt:'Batería',
opciones:['Normal','Hinchada o abombada','Con manchas o fuga','Caliente','La unidad no trae batería'],
aviso:'Hinchada, con fuga o caliente: desconéctala antes de energizar; la unidad <b>no entra</b>. Acta de daño.' },
{ tipo:'foto', clave:'f_bat', etiqueta:'bateria', si:batMala, req:true, txt:'Batería, dos ángulos.' },
{ tipo:'foto', clave:'f_interior', req:true, etiqueta:'interior', txt:'Interior con módulos y conectores a la vista.' },
{ tipo:'foto', clave:'f_dano_unidad', etiqueta:'unidad-dano', txt:'Daño encontrado, de cerca.',
si:v=>['Golpeado','Con humedad'].some(t=>String(v.gabinete||'').startsWith(t)) || !String(v.placa||'').startsWith('Normal'), req:true },
{ tipo:'texto', clave:'nota_fisica', rows:'2', txt:'Hallazgos' },
] },
{ titulo: '4 · Continuidad a tierra (sin energía)',
sub:'Multímetro en Ω, fuente desconectada, batería desconectada si se puede.',
items: [
{ tipo:'nota', txt:'<div class="peligro"><b>Nunca energices antes de medir continuidad.</b> Con corto, la fuente lo alimenta y el daño ya no se puede atribuir al transporte.</div>' },
{ tipo:'medida', clave:'r_24v', req:true, txt:'Entrada 24 V a GND (GX16 1-2)', esperado:'> 10 kΩ (sube mientras cargan los capacitores)', u:'Ω' },
{ tipo:'medida', clave:'r_5v', req:true, txt:'5 V a GND (Mean Well / P2)', esperado:'> 1 kΩ', u:'Ω' },
{ tipo:'medida', clave:'r_3v3', txt:'3.3 V a GND', esperado:'> 1 kΩ', u:'Ω' },
{ tipo:'radio', clave:'continuidad', req:true, txt:'Lectura fija en 0–20 Ω',
opciones:['No — todo abierto','Sí — hay un corto'],
aviso:'Con corto <b>no se energiza</b> y la unidad no entra: acta de daño con la lectura y la foto.' },
{ tipo:'medida', clave:'v_bat_vacio', si:conBat, req:true, txt:'Batería en vacío', esperado:'3.0 – 4.2 V (compara con el envío)', u:'V',
aviso:'< 3.0 V: se descargó en el trayecto; anótalo. Mucho menor que en el envío: consumo con la unidad "apagada".' },
] },
{ titulo: '5 · Energizar y medir',
sub:'Solo si el paso 4 salió limpio. 24 V al GX16 (pines 1-2), antenas puestas, tapa abierta, límite 1 A.',
items: [
{ tipo:'radio', clave:'enciende', req:true, si:puedeEnergizar, txt:'Encendido y LED de estado',
opciones:['Sí','No — LED apagado','Enciende pero se apaga','Enciende y la fuente entra en límite de corriente'],
aviso:'Fuente en límite o algo caliente: <b>apaga ya</b>. No entra; acta de daño.' },
{ tipo:'medida', clave:'v_24', si:enciende, req:true, txt:'Entrada 24 V', esperado:'23 – 26 V', u:'V' },
{ tipo:'medida', clave:'v_5', si:enciende, req:true, txt:'Riel 5 V (Mean Well / P2)', esperado:'4.9 – 5.4 V', u:'V',
aviso:'Bajo 4.8 V el módem se cae con cada ráfaga LTE (PFI del LTC4040). No entra así.' },
{ tipo:'medida', clave:'v_3v3', si:enciende, txt:'Riel 3.3 V', esperado:'3.20 – 3.40 V', u:'V' },
{ tipo:'medida', clave:'i_estable', si:enciende, txt:'Corriente a 60 s (si la fuente la muestra)', esperado:'150 – 400 mA con la etapa RTK encendida', u:'mA' },
{ tipo:'medida', clave:'v_bat_on', si:v=>enciende(v)&&conBat(v), txt:'Batería, unidad encendida', u:'V' },
] },
{ titulo: '6 · Prueba de vida (5 minutos)',
sub:'Unidad encendida. La línea BOOT sale por la consola USB; lo demás es a simple vista.',
items: [
{ tipo:'texto', clave:'fw', rows:'1', si:enciende, req:true, txt:'Firmware (línea BOOT o banner)', ph:'fw=4.0.0' },
{ tipo:'check', clave:'fw_coincide', si:enciende, req:true, txt:'Firmware igual al del envío.' },
{ tipo:'radio', clave:'modem', si:enciende, req:true, txt:'LED de red del módem a 3 min',
opciones:['Lento o fijo (registró)','Rápido (no registra)','Apagado'] },
{ tipo:'check', clave:'sim_ok', si:enciende, txt:'ICCID igual al del envío.' },
{ tipo:'radio', clave:'gnss', si:enciende, txt:'GNSS (si hay cielo o ventana)', opciones:['Ve satélites / tiene fix','No ve satélites','No se pudo probar (techo)'] },
{ tipo:'check', clave:'servidor', si:enciende, txt:'Aparece en el monitor (posición o Salud), confirmado por alguien con acceso.' },
{ tipo:'archivo', clave:'log', etiqueta:'recepcion', si:enciende, txt:'Captura de consola (opcional)' },
{ tipo:'check', clave:'cerrada', si:enciende, txt:'Fuente apagada, tapa cerrada, prensaestopas apretados, etiqueta a la vista.' },
] },
{ titulo: '7 · Veredicto',
items: [
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'Resultado',
opciones:[
'Lista para entrar al puerto',
'Entra con observaciones (anótalas)',
'No entra — se queda en el taller para revisión',
'Rechazada — regresa a Querétaro'],
aviso:'Corto, no enciende, 5 V bajo o firmware distinto al del envío: <b>no entra</b>, y se registra un acta de daño para marcar la serie.' },
{ tipo:'texto', clave:'observaciones', rows:'3', txt:'Observaciones' },
] },
]
});
</script>
</body>
</html>