Commit Graph
41 Commits
Author SHA1 Message Date
GeorgeandClaude Sonnet 5.5 37dcd1daab docs: restaura CLAUDE.md (un reemplazo lo había truncado) y actualiza Finanzas, solo lectura y líneas del asiento
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:02:46 -05:00
GeorgeandClaude Sonnet 5.5 9ec0bb0242 docs: restaura CLAUDE.md (un reemplazo lo había truncado), con las secciones de Finanzas, solo lectura y líneas del asiento
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:02:27 -05:00
GeorgeandClaude Sonnet 5.5 bb19e499fe feat(web): plan de cuentas como SAP (árbol con grupos y nivel al lado del formulario; propiedades, costos e info detallada)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 09:06:12 -05:00
GeorgeandClaude Sonnet 5.5 89e25ad8e6 docs: README raíz, api y web al día (módulos, acciones del proxy, auditoría, extensiones, bancos y finanzas)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 15:05:26 -05:00
GeorgeandClaude Sonnet 5.5 99c0a9259c feat(web): plan de cuentas como árbol y casillas de grupo en el formulario
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 14:46:07 -05:00
GeorgeandClaude Sonnet 5.5 8bbd05d07b feat: módulo Finanzas (plan de cuentas y asientos contables con cancelación)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 14:36:24 -05:00
GeorgeandClaude Sonnet 5.5 3d6f76a1dd feat(web): formulario de pagos recibidos y efectuados (documentos abiertos, medios de pago, cheques, cuentas, anulación)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:28:55 -05:00
GeorgeandClaude Sonnet 5.5 fe8c080471 feat: auditoría (audit_log en SQLite, endpoint /api/audit y pantalla /admin/auditoria)
Registra sesiones, creaciones y modificaciones en SAP (solo nombres de campos), denegados y cambios de permisos.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:35:46 -05:00
GeorgeandClaude Sonnet 5.5 4e9d6a757d feat(web): tablas en los maestros (direcciones, personas de contacto, precios por lista, stock por almacén)
sbo-rows-table reutilizable (también en la ventana de lotes). Direcciones y contactos se envían
completos con reemplazo; los precios solo por filas cambiadas. Probado contra SBODemoCL.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:31:27 -05:00
GeorgeandClaude Sonnet 5.5 abc1cc4ac6 feat(web): lotes y series en las líneas de entradas, salidas y transferencias de stock
Una ventana por línea con tabla editable; validación de suma de lotes y una serie por unidad.
Probado contra SBODemoCL: entrada de inventario 156 con SU01 y su lote.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:25:01 -05:00
GeorgeandClaude Sonnet 5.5 a5592fac76 feat(web): copiar de / a entre movimientos de inventario (solicitud de traslado → transferencia de stock)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:20:26 -05:00
GeorgeandClaude Sonnet 5.5 35ba97bcde chore: comando dev:web:lan para probar con otra persona de la red
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:09:46 -05:00
GeorgeandClaude Sonnet 5.5 d1cafcd721 feat(web): el indicador del documento se elige de su ventana de selección (FactoringIndicators)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 11:57:42 -05:00
George 02c231a662 docs: alineación de columnas 2026-10-16 11:23:47 -05:00
George 7da6663e4b docs: opciones de las extensiones de maestros 2026-10-16 11:14:58 -05:00
GeorgeandClaude Sonnet 5.5 8dc4a8eaab feat(web): las extensiones de cliente pueden ocultar campos y columnas y dejarlos de solo lectura (documentos y maestros)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 11:14:52 -05:00
GeorgeandClaude Sonnet 5.5 f077a61d08 fix(web): la grilla de líneas no aprieta las columnas (ancho mínimo = suma de anchos), el total va tras el impuesto y el proyecto de la cabecera abre su ventana
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 11:09:47 -05:00
GeorgeandClaude Sonnet 5.5 f66ef108cf feat(web): serie, indicador y proyecto en la cabecera; dimensiones, proyecto, cuenta, referencia base y precio con IVA en el detalle
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 11:07:38 -05:00
GeorgeandClaude Sonnet 5.5 9f003ee4bf feat(web): maestros de clientes, proveedores y artículos (lista, formulario con pestañas, extensiones por cliente)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 10:24:39 -05:00
GeorgeandClaude Sonnet 5.5 b759c7bce7 docs: decisión de DocumentSubType exacto en las pantallas de Invoices
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 10:08:47 -05:00
GeorgeandClaude Sonnet 5.5 52dc1957b7 feat: facturas y boletas de reserva (ReserveInvoice); las facturas y boletas normales excluyen las de reserva
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 17:32:32 -05:00
GeorgeandClaude Sonnet 5.5 1834c64f6f feat: boletas de venta (Invoices con DocumentSubType bod_Bill); la lista de facturas las excluye
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 17:13:33 -05:00
GeorgeandClaude Sonnet 5.5 d6c127627f feat(web): fila del flete (gastos adicionales) y toolbar de ancho completo; la configuración de pantallas se carga en diferido
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 16:09:06 -05:00
GeorgeandClaude Sonnet 5.5 d3ab97cd2e fix(web): ventas y compras envían la unidad de medida del artículo (UoMEntry)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 16:05:25 -05:00
GeorgeandClaude Sonnet 5.5 0d5a3074c8 feat(web): columnas de las listas de valores (cliente, artículo, almacén, impuesto) configurables por documento
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 15:39:53 -05:00
GeorgeandClaude Sonnet 5.5 b3b47c34a3 feat(web): extensiones por cliente (campos estándar adicionales y U_*) por módulo, y campo de selección
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 15:28:03 -05:00
GeorgeandClaude Sonnet 5.5 1f212e2b30 feat(web): cada documento de ventas y compras puede elegir sus columnas de línea y su cabecera
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 15:16:22 -05:00
GeorgeandClaude Sonnet 5.5 c5368c7ad0 refactor(web): pantallas y formularios separados por módulo (ventas, compras, inventario)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 15:12:01 -05:00
GeorgeandClaude Sonnet 5.5 8b0b8afc87 refactor(web): el formulario base recibe de cada pantalla los campos de cabecera, pie y línea
Todas las pantallas declaran su DocumentLayout (catálogo FIELDS): ventas y compras dejan de tener la
cabecera escrita en el HTML; el folio solo lo llevan los documentos tributarios.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 15:10:40 -05:00
GeorgeandClaude Sonnet 5.5 c734dcbd0a feat(web): folio y RUT en los formularios de facturas, notas de crédito, entregas y recepciones; RUT en todos los de socio
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 14:48:50 -05:00
GeorgeandClaude Sonnet 5.5 155d18fce4 feat(web): formularios de inventario y solicitudes de compra (entradas, salidas, transferencias, solicitudes de traslado)
Configuración declarativa en document-layouts.ts; las líneas de las transferencias van en
StockTransferLines y las de compra/inventario llevan UoMEntry si el artículo tiene grupo de unidades.
Probado contra SBODemoCL (solicitud de compra 2, solicitud de traslado 472, entrada 155).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 14:37:01 -05:00
GeorgeandClaude Sonnet 5.5 7842af0568 docs/fix(web): título del selector Copiar de y notas de la prueba contra SAP
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 12:00:58 -05:00
GeorgeandClaude Sonnet 5.5 cafe4bc035 feat(web): resolver al salir del campo el socio y los códigos de línea escritos a mano
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 11:42:51 -05:00
GeorgeandClaude Sonnet 5.5 4b35aa6bfd fix(web): el precio de una línea nueva queda vacío para que SAP aplique la lista de precios
Probado contra SBODemoCL: crear y actualizar órdenes de venta y de compra, reemplazo de líneas y 412 por conflicto.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 11:06:58 -05:00
GeorgeandClaude Sonnet 5.5 6978fed6fb fix(web): fechas de SAP con hora, enlaces como botones y un solo maestro de impuestos
Probado contra el SAP real (solo lectura): órdenes de venta y facturas de proveedor.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 09:13:53 -05:00
GeorgeandClaude Sonnet 5.5 4d4df17d07 feat(web): pantalla de permisos de menú (/admin/permisos)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 22:17:50 -05:00
GeorgeandClaude Sonnet 5.5 d49b87a2ce docs: actualizar CLAUDE.md con el estado, las decisiones y los próximos pasos
Registra lo decidido (login, usuario SAP compartido, concurrencia 1 medida,
TLS, proxy con registro, TaxCode, listas de documentos), cómo verificar
cambios de interfaz con seguridad, el estado actual y el orden de lo
pendiente (paso 9: formulario de documentos).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 20:19:24 -05:00
GeorgeandClaude Sonnet 5.5 598307960e feat(web): lista de documentos con barra de filtros y búsqueda por columna
Cada pantalla de documento del menú abre primero la lista de los últimos
documentos; desde ahí se crea uno (/nuevo) o se abre uno (/:docEntry).

- sbo-list-view: título, botón de alta, barra de filtros, tabla y paginación
  (50 por página, más recientes primero).
- sbo-filter-bar (como el FilterBar del mini-erp): búsqueda por la columna
  activa + filtros declarativos text / select (con valor por defecto) /
  multi (chips + lista de valores) / date (siempre rango [desde – hasta]),
  con Ir y Limpiar. Ir aplica búsqueda y filtros en una sola consulta.
- Búsqueda numérica por igualdad (DocNum eq 314) con aviso si no es número;
  una columna con texto calculado (format) ya no es buscable por defecto.
- Piezas compartidas con sbo-value-help, que se refactoriza sobre ellas:
  createSlList (estado de búsqueda/paginación), sbo-data-table, sbo-pager,
  sbo-search-bar. Insignias de estado (tone) y estilos de botón globales.
- DOCUMENT_SCREENS: columnas y filtros de 17 documentos (ventas, compras,
  inventario) según los campos verificados en el Service Layer real
  (PurchaseRequests no tiene CardCode; StockTransfers no tiene estado).
- Rutas generadas desde el registro: lista, nuevo y :docEntry bajo el
  permiso de la ruta de menú. El formulario es un marcador (paso 9).
- Presupuesto: el aviso del bundle inicial sube a 300 kB; httpResource
  aporta ~18 kB al chunk compartido (278 kB, 78 kB comprimido).
- Verificado en Chrome contra SAP real: 49 órdenes abiertas, 314 en total,
  rango de fechas, chips de monedas, búsqueda por número, navegación y
  botón atrás, tema oscuro; ofertas (4391), transferencias y entradas.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 20:01:34 -05:00
GeorgeandClaude Sonnet 5.5 68caf401a7 refactor(web): filas de formulario con varios controles combinables
El mockup muestra que una fila es etiqueta + uno o varios controles en la
misma línea (Cliente = input + "...", Canal / Zona = dos mitades, Serie +
Número = 72 px + resto, select + número + botón) y que la cabecera tiene a
lo sumo 2 columnas. Los campos de un solo control no lo permitían.

- Controles sin etiqueta combinables dentro de sbo-field: sbo-input,
  sbo-textarea, sbo-number, sbo-date, sbo-select y el botón .sbo-btn;
  ocupan el espacio sobrante o un width fijo.
- El primer control de la fila toma el id de la etiqueta (claimId); los
  demás se nombran con ariaLabel. El error de la fila marca todos sus
  controles (aria-invalid / aria-describedby).
- Los campos con etiqueta (sbo-text-field, sbo-number-field, ...,
  sbo-lookup-field) pasan a ser atajos de un solo control con la misma API.
- CSS global: .sbo-group y .sbo-btn reemplazan a .sbo-pick/.sbo-pair.
- CLAUDE.md apunta al mockup renombrado (tools/oferta_venta.html).
- Verificado en Chrome contra SAP real, con una cabecera que reproduce las
  filas compuestas del mockup.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 19:49:16 -05:00
GeorgeandClaude Sonnet 5.5 f1156929c7 feat(web): app Angular, librería compartida sap-types y sistema de temas
- apps/web: Angular 22 standalone, zoneless, OnPush, vitest; proxy /api
  hacia el backend; presupuesto de bundle (aviso 260 kB, error 400 kB).
- libs/sap-types: tipos de auth/permisos/Service Layer y el evaluador de
  patrones de menú, compartidos por api y web (se compila en postinstall).
  El backend deja de tener su propia copia del evaluador.
- Temas por variables CSS: claro por defecto con la paleta del mockup de
  Oferta de ventas, oscuro incluido; ThemeService + selector, con el tema
  guardado aplicado antes del primer pintado. Agregar un tema = 1 css +
  1 import + 1 entrada.
- Criterios de interfaz ligera en CLAUDE.md y README.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 19:11:05 -05:00
GeorgeandClaude Sonnet 5.5 e4417705e7 chore: esqueleto del monorepo (npm workspaces)
Raíz con workspaces apps/* y libs/*, reglas del proyecto base y flujo
por branch de cliente en CLAUDE.md, y el mockup de Oferta de ventas.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 18:07:07 -05:00