Backport de mejoras genéricas de backend (desde cliente/tagumedica) + limpieza de datos de cliente en main

Mejoras genéricas traídas:
- core/crud_router.py: el PATCH genérico reenvía cualquier header B1S-* recibido del caller en vez de decidirlo el backend.
- routers/catalogs.py: nuevo endpoint /api/Catalogs/UdfValidValues (valores válidos de cualquier UDF vía Service Layer).
- routers/batch.py: /api/batch/stock (stock de un lote por almacén) y /api/batch/lot-source-warehouse (resuelve contra HANA de qué almacén salió un lote, repartiendo por origen).
- routers/inventory_transfer_requests.py + core/inventory_transfer_requests.py: CRUD genérico de Solicitudes de Transferencia de Inventario.
- routers/series.py + core/series.py: series activas de un tipo de documento.
- routers/user_tables.py: catálogo Code/Name genérico de tablas de usuario (mapeo USER_TABLES vacío, cada cliente completa el suyo).
- routers/reports.py / templates/reports/stickers.html: fix de márgenes/alto de página del reporte de etiquetas.
- mini-backend/test/ -> mini-backend/tools/ (rename organizativo).

Limpieza de datos de Tagumedica que ya estaban en el commit base de main (anteriores a la branch cliente/tagumedica, no relacionados con el backport):
- tools/sap-tagumedica/sl.http: eliminado (tenía CompanyDB y password reales).
- tools/ApiGateway/Login.yml: CompanyDB/host/password reemplazados por placeholders.
- templates/reports/stickers.html: título hardcodeado "TAGUMEDICA" reemplazado por "EMPRESA".
- menu_permissions.json: reemplazado por un ejemplo demo (usuarios/módulos ficticios) en vez de emails reales.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5 committed 2026-09-28 14:18:42 -05:00
1 parent b2fb4e2d0a
commit fef21898f9
30 files changed
+462 -112

No files matched your search

@@ -0,0 +1,42 @@
info:
name: ExportPDFData
type: http
seq: 1
http:
method: POST
url: https://192.168.1.175:60000/rs/v1/ExportPDFData?DocCode=DLN20015
params:
- name: DocCode
value: DLN20015
type: query
body:
type: json
data: |-
[
{
"name": "Dockey@",
"type": "xsd:decimal",
"value": [
[
"137138"
]
]
},
{
"name": "CANTIDAD",
"type": "xsd:decimal",
"value": [
[
"5"
]
]
}
]
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,15 @@
info:
name: LoadAuthorizedCRList
type: http
http:
method: GET
url: https://192.168.1.175:60000/rs/v1/LoadAuthorizedCRList
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
​
+18
View File
@@ -0,0 +1,18 @@
info:
name: LoadCR
type: http
http:
method: GET
url: https://192.168.1.175:60000/rs/v1/LoadCR?DocCode=DLN20015
params:
- name: DocCode
value: DLN20015
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
+23
View File
@@ -0,0 +1,23 @@
info:
name: Login
type: http
http:
method: POST
url: https://<host>:60000/login
body:
type: json
data: |-
{
"CompanyDB":"<CompanyDB>",
"UserName": "manager",
"Password": "<password>",
"DBInstance":"NDB@<host>:30013"
}
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,10 @@
opencollection: 1.0.0
info:
name: ApiGateway
bundled: false
extensions:
bruno:
ignore:
- node_modules
- .git
+22
View File
@@ -0,0 +1,22 @@
info:
name: Login
type: http
seq: 1
http:
method: POST
url: http://127.0.0.1:8000/api/Login
body:
type: json
data: |-
{
"UserName":56,
"Password":"mngr"
}
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,10 @@
opencollection: 1.0.0
info:
name: apiSN
bundled: false
extensions:
bruno:
ignore:
- node_modules
- .git
+21
View File
@@ -0,0 +1,21 @@
info:
name: Login
type: http
http:
method: POST
url: http://127.0.0.1:8000/api/Login
body:
type: json
data: |-
{
"Username":10,
"Password":"COMENA AGUIRRE"
}
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
+20
View File
@@ -0,0 +1,20 @@
info:
name: Logout
type: http
http:
method: POST
url: http://127.0.0.1:8000/api/Logout
body:
type: json
data: |-
{
"SessionId":"0427de1e-68c2-11f1-c000-005056a55f84-139742384043904-16982"
}
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,10 @@
opencollection: 1.0.0
info:
name: backend
bundled: false
extensions:
bruno:
ignore:
- node_modules
- .git
@@ -0,0 +1,21 @@
info:
name: BusinessPartners
type: http
http:
method: GET
url: https://192.168.9.3:50000/b1s/v1/BusinessPartners?$select=CardCode, CardName,FederalTaxID&$filter=contains(CardName, 'FERRETERIA') and CardType eq 'cCustomer'
params:
- name: $select
value: CardCode, CardName,FederalTaxID
type: query
- name: $filter
value: contains(CardName, 'FERRETERIA') and CardType eq 'cCustomer'
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,19 @@
info:
name: DeliveryNotes
type: http
seq: 1
http:
method: GET
url: https://192.168.9.3:50000/b1s/v1/DeliveryNotes?$filter=Cancelled eq 'tNO' and U_BPP_MDSD eq 'T001' and U_BPP_MDTD eq '09' and contains(U_BPP_MDCD,'128452')
params:
- name: $filter
value: Cancelled eq 'tNO' and U_BPP_MDSD eq 'T001' and U_BPP_MDTD eq '09' and contains(U_BPP_MDCD,'128452')
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,25 @@
info:
name: Invoices
type: http
seq: 1
http:
method: GET
url: https://192.168.9.3:50000/b1s/v1/Invoices?$select=DocEntry,DocNum,FederalTaxID,CardCode,CardName,NumAtCard,DocCurrency,DocTotal,DocTotalFc,FolioPrefixString,FolioNumber,DocumentStatus,DocumentSubType&$filter=DocumentStatus eq 'bost_Open'&$orderby=DocEntry desc
params:
- name: $select
value: DocEntry,DocNum,FederalTaxID,CardCode,CardName,NumAtCard,DocCurrency,DocTotal,DocTotalFc,FolioPrefixString,FolioNumber,DocumentStatus,DocumentSubType
type: query
- name: $filter
value: DocumentStatus eq 'bost_Open'
type: query
- name: $orderby
value: DocEntry desc
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
+14
View File
@@ -0,0 +1,14 @@
info:
name: Items
type: http
http:
method: GET
url: https://192.168.9.3:50000/b1s/v1/Items
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
+23
View File
@@ -0,0 +1,23 @@
info:
name: Login
type: http
seq: 1
http:
method: POST
url: https://192.168.9.3:50000/b1s/v1/Login
body:
type: json
data: |-
{
"CompanyDB":"PRUEBA_20260701",
"UserName":"manager",
"Password":"s1st3m4s"
}
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,25 @@
info:
name: PurchaseInvoices
type: http
seq: 1
http:
method: GET
url: https://192.168.9.3:50000/b1s/v1/PurchaseInvoices?$select=DocEntry,DocNum,FederalTaxID,CardCode,CardName,NumAtCard,DocCurrency,DocTotal,DocTotalFc,FolioPrefixString,FolioNumber,DocumentStatus,DocumentSubType&$filter=DocumentStatus eq 'bost_Open'&$orderby=DocEntry desc
params:
- name: $select
value: DocEntry,DocNum,FederalTaxID,CardCode,CardName,NumAtCard,DocCurrency,DocTotal,DocTotalFc,FolioPrefixString,FolioNumber,DocumentStatus,DocumentSubType
type: query
- name: $filter
value: DocumentStatus eq 'bost_Open'
type: query
- name: $orderby
value: DocEntry desc
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
@@ -0,0 +1,10 @@
opencollection: 1.0.0
info:
name: sap-aberio
bundled: false
extensions:
bruno:
ignore:
- node_modules
- .git