72 lines
2.9 KiB
Markdown
72 lines
2.9 KiB
Markdown
# Devolución a Proveedores
|
|||
|
|
|
||
|
|
Aplicación web (Angular + NestJS) para SAP Business One que genera **Devoluciones de mercancías**
|
||
|
|
(ORPD) enlazadas a sus **Entradas de mercancías por compra** (OPDN), a partir de un listado de
|
||
|
|
artículos y cantidades pegado desde Excel. Reemplaza al addon .NET anterior.
|
||
|
|
|
||
|
|
## Cómo funciona
|
||
|
|
|
||
|
|
1. **Pegar**: ItemCode + cantidad desde Excel. Se valida contra la **Consignación** del almacén elegido.
|
||
|
|
2. **Procesar**: asignación FIFO contra las líneas abiertas de Entradas de mercancías del almacén,
|
||
|
|
ordenadas por fecha. El usuario marca qué líneas devolver.
|
||
|
|
3. **Crear devoluciones**: agrupa las líneas marcadas por proveedor y crea una Devolución por lote
|
||
|
|
(11 líneas por defecto).
|
||
|
|
4. **Descargar PDF**: pide al web service de BES el PDF de la Guía de despacho (DTE 52) de cada
|
||
|
|
Devolución, con opción de unirlos en uno.
|
||
|
|
|
||
|
|
Cada ejecución (planificación) se guarda en el UDO `LIB_ODEV`. Solo puede haber una planificación
|
||
|
|
abierta a la vez; se cierra a mano.
|
||
|
|
|
||
|
|
## Requisitos
|
||
|
|
|
||
|
|
- Node.js 22 LTS o superior.
|
||
|
|
- SAP Business One con **Service Layer** (`/b1s/v1`), base **HANA** (producción) o **MSSQL** (pruebas).
|
||
|
|
- El usuario de SAP inicia sesión en la web; sus credenciales no se guardan en la configuración.
|
||
|
|
|
||
|
|
## Estructura
|
||
|
|
|
||
|
|
```
|
||
|
|
libs/shared/ @dp/shared tipos y lógica de dominio (parseo de Excel, FIFO)
|
||
|
|
apps/api/ NestJS API REST (/api) sobre el Service Layer; en producción sirve también la web
|
||
|
|
apps/web/ Angular interfaz
|
||
|
|
scripts/ publicar.mjs arma la carpeta de despliegue en release/
|
||
|
|
deploy/windows/ instalación como servicio de Windows (NSSM)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Puesta en marcha (desarrollo)
|
||
|
|
|
||
|
|
```sh
|
||
|
|
npm install
|
||
|
|
cp apps/api/.env.example apps/api/.env # completar SL_URL, SL_COMPANY_DB y DB_TYPE
|
||
|
|
npm run dev:api # API NestJS (puerto PORT del .env)
|
||
|
|
npm run dev:web # Angular en http://localhost:4215 (proxy /api → API)
|
||
|
|
```
|
||
|
|
|
||
|
|
Variables principales del `.env`: `PORT`, `SL_URL`, `SL_COMPANY_DB`, `SL_REJECT_UNAUTHORIZED`,
|
||
|
|
`DB_TYPE` (`HANA`/`MSSQL`) y `COOKIE_SECURE`. Para producción con HTTPS: `HTTPS_PFX_PATH` y
|
||
|
|
`HTTPS_PFX_PASSPHRASE` (o `HTTPS_KEY_PATH`/`HTTPS_CERT_PATH`) y `HTTP_REDIRECT_PORT`.
|
||
|
|
Ver `apps/api/.env.example`.
|
||
|
|
|
||
|
|
En el primer ingreso, **Configuración → Metadatos → Reconstruir** crea las tablas, los campos y
|
||
|
|
el UDO necesarios en SAP.
|
||
|
|
|
||
|
|
## Pruebas y compilación
|
||
|
|
|
||
|
|
```sh
|
||
|
|
npm test # shared + api + web
|
||
|
|
npm run test:e2e -w api
|
||
|
|
npm run lint -w api
|
||
|
|
npm run build
|
||
|
|
```
|
||
|
|
|
||
|
|
## Versiones y despliegue
|
||
|
|
|
||
|
|
La versión es el `version` del `package.json` raíz (SemVer); cada release lleva un tag `vX.Y.Z`.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
npm run version:parche # o version:menor / version:mayor
|
||
|
|
npm run publicar # genera release/devolucion-proveedores/
|
||
|
|
```
|
||
|
|
|
||
|
|
La aplicación se instala en Windows como un único servicio (NSSM) con HTTPS directo en Node.
|
||
|
|
Guía completa: [`deploy/windows/DEPLOY.md`](deploy/windows/DEPLOY.md).
|