/** * Copyright © 2015 Pablo Grela Palleiro (pablogp_9@hotmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.cuacfm.members.web.paymember; import javax.validation.Valid; import org.cuacfm.members.model.exceptions.DatesException; import org.cuacfm.members.model.exceptions.ExistTransactionIdException; import org.cuacfm.members.model.paymember.PayMember; import org.cuacfm.members.model.paymemberservice.PayMemberService; import org.cuacfm.members.model.util.DateUtils; import org.cuacfm.members.model.util.Constants.methods; import org.cuacfm.members.model.util.Constants.states; import org.cuacfm.members.web.support.MessageHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** The Class PayMemberEditController. */ @Controller public class PayMemberEditController { private static final Logger logger = LoggerFactory.getLogger(PayMemberEditController.class); private static final String PAYMEMBER_VIEW_NAME = "paymember/paymemberedit"; @Autowired private PayMemberService payMemberService; private PayMember payMember; /** * Instantiates a new payMember Controller. */ public PayMemberEditController() { super(); } /** * PayMember. * * @return PayMember */ @ModelAttribute("payMember") public PayMember payMember() { return payMember; } /** * PayMember. * * @param model the model * @return the string */ @RequestMapping(value = "feeMemberList/payMemberList/payMemberEdit") public String payMember(Model model) { if (payMember != null) { PayMemberForm payMemberForm = new PayMemberForm(); payMemberForm.setPrice(payMember.getPrice()); payMemberForm.setInstallment(payMember.getInstallment()); payMemberForm.setInstallments(payMember.getInstallments()); payMemberForm.setState(String.valueOf(payMember.getState())); payMemberForm.setStateList(java.util.Arrays.asList(states.values())); payMemberForm.setMethod(String.valueOf(payMember.getMethod())); payMemberForm.setMethodList(java.util.Arrays.asList(methods.values())); payMemberForm.setIdTxn(payMember.getIdTxn()); payMemberForm.setIdPayer(payMember.getIdPayer()); payMemberForm.setEmailPayer(payMember.getEmailPayer()); payMemberForm.setIdPayer(payMember.getIdPayer()); payMemberForm.setDatePay(DateUtils.format(payMember.getDatePay(), DateUtils.FORMAT_DISPLAY)); model.addAttribute(payMember); model.addAttribute(payMemberForm); return PAYMEMBER_VIEW_NAME; } // If not have payMember, redirect to payMemberList else { return "redirect:/feeMemberList/payMemberList"; } } /** * PayMember. * * @param payMemberForm the payMember form * @param errors the errors * @param ra the ra * @return the string * @throws DatesException the date limit exception */ @RequestMapping(value = "feeMemberList/payMemberList/payMemberEdit", method = RequestMethod.POST) public String payMember(@Valid @ModelAttribute PayMemberForm payMemberForm, Errors errors, RedirectAttributes ra) throws DatesException { if (errors.hasErrors()) { return PAYMEMBER_VIEW_NAME; } try { payMemberService.update(payMemberForm.updatePayMember(payMember)); } catch (ExistTransactionIdException e) { logger.error("payMember", e); errors.rejectValue("idTxn", "existIdTxn.message", new Object[] { e.getIdTxn() }, "idTxn"); return PAYMEMBER_VIEW_NAME; } MessageHelper.addSuccessAttribute(ra, "payMember.successModify", payMemberForm.getInstallment(), payMember.getAccount().getName()); return "redirect:/feeMemberList/payMemberList"; } /** * Modify PayMember by Id. * * @param id the id * @return the string destinity page */ @RequestMapping(value = "feeMemberList/payMemberList/payMemberEdit/{id}", method = RequestMethod.POST) public String modifyPayMember(@PathVariable Long id) { payMember = payMemberService.findById(id); return "redirect:/feeMemberList/payMemberList/payMemberEdit"; } }