Package com.jada.dao

Source Code of com.jada.dao.ItemDAO

/*
* 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.dao;

import java.util.Iterator;
import java.util.Set;
import java.util.Vector;

import javax.persistence.LockModeType;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import org.json.JSONException;
import com.jada.util.JSONEscapeObject;
import com.jada.util.Utility;

import com.jada.jpa.connection.JpaConnection;
import com.jada.jpa.entity.CustomAttribute;
import com.jada.jpa.entity.Item;
import com.jada.jpa.entity.ItemAttributeDetail;
import com.jada.jpa.entity.ItemAttributeDetailLanguage;
import com.jada.jpa.entity.ItemDescSearch;
import com.jada.jpa.entity.ItemImage;
import com.jada.jpa.entity.ItemLanguage;
import com.jada.jpa.entity.ItemPriceCurrency;
import com.jada.jpa.entity.ItemPriceSearch;
import com.jada.jpa.entity.Menu;
import com.jada.util.Constants;

public class ItemDAO extends Item {
  private static final long serialVersionUID = 5075471885223815088L;

  public static Item load(String siteId, Long itemId, LockModeType lockModeType) throws SecurityException, Exception {
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      Item item = (Item) em.find(Item.class, itemId);
      if (lockModeType != null) {
        em.lock(item, lockModeType);
      }
      if (item != null) {
      if (!item.getSiteId().equals(siteId)) {
        throw new SecurityException();
      }
      }
    return item;
  }
 
  public static Item load(String siteId, Long itemId) throws SecurityException, Exception {
      return load(siteId, itemId, (LockModeType) null);
  }
 
  public static Item loadNatural(String siteId, String itemNaturalKey) throws SecurityException, Exception {
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      Query query = em.createQuery("from Item where siteId = :siteId and itemNaturalKey = :itemNaturalKey");
      query.setParameter("siteId", siteId);
      query.setParameter("itemNaturalKey", itemNaturalKey);
      Iterator<?> iterator = query.getResultList().iterator();
      if (iterator.hasNext()) {
        Item item = (Item) iterator.next();
        return item;
      }
      return null;
  }
 
  public static Item loadBySku(String siteId, String itemSkuCd) throws SecurityException, Exception {
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      Query query = em.createQuery("from Item where siteId = :siteId and itemSkuCd = :itemSkuCd");
      query.setParameter("siteId", siteId);
      query.setParameter("itemSkuCd", itemSkuCd);
      Iterator<?> iterator = query.getResultList().iterator();
      if (iterator.hasNext()) {
        Item item = (Item) iterator.next();
        return item;
      }
      return null;
  }
 
  public static void remove(String siteId, Item item) throws SecurityException, Exception {
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      String sql = "delete  " +
             "from    HomePageDetail homePageDetail " +
             "where   homePageDetail.item = :item ";
      Query query = em.createQuery(sql);
      query.setParameter("item", item);
      query.executeUpdate();

      Set<ItemLanguage> itemLanguages = item.getItemLanguages();
      Set<ItemPriceCurrency> itemPriceCurrencies = item.getItemPriceCurrencies();
    em.remove(item);
    for (ItemLanguage itemLanguage : itemLanguages) {
      if (itemLanguage.getImage() != null) {
        em.remove(itemLanguage.getImage());
      }
      for (ItemImage itemImage : itemLanguage.getImages()) {
        em.remove(itemImage);
      }
      em.remove(itemLanguage);
    }
    for (ItemPriceCurrency itemPriceCurrency : itemPriceCurrencies) {
      em.remove(itemPriceCurrency);
    }
   
    for (ItemAttributeDetail itemAttribDetail : item.getItemAttributeDetails()) {
      for (ItemAttributeDetailLanguage itemAttribDetailLang : itemAttribDetail.getItemAttributeDetailLanguages()) {
        em.remove(itemAttribDetailLang);
      }
      em.remove(itemAttribDetail);
    }
   
    for (ItemDescSearch itemDescSearch : item.getItemDescSearches()) {
      em.remove(itemDescSearch);
    }
   
    for (ItemPriceSearch itemPriceSearch : item.getItemPriceSearches()) {
      em.remove(itemPriceSearch);
    }
   
    for (Menu menu : item.getMenus()) {
      menu.setItem(null);
      CacheDAO.removeByKeyPrefix(siteId, Constants.CACHE_MENU + "." + menu.getMenuSetName());
    }
  }
 
    static public boolean isPublished(Item item) {
      if (item.getPublished() == Constants.PUBLISHED_NO) {
        return false;
      }
      if (!Utility.isDateBetween(item.getItemPublishOn(), item.getItemExpireOn())) {
        return false;
      }
      return true;
    }
   
   
    static public boolean isSpecialOn(Item item, Long defaultSiteCurrencyClassId) {
      for (ItemPriceCurrency itemPriceCurrency : item.getItemPriceCurrencies()) {
        if (itemPriceCurrency.getSiteCurrencyClass().getSiteCurrencyClassId() != defaultSiteCurrencyClassId) {
          continue;
        }
        if (itemPriceCurrency.getItemPriceTypeCode() == Constants.ITEM_PRICE_TYPE_CODE_SPECIAL) {
            if (Utility.isDateBetween(itemPriceCurrency.getItemPricePublishOn(), itemPriceCurrency.getItemPriceExpireOn())) {
              return true;
            }
        }
      }
      return false;
    }
   
    static public String getSkuAttributeKey(Item item) throws JSONException {
      JSONEscapeObject JSONEscapeObject = new JSONEscapeObject();
      Vector<JSONEscapeObject> vector = new Vector<JSONEscapeObject>();
      for (ItemAttributeDetail itemAttributeDetail : item.getItemAttributeDetails()) {
        CustomAttribute customAttribute = itemAttributeDetail.getCustomAttributeDetail().getCustomAttribute();
        if (customAttribute.getCustomAttribTypeCode() != Constants.CUSTOM_ATTRIBUTE_TYPE_SKU_MAKEUP) {
          continue;
        }
        JSONEscapeObject attribute = new JSONEscapeObject();
        attribute.put("customAttribDetailId", itemAttributeDetail.getCustomAttributeDetail().getCustomAttribDetailId().toString());
        attribute.put("customAttribOptionId", itemAttributeDetail.getCustomAttributeOption().getCustomAttribOptionId().toString());
        vector.add(attribute);
      }
      JSONEscapeObject.put("itemAttributeDetails", vector);
      return JSONEscapeObject.toHtmlString();
    }
}
TOP

Related Classes of com.jada.dao.ItemDAO

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.