boolean isNew = false;
Site site = SiteDAO.load(siteId);
if (site == null) {
throw new ItemSaveException(resources.getMessage("IE.ERROR.E109", "site", "siteId", siteId));
}
SiteProfileClass siteProfileClassDefault = site.getSiteProfileClassDefault();
SiteCurrencyClass siteCurrencyClassDefault = site.getSiteCurrencyClassDefault();
com.jada.jpa.entity.Item item = null;
if (itemId != null) {
item = ItemDAO.load(siteId, itemId);
if (item == null) {
throw new ItemSaveException(resources.getMessage("IE.ERROR.E109", "item", "itemId", itemId));
}
}
else if (itemSkuCd != null) {
item = ItemDAO.loadBySku(siteId, itemSkuCd);
}
if (item == null) {
isNew = true;
item = new com.jada.jpa.entity.Item();
item.setItemUpcCd(itemSkuCd);
item.setItemQty(0);
item.setItemTypeCd(Constants.ITEM_TYPE_REGULAR);
item.setItemBookedQty(0);
item.setItemExpireOn(Format.HIGHDATE);
item.setItemPublishOn(new Date());
item.setItemHitCounter(0);
item.setItemRating(Float.valueOf(0));
item.setItemRatingCount(0);
item.setSeqNum(0);
item.setRecCreateBy(Constants.USERNAME_IMPORT);
item.setRecCreateDatetime(new Date());
item.setSite(site);
}
if (isNew) {
if (isSimple) {
boolean found = false;
for (ItemLanguage itemLanguage : this.getItemLanguages()) {
if (itemLanguage.getSiteProfileClassId() != null) {
if (itemLanguage.getSiteProfileClassId().equals(siteProfileClassDefault.getSiteProfileClassId())) {
found = true;
break;
}
}
else {
if (itemLanguage.getSiteProfileClassName().equals(siteProfileClassDefault.getSiteProfileClassName())) {
found = true;
break;
}
}
}
if (!found) {
throw new ItemSaveException(resources.getMessage("IE.ERROR.E111", siteProfileClassDefault.getSiteProfileClassName()));
}
found = false;
for (ItemPriceCurrency itemPriceCurrency : this.getItemPriceCurrencies()) {
if (itemPriceCurrency.getSiteCurrencyClassId() != null) {
if (itemPriceCurrency.getSiteCurrencyClassId().equals(siteCurrencyClassDefault.getSiteCurrencyClassId())) {
found = true;
break;
}
}
else {
if (itemPriceCurrency.getSiteCurrencyClassName().equals(siteCurrencyClassDefault.getSiteCurrencyClassName())) {
found = true;
break;
}
}
}
if (!found) {
throw new ItemSaveException(resources.getMessage("IE.ERROR.E112", siteCurrencyClassDefault.getSiteCurrencyClassName()));
}
}
}
item.setItemNum(itemNum);
item.setItemSkuCd(itemSkuCd);
item.setItemNaturalKey(Utility.encode(itemSkuCd));
item.setItemSellable(itemSellable);
item.setItemCost(itemCost);
if (itemUpcCd != null) {
item.setItemUpcCd(itemUpcCd);
}
if (itemTypeCd != null) {
item.setItemTypeCd(itemTypeCd);
}
if (itemPublishOn != null) {
item.setItemPublishOn(itemPublishOn);
}
if (itemExpireOn != null) {
item.setItemExpireOn(itemExpireOn);
}
if (itemHitCounter != null) {
item.setItemHitCounter(itemHitCounter);
}
if (itemRating != null) {
item.setItemRating(itemRating);
}
if (itemRatingCount != null) {
item.setItemRatingCount(itemRatingCount);
}
if (itemQty != null) {
item.setItemQty(itemQty);
}
if (itemBookedQty != null) {
item.setItemBookedQty(itemBookedQty);
}
item.setPublished(published);
item.setRecUpdateBy(Constants.USERNAME_IMPORT);
item.setRecUpdateDatetime(new Date());
for (ItemLanguage itemLanguageImport : this.getItemLanguages()) {
com.jada.jpa.entity.ItemLanguage itemLanguage = null;
boolean found = false;
for (com.jada.jpa.entity.ItemLanguage language : item.getItemLanguages()) {
if (itemLanguageImport.getSiteProfileClassId() != null) {
if (language.getSiteProfileClass().getSiteProfileClassId().equals(itemLanguageImport.getSiteProfileClassId())) {
itemLanguage = language;
found = true;
break;
}
}
else {
if (language.getSiteProfileClass().getSiteProfileClassName().equals(itemLanguageImport.getSiteProfileClassName())) {
itemLanguage = language;
found = true;
break;
}
}
}
if (!found) {
itemLanguage = new com.jada.jpa.entity.ItemLanguage();
itemLanguage.setItemImageOverride(String.valueOf(Constants.VALUE_NO));
itemLanguage.setRecCreateBy(Constants.USERNAME_IMPORT);
itemLanguage.setRecCreateDatetime(new Date());
SiteProfileClass siteProfileClass = getSiteProfileClass(siteId, itemLanguageImport.getSiteProfileClassId(), itemLanguageImport.getSiteProfileClassName());
if (siteProfileClass == null) {
throw new ItemSaveException(resources.getMessage("IE.ERROR.E109",
"siteProfileClass",
"siteProfileClassId and siteProfileClassName",
itemLanguageImport.getSiteProfileClassId().toString() + " and " + itemLanguageImport.getSiteProfileClassName()));