Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 25.88 KB | None | 0 0
  1. package id.co.koperasisyariah212.controller.web;
  2.  
  3. import id.co.koperasisyariah212.constants.CommitteeRole;
  4. import id.co.koperasisyariah212.constants.DebitKredit;
  5. import id.co.koperasisyariah212.constants.JournalCode;
  6. import id.co.koperasisyariah212.constants.NotificationType;
  7. import id.co.koperasisyariah212.constants.UserMemberStatus;
  8. import id.co.koperasisyariah212.dao.AccountDao;
  9. import id.co.koperasisyariah212.dao.ApprovedDao;
  10. import id.co.koperasisyariah212.dao.CommunityGroupDao;
  11. import id.co.koperasisyariah212.dao.JournalHeaderDao;
  12. import id.co.koperasisyariah212.dao.MutasiDao;
  13. import id.co.koperasisyariah212.dao.NotificationDao;
  14. import id.co.koperasisyariah212.dao.ReasonDao;
  15. import id.co.koperasisyariah212.dao.RegistrationCooperativeSavingsValueDao;
  16. import id.co.koperasisyariah212.dao.RegistrationInvestmentSavingsValueDao;
  17. import id.co.koperasisyariah212.dao.RegistrationSavingsDetailDao;
  18. import id.co.koperasisyariah212.dao.RegistrationWakafValueDao;
  19. import id.co.koperasisyariah212.dao.RequestKomunitasDao;
  20. import id.co.koperasisyariah212.dao.RequestStrukturKomunitasDao;
  21. import id.co.koperasisyariah212.dao.RoleDao;
  22. import id.co.koperasisyariah212.dao.UserDao;
  23. import id.co.koperasisyariah212.dao.UserMemberDao;
  24. import id.co.koperasisyariah212.entity.Account;
  25. import id.co.koperasisyariah212.entity.Approved;
  26. import id.co.koperasisyariah212.entity.CommunityGroup;
  27. import id.co.koperasisyariah212.entity.JournalDetail;
  28. import id.co.koperasisyariah212.entity.JournalHeader;
  29. import id.co.koperasisyariah212.entity.Mutasi;
  30. import id.co.koperasisyariah212.entity.Notification;
  31. import id.co.koperasisyariah212.entity.RegistrationCooperativeSavingsValue;
  32. import id.co.koperasisyariah212.entity.RegistrationInvestmentSavingsValue;
  33. import id.co.koperasisyariah212.entity.RegistrationSavingsDetail;
  34. import id.co.koperasisyariah212.entity.RegistrationWakafValue;
  35. import id.co.koperasisyariah212.entity.RequestKomunitas;
  36. import id.co.koperasisyariah212.entity.RequestStrukturKomunitas;
  37. import id.co.koperasisyariah212.entity.Role;
  38. import id.co.koperasisyariah212.entity.User;
  39. import id.co.koperasisyariah212.entity.UserMember;
  40. import id.co.koperasisyariah212.helper.EmailHelper;
  41. import id.co.koperasisyariah212.service.KomunitasService;
  42. import id.co.koperasisyariah212.service.NotificationService;
  43.  
  44. import java.io.IOException;
  45. import java.math.BigDecimal;
  46. import java.security.Principal;
  47. import java.util.ArrayList;
  48. import java.util.Date;
  49. import java.util.List;
  50. import java.util.Optional;
  51. import javax.servlet.http.HttpServletRequest;
  52. import org.slf4j.Logger;
  53. import org.slf4j.LoggerFactory;
  54.  
  55. import org.springframework.beans.factory.annotation.Autowired;
  56. import org.springframework.data.domain.Page;
  57. import org.springframework.data.domain.Pageable;
  58. import org.springframework.data.web.PageableDefault;
  59. import org.springframework.stereotype.Controller;
  60. import org.springframework.ui.ModelMap;
  61. import org.springframework.util.StringUtils;
  62. import org.springframework.web.bind.annotation.GetMapping;
  63. import org.springframework.web.bind.annotation.RequestMapping;
  64. import org.springframework.web.bind.annotation.RequestParam;
  65. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  66.  
  67. @Controller
  68. @RequestMapping("/approval")
  69. public class ApprovalController {
  70.  
  71.     public static final String SHOW_LIST_APPROVAL_MEMBER = "approval/member/list";
  72.     public static final String LIST_REQUEST_KOMUNITAS = "approval/listRequestKomunitas";
  73.     public static final String LIST_REQUEST_STRUKTUR_KOMUNITAS = "approval/struktur_komunitas/list";
  74.     public static final String FORM = "approval/form";
  75.     public static final String SHOW_DETAIL_MEMBER = "approval/member/detail";
  76.     public static final String SHOW_DETAIL_KOMINITAS = "approval/detailKomunitas";
  77.  
  78.     public static final Logger logger = LoggerFactory.getLogger(ApprovalController.class);
  79.  
  80.     @Autowired
  81.     private ApprovedDao approvedDao;
  82.  
  83.     @Autowired
  84.     private RequestKomunitasDao requestKomunitasDao;
  85.  
  86.     @Autowired
  87.     private EmailHelper emailHelper;
  88.  
  89.     @Autowired
  90.     private NotificationService notificationService;
  91.  
  92.     @Autowired
  93.     private NotificationDao notificationDao;
  94.  
  95.     @Autowired
  96.     private RegistrationSavingsDetailDao registrationSavingsDetailDao;
  97.  
  98.     @Autowired
  99.     private ReasonDao reasonDao;
  100.  
  101.     @Autowired
  102.     private CommunityGroupDao communityGroupDao;
  103.  
  104.     @Autowired
  105.     private UserDao userDao;
  106.  
  107.     @Autowired
  108.     private RoleDao roleDao;
  109.  
  110.     @Autowired
  111.     private UserMemberDao userMemberDao;
  112.  
  113.     @Autowired
  114.     private KomunitasService komunitasService;
  115.  
  116.     @Autowired
  117.     private MutasiDao mutasiDao;
  118.  
  119.     @Autowired
  120.     private JournalHeaderDao journalHeaderDao;
  121.  
  122.     @Autowired
  123.     private AccountDao accountDao;
  124.  
  125.     @Autowired
  126.     private RequestStrukturKomunitasDao requestStrukturKomunitasDao;
  127.  
  128.     @Autowired
  129.     private RegistrationCooperativeSavingsValueDao registrationCooperativeSavingsValueDao;
  130.  
  131.     @Autowired
  132.     private RegistrationInvestmentSavingsValueDao registrationInvestmentSavingsValueDao;
  133.  
  134.     @Autowired
  135.     private RegistrationWakafValueDao registrationWakafValueDao;
  136.  
  137.     @GetMapping("/request_member/list")
  138.     public String listRequestMember(ModelMap modelMap, @PageableDefault Pageable page) {
  139.         modelMap.addAttribute("datas", approvedDao.findByApproved(UserMemberStatus.WAITING, page));
  140.         modelMap.addAttribute("listReason", reasonDao.findAll());
  141.         return SHOW_LIST_APPROVAL_MEMBER;
  142.     }
  143.  
  144.     @GetMapping("/request_komunitas/list")
  145.     public String listRequestKomunitas(ModelMap modelMap, @PageableDefault Pageable page) {
  146.         Page<RequestKomunitas> list = requestKomunitasDao.findByApproved(UserMemberStatus.WAITING, page);
  147.         modelMap.addAttribute("datas", list);
  148.         return LIST_REQUEST_KOMUNITAS;
  149.     }
  150.  
  151.     @GetMapping("/request_struktur_komunitas/list")
  152.     public String listRequestStrukturKomunitas(ModelMap modelMap, @PageableDefault Pageable page) {
  153.         Page<RequestStrukturKomunitas> list = requestStrukturKomunitasDao.findByStatus(UserMemberStatus.WAITING, page);
  154.         modelMap.addAttribute("datas", list);
  155.         return LIST_REQUEST_STRUKTUR_KOMUNITAS;
  156.     }
  157.  
  158.     @GetMapping("/request_komunitas/detail")
  159.     public String detailKomunitas(ModelMap mm, @RequestParam(required = false) String id) {
  160.         if (StringUtils.hasText(id)) {
  161.             Optional<RequestKomunitas> opRequestKomunitas = requestKomunitasDao.findById(id);
  162.             if (opRequestKomunitas.isPresent()) {
  163.                 RequestKomunitas requestKomunitas = opRequestKomunitas.get();
  164.                 List<UserMember> listUserMember = new ArrayList<>();
  165.                 for (UserMember col : requestKomunitas.getUserMembers()) {
  166.                     listUserMember.add(col);
  167.                 }
  168.                 mm.addAttribute("datas", listUserMember);
  169.                 mm.addAttribute("requestKomunitas", requestKomunitas);
  170.             }
  171.         }
  172.         return SHOW_DETAIL_KOMINITAS;
  173.     }
  174.  
  175.     @GetMapping("/request_struktur_komunitas/approved")
  176.     public String approvedStrukturKomunitas(RedirectAttributes redir, @RequestParam(required = false) String id, HttpServletRequest request) throws IOException {
  177.         Optional<RequestStrukturKomunitas> opStrukturKomunitas = requestStrukturKomunitasDao.findById(id);
  178.         if (opStrukturKomunitas.isPresent()) {
  179.             RequestStrukturKomunitas strukturKomunitas = opStrukturKomunitas.get();
  180.             strukturKomunitas.setStatus(UserMemberStatus.APPROVED);
  181.             Optional<CommunityGroup> opCommunityGroup = communityGroupDao.findById(strukturKomunitas.getUserMember().getCommunityGroup().getId());
  182.             if (opCommunityGroup.isPresent()) {
  183.                 CommunityGroup communityGroup = opCommunityGroup.get();
  184.                 communityGroup.setKetua(strukturKomunitas.getKetua());
  185.                 communityGroup.setWakilKetua(strukturKomunitas.getWakilKetua());
  186.                 communityGroup.setSekretaris(strukturKomunitas.getSekretaris());
  187.                 communityGroup.setWakilSekretaris(strukturKomunitas.getWakilSekretaris());
  188.                 communityGroup.setBendahara(strukturKomunitas.getBendahara());
  189.                 communityGroup.setWakilBendahara(strukturKomunitas.getWakilBendahara());
  190.                 komunitasService.saveStrukturKomunitas(communityGroup);
  191.                 communityGroup = communityGroupDao.save(communityGroup);
  192.                 redir.addFlashAttribute("successMessage", "Struktur komunitas berhasil terima.");
  193.             }
  194.             requestStrukturKomunitasDao.save(strukturKomunitas);
  195.  
  196.             // set role request struktur komunitas menjadi role member
  197.             Optional<Role> opRoleMember = roleDao.findById("member");
  198.             User userAnggota = strukturKomunitas.getUserMember().getUser();
  199.             userAnggota.setRole(opRoleMember.get());
  200.             userDao.save(userAnggota);
  201.  
  202.             // set role member menjadi role ketua komunitas
  203.             List<UserMember> userMember = userMemberDao.findByJabatanAndCommunityGroupId(CommitteeRole.ROLE_1_KETUA, strukturKomunitas.getUserMember().getCommunityGroup().getId());
  204.             for (UserMember anggota : userMember) {
  205.                 Optional<Role> opRoleKetua = roleDao.findById("ketua_komunitas");
  206.                 User userKetua = anggota.getUser();
  207.                 userKetua.setRole(opRoleKetua.get());
  208.                 anggota.setKontak(Boolean.TRUE);
  209.                 anggota.setListAnggota(Boolean.TRUE);
  210.                 userDao.save(userKetua);
  211.                 userMemberDao.save(anggota);
  212.             }
  213.  
  214.         }
  215.         return "redirect:/approval/request_struktur_komunitas/list";
  216.     }
  217.  
  218.     @GetMapping("/request_komunitas/approved")
  219.     public String approvedRequestKomunitas(RedirectAttributes redir, @RequestParam(required = false) String id, HttpServletRequest request) throws IOException {
  220.         Optional<RequestKomunitas> opRequestKomunitas = requestKomunitasDao.findById(id);
  221.         if (opRequestKomunitas.isPresent()) {
  222.             RequestKomunitas requestKomunitas = opRequestKomunitas.get();
  223.             requestKomunitas.setApproved(UserMemberStatus.APPROVED);
  224.  
  225.             CommunityGroup communityGroup = new CommunityGroup();
  226.             communityGroup.setCommunityName(requestKomunitas.getCommunityName());
  227.             communityGroup.setLocation(requestKomunitas.getLocation());
  228.             communityGroup.setProvinsi(requestKomunitas.getProvinsi());
  229.             communityGroup.setKota(requestKomunitas.getKota());
  230.             communityGroup.setKecamatan(requestKomunitas.getKecamatan());
  231.             communityGroup.setKodeKomunitas(komunitasService.generateKodeKomunitas());
  232.             communityGroup = communityGroupDao.save(communityGroup);
  233.  
  234.             requestKomunitas.getUserMember().setCommunityGroup(communityGroup);
  235.             requestKomunitasDao.save(requestKomunitas);
  236.  
  237.             for (UserMember dataUserMembers : requestKomunitas.getUserMembers()) {
  238.                 dataUserMembers.setCommunityGroup(communityGroup);
  239.                 userMemberDao.save(dataUserMembers);
  240.             }
  241.  
  242.             // Set role
  243.             Optional<Role> opRole = roleDao.findById("request_komunitas");
  244.             User user = requestKomunitas.getUserMember().getUser();
  245.             user.setRole(opRole.get());
  246.             userDao.save(user);
  247.         }
  248.         return "redirect:/approval/request_komunitas/list";
  249.     }
  250.  
  251.     @GetMapping("/request_komunitas/reject")
  252.     public String reject(RedirectAttributes redir, @RequestParam(required = false) String id, HttpServletRequest request) throws IOException {
  253.         Optional<RequestKomunitas> opRequestKomunitas = requestKomunitasDao.findById(id);
  254.         if (opRequestKomunitas.isPresent()) {
  255.             RequestKomunitas requestKomunitas = opRequestKomunitas.get();
  256.             requestKomunitas.setApproved(UserMemberStatus.REJECTED);
  257.             requestKomunitasDao.save(requestKomunitas);
  258.         }
  259.         redir.addFlashAttribute("successMessage", "Pengajuan komunitas telah ditolak.");
  260.         return "redirect:/approval/request_komunitas/list";
  261.     }
  262.  
  263.     @GetMapping("/request_member/approved")
  264.     public String approvedRequestMember(RedirectAttributes redir, @RequestParam(required = false) String id, HttpServletRequest request, Principal principal) {
  265.         Optional<Approved> opApproved = approvedDao.findById(id);
  266.         if (opApproved.isPresent()) {
  267.             opApproved.get().setApproved(UserMemberStatus.APPROVED);
  268.             RegistrationSavingsDetail regisSavingsDetail = registrationSavingsDetailDao.findByUserMemberId(opApproved.get().getUserMember().getId());
  269.  
  270.             String kodeCompanyBank;
  271.             String kodeBank;
  272.             if (regisSavingsDetail.getPembayaran().equals("bni_syariah")) {
  273.                 kodeBank = "988";
  274.                 kodeCompanyBank = "10223";
  275.             } else if (regisSavingsDetail.getPembayaran().equals("bsm")) {
  276.                 kodeBank = "001";
  277.                 kodeCompanyBank = "00001";
  278.             } else {
  279.                 kodeBank = "000";
  280.                 kodeCompanyBank = "00000";
  281.             }
  282.  
  283.             opApproved.get().getUserMember().setNomorVirtualAccount(kodeBank + kodeCompanyBank + "03" + opApproved.get().getUserMember().getNomorAnggota());
  284.             opApproved.get().getUserMember().getUser().setActive(Boolean.TRUE);
  285.             approvedDao.save(opApproved.get());
  286.  
  287.             String bank = null;
  288.             if (regisSavingsDetail.getPembayaran().equalsIgnoreCase("bni_syariah")) {
  289.                 bank = "R/K Bank BNIS (1) 3337777212 ";
  290.             } else if (regisSavingsDetail.getPembayaran().equalsIgnoreCase("bsm")) {
  291.                 bank = "R/K Bank BSM (1) 7777790212 ";
  292.             } else {
  293.                 bank = "kosong";
  294.             }
  295.  
  296.             // cooperative
  297.             RegistrationCooperativeSavingsValue coopMultiguna = registrationCooperativeSavingsValueDao.findByCooperativeSavingsIdAndRegistrationSavingsDetailId("e085aaf6-4f43-4537-95d1-d6777bfd1fa4", regisSavingsDetail.getId());
  298.             RegistrationCooperativeSavingsValue coopWajib = registrationCooperativeSavingsValueDao.findByCooperativeSavingsIdAndRegistrationSavingsDetailId("627b9ae1-53c9-4200-9dc5-d097c60a849a", regisSavingsDetail.getId());
  299.             RegistrationCooperativeSavingsValue coopPokok = registrationCooperativeSavingsValueDao.findByCooperativeSavingsIdAndRegistrationSavingsDetailId("0aa639ed-b775-4bed-b2c7-3dc634cc18c7", regisSavingsDetail.getId());
  300.  
  301.             coopMultiguna.setStatus(true);
  302.             coopWajib.setStatus(true);
  303.             coopPokok.setStatus(true);
  304.  
  305.             // invesment
  306.             RegistrationInvestmentSavingsValue investMart = registrationInvestmentSavingsValueDao.findByInvestmentSavingsIdAndRegistrationSavingsDetailId("47d7a65f-07dc-4bac-ba45-41d9abbac0ed", regisSavingsDetail.getId());
  307.  
  308.             RegistrationInvestmentSavingsValue investProperti = registrationInvestmentSavingsValueDao.findByInvestmentSavingsIdAndRegistrationSavingsDetailId("90b63ec5-1975-4ac3-874d-ebd74594571f", regisSavingsDetail.getId());
  309.  
  310.             RegistrationInvestmentSavingsValue investLks = registrationInvestmentSavingsValueDao.findByInvestmentSavingsIdAndRegistrationSavingsDetailId("92ca7adf-b636-48c6-bb89-78f834a4867a", regisSavingsDetail.getId());
  311.  
  312.             logger.error("investMart {} : {} ",investMart == null, regisSavingsDetail.getId());
  313.             logger.error("investProperti {} : {} ",investProperti == null, regisSavingsDetail.getId());
  314.             logger.error("investKs {} : {} ",investLks == null, regisSavingsDetail.getId());
  315.  
  316.             investMart.setStatus(true);
  317.             investProperti.setStatus(true);
  318.             investLks.setStatus(true);
  319.  
  320.  
  321.  
  322.             // wakaf
  323.             RegistrationWakafValue wakafTunaiProduktif = registrationWakafValueDao.findByWakafIdAndRegistrationSavingsDetailId("7823d58b-56b0-11e9-8df4-ec55f9e1fa0f", regisSavingsDetail.getId());
  324.             wakafTunaiProduktif.setStatus(true);
  325.  
  326.             // ---- Set Journal Header ----
  327.             JournalHeader journalHeader = new JournalHeader();
  328.             journalHeader.setTransactionDate(new Date());
  329.             journalHeader.setJournalCode(JournalCode.TAB);
  330.             long listJournalHeader = journalHeaderDao.countByReferensiContainingIgnoreCase("KEU");
  331.             String runningNumber = String.valueOf(listJournalHeader + 1);
  332.             journalHeader.setReferensi("KEU" + "-" + runningNumber);
  333.             journalHeader.setDescription("-");
  334.  
  335.             // ----- Set Journal Details -----
  336.             List<JournalDetail> listJournalDetails = new ArrayList<>();
  337.  
  338.             // Account simpamam koperasi
  339.             Account simpananMultiguna = accountDao.findByAccountName("Simp. Multiguna");
  340.             Account simpananWajib = accountDao.findByAccountName("Simpanan Wajib");
  341.             Account simpananPokok = accountDao.findByAccountName("Simpanan Pokok");
  342.  
  343.             // Account simpanan investasi
  344.             Account simpananMart = accountDao.findByAccountName("Investasi 212 Mart");
  345.             Account simpananProperti = accountDao.findByAccountName("Simp. Properti");
  346.             Account simpananLks = accountDao.findByAccountName("Simp. LKS");
  347.  
  348.             // Account simpanan Wakaf Tunai Produktif
  349.             Account simpananWakafProduktif = accountDao.findByAccountName("Simp. Wakaf Uang");
  350.  
  351.             // Account Bank
  352.             Account transferBank = accountDao.findByAccountName(bank);
  353.  
  354.             // Journal Detail cooperative
  355.             JournalDetail simpMultiguna = new JournalDetail();
  356.             JournalDetail simpWajib = new JournalDetail();
  357.             JournalDetail simpPokok = new JournalDetail();
  358.  
  359.             // Journal Detail investment
  360.             JournalDetail simpMart = new JournalDetail();
  361.             JournalDetail simpProperti = new JournalDetail();
  362.             JournalDetail simpLks = new JournalDetail();
  363.  
  364.             // Journal Detail wakaf
  365.             JournalDetail simpWakaf = new JournalDetail();
  366.  
  367.             // Journal Detail Bank
  368.             JournalDetail pembayaran = new JournalDetail();
  369.  
  370.             // simpanan multiguna
  371.             simpMultiguna.setJournalHeader(journalHeader);
  372.             simpMultiguna.setAccount(simpananMultiguna);
  373.             simpMultiguna.setDebitKredit(DebitKredit.KREDIT);
  374.             simpMultiguna.setAmount(coopMultiguna.getNominal());
  375.             simpMultiguna.setDescription("-");
  376.  
  377.             // simpanan wajib
  378.             simpWajib.setJournalHeader(journalHeader);
  379.             simpWajib.setAccount(simpananWajib);
  380.             simpWajib.setDebitKredit(DebitKredit.KREDIT);
  381.             simpWajib.setAmount(coopWajib.getNominal());
  382.             simpWajib.setDescription("-");
  383.  
  384.             // simpanan pokok
  385.             simpPokok.setJournalHeader(journalHeader);
  386.             simpPokok.setAccount(simpananPokok);
  387.             simpPokok.setDebitKredit(DebitKredit.KREDIT);
  388.             simpPokok.setAmount(coopPokok.getNominal());
  389.             simpPokok.setDescription("-");
  390.  
  391.             // simpanan Jaringan Minimarket Syariah
  392.             simpMart.setJournalHeader(journalHeader);
  393.             simpMart.setAccount(simpananMart);
  394.             simpMart.setDebitKredit(DebitKredit.KREDIT);
  395.             simpMart.setAmount(investMart.getNominal());
  396.             simpMart.setDescription("-");
  397.  
  398.             // Properti Syariah
  399.             simpProperti.setJournalHeader(journalHeader);
  400.             simpProperti.setAccount(simpananProperti);
  401.             simpProperti.setDebitKredit(DebitKredit.KREDIT);
  402.             simpProperti.setAmount(investProperti.getNominal());
  403.             simpProperti.setDescription("-");
  404.  
  405.             // Lembaga Keuangan Syariah
  406.             simpLks.setJournalHeader(journalHeader);
  407.             simpLks.setAccount(simpananLks);
  408.             simpLks.setDebitKredit(DebitKredit.KREDIT);
  409.             simpLks.setAmount(investLks.getNominal());
  410.             simpLks.setDescription("-");
  411.  
  412.             // Wakaf Tunai Produktif
  413.             simpWakaf.setJournalHeader(journalHeader);
  414.             simpWakaf.setAccount(simpananWakafProduktif);
  415.             simpWakaf.setDebitKredit(DebitKredit.KREDIT);
  416.             simpWakaf.setAmount(wakafTunaiProduktif.getNominal());
  417.             simpWakaf.setDescription("-");
  418.  
  419.             BigDecimal totalAmount = BigDecimal.ZERO;
  420.             totalAmount = coopMultiguna.getNominal().add(coopWajib.getNominal()).add(coopPokok.getNominal()).add(investMart.getNominal()).add(investProperti.getNominal()).add(investLks.getNominal()).add(wakafTunaiProduktif.getNominal());
  421.  
  422.             pembayaran.setJournalHeader(journalHeader);
  423.             pembayaran.setAccount(transferBank);
  424.             pembayaran.setDebitKredit(DebitKredit.DEBIT);
  425.             pembayaran.setAmount(totalAmount);
  426.             pembayaran.setDescription("-");
  427.  
  428.             listJournalDetails.add(simpMultiguna);
  429.             listJournalDetails.add(simpWajib);
  430.             listJournalDetails.add(simpPokok);
  431.             listJournalDetails.add(simpMart);
  432.             listJournalDetails.add(simpProperti);
  433.             listJournalDetails.add(simpLks);
  434.             listJournalDetails.add(simpWakaf);
  435.             listJournalDetails.add(pembayaran);
  436.  
  437.             journalHeader.setJournalDetails(listJournalDetails);
  438.  
  439.             journalHeaderDao.save(journalHeader);
  440.  
  441.             //Sending Email
  442.             try {
  443.                 RegistrationSavingsDetail registrationSavingsDetail = registrationSavingsDetailDao.findByUserMemberId(opApproved.get().getUserMember().getId());
  444.                 Notification notification = new Notification();
  445.                 notification.setContent(emailHelper.setContent(registrationSavingsDetail, request));
  446.                 notification.setTo(registrationSavingsDetail.getUserMember().getUser().getEmail());
  447.                 notification.setSubject("Koperasi Syariah - Informasi Nomor Rekening Pembayaran");
  448.                 notification.setType(NotificationType.APPROVAL);
  449.  
  450.                 notificationDao.save(notification);
  451.                 notificationService.sendingEmail(notification);
  452.                 emailHelper.sendEmailToLeader(registrationSavingsDetail);
  453.  
  454.                 for (RegistrationCooperativeSavingsValue registrationCooperativeSavingsValue : registrationSavingsDetail.getSavingsValues()) {
  455.                     Mutasi mutasi = new Mutasi();
  456.                     mutasi.setUserMember(registrationSavingsDetail.getUserMember());
  457.                     mutasi.setNominal(registrationCooperativeSavingsValue.getNominal());
  458.                     mutasi.setSaldoAkhir(registrationCooperativeSavingsValue.getNominal());
  459.                     mutasi.setDeskripsi("Saldo awal " + registrationCooperativeSavingsValue.getCooperativeSavings().getTitle());
  460.                     mutasi.setCreateDate(new Date());
  461.                     mutasi.setDebitKredit(DebitKredit.KREDIT);
  462.                     mutasi.setIdProduk(registrationCooperativeSavingsValue.getId());
  463.                     if (registrationCooperativeSavingsValue.getNominal().compareTo(new BigDecimal(0)) == 1 || registrationCooperativeSavingsValue.getNominal().compareTo(new BigDecimal(0)) == -1) {
  464.                         mutasiDao.save(mutasi);
  465.                     }
  466.                 }
  467.  
  468.                 for (RegistrationInvestmentSavingsValue registrationInvestmentSavingsValue : registrationSavingsDetail.getInvestmentValue()) {
  469.                     Mutasi mutasi = new Mutasi();
  470.                     mutasi.setUserMember(registrationSavingsDetail.getUserMember());
  471.                     mutasi.setNominal(registrationInvestmentSavingsValue.getNominal());
  472.                     mutasi.setSaldoAkhir(registrationInvestmentSavingsValue.getNominal());
  473.                     mutasi.setDeskripsi("Saldo awal " + registrationInvestmentSavingsValue.getInvestmentSavings().getTitle());
  474.                     mutasi.setCreateDate(new Date());
  475.                     mutasi.setDebitKredit(DebitKredit.KREDIT);
  476.                     mutasi.setIdProduk(registrationInvestmentSavingsValue.getId());
  477.                     if (registrationInvestmentSavingsValue.getNominal().compareTo(new BigDecimal(0)) == 1 || registrationInvestmentSavingsValue.getNominal().compareTo(new BigDecimal(0)) == -1) {
  478.                         mutasiDao.save(mutasi);
  479.                     }
  480.                 }
  481.  
  482.                 for (RegistrationWakafValue registrationWakafValue : registrationSavingsDetail.getWakafValues()) {
  483.                     Mutasi mutasi = new Mutasi();
  484.                     mutasi.setUserMember(registrationSavingsDetail.getUserMember());
  485.                     mutasi.setNominal(registrationWakafValue.getNominal());
  486.                     mutasi.setSaldoAkhir(registrationWakafValue.getNominal());
  487.                     mutasi.setDeskripsi("Saldo awal " + registrationWakafValue.getWakaf().getTitle());
  488.                     mutasi.setCreateDate(new Date());
  489.                     mutasi.setDebitKredit(DebitKredit.KREDIT);
  490.                     mutasi.setIdProduk(registrationWakafValue.getId());
  491.                     if (registrationWakafValue.getNominal().compareTo(new BigDecimal(0)) == 1 || registrationWakafValue.getNominal().compareTo(new BigDecimal(0)) == -1) {
  492.                         mutasiDao.save(mutasi);
  493.                     }
  494.                 }
  495.  
  496.                 redir.addFlashAttribute("successMessage", "Permintaan member baru berhasil disetujui.");
  497.             } catch (Exception e) {
  498.                 redir.addFlashAttribute("errorMessage", "Email gagal dikirim" + e.getMessage());
  499.             }
  500.  
  501.         }
  502.  
  503.         return "redirect:/approval/request_member/list";
  504.     }
  505.  
  506.     @GetMapping("/request_member/detail")
  507.     public String detail(@RequestParam(required = false) String id, ModelMap modelMap) {
  508.         if (StringUtils.hasText(id)) {
  509.             Optional<UserMember> opUserMember = userMemberDao.findById(id);
  510.             modelMap.addAttribute("userMember", opUserMember.get());
  511.         } else {
  512.             return "redirect:/data_not_found";
  513.         }
  514.         return SHOW_DETAIL_MEMBER;
  515.     }
  516. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement