Search in sources :

Example 1 with InvoiceData

use of site.controller.invoice.InvoiceData in project jprime by bgjug.

the class TicketsController method register.

/**
 * User submitted the form.
 */
@Transactional
@RequestMapping(value = "/tickets/epay", method = RequestMethod.POST)
public String register(Model model, @Valid final Registrant registrant, BindingResult bindingResult, HttpServletRequest request) throws Exception {
    boolean invalidCaptcha = false;
    if (registrant.getCaptcha() == null || !registrant.getCaptcha().equals(request.getSession().getAttribute(CaptchaController.SESSION_PARAM_CAPTCHA_IMAGE))) {
        bindingResult.rejectValue("captcha", "invalid");
        invalidCaptcha = true;
    }
    if (bindingResult.hasErrors() || invalidCaptcha) {
        return TICKETS_REGISTER_JSP;
    }
    // check empty users, server side validation
    List<Visitor> toBeRemoved = registrant.getVisitors().stream().filter(v -> v.getEmail() == null || v.getEmail().isEmpty() || v.getName() == null || v.getName().isEmpty()).collect(Collectors.toList());
    registrant.getVisitors().removeAll(toBeRemoved);
    registrant.getVisitors().forEach(visitor -> visitor.setStatus(VisitorStatus.REQUESTING));
    if (!registrant.isCompany()) {
        handlePersonalRegistrant(registrant);
    }
    registrant.setPaymentType(Registrant.PaymentType.BANK_TRANSFER);
    Registrant savedRegistrant = registrantFacade.save(registrant);
    model.addAttribute("tags", userFacade.findAllTags());
    InvoiceData invoiceData = buildInvoiceData(savedRegistrant);
    byte[] pdf = invoiceExporter.exportInvoice(invoiceData, registrant.isCompany());
    sendPDF(savedRegistrant, generatePdfFilename(registrant, invoiceData.getSinglePriceWithVAT()), pdf);
    return result("ok", model);
}
Also used : SimpleDateFormat(java.text.SimpleDateFormat) MessagingException(javax.mail.MessagingException) Autowired(org.springframework.beans.factory.annotation.Autowired) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) BindingResult(org.springframework.validation.BindingResult) MailService(site.facade.MailService) Controller(org.springframework.stereotype.Controller) InvoiceExporter(site.controller.invoice.InvoiceExporter) Valid(javax.validation.Valid) HttpServletRequest(javax.servlet.http.HttpServletRequest) Model(org.springframework.ui.Model) Calendar(java.util.Calendar) Visitor(site.model.Visitor) Qualifier(org.springframework.beans.factory.annotation.Qualifier) UserService(site.facade.UserService) Transactional(javax.transaction.Transactional) Registrant(site.model.Registrant) RequestMethod(org.springframework.web.bind.annotation.RequestMethod) Collectors(java.util.stream.Collectors) InvoiceData(site.controller.invoice.InvoiceData) List(java.util.List) Logger(org.apache.logging.log4j.Logger) RegistrantService(site.facade.RegistrantService) LogManager(org.apache.logging.log4j.LogManager) VisitorStatus(site.model.VisitorStatus) Visitor(site.model.Visitor) InvoiceData(site.controller.invoice.InvoiceData) Registrant(site.model.Registrant) Transactional(javax.transaction.Transactional) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with InvoiceData

use of site.controller.invoice.InvoiceData in project jprime by bgjug.

the class AdminInvoiceController method invoiceDataForm.

@RequestMapping(value = "/{itemId}", method = RequestMethod.GET)
public String invoiceDataForm(@PathVariable("itemId") Long itemId, Model model) {
    InvoiceData invoiceData = InvoiceData.fromRegistrant(registrantFacade.findById(itemId));
    model.addAttribute("invoiceData", invoiceData);
    return INVOICE_DATA_JSP;
}
Also used : InvoiceData(site.controller.invoice.InvoiceData) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with InvoiceData

use of site.controller.invoice.InvoiceData in project jprime by bgjug.

the class TicketsController method buildInvoiceData.

private InvoiceData buildInvoiceData(Registrant registrant) {
    InvoiceData invoiceData = InvoiceData.fromRegistrant(registrant);
    if (registrant.getPaymentType().equals(Registrant.PaymentType.BANK_TRANSFER)) {
        // currently hardcoded
        invoiceData.setInvoiceType(InvoiceData.PROFORMA_BG);
        invoiceData.setInvoiceNumber(String.valueOf(registrant.getProformaInvoiceNumber()));
    } else {
        // currently hardcoded
        invoiceData.setInvoiceType(InvoiceData.ORIGINAL_BG);
        invoiceData.setInvoiceNumber(String.valueOf(registrant.getRealInvoiceNumber()));
    }
    return invoiceData;
}
Also used : InvoiceData(site.controller.invoice.InvoiceData)

Aggregations

InvoiceData (site.controller.invoice.InvoiceData)3 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 SimpleDateFormat (java.text.SimpleDateFormat)1 Calendar (java.util.Calendar)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 MessagingException (javax.mail.MessagingException)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 Transactional (javax.transaction.Transactional)1 Valid (javax.validation.Valid)1 LogManager (org.apache.logging.log4j.LogManager)1 Logger (org.apache.logging.log4j.Logger)1 Autowired (org.springframework.beans.factory.annotation.Autowired)1 Qualifier (org.springframework.beans.factory.annotation.Qualifier)1 Controller (org.springframework.stereotype.Controller)1 Model (org.springframework.ui.Model)1 BindingResult (org.springframework.validation.BindingResult)1 RequestMethod (org.springframework.web.bind.annotation.RequestMethod)1 InvoiceExporter (site.controller.invoice.InvoiceExporter)1 MailService (site.facade.MailService)1