Package com.jada.admin.item

Source Code of com.jada.admin.item.ItemListingAction

/*
* Copyright 2007-2010 JadaSite.

* This file is part of JadaSite.
* JadaSite is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.

* JadaSite is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with JadaSite.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.jada.admin.item;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.jada.admin.AdminBean;
import com.jada.admin.AdminListingAction;
import com.jada.admin.AdminListingActionForm;
import com.jada.dao.ItemDAO;
import com.jada.jpa.connection.JpaConnection;
import com.jada.jpa.entity.Item;
import com.jada.jpa.entity.Site;
import com.jada.util.Format;
import com.jada.util.Utility;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.persistence.EntityManager;


import javax.persistence.Query;

import java.util.Date;
import java.util.List;
import java.util.Vector;

import java.util.Map;
import java.util.HashMap;

public class ItemListingAction
    extends AdminListingAction {

    public void extract(AdminListingActionForm actionForm, HttpServletRequest request) throws Throwable {
      ItemListingActionForm form = (ItemListingActionForm) actionForm;
     
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
        AdminBean adminBean = getAdminBean(request);
        Site site = adminBean.getSite();

        ActionMessages errors = validate(form);
    if (errors.size() != 0) {
      saveMessages(request, errors);
      return;
    }

        Query query = null;
        String selectedCategories[] = form.getSrSelectedCategories();

        String sql = "select   distinct item " +
               "from     Item item ";
        if (selectedCategories != null) {
          sql += "left   join item.categories category ";
        }
        sql += "where   item.siteId = :siteId ";
        if (form.getSrItemNum() != null && form.getSrItemNum().length() > 0) {
          sql += "and item.itemNum = :itemNum ";
        }
        if (form.getSrItemSkuCd().length() > 0) {
          sql += "and item.itemSkuCd = :itemSkuCd ";
        }
        if (form.getSrItemUpcCd().length() > 0) {
          sql += "and item.itemUpcCd = :itemUpcCd ";
        }
        if (form.getSrItemShortDesc().length() > 0) {
          sql += "and item.itemLanguage.itemShortDesc like :itemShortDesc ";
        }
        if (!form.getSrPublished().equals("*")) {
          sql += "and item.published = :published ";
        }
        sql += "and item.itemTypeCd in (";
        if (form.isSrItemTypeRegular()) {
          sql += "'01',";
        }
        if (form.isSrItemTypeTemplate()) {
          sql += "'02',";
        }
        if (form.isSrItemTypeSku()) {
          sql += "'03',";
        }
        if (form.isSrItemTypeStaticBundle()) {
          sql += "'04',";
        }
        if (form.isSrItemTypeRecommandBundle()) {
          sql += "'05',";
        }
        sql += "'') ";
        sql += "and item.itemPublishOn between :itemPublishOnStart and :itemPublishOnEnd ";
        sql += "and item.itemExpireOn between :itemExpireOnStart and :itemExpireOnEnd ";
        if (!form.getSrUpdateBy().equals("All")) {
          sql += "and item.recUpdateBy = :recUpdateBy ";
        }
        if (!form.getSrCreateBy().equals("All")) {
          sql += "and item.recCreateBy = :recCreateBy ";
        }
       
        if (selectedCategories != null) {
          sql += "and category.catId in (";
          int index = 0;
          for (int i = 0; i < selectedCategories.length; i++) {
            Long catIds[] = Utility.getCatIdTreeList(site.getSiteId(), Format.getLong(selectedCategories[i]));
            for (int j = 0; j < catIds.length; j++) {
              if (index > 0) {
                sql += ",";
              }
              sql += ":selectedCategory" + index++;
            }
           }
             sql += ") ";
        }

        query = em.createQuery(sql);
        Date date = null;
        query.setParameter("siteId", site.getSiteId());
        if (form.getSrItemSkuCd().length() > 0) {
          query.setParameter("itemSkuCd", form.getSrItemSkuCd());
        }
        if (form.getSrItemNum().length() > 0) {
          query.setParameter("itemNum", form.getSrItemNum());
        }
        if (form.getSrItemUpcCd().length() > 0) {
          query.setParameter("itemUpcCd", form.getSrItemUpcCd());
        }
        if (form.getSrItemShortDesc().length() > 0) {
          query.setParameter("itemShortDesc", "%" + form.getSrItemShortDesc() + "%");
        }
        if (!form.getSrPublished().equals("*")) {
          query.setParameter("published", form.getSrPublished());
        }
        if (form.getSrItemPublishOnStart().length() > 0) {
          date = Format.getDate(form.getSrItemPublishOnStart());
          query.setParameter("itemPublishOnStart", date);
        }
        else {
          query.setParameter("itemPublishOnStart", Format.LOWDATE);
        }
        if (form.getSrItemPublishOnEnd().length() > 0) {
          date = Format.getDate(form.getSrItemPublishOnEnd());
          query.setParameter("itemPublishOnEnd", date);
        }
        else {
          query.setParameter("itemPublishOnEnd", Format.HIGHDATE);
        }
        if (form.getSrItemExpireOnStart().length() > 0) {
          date = Format.getDate(form.getSrItemExpireOnStart());
          query.setParameter("itemExpireOnStart", date);
        }
        else {
          query.setParameter("itemExpireOnStart", Format.LOWDATE);
        }
        if (form.getSrItemExpireOnEnd().length() > 0) {
          date = Format.getDate(form.getSrItemExpireOnEnd());
          query.setParameter("itemExpireOnEnd", date);
        }
        else {
          query.setParameter("itemExpireOnEnd", Format.HIGHDATE);
        }
        if (!form.getSrUpdateBy().equals("All")) {
          query.setParameter("recUpdateBy", form.getSrUpdateBy());
        }
        if (!form.getSrCreateBy().equals("All")) {
          query.setParameter("recCreateBy", form.getSrCreateBy());
        }
        if (selectedCategories != null) {
          int index = 0;
          for (int i = 0; i < selectedCategories.length; i++) {
            Long catIds[] = Utility.getCatIdTreeList(site.getSiteId(), Format.getLong(selectedCategories[i]));
            for (int j = 0; j < catIds.length; j++) {
              query.setParameter("selectedCategory" + index++, catIds[j].longValue());
            }
          }
        }

        List<?> list = query.getResultList();
        if (Format.isNullOrEmpty(form.getSrPageNo())) {
          form.setSrPageNo("1");
        }
        int pageNo = Integer.parseInt(form.getSrPageNo());
        calcPage(adminBean, form, list, pageNo);
        Vector<ItemDisplayForm> vector = new Vector<ItemDisplayForm>();
        int startRecord = (form.getPageNo() - 1) * adminBean.getListingPageSize();
        int endRecord = startRecord + adminBean.getListingPageSize();
        for (int i = startRecord; i < list.size() && i < endRecord; i++) {
          Item item = (Item) list.get(i);
        
          ItemDisplayForm itemDisplay = new ItemDisplayForm();
          itemDisplay.setItemId(Format.getLong(item.getItemId()));
          itemDisplay.setItemSkuCd(item.getItemSkuCd());
          itemDisplay.setItemNum(item.getItemNum());
          itemDisplay.setItemShortDesc(item.getItemLanguage().getItemShortDesc());
          itemDisplay.setPublished(String.valueOf(item.getPublished()));
          itemDisplay.setItemPublishOn(Format.getFullDate(item.getItemPublishOn()));
          itemDisplay.setItemExpireOn(Format.getFullDate(item.getItemExpireOn()));
            vector.add(itemDisplay);
        }
        ItemDisplayForm items[] = new ItemDisplayForm[vector.size()];
        vector.copyInto(items);
        form.setItems(items);
    }

    public void initSearchInfo(AdminListingActionForm actionForm, String siteId) throws Exception {
      ItemListingActionForm form = (ItemListingActionForm) actionForm;
      if (form.getSrPublished() == null) {
        form.setSrPublished("*");
      }
       Vector<String> userIdVector = Utility.getUserIdsForSite(siteId);
      String srSelectUsers[] = new String[userIdVector.size()];
      userIdVector.copyInto(srSelectUsers);
      form.setSrSelectUsers(srSelectUsers);
//      form.setSrCategoryTree(Utility.makeCategoryTree(siteId, site.getSiteProfileClassDefault().getSiteProfileClassId()));
        String jsonCategoryTree = Utility.makeJSONCategoryTree(siteId, form.getSiteProfileClassId(), form.isSiteProfileClassDefault()).toHtmlString();
        form.setJsonCategoryTree(jsonCategoryTree);
    }

    public ActionForward remove(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response)
        throws Throwable {
     
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      Site site = getAdminBean(request).getSite();
        ItemListingActionForm form = (ItemListingActionForm) actionForm;
        String itemIds[] = form.getItemIds();
       
        try {
          if (form.getItems() != null) {
            ItemDisplayForm items[] = form.getItems();
            for (int i = 0; i < items.length; i++) {
              if (items[i].getRemove() == null) {
                continue;
              }
              if (!items[i].getRemove().equals("Y")) {
                continue;
              }
                Item item = ItemDAO.load(site.getSiteId(), Format.getLong(items[i].getItemId()));
                ItemDAO.remove(site.getSiteId(), item);
                em.remove(item);
            }
            em.getTransaction().commit();
          }
        }
    catch (Exception e) {
      if (Utility.isConstraintViolation(e)) {
        ActionMessages errors = new ActionMessages();
        errors.add("error", new ActionMessage("error.remove.items.constraint"));
        saveMessages(request, errors);
            ActionForward forward = actionMapping.findForward("removeError") ;
            return forward;
      }
      throw e;
       }
       
        if (itemIds != null) {
          for (int i = 0; i < itemIds.length; i++) {
              Item item = new Item();
              item = ItemDAO.load(site.getSiteId(), Format.getLong(itemIds[i]));
              em.remove(item);
          }
        }

        ActionForward forward = actionMapping.findForward("removed") ;
        forward = new ActionForward(forward.getPath() + "?process=list&srPageNo=" + form.getPageNo(), forward.getRedirect());
        return forward;
    }
   
    public ActionMessages validate(ItemListingActionForm form) throws Exception {
      ActionMessages errors = new ActionMessages();
     
      if (!Format.isNullOrEmpty(form.getSrItemPublishOnStart()) && !Format.isDate(form.getSrItemPublishOnStart())) {
        errors.add("srItemPublishOnStart", new ActionMessage("error.date.invalid"));
      }
      if (!Format.isNullOrEmpty(form.getSrItemPublishOnEnd()) && !Format.isDate(form.getSrItemPublishOnEnd())) {
        errors.add("srItemPublishOnEnd", new ActionMessage("error.date.invalid"));
      }
      if (!Format.isNullOrEmpty(form.getSrItemExpireOnStart()) && !Format.isDate(form.getSrItemExpireOnStart())) {
        errors.add("srItemExpireOnStart", new ActionMessage("error.date.invalid"));
      }
      if (!Format.isNullOrEmpty(form.getSrItemExpireOnEnd()) && !Format.isDate(form.getSrItemExpireOnEnd())) {
        errors.add("srItemExpireOnEnd", new ActionMessage("error.date.invalid"));
      }
      return errors;
    }
   
    public void initForm(AdminListingActionForm actionForm) {
        ItemListingActionForm form = (ItemListingActionForm) actionForm;
      form.setItems(null);
      form.setSrItemTypeRegular(true);
      form.setSrItemTypeTemplate(true);
      form.setSrItemTypeSku(true);
      form.setSrItemTypeStaticBundle(true);
      form.setSrItemTypeRecommandBundle(true);
    }

    protected java.util.Map<String, String> getKeyMethodMap()  {
        Map<String, String> map = new HashMap<String, String>();
        map.put("remove", "remove");
        map.put("search", "search");
        map.put("start", "start");
        map.put("back", "back");
        map.put("list", "list");
        return map;
    }
}
TOP

Related Classes of com.jada.admin.item.ItemListingAction

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.