Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Article_Unit.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Article_Unit.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Article_Unit.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -26,5 +26,5 @@
 
     @Column(name = "unit_cost_price", nullable = false)
-    private double unit_cost_price;
+    private Double unit_cost_price;
 
     @ManyToOne
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -43,5 +43,5 @@
             value = ""
     )
-    Optional<Article> create();
+    Optional<Article> create(String name, Integer weight, Long ctg_id, Long man_id);
 
     @Modifying
@@ -51,5 +51,5 @@
             value = ""
     )
-    Optional<Article> edit();
+    Optional<Article> edit(Long id, String name, Integer weight, Long ctg_id, Long man_id);
 
     @Modifying
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -9,4 +9,5 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Optional;
@@ -31,11 +32,5 @@
     Optional<Article_Unit> findById(@NonNull @Param("id") Long id);
 
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = ""
-    )
-    Optional<Article_Unit> create();
+    List<Article_Unit> findAllByWarehouse(Integer wh_id);
 
     @Modifying
@@ -45,5 +40,32 @@
             value = ""
     )
-    Optional<Article_Unit> edit();
+    Optional<Article_Unit> create(
+            Date unit_exp_date,
+            String unit_ser_number,
+            String unit_batch_number,
+            Date unit_manufacture_date,
+            Double unit_cost_price,
+            Long art_id,
+            Integer wh_id,
+            Long ord_id
+    );
+
+    @Modifying
+    @Transactional
+    @Query(
+            nativeQuery = true,
+            value = ""
+    )
+    Optional<Article_Unit> edit(
+            Long id,
+            Date unit_exp_date,
+            String unit_ser_number,
+            String unit_batch_number,
+            Date unit_manufacture_date,
+            Double unit_cost_price,
+            Long art_id,
+            Integer wh_id,
+            Long ord_id
+    );
 
     @Modifying
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -9,4 +9,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
+import java.time.LocalTime;
 import java.util.List;
 import java.util.Optional;
@@ -23,5 +25,5 @@
             value = ""
     )
-    List<Delivery> findAllByName(@NonNull @Param("name") String name);
+    List<Delivery> findAllByVehicle(@NonNull @Param("vehicle") Integer veh_id);
 
     @Query(
@@ -31,11 +33,9 @@
     Optional<Delivery> findById(@NonNull @Param("id") Long id);
 
-    @Modifying
-    @Transactional
     @Query(
             nativeQuery = true,
             value = ""
     )
-    Optional<Delivery> create();
+    List<Delivery> findDeliveriesByDriver(@NonNull @Param("driver") Long driver_id);
 
     @Modifying
@@ -45,5 +45,14 @@
             value = ""
     )
-    Optional<Delivery> edit();
+    Optional<Delivery> create(
+            LocalDate del_date_created,
+            LocalDate del_date,
+            Integer del_start_km,
+            Integer del_end_km,
+            LocalTime del_start_time,
+            LocalTime del_end_time,
+            Short del_status_id,
+            Integer veh_id
+    );
 
     @Modifying
@@ -53,4 +62,22 @@
             value = ""
     )
-    void delete();
+    Optional<Delivery> edit(
+            Long id,
+            LocalDate del_date_created,
+            LocalDate del_date,
+            Integer del_start_km,
+            Integer del_end_km,
+            LocalTime del_start_time,
+            LocalTime del_end_time,
+            Short del_status_id,
+            Integer veh_id
+    );
+
+    @Modifying
+    @Transactional
+    @Query(
+            nativeQuery = true,
+            value = ""
+    )
+    void delete(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -37,5 +37,5 @@
             value = ""
     )
-    Optional<Driver> create();
+    Optional<Driver> create(Long usr_id, Integer veh_id);
 
     @Modifying
@@ -45,5 +45,5 @@
             value = ""
     )
-    Optional<Driver> edit();
+    Optional<Driver> edit(Long usr_id, Integer veh_id);
 
     @Modifying
@@ -53,4 +53,4 @@
             value = ""
     )
-    void delete();
+    void delete(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -37,5 +37,5 @@
             value = ""
     )
-    Optional<Manufacturer> create();
+    Optional<Manufacturer> create(String name, String address, String mobile, String email);
 
     @Modifying
@@ -45,5 +45,5 @@
             value = ""
     )
-    Optional<Manufacturer> edit();
+    Optional<Manufacturer> edit(Long id, String name, String address, String mobile, String email);
 
     @Modifying
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -9,4 +9,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
@@ -37,5 +39,14 @@
             value = ""
     )
-    Optional<Orders> create();
+    Optional<Orders> create(
+            LocalDate ord_date,
+            Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            Short ord_status_id,
+            Long cust_id,
+            Long del_id,
+            Long pf_id
+    );
 
     @Modifying
@@ -45,5 +56,15 @@
             value = ""
     )
-    Optional<Orders> edit();
+    Optional<Orders> edit(
+            Long id,
+            LocalDate ord_date,
+            Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            Short ord_status_id,
+            Long cust_id,
+            Long del_id,
+            Long pf_id
+    );
 
     @Modifying
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -9,4 +9,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
@@ -23,5 +25,5 @@
             value = ""
     )
-    List<Price> findAllByName(@NonNull @Param("name") String name);
+    List<Price> findAllByArticleId(@NonNull @Param("id") Long id);
 
     @Query(
@@ -37,5 +39,5 @@
             value = ""
     )
-    Optional<Price> create();
+    Optional<Price> create(BigDecimal price, LocalDateTime price_eff_date, Long art_id);
 
     @Modifying
@@ -45,5 +47,5 @@
             value = ""
     )
-    Optional<Price> edit();
+    Optional<Price> edit(Integer id, BigDecimal price, LocalDateTime price_eff_date, Long art_id);
 
     @Modifying
@@ -53,4 +55,4 @@
             value = ""
     )
-    void delete();
+    void delete(Integer id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -9,4 +9,5 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.util.List;
 import java.util.Optional;
@@ -23,10 +24,4 @@
             value = ""
     )
-    List<Pro_Forma> findAllByName(@NonNull @Param("name") String name);
-
-    @Query(
-            nativeQuery = true,
-            value = ""
-    )
     Optional<Pro_Forma> findById(@NonNull @Param("id") Short id);
 
@@ -37,5 +32,5 @@
             value = ""
     )
-    Optional<Pro_Forma> create();
+    Optional<Pro_Forma> create(LocalDate pf_deadline, LocalDate pf_create_date, Short pf_status_id, Long order_id);
 
     @Modifying
@@ -45,5 +40,5 @@
             value = ""
     )
-    Optional<Pro_Forma> edit();
+    Optional<Pro_Forma> edit(Long pf_id, LocalDate pf_deadline, LocalDate pf_create_date, Short pf_status_id, Long order_id);
 
     @Modifying
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -10,14 +10,14 @@
 public interface ArticleService {
 
-    List<Article> findAll();
+    List<Article> getAllArticles();
 
     Optional<Article> findById(long id);
 
-    Optional<Article> findByName(String name);
+    List<Article> findAllByName(String name);
 
     void deleteById(long id);
 
-    Optional<Article>editById(long id, Article article);
+    Optional<Article>editById(Article article);
 
-    Optional<Article> save(Long id, String name, Integer weight, Category category, Manufacturer manufacturer);
+    Optional<Article> create(String name, Integer weight, Category category, Manufacturer manufacturer);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,45 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Article_Unit;
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Warehouse;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
 public interface ArticleUnitService {
+    List<Article_Unit> getAllArticleUnits();
+
+    List<Article_Unit> findALlByName(String name);
+
+    List<Article_Unit> findAllByWarehouse(Warehouse warehouse);
+
+    Optional<Article_Unit> findById(Long id);
+
+    Optional<Article_Unit> create(
+            Date unit_exp_date,
+            String unit_ser_number,
+            String unit_batch_number,
+            Date unit_manufacture_date,
+            Double unit_cost_price,
+            Article article,
+            Warehouse warehouse,
+            Orders order
+    );
+
+    Optional<Article_Unit> edit(
+            Long id,
+            Date unit_exp_date,
+            String unit_ser_number,
+            String unit_batch_number,
+            Date unit_manufacture_date,
+            Double unit_cost_price,
+            Article article,
+            Warehouse warehouse,
+            Orders order
+    );
+
+    void delete(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/DeliveryService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/DeliveryService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/DeliveryService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,46 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Delivery;
+import mk.ukim.finki.db.distributorapp.model.Vehicle;
+import mk.ukim.finki.db.distributorapp.model.statuses.Delivery_Status;
+import mk.ukim.finki.db.distributorapp.model.Driver;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.List;
+import java.util.Optional;
+
 public interface DeliveryService {
+    List<Delivery> getAllDeliveries();
+
+    List<Delivery> getAllDeliveriesByVehicleId(Vehicle vehicle);
+
+    List<Delivery> getAllDeliveriesByDriver(Driver driver);
+
+    Optional<Delivery> findDeliveryById(Long id);
+
+    Optional<Delivery> create(
+            LocalDate del_date_created,
+            LocalDate del_date,
+            Integer del_start_km,
+            Integer del_end_km,
+            LocalTime del_start_time,
+            LocalTime del_end_time,
+            Delivery_Status del_status,
+            Vehicle vehicle
+    );
+
+    Optional<Delivery> edit(
+            Long del_id,
+            LocalDate del_date_created,
+            LocalDate del_date,
+            Integer del_start_km,
+            Integer del_end_km,
+            LocalTime del_start_time,
+            LocalTime del_end_time,
+            Delivery_Status del_status,
+            Vehicle vehicle
+    );
+
+    void delete(Long del_id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/DriverService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/DriverService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/DriverService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,16 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Driver;
+import mk.ukim.finki.db.distributorapp.model.Vehicle;
+
+import java.util.List;
+import java.util.Optional;
+
 public interface DriverService {
+    List<Driver> getAllDrivers();
+    List<Driver> findAllByName(String name);
+    Optional<Driver> findById(Long id);
+    Optional<Driver> create(Long id, Vehicle vehicle);
+    Optional<Driver> edit(Long id, Vehicle vehicle);
+    void delete(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/ManufacturerService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/ManufacturerService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/ManufacturerService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,5 +1,15 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Manufacturer;
+
+import java.util.List;
+import java.util.Optional;
+
 public interface ManufacturerService {
-
+    List<Manufacturer> getAllManufacturers();
+    List<Manufacturer> findAllManufacturersByName(String name);
+    Optional<Manufacturer> findManufacturerById(Long id);
+    Optional<Manufacturer> create(String name, String address, String mobile, String email);
+    Optional<Manufacturer> edit(Long id, String name, String address, String mobile, String email);
+    void delete(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/OrdersService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/OrdersService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/OrdersService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,45 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Customer;
+import mk.ukim.finki.db.distributorapp.model.Delivery;
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Pro_Forma;
+import mk.ukim.finki.db.distributorapp.model.statuses.Order_Status;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Optional;
+
 public interface OrdersService {
+    List<Orders> getAllOrders();
+
+    List<Orders> findOrdersByCustomer(Customer customer);
+
+    Optional<Orders> findById(Long id);
+
+    Optional<Orders> create(
+            LocalDate ord_date,
+            Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            Order_Status ord_status,
+            Customer customer,
+            Delivery delivery,
+            Pro_Forma proForma
+    );
+
+    Optional<Orders> edit(
+            Long id,
+            LocalDate ord_date,
+            Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            Order_Status ord_status,
+            Customer customer,
+            Delivery delivery,
+            Pro_Forma proForma
+    );
+
+    void deleteById(Long id);
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/PriceService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/PriceService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/PriceService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,22 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Price;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Optional;
+
 public interface PriceService {
+    List<Price> getAllPrices();
+
+    List<Price> findAllPricesByArticleId(Article article);
+
+    Optional<Price> create(BigDecimal price, LocalDateTime price_eff_date, Article article);
+
+    Optional<Price> edit(Integer id, BigDecimal price, LocalDateTime price_eff_date, Article article);
+
+    void delete(Integer id);
+
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/ProFormaService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/ProFormaService.java	(revision de8bc593b0659959f7d075aff9a2bd57be1fe1d5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/ProFormaService.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -1,4 +1,22 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Pro_Forma;
+import mk.ukim.finki.db.distributorapp.model.statuses.Pro_Forma_Status;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+
 public interface ProFormaService {
+    List<Pro_Forma> getAllPro_Forma();
+
+    Optional<Pro_Forma> findProFormaById(Long id);
+
+    Optional<Pro_Forma> create(LocalDate pf_deadline, LocalDate pf_create_date, Pro_Forma_Status pf_status, Orders order);
+
+    Optional<Pro_Forma> edit(Long id, LocalDate pf_deadline, LocalDate pf_create_date, Pro_Forma_Status pf_status, Orders order);
+
+    void delete(Long id);
+
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,56 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Category;
+import mk.ukim.finki.db.distributorapp.model.Manufacturer;
+import mk.ukim.finki.db.distributorapp.repository.ArticleRepository;
+import mk.ukim.finki.db.distributorapp.service.ArticleService;
+
+import java.util.List;
+import java.util.Optional;
+
+public class ArticleServiceImpl implements ArticleService {
+    private final ArticleRepository articleRepository;
+
+    public ArticleServiceImpl(ArticleRepository articleRepository) {
+        this.articleRepository = articleRepository;
+    }
+
+    @Override
+    public List<Article> getAllArticles() {
+        return this.articleRepository.listAll();
+    }
+
+    @Override
+    public Optional<Article> findById(long id) {
+        return this.articleRepository.findById(id);
+    }
+
+    @Override
+    public List<Article> findAllByName(String name) {
+        return this.articleRepository.findAllByName(name);
+    }
+
+    @Override
+    public void deleteById(long id) {
+        this.articleRepository.deleteById(id);
+    }
+
+    @Override
+    public Optional<Article> editById(Article article) {
+        return this.articleRepository.edit(
+                article.getArticle_id(), article.getArticle_name(),
+                article.getArticle_weight(),
+                article.getCategory().getCategory_id(),
+                article.getManufacturer().getManufacturer_id());
+    }
+
+    @Override
+    public Optional<Article> create(String name, Integer weight, Category category, Manufacturer manufacturer) {
+        return this.articleRepository.create(
+                name,
+                weight,
+                category.getCategory_id(),
+                manufacturer.getManufacturer_id());
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,74 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Article_Unit;
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Warehouse;
+import mk.ukim.finki.db.distributorapp.repository.ArticleUnitRepository;
+import mk.ukim.finki.db.distributorapp.service.ArticleUnitService;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+public class ArticleUnitServiceImpl implements ArticleUnitService {
+    private final ArticleUnitRepository articleUnitRepository;
+
+    public ArticleUnitServiceImpl(ArticleUnitRepository articleUnitRepository) {
+        this.articleUnitRepository = articleUnitRepository;
+    }
+
+    @Override
+    public List<Article_Unit> getAllArticleUnits() {
+        return this.articleUnitRepository.listAll();
+    }
+
+    @Override
+    public List<Article_Unit> findALlByName(String name) {
+        return this.articleUnitRepository.findAllByName(name);
+    }
+
+    @Override
+    public List<Article_Unit> findAllByWarehouse(Warehouse warehouse) {
+        return this.articleUnitRepository.findAllByWarehouse(warehouse.getWarehouse_id());
+    }
+
+    @Override
+    public Optional<Article_Unit> findById(Long id) {
+        return this.articleUnitRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Article_Unit> create(Date unit_exp_date, String unit_ser_number, String unit_batch_number, Date unit_manufacture_date, Double unit_cost_price, Article article, Warehouse warehouse, Orders order) {
+        return this.articleUnitRepository.create(
+                unit_exp_date,
+                unit_ser_number,
+                unit_batch_number,
+                unit_manufacture_date,
+                unit_cost_price,
+                article.getArticle_id(),
+                warehouse.getWarehouse_id(),
+                order.getOrder_id()
+        );
+    }
+
+    @Override
+    public Optional<Article_Unit> edit(Long id, Date unit_exp_date, String unit_ser_number, String unit_batch_number, Date unit_manufacture_date, Double unit_cost_price, Article article, Warehouse warehouse, Orders order) {
+        return this.articleUnitRepository.edit(
+                id,
+                unit_exp_date,
+                unit_ser_number,
+                unit_batch_number,
+                unit_manufacture_date,
+                unit_cost_price,
+                article.getArticle_id(),
+                warehouse.getWarehouse_id(),
+                order.getOrder_id()
+        );
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.articleUnitRepository.deleteById(id);
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,75 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Delivery;
+import mk.ukim.finki.db.distributorapp.model.Vehicle;
+import mk.ukim.finki.db.distributorapp.model.statuses.Delivery_Status;
+import mk.ukim.finki.db.distributorapp.repository.DeliveryRepository;
+import mk.ukim.finki.db.distributorapp.service.DeliveryService;
+import mk.ukim.finki.db.distributorapp.model.Driver;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.List;
+import java.util.Optional;
+
+public class DeliveryServiceImpl implements DeliveryService {
+    private final DeliveryRepository deliveryRepository;
+
+    public DeliveryServiceImpl(DeliveryRepository deliveryRepository) {
+        this.deliveryRepository = deliveryRepository;
+    }
+
+    @Override
+    public List<Delivery> getAllDeliveries() {
+        return this.deliveryRepository.listAll();
+    }
+
+    @Override
+    public List<Delivery> getAllDeliveriesByVehicleId(Vehicle vehicle) {
+        return this.deliveryRepository.findAllByVehicle(vehicle.getVehicle_id());
+    }
+
+    @Override
+    public List<Delivery> getAllDeliveriesByDriver(Driver driver) {
+        return this.deliveryRepository.findDeliveriesByDriver(driver.getUser_id());
+    }
+
+    @Override
+    public Optional<Delivery> findDeliveryById(Long id) {
+        return this.deliveryRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Delivery> create(LocalDate del_date_created, LocalDate del_date, Integer del_start_km, Integer del_end_km, LocalTime del_start_time, LocalTime del_end_time, Delivery_Status del_status, Vehicle vehicle) {
+        return this.deliveryRepository.create(
+                del_date_created,
+                del_date,
+                del_start_km,
+                del_end_km,
+                del_start_time,
+                del_end_time,
+                del_status.getDelivery_status_id(),
+                vehicle.getVehicle_id()
+        );
+    }
+
+    @Override
+    public Optional<Delivery> edit(Long del_id, LocalDate del_date_created, LocalDate del_date, Integer del_start_km, Integer del_end_km, LocalTime del_start_time, LocalTime del_end_time, Delivery_Status del_status, Vehicle vehicle) {
+        return this.deliveryRepository.edit(
+                del_id,
+                del_date_created,
+                del_date,
+                del_start_km,
+                del_end_km,
+                del_start_time,
+                del_end_time,
+                del_status.getDelivery_status_id(),
+                vehicle.getVehicle_id()
+        );
+    }
+
+    @Override
+    public void delete(Long del_id) {
+        this.deliveryRepository.delete(del_id);
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DriverServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DriverServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DriverServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,47 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Driver;
+import mk.ukim.finki.db.distributorapp.model.Vehicle;
+import mk.ukim.finki.db.distributorapp.repository.DriverRepository;
+import mk.ukim.finki.db.distributorapp.service.DriverService;
+
+import java.util.List;
+import java.util.Optional;
+
+public class DriverServiceImpl implements DriverService {
+    private final DriverRepository driverRepository;
+
+    public DriverServiceImpl(DriverRepository driverRepository) {
+        this.driverRepository = driverRepository;
+    }
+
+    @Override
+    public List<Driver> getAllDrivers() {
+        return this.driverRepository.listAll();
+    }
+
+    @Override
+    public List<Driver> findAllByName(String name) {
+        return this.driverRepository.findAllByName(name);
+    }
+
+    @Override
+    public Optional<Driver> findById(Long id) {
+        return this.driverRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Driver> create(Long id, Vehicle vehicle) {
+        return this.driverRepository.create(id, vehicle.getVehicle_id());
+    }
+
+    @Override
+    public Optional<Driver> edit(Long id, Vehicle vehicle) {
+        return this.driverRepository.edit(id, vehicle.getVehicle_id());
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.driverRepository.deleteById(id);
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,46 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Manufacturer;
+import mk.ukim.finki.db.distributorapp.repository.ManufacturerRepository;
+import mk.ukim.finki.db.distributorapp.service.ManufacturerService;
+
+import java.util.List;
+import java.util.Optional;
+
+public class ManufacturerServiceImpl implements ManufacturerService {
+    private final ManufacturerRepository manufacturerRepository;
+
+    public ManufacturerServiceImpl(ManufacturerRepository manufacturerRepository) {
+        this.manufacturerRepository = manufacturerRepository;
+    }
+
+    @Override
+    public List<Manufacturer> getAllManufacturers() {
+        return this.manufacturerRepository.listAll();
+    }
+
+    @Override
+    public List<Manufacturer> findAllManufacturersByName(String name) {
+        return this.manufacturerRepository.findAllByName(name);
+    }
+
+    @Override
+    public Optional<Manufacturer> findManufacturerById(Long id) {
+        return this.manufacturerRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Manufacturer> create(String name, String address, String mobile, String email) {
+        return this.manufacturerRepository.create(name, address, mobile, email);
+    }
+
+    @Override
+    public Optional<Manufacturer> edit(Long id, String name, String address, String mobile, String email) {
+        return this.manufacturerRepository.edit(id, name, address, mobile, email);
+    }
+
+    @Override
+    public void delete(Long id) {
+
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrdersServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrdersServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrdersServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,71 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Customer;
+import mk.ukim.finki.db.distributorapp.model.Delivery;
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Pro_Forma;
+import mk.ukim.finki.db.distributorapp.model.statuses.Order_Status;
+import mk.ukim.finki.db.distributorapp.repository.OrdersRepository;
+import mk.ukim.finki.db.distributorapp.service.OrdersService;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Optional;
+
+public class OrdersServiceImpl implements OrdersService {
+    private final OrdersRepository ordersRepository;
+
+    public OrdersServiceImpl(OrdersRepository ordersRepository) {
+        this.ordersRepository = ordersRepository;
+    }
+
+    @Override
+    public List<Orders> getAllOrders() {
+        return this.ordersRepository.listAll();
+    }
+
+    @Override
+    public List<Orders> findOrdersByCustomer(Customer customer) {
+        return this.ordersRepository.findByCustomer(customer.getUser_id());
+    }
+
+    @Override
+    public Optional<Orders> findById(Long id) {
+        return this.ordersRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Orders> create(LocalDate ord_date, Integer ord_sum, LocalDateTime ord_fulfillment_date, String ord_comment, Order_Status ord_status, Customer customer, Delivery delivery, Pro_Forma proForma) {
+        return this.ordersRepository.create(
+                ord_date,
+                ord_sum,
+                ord_fulfillment_date,
+                ord_comment,
+                ord_status.getOrder_status_id(),
+                customer.getUser_id(),
+                delivery.getDelivery_id(),
+                proForma.getPro_forma_id()
+        );
+    }
+
+    @Override
+    public Optional<Orders> edit(Long id, LocalDate ord_date, Integer ord_sum, LocalDateTime ord_fulfillment_date, String ord_comment, Order_Status ord_status, Customer customer, Delivery delivery, Pro_Forma proForma) {
+        return this.ordersRepository.edit(
+                id,
+                ord_date,
+                ord_sum,
+                ord_fulfillment_date,
+                ord_comment,
+                ord_status.getOrder_status_id(),
+                customer.getUser_id(),
+                delivery.getDelivery_id(),
+                proForma.getPro_forma_id()
+        );
+    }
+
+    @Override
+    public void deleteById(Long id) {
+        this.ordersRepository.deleteById(id);
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/PriceServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/PriceServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/PriceServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,48 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Price;
+import mk.ukim.finki.db.distributorapp.repository.PriceRepository;
+import mk.ukim.finki.db.distributorapp.service.PriceService;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Optional;
+
+public class PriceServiceImpl implements PriceService {
+    private final PriceRepository priceRepository;
+
+    public PriceServiceImpl(PriceRepository priceRepository) {
+        this.priceRepository = priceRepository;
+    }
+
+    @Override
+    public List<Price> getAllPrices() {
+        return this.priceRepository.listAll();
+    }
+
+    @Override
+    public List<Price> findAllPricesByArticleId(Article article) {
+        return this.priceRepository.findAllByArticleId(article.getArticle_id());
+    }
+
+    @Override
+    public Optional<Price> create(BigDecimal price, LocalDateTime price_eff_date, Article article) {
+        return this.priceRepository.create(price,price_eff_date,article.getArticle_id());
+    }
+
+    @Override
+    public Optional<Price> edit(Integer id, BigDecimal price, LocalDateTime price_eff_date, Article article) {
+        return this.priceRepository.edit(
+                id,
+                price,
+                price_eff_date,
+                article.getArticle_id());
+    }
+
+    @Override
+    public void delete(Integer id) {
+        this.priceRepository.delete(id);
+    }
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaServiceImpl.java	(revision 3b23f6a0ec0f0b099b84902857e6e814a117a72e)
@@ -0,0 +1,55 @@
+package mk.ukim.finki.db.distributorapp.service.impl;
+
+import mk.ukim.finki.db.distributorapp.model.Orders;
+import mk.ukim.finki.db.distributorapp.model.Pro_Forma;
+import mk.ukim.finki.db.distributorapp.model.statuses.Pro_Forma_Status;
+import mk.ukim.finki.db.distributorapp.repository.ProFormaRepository;
+import mk.ukim.finki.db.distributorapp.service.ProFormaService;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+
+public class ProFormaServiceImpl implements ProFormaService {
+    private final ProFormaRepository proFormaRepository;
+
+    public ProFormaServiceImpl(ProFormaRepository proFormaRepository) {
+        this.proFormaRepository = proFormaRepository;
+    }
+
+    @Override
+    public List<Pro_Forma> getAllPro_Forma() {
+        return this.proFormaRepository.listAll();
+    }
+
+    @Override
+    public Optional<Pro_Forma> findProFormaById(Long id) {
+        return this.proFormaRepository.findById(id);
+    }
+
+    @Override
+    public Optional<Pro_Forma> create(LocalDate pf_deadline, LocalDate pf_create_date, Pro_Forma_Status pf_status, Orders order) {
+        return this.proFormaRepository.create(
+                pf_deadline,
+                pf_create_date,
+                pf_status.getPro_forma_status_id(),
+                order.getOrder_id()
+        );
+    }
+
+    @Override
+    public Optional<Pro_Forma> edit(Long id, LocalDate pf_deadline, LocalDate pf_create_date, Pro_Forma_Status pf_status, Orders order) {
+        return this.proFormaRepository.edit(
+                id,
+                pf_deadline,
+                pf_create_date,
+                pf_status.getPro_forma_status_id(),
+                order.getOrder_id()
+        );
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.proFormaRepository.deleteById(id);
+    }
+}
