From 1d0b8d0cbe9d794275b1ff20175ba7ed377da95c Mon Sep 17 00:00:00 2001 From: George Date: Mon, 12 Oct 2026 08:51:50 -0500 Subject: [PATCH] SolicitudTransferencia PATCH: enviar Rate 0.0 fijo sin GET previo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se elimina la lectura previa del documento y la validación de existencia de línea; cada línea se manda con Rate = 0.0 (request validado en SAP). Co-Authored-By: Claude Sonnet 5.5 --- .../SolicitudTransferenciaRepository.cs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/Net.Data/WMS/SolicitudTransferencia/SolicitudTransferenciaRepository.cs b/Net.Data/WMS/SolicitudTransferencia/SolicitudTransferenciaRepository.cs index 50f9ad6..b7b5bec 100644 --- a/Net.Data/WMS/SolicitudTransferencia/SolicitudTransferenciaRepository.cs +++ b/Net.Data/WMS/SolicitudTransferencia/SolicitudTransferenciaRepository.cs @@ -44,10 +44,10 @@ namespace Net.Data.WMS.SolicitudTransferencia // parcial. SAP ademas RECHAZA una linea mandada explicita con Quantity: 0, // por eso se omite del array en vez de mandarla en cero. // - // Al ser un reemplazo completo, SAP TAMBIEN exige el Rate real de cada - // linea (hallazgo de QA, no cubierto en la primera tanda de pruebas) - por - // eso se hace un GET previo para leerlo y reenviarlo, en vez de mandar - // Rate: 0 fijo (pisaria la valorizacion real de la linea). + // Al ser un reemplazo completo, SAP TAMBIEN exige el campo Rate en cada + // linea. Se manda Rate: 0.0 fijo (request validado contra SAP); esto pisa + // el Rate que tuviera la linea en el documento. No se valida que la linea + // exista: si no existe, el error lo devuelve SAP. public async Task> Update(int docEntry, BE_SolicitudTransferenciaPatchRequest entidad) { ResultadoTransaccion resultadoTransaccion = new ResultadoTransaccion("Update", _aplicacionName); @@ -56,21 +56,12 @@ namespace Net.Data.WMS.SolicitudTransferencia { var connectServiceLayer = new ConnectionServiceLayer(_configuration, _clientFactory); - var doc = (await connectServiceLayer.GetAsync($"InventoryTransferRequests({docEntry})", 0, true)).FirstOrDefault(); - var ratesByLine = (doc?.StockTransferLines ?? new List()) - .ToDictionary(l => l.LineNum, l => l.Rate); - var lines = new List(); foreach (var detalle in entidad.Detalle ?? new List()) { if (detalle.Cantidad == 0) continue; - if (!ratesByLine.TryGetValue(detalle.Linea, out var rate)) - { - return resultadoTransaccion.GetInformacionResultado($"La linea {detalle.Linea} no existe en la Solicitud de Traslado {docEntry}", (object)entidad); - } - - lines.Add(new { LineNum = detalle.Linea, Quantity = detalle.Cantidad, Rate = rate }); + lines.Add(new { LineNum = detalle.Linea, Quantity = detalle.Cantidad, Rate = 0.0 }); } await connectServiceLayer.PatchNoContentAsync(