diff options
author | mrfoxygmfr <mrfoxygmfr@sch9.ru> | 2025-04-28 13:32:27 +0300 |
---|---|---|
committer | mrfoxygmfr <mrfoxygmfr@sch9.ru> | 2025-04-28 13:32:27 +0300 |
commit | 32abde013d2f103ddefae167c2b459b1b024f395 (patch) | |
tree | dabf9de3f0b6b3fc47cf21c437d9402804219c51 /src/main/java | |
parent | 7e5a22ea51142ec0e582684bb0cba54942e3be36 (diff) |
feat: partner contacts controller + pages
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java | 71 |
1 files changed, 64 insertions, 7 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 index 22d2d78..fbcb1a4 100644 --- a/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java +++ b/src/main/java/ru/mrfoxygmfr/warehouse_accounting/http/controllers/PartnersController.java @@ -4,13 +4,10 @@ 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 org.springframework.web.bind.annotation.*; +import ru.mrfoxygmfr.warehouse_accounting.db.dao.*; +import ru.mrfoxygmfr.warehouse_accounting.db.dao.specs.*; +import ru.mrfoxygmfr.warehouse_accounting.db.models.*; import java.util.List; @@ -18,6 +15,8 @@ import java.util.List; public class PartnersController { @Autowired private PartnerDAO partnerDAO; + @Autowired + private PartnerContactDAO partnerContactDAO; @GetMapping("partners") public String partners(@RequestParam(name = "partnerName", required = false) String name, @@ -79,4 +78,62 @@ public class PartnersController { model.addAttribute("newItem", true); return "partnerEdit"; } + + + @RequestMapping("/partnerContacts/{partnerId}") + public String partnerContacts(@PathVariable(value = "partnerId") Integer partnerId, + Model model) { + + Partner partner = partnerDAO.findById(partnerId).orElseThrow(); + model.addAttribute("partnerContacts", partner.getContacts()); + model.addAttribute("partnerId", partnerId); + return "partnerContacts"; + } + + @GetMapping("partnerContact") + public String partnerContact(@RequestParam(name = "id") Integer id, Model model) { + PartnerContact contact = partnerContactDAO.findById(id).orElseThrow(); + model.addAttribute("partnerContact", contact); + return "partnerContactEdit"; + } + + @PostMapping("partnerContact") + public String partnerContact(@RequestParam(name = "partnerId") Integer partnerId, + @RequestParam(name = "partnerContactId") Integer id, + @RequestParam(name = "partnerContactSurname") String surname, + @RequestParam(name = "partnerContactName") String name, + @RequestParam(name = "partnerContactEmail") String email, + @RequestParam(name = "partnerContactPhone") String phone, + @RequestParam(name = "partnerContactPosition") String position) { + Partner partner = partnerDAO.findById(partnerId).orElseThrow(); + PartnerContact contact; + if (id == -1) { + contact = new PartnerContact(partner, surname, name, position, phone, email); + } else { + contact = partnerContactDAO.findById(id).orElseThrow(); + contact.setSurname(name); + contact.setName(name); + contact.setEmail(email); + contact.setPhone(phone); + contact.setPosition(position); + partner.addContact(contact); + } + partnerDAO.save(partner); + partnerContactDAO.save(contact); + return String.format("redirect:/partnerContacts/%d", partnerId); + } + + @GetMapping("/newPartnerContact/{partnerId}") + public String newPartnerContact(@PathVariable(value = "partnerId") Integer partnerId, + Model model) { + Partner partner = partnerDAO.findById(partnerId).orElseThrow(); + + PartnerContact contact = new PartnerContact(); + contact.setId(-1); + contact.setPartner(partner); + + model.addAttribute("partnerContact", contact); + model.addAttribute("newItem", true); + return "partnerContactEdit"; + } } |