Index: src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestOrderController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestOrderController.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestOrderController.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -22,5 +22,7 @@
 
 import java.security.Principal;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
@@ -98,8 +100,18 @@
     @GetMapping("/manager/unassigned-orders-by-city")
     @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<OrderSimpleDto>> getManagerUnassignedOrdersByCity(Principal principal){
+    public ResponseEntity<List<OrderSimpleDto>> getManagerUnassignedOrdersByCity(Principal principal, @RequestParam String cityIds){
         String userEmail = principal.getName();
         UserDto user = this.userService.findUserDtoByEmail(userEmail);
 
+        WarehouseDto wh = this.warehouseService.findByUserId(user.getCityId());
+
+        List<Integer> cityIdList = Arrays.stream(cityIds.split(","))
+                .map(String::trim)
+                .map(Integer::parseInt)
+                .collect(Collectors.toList());
+
+        List<OrderSimpleDto> unassignedOrders = this.ordersService
+                .getUnassignedOrdersByCitiesForWarehouse(cityIdList, wh.getId());
+        return ResponseEntity.ok(unassignedOrders);
     }
 
Index: src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -7,4 +7,5 @@
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
+import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
 import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
@@ -63,5 +64,5 @@
         }
 
-        List<VehicleDto> vehicles;
+        List<VehicleWithDriverDto> vehicles;
 
         if(date!=null){
Index: src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -2,10 +2,14 @@
 
 import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.db.distributorapp.users.UserService;
+import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
 import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
+import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.security.Principal;
 import java.util.List;
 
@@ -16,4 +20,5 @@
 public class RestWarehouseController {
     private final WarehouseService warehouseService;
+    private final UserService userService;
 
     @GetMapping("/find-by-city")
@@ -30,3 +35,14 @@
         return ResponseEntity.ok().body(result);
     }
+
+    @GetMapping("/manager/stock")
+    public ResponseEntity<List<WarehouseStockDto>> getWarehouseStock(Principal principal){
+        String userEmail = principal.getName();
+        UserDto user = this.userService.findUserDtoByEmail(userEmail);
+
+        WarehouseDto wh = this.warehouseService.findByUserId(user.getCityId());
+
+        List<WarehouseStockDto> stock = this.warehouseService.getWarehouseStock(wh.getId());
+        return ResponseEntity.ok().body(stock);
+    }
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersRepository.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersRepository.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -2,5 +2,4 @@
 
 import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderManagerDto;
 import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
 import mk.ukim.finki.db.distributorapp.order.dto.OrdersDeliveryDto;
@@ -294,3 +293,20 @@
     )
     List<OrdersDeliveryDto> findDeliveryOrdersByDelivery(@Param("delivery") Long deliveryId);
+
+    @Query(nativeQuery = true,
+            value = """
+                    select distinct o
+                    from orders o
+                    join users u on o.cust_id = u.user_id
+                    join city c on u.city_id = c.city_id
+                    where c.city_id in (:cityIds)
+                        and o.o_status_id = 1
+                        and o.del_id is not null
+                    order by o.ord_date asc
+                    """
+    ) // TODO: correctly adjust select to the correct dto
+    List<OrderSimpleDto> findUnassignedOrdersByCitiesAndWarehouse(
+            @Param("cityIds") List<Integer> cityIds,
+            @Param("warehouseId") Integer warehouseId
+    );
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersService.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersService.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -30,3 +30,5 @@
 
     List<OrdersDeliveryDto> findDeliveryOrdersByDelivery(Long deliveryId);
+
+    List<OrderSimpleDto> getUnassignedOrdersByCitiesForWarehouse(List<Integer> cityIdList, Integer id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersServiceImpl.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersServiceImpl.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -145,3 +145,10 @@
         return this.ordersRepository.findDeliveryOrdersByDelivery(deliveryId);
     }
+
+    @Override
+    public List<OrderSimpleDto> getUnassignedOrdersByCitiesForWarehouse(List<Integer> cityIds, Integer warehouseId) {
+        return this.ordersRepository.findUnassignedOrdersByCitiesAndWarehouse(cityIds, warehouseId);
+    }
+
+
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderSimpleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderSimpleDto.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderSimpleDto.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -6,5 +6,4 @@
 
 import java.time.LocalDateTime;
-import java.util.List;
 
 @Data
@@ -21,4 +20,3 @@
     private Long deliveryId;
     private Long pfId;
-
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -13,4 +13,5 @@
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface VehicleRepository extends JpaRepository<Vehicle, Integer> {
@@ -128,11 +129,22 @@
             value = """
                     select v.veh_id as id,
-                    v.wh_id as warehouseId,
-                    v.veh_plate as plateNumber
+                           v.veh_carry_weight as carryWeight,
+                           v.veh_service_interval as serviceInterval,
+                           v.veh_kilometers as kilometers,
+                           v.veh_last_service as lastServiceDate,
+                           v.veh_last_service_km as lastServiceKm,
+                           v.veh_plate as plate,
+                           v.veh_vin as vin,
+                           v.veh_reg_date as registrationDate,
+                           d.user_id as driverId,
+                           u.user_name as driverName,
+                           u.user_email as driverEmail,
+                           u.user_mobile as driverPhone,
+                           u.user_image as driverImg
                     from vehicle v
-                    left join delivery d on v.veh_id = d.veh_id and d.del_date = ?2
-                    where d.del_id is null
+                        left join driver d on d.veh_id=v.veh_id
+                        left join users u on d.user_id=u.user_id
                     """
     )
-    List<VehicleBasicDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
+    List<Map<String, Object>> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -3,4 +3,5 @@
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
+import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
 
 import java.time.LocalDate;
@@ -21,4 +22,4 @@
     List<VehicleBasicDto> getBasicVehiclesByManagerId(Long managerId);
 
-    List<VehicleBasicDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
+    List<VehicleWithDriverDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -2,10 +2,15 @@
 
 import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
 import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
+import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
 import org.springframework.stereotype.Service;
 
+import java.sql.Date;
 import java.time.LocalDate;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
@@ -68,6 +73,71 @@
 
     @Override
-    public List<VehicleBasicDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date) {
-        return this.vehicleRepository.getAvailableVehiclesForDateByManager(id, date);
+    public List<VehicleWithDriverDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date) {
+        List<Map<String, Object>> results = this.vehicleRepository.getAvailableVehiclesForDateByManager(id, date);
+
+        return results.stream()
+                .map(this::mapToVehicleWithDriverDto)
+                .collect(Collectors.toList());
+    }
+
+    private VehicleWithDriverDto mapToVehicleWithDriverDto(Map<String, Object> row) {
+        VehicleWithDriverDto dto = new VehicleWithDriverDto();
+
+        dto.setId(getInteger(row, "id"));
+        dto.setCarryWeight(getInteger(row, "carryWeight"));
+        dto.setKilometers(getInteger(row, "kilometers"));
+        dto.setServiceInterval(getShort(row, "serviceInterval"));
+
+        Date sqlDate = (java.sql.Date) row.get("lastServiceDate");
+        if (sqlDate != null) {
+            dto.setLastServiceDate(new java.util.Date(sqlDate.getTime()));
+        }
+        dto.setLastServiceKm(getInteger(row, "lastServiceKm"));
+        dto.setVin(getString(row, "vin"));
+        dto.setPlate(getString(row, "plate"));
+
+        Date sqlRegDate = (java.sql.Date) row.get("registrationDate");
+        if(sqlRegDate != null) {
+            dto.setRegistrationDate(new java.util.Date(sqlRegDate.getTime()));
+        }
+
+        Long driverId = getLong(row, "driverId");
+        if(driverId!=null){
+            DriverDto driverDto = new DriverDto();
+            driverDto.setId(driverId);
+            driverDto.setName(getString(row, "name"));
+            driverDto.setEmail(getString(row, "email"));
+            driverDto.setPhone(getString(row, "phone"));
+            driverDto.setImage(getString(row, "img"));
+            driverDto.setVehId(getInteger(row, "id"));
+            dto.setDriver(driverDto);
+        }
+
+        return dto;
+    }
+
+    private Long getLong(Map<String, Object> row, String key) {
+        Object value = row.get(key);
+        return (value != null) ? ((Number) value).longValue() : null;
+    }
+
+    private Double getDouble(Map<String, Object> row, String key) {
+        Object value = row.get(key);
+        return (value != null) ? ((Number) value).doubleValue() : null;
+    }
+
+    private Integer getInteger(Map<String, Object> row, String key) {
+        Object value = row.get(key);
+        return (value != null) ? ((Number) value).intValue() : null;
+    }
+
+    private String getString(Map<String, Object> row, String key) {
+        Object value = row.get(key);
+        return (value != null) ? value.toString() : null;
+    }
+
+    private Short getShort(Map<String, Object> row, String key) {
+        Object value = row.get(key);
+        return (value != null) ? ((Number) value).shortValue() : null;
     }
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleWithDriverDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleWithDriverDto.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleWithDriverDto.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -0,0 +1,25 @@
+package mk.ukim.finki.db.distributorapp.vehicle.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class VehicleWithDriverDto {
+    private Integer id;
+    private Integer carryWeight;
+    private Short serviceInterval;
+    private Integer kilometers;
+    private Date lastServiceDate;
+    private Integer lastServiceKm;
+    private String plate;
+    private String vin;
+    private Date registrationDate;
+
+    DriverDto driver;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseRepository.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseRepository.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -4,4 +4,5 @@
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
+import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Modifying;
@@ -102,3 +103,35 @@
     )
     WarehouseDto findWarehouseDtoByCityId(@NonNull @Param("city") Integer cityId);
+
+
+    @Query(
+            nativeQuery = true,
+            value = """
+                    select art.art_id as articleId,
+                        art.art_name as articleName,
+                        art.art_image as articleImage,
+                        art.art_weight as articleWeight,
+                        count(au.unit_id) as quantity,
+                        min(au.unit_expiration_date) as nearestExpirationDate,
+                        p.price as sellingPrice,
+                        au.unit_cost_price as costPrice,
+                        m.man_name as manufacturerName,
+                        c.ctg_name as categoryName
+                    from article art
+                        left join price p on p.art_id = art.art_id and p.price_eff_date = (
+                                                select max(p2.price_eff_date)
+                                                from price p2
+                                                where p2.art_id = art.art_id
+                                                    and p2.price_eff_date<= current_date
+                                            )
+                        join unit_price up on up.price_id = p.price_id
+                        join article_unit au on au.unit_id = up.unit_id
+                        join manufacturer m on art.man_id = m.man_id
+                        join category c on art.ctg_id = c.ctg_id
+                    where au.wh_id = :warehouseId
+                    group by art.art_id, art.art_name, art.art_image, art.art_weight, p.price, au.unit_cost_price, m.man_name, c.ctg_name 
+                    order by art.art_name
+                    """
+    )
+    List<WarehouseStockDto> getWarehouseStock(@Param("warehouseId") Integer id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseService.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseService.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -3,4 +3,5 @@
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
+import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
 
 import java.util.List;
@@ -24,3 +25,5 @@
 
     List<WarehouseDto> findAll();
+
+    List<WarehouseStockDto> getWarehouseStock(Integer id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseServiceImpl.java	(revision e31f7b5f55f82ea54f09f1c8ab81d68a6547cb44)
+++ src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseServiceImpl.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -4,4 +4,5 @@
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
 import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
+import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
 import org.springframework.stereotype.Service;
 
@@ -67,3 +68,8 @@
         return this.warehouseRepository.findAllDTO();
     }
+
+    @Override
+    public List<WarehouseStockDto> getWarehouseStock(Integer id) {
+        return this.warehouseRepository.getWarehouseStock(id);
+    }
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseStockDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseStockDto.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseStockDto.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
@@ -0,0 +1,24 @@
+package mk.ukim.finki.db.distributorapp.warehouse.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WarehouseStockDto {
+    private Long articleId;
+    private String articleName;
+    private String articleImage;
+    private Double articleWeight;
+    private Integer quantity;
+    private Date nearestExpirationDate;
+    private BigDecimal sellingPrice;
+    private BigDecimal costPrice;
+    private String manufacturerName;
+    private String categoryName;
+}
