/// <summary>
        /// Obtiene los almacenes en base a la organizacion, el tipo de almacen y el producto
        /// </summary>
        /// <param name="datosLotes"></param>
        /// <returns></returns>
        internal List <AlmacenInventarioLoteInfo> ObtenerListadoLotesPorOrganizacionTipoAlmacenProducto(ParametrosOrganizacionTipoAlmacenProductoActivo datosLotes)
        {
            List <AlmacenInventarioLoteInfo> almacenInventarioLote = null;

            try
            {
                var almacenDAL = new AlmacenInventarioLoteDAL();
                almacenInventarioLote = almacenDAL.ObtenerListadoLotesPorOrganizacionTipoAlmacenProducto(datosLotes);

                if (almacenInventarioLote != null)
                {
                    foreach (var almacenInventario in almacenInventarioLote)
                    {
                        if (almacenInventario.AlmacenInventario.AlmacenInventarioID > 0)
                        {
                            var almacenInventarioBl = new AlmacenInventarioBL();
                            almacenInventario.AlmacenInventario =
                                almacenInventarioBl.ObtenerAlmacenInventarioPorId(
                                    almacenInventario.AlmacenInventario.AlmacenInventarioID);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(almacenInventarioLote);
        }