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(