internal decimal GuardarAlmacenMovimientoDetalle(List <AlmacenMovimientoDetalle> almacenDetalleLista, int almacenID) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); decimal resultado = almacenDAL.GuardarAlmacenMovimientoDetalle(almacenDetalleLista, almacenID); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Funcion para guardar los tratamientos en almacen movimiento y descontarlos del inventario /// </summary> /// <param name="listaTratamientos"></param> /// <param name="almacenMovimientoInfo"></param> internal int GuardarDescontarTratamientos(List <TratamientoInfo> listaTratamientos, AlmacenMovimientoInfo almacenMovimientoInfo) { var info = 0; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); var resp = almacenDAL.GuardarAlmacenMovimiento(almacenMovimientoInfo); //Almacenar el MovimientoDetalle if (resp != null) { almacenMovimientoInfo.AlmacenMovimientoID = resp.AlmacenMovimientoID; almacenMovimientoInfo.FolioMovimiento = resp.FolioMovimiento; almacenMovimientoInfo.FechaCreacion = resp.FechaCreacion; almacenMovimientoInfo.FechaMovimiento = resp.FechaMovimiento; //Se obtiene la lista de productos y tratamientos a insertar var listaAlmacenMovimientoDetalle = ( from tratamiento in listaTratamientos from producto in tratamiento.Productos select new AlmacenMovimientoDetalle { TratamientoID = tratamiento.TratamientoID, ProductoID = producto.ProductoId, Precio = 0, Cantidad = producto.Dosis, Importe = 0, AlmacenMovimientoID = almacenMovimientoInfo.AlmacenMovimientoID, UsuarioCreacionID = almacenMovimientoInfo.UsuarioCreacionID }).ToList(); var lista = new List <AlmacenMovimientoDetalle>(); foreach (var almacenMovimintoDetalle in listaAlmacenMovimientoDetalle) { var existe = true; foreach (var almacenMovimintoDetalleInfo in lista) { if (almacenMovimintoDetalle.ProductoID == almacenMovimintoDetalleInfo.ProductoID) { existe = false; } } if (existe) { lista.Add(almacenMovimintoDetalle); } } //Se almacena el detalle del movimiento var costoTotal = almacenDAL.GuardarAlmacenMovimientoDetalle(lista, almacenMovimientoInfo.AlmacenID); var animalCosto = new AnimalCostoInfo { AnimalID = almacenMovimientoInfo.AnimalID, CostoID = almacenMovimientoInfo.CostoID, FolioReferencia = almacenMovimientoInfo.AlmacenMovimientoID, Importe = costoTotal, UsuarioCreacionID = almacenMovimientoInfo.UsuarioCreacionID }; //Almacenr el costo en Animal Costo var animalBL = new AnimalBL(); info = animalBL.GuardarAnimalCosto(animalCosto); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }