Package org.bigk.invoices.actions.invoices

Source Code of org.bigk.invoices.actions.invoices.InvoicesAction

package org.bigk.invoices.actions.invoices;

import java.util.List;
import java.util.Map;

import org.apache.commons.collections.CollectionUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Namespaces;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.validation.SkipValidation;
import org.bigk.invoices.Globals;
import org.bigk.invoices.actions.AbstractCRUDAction;
import org.bigk.invoices.exceptions.ServiceException;
import org.bigk.invoices.model.Invoice;
import org.bigk.invoices.model.InvoiceFilter;
import org.bigk.invoices.model.InvoicePosition;
import org.bigk.invoices.model.InvoicePurchaser;
import org.bigk.invoices.model.PaymentKind;
import org.bigk.invoices.services.InvoicesService;
import org.bigk.invoices.services.PaymentKindsService;
import org.bigk.invoices.utils.DisplayTagUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionContext;


@Controller("invoicesAction")
@Namespaces({@Namespace("/invoices"), @Namespace("/print/invoices")})
public class InvoicesAction extends AbstractCRUDAction<Invoice> {
 
  private static final Logger logger = LoggerFactory.getLogger(InvoicesAction.class);
  private static final long serialVersionUID = 3190832719110023997L;
 
  public static final String REDIRECT_CREATE_EDIT_REFRESH = "redirectCreateEditRefresh";
  public static final String REDIRECT_CREATE_INVOICE_POSITION = "createInvoicePosition";
  public static final String REDIRECT_CREATE_INVOICE_PURCHASER = "createInvoicePurchaser";
  public static final String REDIRECT_EDIT_INVOICE_POSITION = "editInvoicePosition";
  public static final String REDIRECT_EDIT_INVOICE_PURCHASER = "editInvoicePurchaser";
   
  @Autowired
  private InvoicesService invoicesService;
 
  @Autowired
  private PaymentKindsService paymentKindsService;
 
  private Long id;
  private Long pId;
  private InvoiceFilter filter;

  private List<PaymentKind> paymentKindsList;

  @Override
  public void prepare() throws Exception {
    logger.debug("prepare() - start");

    this.paymentKindsList = this.paymentKindsService.listAllItems();

    logger.debug("prepare() - end");
  }
 
  @Override
  public void prepareList() throws ServiceException {
    logger.debug("prepareList() - start");
    logger.debug("prepareList() - this.filter=[{}]");
   
    if (this.filter == null)
      this.filter = new InvoiceFilter();
   
    this.filter.setCurrentPage(DisplayTagUtils.getCurrentPage4Id("rs"));
   
    list = invoicesService.listItems4Page(this.filter);

    logger.debug("prepareList() - this.filter=[{}]");
    logger.debug("prepareList() - end");
  }

  @Action(value = "list",
      results = {
          @Result(name = LIST, location = "/pages/invoices/list.jsp")
      }
  )
  @Override
  public String list() throws ServiceException {
    return super.list();
  }
 
  @Override
  public void prepareCreate() throws ServiceException {
    this.model = this.invoicesService.prepareNewInvoice();
    InvoicesActionHelper.storeInvoiceInSession(this.model);
  }
 
  @Action(value = "create",
      results = {
          @Result(name = INPUT, location = "/pages/invoices/input.jsp")
      }
  )
  @Override
  public String create() throws ServiceException {
    return super.create();
  }

  @Override
  public void prepareSave() throws ServiceException {
    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();
  }

  public void validateSave() {
    logger.debug("validateSave() - start");

    if (CollectionUtils.isEmpty(this.model.getInvoicePurchasers())) {
      addActionError(getText("errors.notempty.invoicePurchasers"));
    }

    if (CollectionUtils.isEmpty(this.model.getInvoicePositions())) {
      addActionError(getText("errors.notempty.invoicePositions"));
    }
   
    logger.debug("validateSave() - end");
  }
 
  @Action(value = "save",
      results = {
      @Result(name = INPUT, location = "/pages/invoices/input.jsp"),
          @Result(name = REDIRECT_LIST, type = "redirectAction", location = "list")
      }
  )
  @Override
  public String save() throws ServiceException {
    invoicesService.saveInvoice(model);
    addActionMessage(getText("msg.recordInsertedSuccess"));
    return REDIRECT_LIST;
  }

  @Override
  public void prepareEdit() throws ServiceException {
    this.model = invoicesService.getInvoice(id);
    InvoicesActionHelper.storeInvoiceInSession(this.model);
  }

  @Override
  public void prepareUpdate() throws ServiceException {
    logger.debug("prepareUpdate() - start");

    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();

    logger.debug("prepareUpdate() - end");
  }

  @Action(value = "update",
      results = {
          @Result(name = INPUT, location = "/pages/invoices/input.jsp"),
          @Result(name = REDIRECT_LIST, type = "redirectAction", location = "list")
      }
  )
  @Override
  public String update() throws ServiceException {
    logger.debug("update() - start");

    invoicesService.updateInvoice(model);
    addActionMessage(getText("msg.recordUpdatedSuccess"));

    logger.debug("update() - end - return value=[{}]", REDIRECT_LIST);
    return REDIRECT_LIST;
  }

  public void prepareCreateEditRefresh() throws ServiceException {
    logger.debug("prepareCreateEditRefresh() - start");

    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();

    logger.debug("prepareCreateEditRefresh() - end");
  }

  @Action(value = "createEditRefresh",
      results = {
          @Result(name = INPUT, location = "/pages/invoices/input.jsp")
      })
  @SkipValidation
  public String createEditRefresh() throws ServiceException {
    return INPUT;
  }

  @Override
  public void prepareShow() throws ServiceException {
    model = invoicesService.getInvoice(this.getId());
  }

  @Actions({
    @Action(value = "show",
        results = {@Result(location = "/pages/invoices/show.jsp"),
               @Result(name = REDIRECT_LIST, type = "redirectAction", location = "list")}),
    @Action(value = "showDr",
        results = {@Result(location = "/pages/invoices/showDr.jsp")})
  })
  @Override
  public String show() throws ServiceException {
    return super.show();
  }
 
  @Override
  public void prepareDelete() throws ServiceException {
    model = invoicesService.getInvoice(id);
  }
 
  @Action(value = "delete",
      results = {
          @Result(name = REDIRECT_LIST, type = "redirectAction", location = "list")
      }
  )
  @Override
  public String delete() throws ServiceException {
    invoicesService.deleteInvoice(model);
    addActionMessage(getText("msg.recordDeletedSuccess"));
    return REDIRECT_LIST;
  }

  public void prepareCreateInvoicePosition() throws ServiceException {
    logger.debug("prepareCreateInvoicePosition() - start");
   
    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();
   
    logger.debug("prepareCreateInvoicePosition() - end");
  }

  @Action(value = "createInvoicePosition",
      results = {
        @Result(name = REDIRECT_CREATE_INVOICE_POSITION,
            type = "redirectAction",
            params = {"namespace", "/invoicesPositions", "actionName", "create"})
      })
  @SkipValidation
  public String createInvoicePosition() throws ServiceException {
    logger.debug("createInvoicePosition() - start");

    InvoicesActionHelper.storeInvoiceInSession(this.model);
   
    logger.debug("createInvoicePosition() - end - return value=[{}]", REDIRECT_CREATE_INVOICE_POSITION);
    return REDIRECT_CREATE_INVOICE_POSITION;
  }

  public void prepareEditInvoicePosition() throws ServiceException {
    logger.debug("prepareEditInvoicePosition() - start");

    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();
   
    logger.debug("prepareEditInvoicePosition() - end");
  }

  @Action(value = "editInvoicePosition",
      results = {
        @Result(name = REDIRECT_EDIT_INVOICE_POSITION,
            type = "redirectAction",
            params = {"namespace", "/invoicesPositions",
                  "actionName", "edit", "pId", "${pId}"
            })
      })
  @SkipValidation
  public String editInvoicePosition() throws ServiceException {
    logger.debug("editInvoicePosition() - start");

    InvoicesActionHelper.storeInvoiceInSession(this.model);
   
    logger.debug("editInvoicePosition() - end - return value=[{}]", REDIRECT_EDIT_INVOICE_POSITION);
    return REDIRECT_EDIT_INVOICE_POSITION;
  }
 
  public void prepareCreateInvoicePurchaser() throws ServiceException {
    logger.debug("prepareCreateInvoicePurchaser() - start");
    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();
    logger.debug("prepareCreateInvoicePurchaser() - end");
  }

  @Action(value = "createInvoicePurchaser",
      results = {
        @Result(name = REDIRECT_CREATE_INVOICE_PURCHASER,
            type = "redirectAction",
            params = {"namespace", "/invoicesPurchasers", "actionName", "create"})
      })
  @SkipValidation
  public String createInvoicePurchaser() throws ServiceException {
    logger.debug("createInvoicePurchaser() - start");
   
    InvoicesActionHelper.storeInvoiceInSession(this.model);
   
    logger.debug("createInvoicePurchaser() - end - return value=[{}]", REDIRECT_CREATE_INVOICE_PURCHASER);
    return REDIRECT_CREATE_INVOICE_PURCHASER;
  }
 
  public void prepareEditInvoicePurchaser() throws ServiceException {
    logger.debug("prepareEditInvoicePurchaser() - start");

    this.model = InvoicesActionHelper.retrieveInvoiceFromSession();
   
    logger.debug("prepareEditInvoicePurchaser() - end");
  }

  @Action(value = "editInvoicePurchaser",
      results = {
        @Result(name = REDIRECT_EDIT_INVOICE_PURCHASER,
            type = "redirectAction",
            params = {"namespace", "/invoicesPurchasers",
                  "actionName", "edit", "pId", "${pId}"
            })
      })
  @SkipValidation
  public String editInvoicePurchaser() throws ServiceException {
    logger.debug("editInvoicePurchaser() - start");

    InvoicesActionHelper.storeInvoiceInSession(this.model);
   
    logger.debug("editInvoicePurchaser() - end - return value=[{}]", REDIRECT_EDIT_INVOICE_PURCHASER);
    return REDIRECT_EDIT_INVOICE_PURCHASER;
  }
 
  public void prepareDeleteInvoicePosition() throws ServiceException {
    logger.debug("prepareDeleteInvoicePosition() - start");

    Map<String, Object> session = ActionContext.getContext().getSession();
    this.model = (Invoice) session.get(Globals.SP_INVOICE);
   
    logger.debug("prepareDeleteInvoicePosition() - end");
  }

  @Action(value = "deleteInvoicePosition",
      results = {
        @Result(name = REDIRECT_CREATE_EDIT_REFRESH,
            type = "redirectAction",
            params = {"actionName", "createEditRefresh"})
      })
  @SkipValidation
  public String deleteInvoicePosition() throws ServiceException {
    logger.debug("deleteInvoicePosition() - start");

    int pid = this.getPId().intValue();

    logger.debug("deleteInvoicePosition() - pid=[{}]", pid);

    List<InvoicePosition> sInvoicePositions = this.model.getInvoicePositions();
    logger.debug("before removal - sInvoicePositions=[{}]", CollectionUtils.size(sInvoicePositions));

    sInvoicePositions.remove(pid);
    logger.debug("after removal - sInvoicePositions=[{}]", CollectionUtils.size(sInvoicePositions));
   
    logger.debug("deleteInvoicePosition() - end - return value=[{}]", REDIRECT_CREATE_EDIT_REFRESH);
    return REDIRECT_CREATE_EDIT_REFRESH;
  }
 
  public void prepareDeleteInvoicePurchaser() throws ServiceException {
    logger.debug("prepareDeleteInvoicePurchaser() - start");

    Map<String, Object> session = ActionContext.getContext().getSession();
    this.model = (Invoice) session.get(Globals.SP_INVOICE);
   
    logger.debug("prepareDeleteInvoicePurchaser() - end");
  }

 
  @Action(value = "deleteInvoicePurchaser",
      results = {
        @Result(name = REDIRECT_CREATE_EDIT_REFRESH,
            type = "redirectAction",
            params = {"actionName", "createEditRefresh"})
      })
  @SkipValidation
  public String deleteInvoicePurchaser() throws ServiceException {
    logger.debug("deleteInvoicePurchaser() - start");

    int pid = this.getPId().intValue();
    logger.debug("deleteInvoicePurchaser() - pid=[{}]", pid);

    List<InvoicePurchaser> sInvoicePurchasers = this.model.getInvoicePurchasers();
    logger.debug("before removal - sInvoicePurchasers=[{}]", CollectionUtils.size(sInvoicePurchasers));

    sInvoicePurchasers.remove(pid);
    logger.debug("after removal - sInvoicePurchasers=[{}]", CollectionUtils.size(sInvoicePurchasers));
   
    logger.debug("deleteInvoicePurchaser() - end - return value=[{}]", REDIRECT_CREATE_EDIT_REFRESH);
    return REDIRECT_CREATE_EDIT_REFRESH;
  }
 
  public void prepareBackToList() throws ServiceException {
    logger.debug("prepareBackToList() - start");

    this.model = new Invoice();

    logger.debug("prepareBackToList() - end");
  }
 
  @Action(value = "backToList",
      results = {
        @Result(name = REDIRECT_LIST, type = "redirectAction", location = "list")
      }
  )
  @SkipValidation
  public String backToList() throws ServiceException {
    logger.debug("backToList() - start - end - return value=[{}]", REDIRECT_LIST);
    return REDIRECT_LIST;
  }

  public InvoiceFilter getFilter() {
    return filter;
  }

  public void setFilter(InvoiceFilter filter) {
    this.filter = filter;
  }
 
  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public Long getPId() {
    return pId;
  }

  public void setPId(Long id) {
    pId = id;
  }

  public List<PaymentKind> getPaymentKindsList() {
    return paymentKindsList;
  }

  public void setPaymentKindsList(List<PaymentKind> paymentKindsList) {
    this.paymentKindsList = paymentKindsList;
  }
}
TOP

Related Classes of org.bigk.invoices.actions.invoices.InvoicesAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.