custNamesSet = new HashSet<>();
+// for (int i = 0; i < 100; i++)
+// {
+// custNamesSet.add(nameFaker.shakespeare());
+// }
+//
+// for (String agentName : custNamesSet)
+// {
+// Customer fakeCustomer = new Customer(custName,
+// nameFaker.address().cityName(),
+// nameFaker.address().city(),
+// nameFaker.address().country(),
+// nameFaker.numerify(),
+// nameFaker.);
+// }
+//
+//
+// }
+//}
diff --git a/src/main/java/com/lambdaschool/orders/config/H2ServerConfiguration.java b/src/main/java/com/lambdaschool/orders/config/H2ServerConfiguration.java
new file mode 100644
index 0000000..3aa1b8a
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/config/H2ServerConfiguration.java
@@ -0,0 +1,72 @@
+package com.lambdaschool.crudyrestaurants.config;
+
+import org.h2.tools.Server;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.sql.SQLException;
+
+/**
+ * Configures H2 access through the JetBrains IntelliJ IDEA IDE.
+ *
+ * Adapted from https://techdev.io/en/developer-blog/querying-the-embedded-h2-database-of-a-spring-boot-application
+ * necessary for using the database tool built into intellij
+ */
+@Configuration
+public class H2ServerConfiguration
+{
+
+ /**
+ * TCP port for remote connections, default 9092.
+ */
+ @Value("${h2.tcp.port:9092}")
+ private String h2TcpPort;
+
+ /**
+ * Web port, default 8082.
+ */
+ @Value("${h2.web.port:8082}")
+ private String h2WebPort;
+
+ /**
+ * TCP connection to connect with SQL clients to the embedded h2 database.
+ *
+ * Connect to "jdbc:h2:tcp://localhost:9092/mem:testdb", username "sa", password empty.
+ *
+ * @return The created TcpServer needed to access H2.
+ * @throws SQLException If the server cannot be created.
+ */
+ @Bean
+ @ConditionalOnExpression("${h2.tcp.enabled:true}")
+ public Server h2TcpServer() throws
+ SQLException
+ {
+ return Server.createTcpServer("-tcp",
+ "-tcpAllowOthers",
+ "-tcpPort",
+ h2TcpPort)
+ .start();
+ }
+
+ /**
+ * Web console for the embedded h2 database.
+ *
+ * Go to http://localhost:8082 and connect to the database "jdbc:h2:mem:testdb", username "sa", password empty.
+ *
+ * @return The created web server needed to access H2.
+ * @throws SQLException If the server cannot be created.
+ */
+ @Bean
+ @ConditionalOnExpression("${h2.web.enabled:true}")
+ public Server h2WebServer() throws
+ SQLException
+ {
+ return Server.createWebServer("-web",
+ "-webAllowOthers",
+ "-webPort",
+ h2WebPort)
+ .start();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/lambdaschool/orders/controllers/AgentController.java b/src/main/java/com/lambdaschool/orders/controllers/AgentController.java
new file mode 100644
index 0000000..f403cbe
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/controllers/AgentController.java
@@ -0,0 +1,26 @@
+package com.lambdaschool.orders.controllers;
+
+import com.lambdaschool.orders.models.Agent;
+import com.lambdaschool.orders.services.AgentServices;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/agents")
+public class AgentController
+{
+ @Autowired
+ private AgentServices agentServices;
+// http://localhost:2019/agents/agent/9
+ @GetMapping(value = "/agent/{agentcode}", produces = "application/json")
+ public ResponseEntity> findByAgentcode(@PathVariable long agentcode)
+ {
+ Agent a = agentServices.findAgentByAgentcode(agentcode);
+ return new ResponseEntity<>(a, HttpStatus.OK);
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/controllers/CustomerController.java b/src/main/java/com/lambdaschool/orders/controllers/CustomerController.java
new file mode 100644
index 0000000..9bdc8e3
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/controllers/CustomerController.java
@@ -0,0 +1,62 @@
+package com.lambdaschool.orders.controllers;
+
+import com.lambdaschool.orders.models.Customer;
+import com.lambdaschool.orders.services.CustomerServices;
+import com.lambdaschool.orders.views.AdvanceAmounts;
+import com.lambdaschool.orders.views.OrderCounts;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/customers")
+public class CustomerController
+{
+ @Autowired
+ private CustomerServices customerServices;
+ // http://localhost:2019/customers/orders
+ @GetMapping(value = "/orders", produces = "application/json")
+ public ResponseEntity> listAllOrders()
+ {
+ List rtnList = customerServices.findAllCustomersOrders();
+ return new ResponseEntity<>(rtnList, HttpStatus.OK);
+ }
+
+ // http://localhost:2019/customers/customer/7
+ @GetMapping(value = "/customer/{custcode}", produces = "application/json")
+ public ResponseEntity> findByCustcode(@PathVariable long custcode)
+ {
+ Customer c = customerServices.findCustomerByCustcode(custcode);
+ return new ResponseEntity<>(c, HttpStatus.OK);
+ }
+ // http://localhost:2019/customers/namelike/mes
+ @GetMapping(value = "/namelike/{custname}", produces = "application/json")
+ public ResponseEntity> findCustomerByCustnameLike(@PathVariable String custname)
+ {
+ List rtnlist = customerServices.findByNameLike(custname);
+ return new ResponseEntity<>(rtnlist, HttpStatus.OK);
+ }
+
+ // http://localhost:2019/customers/orders/count
+ @GetMapping(value = "/orders/count", produces = "application/json")
+ public ResponseEntity> getOrderCounts()
+ {
+ List rtnList = customerServices.getOrderCounts();
+ return new ResponseEntity<>(rtnList, HttpStatus.OK);
+ }
+
+ // http://localhost:2019/customers/orders/advanceamount
+ @GetMapping(value = "orders/advanceamount", produces = "application/json")
+ public ResponseEntity> getAdvanceAmount()
+ {
+ List rtnList = customerServices.getAdvanceAmounts();
+ return new ResponseEntity<>(rtnList,HttpStatus.OK);
+ }
+
+}
diff --git a/src/main/java/com/lambdaschool/orders/controllers/OrderController.java b/src/main/java/com/lambdaschool/orders/controllers/OrderController.java
new file mode 100644
index 0000000..aaff39a
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/controllers/OrderController.java
@@ -0,0 +1,33 @@
+package com.lambdaschool.orders.controllers;
+
+import com.lambdaschool.orders.models.Order;
+import com.lambdaschool.orders.services.OrderServices;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/orders")
+public class OrderController
+{
+ @Autowired
+ private OrderServices orderServices;
+ // http://localhost:2019/orders/order/7
+ @GetMapping(value = "/order/{ordnum}", produces = "application/json")
+ public ResponseEntity> findByOrdnum(@PathVariable long ordnum)
+ {
+ Order o = orderServices.findOrderByOrdnum(ordnum);
+ return new ResponseEntity<>(o, HttpStatus.OK);
+ }
+ // Stretch Goal
+ // http://localhost:2019/orders/advanceamount
+// @GetMapping(value = "/advanceamount", produces = "application/json")
+// public ResponseEntity> findByAdvanceamount(@PathVariable double advanceamount)
+// {
+//
+// }
+}
diff --git a/src/main/java/com/lambdaschool/orders/models/Agent.java b/src/main/java/com/lambdaschool/orders/models/Agent.java
new file mode 100644
index 0000000..498366e
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/models/Agent.java
@@ -0,0 +1,109 @@
+package com.lambdaschool.orders.models;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.util.ArrayList;
+import java.util.List;
+
+@Entity
+@Table(name = "agents")
+public class Agent
+{
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long agentcode;
+
+ @Column(unique = true,
+ nullable = false)
+ private String agentname;
+ private String workingarea;
+ private double commission;
+ private String phone;
+ private String country;
+
+ @OneToMany(mappedBy = "agent",
+ cascade = CascadeType.ALL,
+ orphanRemoval = true)
+ @JsonIgnoreProperties(value = "agent", allowSetters = true)
+ private List customers = new ArrayList<>();
+
+ public Agent()
+ {
+ }
+
+ public Agent(
+ String agentname,
+ String workingarea,
+ double commission,
+ String phone,
+ String country)
+ {
+ this.agentname = agentname;
+ this.workingarea = workingarea;
+ this.commission = commission;
+ this.phone = phone;
+ this.country = country;
+ }
+
+ public long getAgentcode()
+ {
+ return agentcode;
+ }
+
+ public void setAgentcode(long agentcode)
+ {
+ this.agentcode = agentcode;
+ }
+
+ public String getAgentname()
+ {
+ return agentname;
+ }
+
+ public void setAgentname(String agentname)
+ {
+ this.agentname = agentname;
+ }
+
+ public String getWorkingarea()
+ {
+ return workingarea;
+ }
+
+ public void setWorkingarea(String workingarea)
+ {
+ this.workingarea = workingarea;
+ }
+
+ public double getCommission()
+ {
+ return commission;
+ }
+
+ public void setCommission(double commission)
+ {
+ this.commission = commission;
+ }
+
+ public String getPhone()
+ {
+ return phone;
+ }
+
+ public void setPhone(String phone)
+ {
+ this.phone = phone;
+ }
+
+ public String getCountry()
+ {
+ return country;
+ }
+
+ public void setCountry(String country)
+ {
+ this.country = country;
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/models/Customer.java b/src/main/java/com/lambdaschool/orders/models/Customer.java
new file mode 100644
index 0000000..3dce38a
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/models/Customer.java
@@ -0,0 +1,189 @@
+package com.lambdaschool.orders.models;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.util.ArrayList;
+import java.util.List;
+
+@Entity
+@Table(name = "customers")
+public class Customer
+{
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long custcode;
+
+ @Column(nullable = false)
+ private String custname;
+ private String custcity;
+ private String workingarea;
+ private String custcountry;
+ private String grade;
+ private double openingamt;
+ private double receiveamt;
+ private double paymentamt;
+ private double outstandingamt;
+ private String phone;
+
+ @ManyToOne
+ @JoinColumn(name = "agentcode", nullable = false)
+ @JsonIgnoreProperties(value = "customer", allowSetters = true)
+ private Agent agent;
+
+ @OneToMany(mappedBy = "customer",
+ cascade = CascadeType.ALL,
+ orphanRemoval = true)
+ @JsonIgnoreProperties(value = "customer", allowSetters = true)
+ private List orders = new ArrayList<>();
+
+ public Customer()
+ {
+ }
+
+ public Customer(
+ String custname,
+ String custcity,
+ String workingarea,
+ String custcountry,
+ String grade,
+ double openingamt,
+ double receiveamt,
+ double paymentamt,
+ double outstandingamt,
+ String phone,
+ Agent agent)
+ {
+ this.custname = custname;
+ this.custcity = custcity;
+ this.workingarea = workingarea;
+ this.custcountry = custcountry;
+ this.grade = grade;
+ this.openingamt = openingamt;
+ this.receiveamt = receiveamt;
+ this.paymentamt = paymentamt;
+ this.outstandingamt = outstandingamt;
+ this.phone = phone;
+ this.agent = agent;
+ }
+
+ public long getCustcode()
+ {
+ return custcode;
+ }
+
+ public void setCustcode(long custcode)
+ {
+ this.custcode = custcode;
+ }
+
+ public String getCustname()
+ {
+ return custname;
+ }
+
+ public void setCustname(String custname)
+ {
+ this.custname = custname;
+ }
+
+ public String getCustcity()
+ {
+ return custcity;
+ }
+
+ public void setCustcity(String custcity)
+ {
+ this.custcity = custcity;
+ }
+
+ public String getWorkingarea()
+ {
+ return workingarea;
+ }
+
+ public void setWorkingarea(String workingarea)
+ {
+ this.workingarea = workingarea;
+ }
+
+ public String getCustcountry()
+ {
+ return custcountry;
+ }
+
+ public void setCustcountry(String custcountry)
+ {
+ this.custcountry = custcountry;
+ }
+
+ public String getGrade()
+ {
+ return grade;
+ }
+
+ public void setGrade(String grade)
+ {
+ this.grade = grade;
+ }
+
+ public double getOpeningamt()
+ {
+ return openingamt;
+ }
+
+ public void setOpeningamt(double openingamt)
+ {
+ this.openingamt = openingamt;
+ }
+
+ public double getReceiveamt()
+ {
+ return receiveamt;
+ }
+
+ public void setReceiveamt(double receiveamt)
+ {
+ this.receiveamt = receiveamt;
+ }
+
+ public double getPaymentamt()
+ {
+ return paymentamt;
+ }
+
+ public void setPaymentamt(double paymentamt)
+ {
+ this.paymentamt = paymentamt;
+ }
+
+ public double getOutstandingamt()
+ {
+ return outstandingamt;
+ }
+
+ public void setOutstandingamt(double outstandingamt)
+ {
+ this.outstandingamt = outstandingamt;
+ }
+
+ public String getPhone()
+ {
+ return phone;
+ }
+
+ public void setPhone(String phone)
+ {
+ this.phone = phone;
+ }
+
+ public Agent getAgent()
+ {
+ return agent;
+ }
+
+ public void setAgent(Agent agent)
+ {
+ this.agent = agent;
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/models/Order.java b/src/main/java/com/lambdaschool/orders/models/Order.java
new file mode 100644
index 0000000..517f087
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/models/Order.java
@@ -0,0 +1,98 @@
+package com.lambdaschool.orders.models;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.util.HashSet;
+import java.util.Set;
+
+@Entity
+@Table(name = "orders")
+public class Order
+{
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long ordnum;
+
+ private double ordamount;
+ private double advanceamount;
+
+ @ManyToMany()
+ @JoinTable(name = "orderspayments",
+ joinColumns = @JoinColumn(name = "ordnum"),
+ inverseJoinColumns = @JoinColumn(name = "paymentid"))
+ @JsonIgnoreProperties(value = "orders", allowSetters = true)
+ private Set payments = new HashSet<>();
+
+ @ManyToOne
+ @JoinColumn(name = "custcode", nullable = false)
+ @JsonIgnoreProperties(value = "order",allowSetters = true)
+ private Customer customer;
+ private String orderdescription;
+
+ public Order()
+ {
+ }
+
+ public Order(
+ double ordamount,
+ double advanceamount,
+ Customer customer,
+ String orderdescription)
+ {
+ this.ordamount = ordamount;
+ this.advanceamount = advanceamount;
+ this.customer = customer;
+ this.orderdescription = orderdescription;
+ }
+
+ public long getOrdnum()
+ {
+ return ordnum;
+ }
+
+ public void setOrdnum(long ordnum)
+ {
+ this.ordnum = ordnum;
+ }
+
+ public double getOrdamount()
+ {
+ return ordamount;
+ }
+
+ public void setOrdamount(double ordamount)
+ {
+ this.ordamount = ordamount;
+ }
+
+ public double getAdvanceamount()
+ {
+ return advanceamount;
+ }
+
+ public void setAdvanceamount(double advanceamount)
+ {
+ this.advanceamount = advanceamount;
+ }
+
+ public Customer getCustomer()
+ {
+ return customer;
+ }
+
+ public void setCustomer(Customer customer)
+ {
+ this.customer = customer;
+ }
+
+ public String getOrderdescription()
+ {
+ return orderdescription;
+ }
+
+ public void setOrderdescription(String orderdescription)
+ {
+ this.orderdescription = orderdescription;
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/models/Payment.java b/src/main/java/com/lambdaschool/orders/models/Payment.java
new file mode 100644
index 0000000..7cac812
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/models/Payment.java
@@ -0,0 +1,52 @@
+package com.lambdaschool.orders.models;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.util.HashSet;
+import java.util.Set;
+
+@Entity
+@Table(name = "payments")
+public class Payment
+{
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long paymentid;
+
+ @Column(unique = true, nullable = false)
+ private String type;
+
+ @ManyToMany(mappedBy = "payments")
+ @JsonIgnoreProperties(value = "payments", allowSetters = true)
+ private Set orders = new HashSet<>();
+
+ public Payment()
+ {
+ }
+
+ public Payment(String type)
+ {
+ this.type = type;
+ }
+
+ public long getPaymentid()
+ {
+ return paymentid;
+ }
+
+ public void setPaymentid(long paymentid)
+ {
+ this.paymentid = paymentid;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/repositories/AgentRepository.java b/src/main/java/com/lambdaschool/orders/repositories/AgentRepository.java
new file mode 100644
index 0000000..f2f752b
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/repositories/AgentRepository.java
@@ -0,0 +1,8 @@
+package com.lambdaschool.orders.repositories;
+
+import com.lambdaschool.orders.models.Agent;
+import org.springframework.data.repository.CrudRepository;
+
+public interface AgentRepository extends CrudRepository
+{
+}
diff --git a/src/main/java/com/lambdaschool/orders/repositories/CustomerRepository.java b/src/main/java/com/lambdaschool/orders/repositories/CustomerRepository.java
new file mode 100644
index 0000000..3169855
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/repositories/CustomerRepository.java
@@ -0,0 +1,32 @@
+package com.lambdaschool.orders.repositories;
+
+import com.lambdaschool.orders.models.Customer;
+import com.lambdaschool.orders.views.AdvanceAmounts;
+import com.lambdaschool.orders.views.OrderCounts;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+
+import java.util.List;
+
+public interface CustomerRepository extends CrudRepository
+{
+ Customer findByCustname(String custname);
+ List findByCustnameContainingIgnoringCase(String custname);
+
+ @Query(value = "SELECT c.custname , count(ordnum) countorders " +
+ "FROM customers c LEFT JOIN orders o " +
+ "ON c.custcode = o.custcode " +
+ "GROUP BY c.custname " +
+ "ORDER BY countorders DESC",
+ nativeQuery = true)
+ List findOrderCounts();
+
+ @Query(value = "SELECT c.custname , o.advanceamount " +
+ "FROM customers c LEFT JOIN orders o " +
+ "ON c.custcode = o.custcode " +
+ "WHERE o.advanceamount > 0 OR o.advanceamount != null " +
+ "GROUP BY o.advanceamount, c.custname " +
+ "ORDER BY o.advanceamount DESC",
+ nativeQuery = true)
+ List findAdvanceAmounts();
+}
diff --git a/src/main/java/com/lambdaschool/orders/repositories/OrderRepository.java b/src/main/java/com/lambdaschool/orders/repositories/OrderRepository.java
new file mode 100644
index 0000000..7801507
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/repositories/OrderRepository.java
@@ -0,0 +1,8 @@
+package com.lambdaschool.orders.repositories;
+
+import com.lambdaschool.orders.models.Order;
+import org.springframework.data.repository.CrudRepository;
+
+public interface OrderRepository extends CrudRepository
+{
+}
diff --git a/src/main/java/com/lambdaschool/orders/repositories/PaymentRepository.java b/src/main/java/com/lambdaschool/orders/repositories/PaymentRepository.java
new file mode 100644
index 0000000..4a95309
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/repositories/PaymentRepository.java
@@ -0,0 +1,8 @@
+package com.lambdaschool.orders.repositories;
+
+import com.lambdaschool.orders.models.Payment;
+import org.springframework.data.repository.CrudRepository;
+
+public interface PaymentRepository extends CrudRepository
+{
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/AgentServices.java b/src/main/java/com/lambdaschool/orders/services/AgentServices.java
new file mode 100644
index 0000000..1fd3648
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/AgentServices.java
@@ -0,0 +1,12 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Agent;
+
+import java.util.List;
+
+public interface AgentServices
+{
+ Agent save(Agent agent);
+
+ Agent findAgentByAgentcode(Long agentcode);
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/AgentServicesImpl.java b/src/main/java/com/lambdaschool/orders/services/AgentServicesImpl.java
new file mode 100644
index 0000000..efb988f
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/AgentServicesImpl.java
@@ -0,0 +1,31 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Agent;
+import com.lambdaschool.orders.repositories.AgentRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityNotFoundException;
+import javax.transaction.Transactional;
+import java.util.List;
+
+@Transactional
+@Service(value = "agentServices")
+public class AgentServicesImpl implements AgentServices
+{
+ @Autowired
+ private AgentRepository agentrepos;
+ @Transactional
+ @Override
+ public Agent save(Agent agent)
+ {
+ return agentrepos.save(agent);
+ }
+
+ @Override
+ public Agent findAgentByAgentcode(Long agentcode)
+ {
+ return agentrepos.findById(agentcode)
+ .orElseThrow(() -> new EntityNotFoundException("Agent " + agentcode + "Not Found"));
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/CustomerServices.java b/src/main/java/com/lambdaschool/orders/services/CustomerServices.java
new file mode 100644
index 0000000..65620ac
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/CustomerServices.java
@@ -0,0 +1,19 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Customer;
+import com.lambdaschool.orders.views.AdvanceAmounts;
+import com.lambdaschool.orders.views.OrderCounts;
+
+import java.util.List;
+
+public interface CustomerServices
+{
+ Customer save(Customer customer);
+
+ List findAllCustomersOrders();
+ Customer findCustomerByCustcode(long custcode);
+ List findByNameLike(String custname);
+ List getOrderCounts();
+ List getAdvanceAmounts();
+
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/CustomerServicesImpl.java b/src/main/java/com/lambdaschool/orders/services/CustomerServicesImpl.java
new file mode 100644
index 0000000..622630e
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/CustomerServicesImpl.java
@@ -0,0 +1,64 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Customer;
+import com.lambdaschool.orders.repositories.CustomerRepository;
+import com.lambdaschool.orders.views.AdvanceAmounts;
+import com.lambdaschool.orders.views.OrderCounts;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityNotFoundException;
+import javax.transaction.Transactional;
+import java.util.ArrayList;
+import java.util.List;
+
+@Transactional
+@Service(value = "customerServices")
+public class CustomerServicesImpl implements CustomerServices
+{
+ @Autowired
+ private CustomerRepository customerrepos;
+ @Transactional
+ @Override
+ public Customer save(Customer customer)
+ {
+ return customerrepos.save(customer);
+ }
+
+ @Override
+ public List findAllCustomersOrders()
+ {
+ List rtnlist = new ArrayList<>();
+ customerrepos.findAll().iterator().forEachRemaining(rtnlist::add);
+ return rtnlist;
+ }
+
+ @Override
+ public Customer findCustomerByCustcode(long custcode)
+ {
+ return customerrepos.findById(custcode)
+ .orElseThrow(() -> new EntityNotFoundException("Customer " + custcode + " Not Found"));
+ }
+
+ @Override
+ public List findByNameLike(String custname)
+ {
+ List list = customerrepos.findByCustnameContainingIgnoringCase(custname);
+
+ return list;
+ }
+
+ @Override
+ public List getOrderCounts()
+ {
+ List rtnList = customerrepos.findOrderCounts();
+ return rtnList;
+ }
+
+ @Override
+ public List getAdvanceAmounts()
+ {
+ List rtnList = customerrepos.findAdvanceAmounts();
+ return rtnList;
+ }
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/OrderServices.java b/src/main/java/com/lambdaschool/orders/services/OrderServices.java
new file mode 100644
index 0000000..af0471e
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/OrderServices.java
@@ -0,0 +1,15 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Order;
+import com.lambdaschool.orders.views.OrderCounts;
+
+import java.util.List;
+
+public interface OrderServices
+{
+ Order save(Order order);
+
+ Order findOrderByOrdnum(long ordnum);
+
+
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/OrderServicesImpl.java b/src/main/java/com/lambdaschool/orders/services/OrderServicesImpl.java
new file mode 100644
index 0000000..7f52295
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/OrderServicesImpl.java
@@ -0,0 +1,32 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Order;
+import com.lambdaschool.orders.repositories.OrderRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityNotFoundException;
+import javax.transaction.Transactional;
+import java.util.List;
+
+@Transactional
+@Service(value = "orderServices")
+public class OrderServicesImpl implements OrderServices
+{
+ @Autowired
+ private OrderRepository orderrepos;
+ @Transactional
+ @Override
+ public Order save(Order order)
+ {
+ return orderrepos.save(order);
+ }
+
+ @Override
+ public Order findOrderByOrdnum(long ordnum)
+ {
+ return orderrepos.findById(ordnum)
+ .orElseThrow(() -> new EntityNotFoundException("Order " + ordnum + " Not Found"));
+ }
+
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/PaymentServices.java b/src/main/java/com/lambdaschool/orders/services/PaymentServices.java
new file mode 100644
index 0000000..23a5492
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/PaymentServices.java
@@ -0,0 +1,8 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Payment;
+
+public interface PaymentServices
+{
+ Payment save(Payment payment);
+}
diff --git a/src/main/java/com/lambdaschool/orders/services/PaymentServicesImpl.java b/src/main/java/com/lambdaschool/orders/services/PaymentServicesImpl.java
new file mode 100644
index 0000000..d623f2f
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/services/PaymentServicesImpl.java
@@ -0,0 +1,23 @@
+package com.lambdaschool.orders.services;
+
+import com.lambdaschool.orders.models.Payment;
+import com.lambdaschool.orders.repositories.PaymentRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+
+@Transactional
+@Service(value = "paymentServices")
+public class PaymentServicesImpl implements PaymentServices
+{
+ @Autowired
+ private PaymentRepository paymentrepos;
+ @Transactional
+ @Override
+ public Payment save(Payment payment)
+ {
+ return paymentrepos.save(payment);
+ }
+
+}
diff --git a/src/main/java/com/lambdaschool/orders/views/AdvanceAmounts.java b/src/main/java/com/lambdaschool/orders/views/AdvanceAmounts.java
new file mode 100644
index 0000000..b1d2cfb
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/views/AdvanceAmounts.java
@@ -0,0 +1,7 @@
+package com.lambdaschool.orders.views;
+
+public interface AdvanceAmounts
+{
+ String getCustname();
+ double getAdvanceamount();
+}
diff --git a/src/main/java/com/lambdaschool/orders/views/OrderCounts.java b/src/main/java/com/lambdaschool/orders/views/OrderCounts.java
new file mode 100644
index 0000000..c7206ea
--- /dev/null
+++ b/src/main/java/com/lambdaschool/orders/views/OrderCounts.java
@@ -0,0 +1,7 @@
+package com.lambdaschool.orders.views;
+
+public interface OrderCounts
+{
+ String getCustname();
+ int getCountorders();
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000..127e574
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1,24 @@
+# Configurations useful for working with H2
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-console
+#
+# We set a port that is not frequently used
+server.port=${PORT:2019}
+#
+# Feature that determines what happens when no accessors are found for a type
+# (and there are no annotations to indicate it is meant to be serialized).
+spring.jackson.serialization.fail-on-empty-beans=false
+#
+# keeps a transaction inside of the same entity manager
+# This property register an EntityManager to the current thread,
+# so you will have the same EntityManager until the web request is finished.
+spring.jpa.open-in-view=true
+#
+# What do with the schema
+# drop n create table again, good for testing
+spring.jpa.hibernate.ddl-auto=create
+spring.datasource.initialization-mode=always
+#
+# Good for production!
+# spring.jpa.hibernate.ddl-auto=update
+# spring.datasource.initialization-mode=never
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
new file mode 100644
index 0000000..81d290d
--- /dev/null
+++ b/src/main/resources/data.sql
@@ -0,0 +1,93 @@
+DELETE
+FROM orders;
+
+DELETE
+FROM customers;
+
+DELETE
+FROM agents;
+
+INSERT INTO AGENTS (agentcode, agentname, workingarea, commission, phone, country)
+VALUES (1, 'Ramasundar', 'Bangalore', 0.15, '077-25814763', ''),
+ (2, 'Alex', 'London', 0.13, '075-12458969', ''),
+ (3, 'Alford', 'New York', 0.12, '044-25874365', ''),
+ (4, 'Ravi', 'Bangalore', 0.15, '077-45625874', ''),
+ (5, 'Santakumar', 'Chennai', 0.14, '007-22388644', ''),
+ (6, 'Lucida', 'San Jose', 0.12, '044-52981425', ''),
+ (7, 'Anderson', 'Brisban', 0.13, '045-21447739', ''),
+ (8, 'Subbarao', 'Bangalore', 0.14, '077-12346674', ''),
+ (9, 'Mukesh', 'Mumbai', 0.11, '029-12358964', ''),
+ (10, 'McDen', 'London', 0.15, '078-22255588', ''),
+ (11, 'Ivan', 'Torento', 0.15, '008-22544166', ''),
+ (12, 'Benjamin', 'Hampshair', 0.11, '008-22536178', '');
+
+INSERT INTO CUSTOMERS (custcode, custname, custcity, workingarea, custcountry, grade, openingamt, receiveamt,
+ paymentamt, outstandingamt, phone, agentcode)
+VALUES (1, 'Holmes', 'London', 'London', 'UK', '2', 6000.00, 5000.00, 7000.00, 4000.00, 'BBBBBBB', 3),
+ (2, 'Micheal', 'New York', 'New York', 'USA', '2', 3000.00, 5000.00, 2000.00, 6000.00, 'CCCCCCC', 8),
+ (3, 'Albert', 'New York', 'New York', 'USA', '3', 5000.00, 7000.00, 6000.00, 6000.00, 'BBBBSBB', 8),
+ (4, 'Ravindran', 'Bangalore', 'Bangalore', 'India', '2', 5000.00, 7000.00, 4000.00, 8000.00, 'AVAVAVA', 11),
+ (5, 'Cook', 'London', 'London', 'UK', '2', 4000.00, 9000.00, 7000.00, 6000.00, 'FSDDSDF', 6),
+ (6, 'Stuart', 'London', 'London', 'UK', '1', 6000.00, 8000.00, 3000.00, 11000.00, 'GFSGERS', 3),
+ (7, 'Bolt', 'New York', 'New York', 'USA', '3', 5000.00, 7000.00, 9000.00, 3000.00, 'DDNRDRH', 8),
+ (8, 'Fleming', 'Brisban', 'Brisban', 'Australia', '2', 7000.00, 7000.00, 9000.00, 5000.00, 'NHBGVFC', 5),
+ (9, 'Jacks', 'Brisban', 'Brisban', 'Australia', '1', 7000.00, 7000.00, 7000.00, 7000.00, 'WERTGDF', 5),
+ (10, 'Yearannaidu', 'Chennai', 'Chennai', 'India', '1', 8000.00, 7000.00, 7000.00, 8000.00, 'ZZZZBFV', 10),
+ (11, 'Sasikant', 'Mumbai', 'Mumbai', 'India', '1', 7000.00, 11000.00, 7000.00, 11000.00, '147-25896312', 2),
+ (12, 'Ramanathan', 'Chennai', 'Chennai', 'India', '1', 7000.00, 11000.00, 9000.00, 9000.00, 'GHRDWSD', 10),
+ (13, 'Avinash', 'Mumbai', 'Mumbai', 'India', '2', 7000.00, 11000.00, 9000.00, 9000.00, '113-12345678', 2),
+ (14, 'Winston', 'Brisban', 'Brisban', 'Australia', '1', 5000.00, 8000.00, 7000.00, 6000.00, 'AAAAAAA', 5),
+ (15, 'Karl', 'London', 'London', 'UK', '0', 4000.00, 6000.00, 7000.00, 3000.00, 'AAAABAA', 6),
+ (16, 'Shilton', 'Torento', 'Torento', 'Canada', '1', 10000.00, 7000.00, 6000.00, 11000.00, 'DDDDDDD', 4),
+ (17, 'Charles', 'Hampshair', 'Hampshair', 'UK', '3', 6000.00, 4000.00, 5000.00, 5000.00, 'MMMMMMM', 9),
+ (18, 'Srinivas', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 4000.00, 3000.00, 9000.00, 'AAAAAAB', 7),
+ (19, 'Steven', 'San Jose', 'San Jose', 'USA', '1', 5000.00, 7000.00, 9000.00, 3000.00, 'KRFYGJK', 10),
+ (20, 'Karolina', 'Torento', 'Torento', 'Canada', '1', 7000.00, 7000.00, 9000.00, 5000.00, 'HJKORED', 4),
+ (21, 'Martin', 'Torento', 'Torento', 'Canada', '2', 8000.00, 7000.00, 7000.00, 8000.00, 'MJYURFD', 4),
+ (22, 'Ramesh', 'Mumbai', 'Mumbai', 'India', '3', 8000.00, 7000.00, 3000.00, 12000.00, 'Phone No', 2),
+ (23, 'Rangarappa', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 11000.00, 7000.00, 12000.00, 'AAAATGF', 1),
+ (24, 'Venkatpati', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 11000.00, 7000.00, 12000.00, 'JRTVFDD', 7),
+ (25, 'Sundariya', 'Chennai', 'Chennai', 'India', '3', 7000.00, 11000.00, 7000.00, 11000.00, 'PPHGRTS', 10);
+
+INSERT INTO ORDERS (ordnum, ordamount, advanceamount, custcode, orderdescription)
+VALUES (1, 1000.00, 600.00, 13, 'SOD'),
+ (2, 3000.00, 500.00, 19, 'SOD'),
+ (3, 4500.00, 900.00, 7, 'SOD'),
+ (4, 2000.00, 0.00, 16, 'SOD'),
+ (5, 4000.00, 600.00, 22, 'SOD'),
+ (6, 2000.00, 0.00, 12, 'SOD'),
+ (7, 3500.00, 2000.00, 2, 'SOD'),
+ (8, 2500.00, 400.00, 03, 'SOD'),
+ (9, 500.00, 0.00, 23, 'SOD'),
+ (10, 4000.00, 700.00, 7, 'SOD'),
+ (11, 1500.00, 600.00, 8, 'SOD'),
+ (12, 2500.00, 0.00, 25, 'SOD');
+
+INSERT INTO PAYMENTS (paymentid, type)
+VALUES (1, 'Cash'),
+ (2, 'Gift Card'),
+ (3, 'Credit Card'),
+ (4, 'Mobile Pay');
+
+INSERT INTO ORDERSPAYMENTS (ordnum, paymentid)
+VALUES (1, 1),
+ (2, 2),
+ (3, 3),
+ (3, 2),
+ (4, 4),
+ (5, 2),
+ (6, 3),
+ (7, 4),
+ (8, 1),
+ (9, 3),
+ (10, 4),
+ (11, 2),
+ (12, 1);
+
+/*
+We must tell hibernate the ids that have already been used.
+The number must be larger than the last used id.
+50 > 25 so we are good!
+ */
+
+alter sequence hibernate_sequence restart with 50;
diff --git a/src/test/java/com/lambdaschool/orders/OrdersApplicationTests.java b/src/test/java/com/lambdaschool/orders/OrdersApplicationTests.java
new file mode 100644
index 0000000..d01ca58
--- /dev/null
+++ b/src/test/java/com/lambdaschool/orders/OrdersApplicationTests.java
@@ -0,0 +1,15 @@
+package com.lambdaschool.orders;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class OrdersApplicationTests
+{
+
+ @Test
+ void contextLoads()
+ {
+ }
+
+}
diff --git a/target/classes/application.properties b/target/classes/application.properties
new file mode 100644
index 0000000..127e574
--- /dev/null
+++ b/target/classes/application.properties
@@ -0,0 +1,24 @@
+# Configurations useful for working with H2
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-console
+#
+# We set a port that is not frequently used
+server.port=${PORT:2019}
+#
+# Feature that determines what happens when no accessors are found for a type
+# (and there are no annotations to indicate it is meant to be serialized).
+spring.jackson.serialization.fail-on-empty-beans=false
+#
+# keeps a transaction inside of the same entity manager
+# This property register an EntityManager to the current thread,
+# so you will have the same EntityManager until the web request is finished.
+spring.jpa.open-in-view=true
+#
+# What do with the schema
+# drop n create table again, good for testing
+spring.jpa.hibernate.ddl-auto=create
+spring.datasource.initialization-mode=always
+#
+# Good for production!
+# spring.jpa.hibernate.ddl-auto=update
+# spring.datasource.initialization-mode=never
\ No newline at end of file
diff --git a/target/classes/data.sql b/target/classes/data.sql
new file mode 100644
index 0000000..81d290d
--- /dev/null
+++ b/target/classes/data.sql
@@ -0,0 +1,93 @@
+DELETE
+FROM orders;
+
+DELETE
+FROM customers;
+
+DELETE
+FROM agents;
+
+INSERT INTO AGENTS (agentcode, agentname, workingarea, commission, phone, country)
+VALUES (1, 'Ramasundar', 'Bangalore', 0.15, '077-25814763', ''),
+ (2, 'Alex', 'London', 0.13, '075-12458969', ''),
+ (3, 'Alford', 'New York', 0.12, '044-25874365', ''),
+ (4, 'Ravi', 'Bangalore', 0.15, '077-45625874', ''),
+ (5, 'Santakumar', 'Chennai', 0.14, '007-22388644', ''),
+ (6, 'Lucida', 'San Jose', 0.12, '044-52981425', ''),
+ (7, 'Anderson', 'Brisban', 0.13, '045-21447739', ''),
+ (8, 'Subbarao', 'Bangalore', 0.14, '077-12346674', ''),
+ (9, 'Mukesh', 'Mumbai', 0.11, '029-12358964', ''),
+ (10, 'McDen', 'London', 0.15, '078-22255588', ''),
+ (11, 'Ivan', 'Torento', 0.15, '008-22544166', ''),
+ (12, 'Benjamin', 'Hampshair', 0.11, '008-22536178', '');
+
+INSERT INTO CUSTOMERS (custcode, custname, custcity, workingarea, custcountry, grade, openingamt, receiveamt,
+ paymentamt, outstandingamt, phone, agentcode)
+VALUES (1, 'Holmes', 'London', 'London', 'UK', '2', 6000.00, 5000.00, 7000.00, 4000.00, 'BBBBBBB', 3),
+ (2, 'Micheal', 'New York', 'New York', 'USA', '2', 3000.00, 5000.00, 2000.00, 6000.00, 'CCCCCCC', 8),
+ (3, 'Albert', 'New York', 'New York', 'USA', '3', 5000.00, 7000.00, 6000.00, 6000.00, 'BBBBSBB', 8),
+ (4, 'Ravindran', 'Bangalore', 'Bangalore', 'India', '2', 5000.00, 7000.00, 4000.00, 8000.00, 'AVAVAVA', 11),
+ (5, 'Cook', 'London', 'London', 'UK', '2', 4000.00, 9000.00, 7000.00, 6000.00, 'FSDDSDF', 6),
+ (6, 'Stuart', 'London', 'London', 'UK', '1', 6000.00, 8000.00, 3000.00, 11000.00, 'GFSGERS', 3),
+ (7, 'Bolt', 'New York', 'New York', 'USA', '3', 5000.00, 7000.00, 9000.00, 3000.00, 'DDNRDRH', 8),
+ (8, 'Fleming', 'Brisban', 'Brisban', 'Australia', '2', 7000.00, 7000.00, 9000.00, 5000.00, 'NHBGVFC', 5),
+ (9, 'Jacks', 'Brisban', 'Brisban', 'Australia', '1', 7000.00, 7000.00, 7000.00, 7000.00, 'WERTGDF', 5),
+ (10, 'Yearannaidu', 'Chennai', 'Chennai', 'India', '1', 8000.00, 7000.00, 7000.00, 8000.00, 'ZZZZBFV', 10),
+ (11, 'Sasikant', 'Mumbai', 'Mumbai', 'India', '1', 7000.00, 11000.00, 7000.00, 11000.00, '147-25896312', 2),
+ (12, 'Ramanathan', 'Chennai', 'Chennai', 'India', '1', 7000.00, 11000.00, 9000.00, 9000.00, 'GHRDWSD', 10),
+ (13, 'Avinash', 'Mumbai', 'Mumbai', 'India', '2', 7000.00, 11000.00, 9000.00, 9000.00, '113-12345678', 2),
+ (14, 'Winston', 'Brisban', 'Brisban', 'Australia', '1', 5000.00, 8000.00, 7000.00, 6000.00, 'AAAAAAA', 5),
+ (15, 'Karl', 'London', 'London', 'UK', '0', 4000.00, 6000.00, 7000.00, 3000.00, 'AAAABAA', 6),
+ (16, 'Shilton', 'Torento', 'Torento', 'Canada', '1', 10000.00, 7000.00, 6000.00, 11000.00, 'DDDDDDD', 4),
+ (17, 'Charles', 'Hampshair', 'Hampshair', 'UK', '3', 6000.00, 4000.00, 5000.00, 5000.00, 'MMMMMMM', 9),
+ (18, 'Srinivas', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 4000.00, 3000.00, 9000.00, 'AAAAAAB', 7),
+ (19, 'Steven', 'San Jose', 'San Jose', 'USA', '1', 5000.00, 7000.00, 9000.00, 3000.00, 'KRFYGJK', 10),
+ (20, 'Karolina', 'Torento', 'Torento', 'Canada', '1', 7000.00, 7000.00, 9000.00, 5000.00, 'HJKORED', 4),
+ (21, 'Martin', 'Torento', 'Torento', 'Canada', '2', 8000.00, 7000.00, 7000.00, 8000.00, 'MJYURFD', 4),
+ (22, 'Ramesh', 'Mumbai', 'Mumbai', 'India', '3', 8000.00, 7000.00, 3000.00, 12000.00, 'Phone No', 2),
+ (23, 'Rangarappa', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 11000.00, 7000.00, 12000.00, 'AAAATGF', 1),
+ (24, 'Venkatpati', 'Bangalore', 'Bangalore', 'India', '2', 8000.00, 11000.00, 7000.00, 12000.00, 'JRTVFDD', 7),
+ (25, 'Sundariya', 'Chennai', 'Chennai', 'India', '3', 7000.00, 11000.00, 7000.00, 11000.00, 'PPHGRTS', 10);
+
+INSERT INTO ORDERS (ordnum, ordamount, advanceamount, custcode, orderdescription)
+VALUES (1, 1000.00, 600.00, 13, 'SOD'),
+ (2, 3000.00, 500.00, 19, 'SOD'),
+ (3, 4500.00, 900.00, 7, 'SOD'),
+ (4, 2000.00, 0.00, 16, 'SOD'),
+ (5, 4000.00, 600.00, 22, 'SOD'),
+ (6, 2000.00, 0.00, 12, 'SOD'),
+ (7, 3500.00, 2000.00, 2, 'SOD'),
+ (8, 2500.00, 400.00, 03, 'SOD'),
+ (9, 500.00, 0.00, 23, 'SOD'),
+ (10, 4000.00, 700.00, 7, 'SOD'),
+ (11, 1500.00, 600.00, 8, 'SOD'),
+ (12, 2500.00, 0.00, 25, 'SOD');
+
+INSERT INTO PAYMENTS (paymentid, type)
+VALUES (1, 'Cash'),
+ (2, 'Gift Card'),
+ (3, 'Credit Card'),
+ (4, 'Mobile Pay');
+
+INSERT INTO ORDERSPAYMENTS (ordnum, paymentid)
+VALUES (1, 1),
+ (2, 2),
+ (3, 3),
+ (3, 2),
+ (4, 4),
+ (5, 2),
+ (6, 3),
+ (7, 4),
+ (8, 1),
+ (9, 3),
+ (10, 4),
+ (11, 2),
+ (12, 1);
+
+/*
+We must tell hibernate the ids that have already been used.
+The number must be larger than the last used id.
+50 > 25 so we are good!
+ */
+
+alter sequence hibernate_sequence restart with 50;