aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/ru
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/ru')
-rw-r--r--src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java b/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java
new file mode 100644
index 0000000..22d2d78
--- /dev/null
+++ b/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java
@@ -0,0 +1,82 @@
+package ru.mrfoxygmfr.warehouse_accounting.http.controllers;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import ru.mrfoxygmfr.warehouse_accounting.db.dao.PartnerDAO;
+import ru.mrfoxygmfr.warehouse_accounting.db.dao.specs.PartnerSpecs;
+import ru.mrfoxygmfr.warehouse_accounting.db.models.Partner;
+import ru.mrfoxygmfr.warehouse_accounting.db.models.PartnerType;
+
+import java.util.List;
+
+@Controller
+public class PartnersController {
+ @Autowired
+ private PartnerDAO partnerDAO;
+
+ @GetMapping("partners")
+ public String partners(@RequestParam(name = "partnerName", required = false) String name,
+ @RequestParam(name = "partnerType", required = false) PartnerType type,
+ @RequestParam(name = "partnerTaxNumber", required = false) String taxNumber,
+ Model model) {
+ Specification<Partner> spec = Specification.where(null);
+ if (name != null && !name.isEmpty()) {
+ spec = spec.and(PartnerSpecs.partnerNameLike(name));
+ model.addAttribute("partnerNameFilter", name);
+ }
+ if (type != null) {
+ spec = spec.and(PartnerSpecs.partnerTypeEqual(type));
+ model.addAttribute("partnerTypeFilter", type.toString());
+ System.out.println(model.getAttribute("partnerTypeFilter") == "ISSUER");
+ }
+ if (taxNumber != null && !taxNumber.isEmpty()) {
+ spec = spec.and(PartnerSpecs.partnerTaxNumberLike(taxNumber));
+ model.addAttribute("partnerTaxNumberFilter", taxNumber);
+ }
+
+ List<Partner> partners = partnerDAO.findAll(spec);
+ model.addAttribute("partners", partners);
+ return "partners";
+ }
+
+ @GetMapping("partner")
+ public String partner(@RequestParam(name = "id") Integer id, Model model) {
+ Partner partner = partnerDAO.findById(id).orElseThrow();
+ model.addAttribute("partner", partner);
+ return "partnerEdit";
+ }
+
+ @PostMapping("partner")
+ public String partner(@RequestParam(name = "partnerId") Integer id,
+ @RequestParam(name = "partnerName") String name,
+ @RequestParam(name = "partnerTaxNumber") String taxNumber,
+ @RequestParam(name = "partnerType") PartnerType type,
+ @RequestParam(name = "partnerAddress") String address) {
+ Partner partner;
+ if (id == -1) {
+ partner = new Partner(name, taxNumber, type, address);
+ } else {
+ partner = partnerDAO.findById(id).orElseThrow();
+ partner.setName(name);
+ partner.setTaxNumber(taxNumber);
+ partner.setType(type);
+ partner.setAddress(address);
+ }
+ partnerDAO.save(partner);
+ return "redirect:/partners";
+ }
+
+ @GetMapping("newPartner")
+ public String newPartner(Model model) {
+ Partner partner = new Partner();
+ partner.setId(-1);
+ model.addAttribute("partner", partner);
+ model.addAttribute("newItem", true);
+ return "partnerEdit";
+ }
+}