Index: src/main/java/mk/ukim/finki/db/distributorapp/_security/SecurityConfig.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/SecurityConfig.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_security/SecurityConfig.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -84,9 +84,4 @@
         CorsConfiguration configuration = new CorsConfiguration();
 
-//        String cleanedOrigins = allowedOrigins.replace("\"", "");
-//        List<String> origins = Arrays.stream(cleanedOrigins.split(","))
-//                .map(String::trim)
-//                .collect(Collectors.toList());
-
         configuration.setAllowedOriginPatterns(List.of("*"));
         configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "OPTIONS"));
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 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -51,5 +51,5 @@
     }
 
-    @GetMapping("/manager/vehicles/available-vehicles")
+    @GetMapping("/manager/available-vehicles")
     @PreAuthorize("hasAnyRole('MANAGER')")
     public ResponseEntity<?> getManagerAvailableVehicles(
@@ -69,5 +69,4 @@
             vehicles = this.vehicleService.getAvailableVehiclesForDateByManager(user.getId(), date);
         }else{
-            // TODO: Implement with proper method and DTO
             vehicles = this.vehicleService.getVehiclesByManager(user.getId());
         }
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 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -37,4 +37,5 @@
 
     @GetMapping("/manager/stock")
+    @PreAuthorize("hasAnyRole('MANAGER')")
     public ResponseEntity<List<WarehouseStockDto>> getWarehouseStock(Principal principal){
         String userEmail = principal.getName();
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/ReportsRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/ReportsRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/ReportsRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,57 @@
+package mk.ukim.finki.db.distributorapp.reports;
+
+import mk.ukim.finki.db.distributorapp.article.Article;
+import mk.ukim.finki.db.distributorapp.reports.dto.*;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface ReportsRepository extends JpaRepository<Article, Long> {
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * from ArticleSalesChangeOnPriceChange()")
+    List<ArticleSalesChange> getArticleSalesChangeOnPriceChange();
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM SalesComparisonByCategoryAndRegionInQuantityAndIncome()")
+    List<RegionCategorySales> getSalesComparisonByCategoryAndRegion();
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM SalesPrognosingOnArticlesAccToSalesInPreviousWeeks()")
+    List<SalesForecast> getSalesForecasts();
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM ArticleSalesInWarehouseByQuarters()")
+    List<WarehouseQuarterlySales> getWarehouseQuarterlySales();
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM ArticleSalesInWarehouseByQuarters() WHERE warehouseId = :warehouseId")
+    List<WarehouseQuarterlySales> getWarehouseQuarterlySalesByWarehouseId(@Param("warehouseId") Long warehouseId);
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM YearlyIncomeProfitAndExpensesByWarehouses()")
+    List<WarehouseYearlyFinancials> getWarehouseYearlyFinancials();
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM YearlyIncomeProfitAndExpensesByWarehouses() WHERE warehouseId = :warehouseId")
+    List<WarehouseYearlyFinancials> getWarehouseYearlyFinancialsByWarehouseId(@Param("warehouseId") Long warehouseId);
+
+    @Query(
+            nativeQuery = true,
+            value = "SELECT * FROM AnalyticsOfProductsByIncomeExpensesAndProfit()")
+    List<ProductAnalytics> getProductAnalytics();
+
+    @Query(
+            nativeQuery = true,
+            value = "select * from AnalyticsOfProductsByIncomeExpensesAndProfit() WHERE category = :category")
+    List<ProductAnalytics> getProductAnalyticsByCategory(@Param("category") String category);
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ArticleSalesChange.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ArticleSalesChange.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ArticleSalesChange.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,21 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.RequiredArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@RequiredArgsConstructor
+public class ArticleSalesChange {
+    private String articleName;
+    private BigDecimal unitPrice;
+    private Date priceEffectiveDate;
+    private Long unitsSold;
+    private BigDecimal revenue;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ProductAnalytics.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ProductAnalytics.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ProductAnalytics.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,20 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProductAnalytics {
+    private Long articleId;
+    private String articleName;
+    private String category;
+    private Long totalUnitsSold;
+    private BigDecimal totalIncome;
+    private BigDecimal totalCost;
+    private BigDecimal totalProfit;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/RegionCategorySales.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/RegionCategorySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/RegionCategorySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,17 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RegionCategorySales {
+    private String region;
+    private String category;
+    private Long totalUnitsSold;
+    private BigDecimal totalIncome;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/SalesForecast.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/SalesForecast.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/SalesForecast.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,18 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SalesForecast {
+    private Long articleId;
+    private String articleName;
+    private Long currentStock;
+    private BigDecimal averageUnitsSold;
+    private BigDecimal remainingAfterForecast;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseQuarterlySales.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseQuarterlySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseQuarterlySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,21 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WarehouseQuarterlySales {
+    private Integer warehouseId;
+    private String warehouseAddress;
+    private String warehouseCity;
+    private String warehouseRegion;
+    private Double year;
+    private Double quarter;
+    private Long totalArticlesSold;
+    private BigDecimal totalSales;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseYearlyFinancials.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseYearlyFinancials.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseYearlyFinancials.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -0,0 +1,19 @@
+package mk.ukim.finki.db.distributorapp.reports.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WarehouseYearlyFinancials {
+    private Long warehouseId;
+    private String warehouseCity;
+    private String warehouseRegion;
+    private Double year;
+    private BigDecimal totalIncome;
+    private BigDecimal totalProfit;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -80,20 +80,17 @@
             value = """
                      select v.veh_id as id,
-                            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,
-                            w.wh_id as whId,
-                            c.city_name as city,
-                            r.region_name as region,
-                            d.user_id as driverId,
-                            u1.user_name as driverName,
-                            u1.user_email as driverEmail,
-                            u1.user_mobile as driverPhone,
-                            u1.user_image as driverImg
+                           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,
+                           u1.user_name as driverName,
+                           u1.user_email as driverEmail,
+                           u1.user_mobile as driverPhone,
+                           u1.user_image as driverImg
                      from warehouse w
                      join city c on w.city_id = c.city_id
@@ -109,5 +106,5 @@
                     """
     )
-    List<VehicleDto> getVehiclesByManager(@NonNull @Param("manager") Long managerId);
+    List<Map<String, Object>> getVehiclesByManager(@NonNull @Param("manager") Long managerId);
 
     @Query(
@@ -145,6 +142,10 @@
                         left join driver d on d.veh_id=v.veh_id
                         left join users u on d.user_id=u.user_id
+                        join delivery de on v.veh_id = de.veh_id
+                        join warehouse wh on v.wh_id = wh.wh_id
+                        join manager m on wh.wh_id = m.wh_id
+                    where (de.del_date<>(:date)) and (m.user_id = :manager)
                     """
     )
-    List<Map<String, Object>> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
+    List<Map<String, Object>> getAvailableVehiclesForDateByManager(@Param("manager")Long id, @Param("date")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 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -18,5 +18,5 @@
     void deleteById(Integer id);
 
-    List<VehicleDto> getVehiclesByManager(Long managerId);
+    List<VehicleWithDriverDto> getVehiclesByManager(Long managerId);
 
     List<VehicleBasicDto> getBasicVehiclesByManagerId(Long managerId);
Index: src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -63,6 +63,10 @@
 
     @Override
-    public List<VehicleDto> getVehiclesByManager(Long managerId) {
-        return this.vehicleRepository.getVehiclesByManager(managerId);
+    public List<VehicleWithDriverDto> getVehiclesByManager(Long managerId) {
+        List<Map<String, Object>> results = this.vehicleRepository.getVehiclesByManager(managerId);
+
+        return results.stream()
+                .map(this::mapToVehicleWithDriverDto)
+                .collect(Collectors.toList());
     }
 
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 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -15,6 +15,6 @@
     private String articleName;
     private String articleImage;
-    private Double articleWeight;
-    private Integer quantity;
+    private Integer articleWeight;
+    private Long quantity;
     private Date nearestExpirationDate;
     private BigDecimal sellingPrice;
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 83cebb5274f1e079003b8617e274d09577ca7854)
+++ src/main/resources/application.properties	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
@@ -1,3 +1,3 @@
 spring.application.name=DistributorApp
 
-spring.profiles.active=prod
+spring.profiles.active=local
