package com.ese.model.dao;
import com.ese.model.db.MSItemModel;
import com.ese.model.view.ItemQtySearchView;
import com.ese.utils.Utils;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
public class ItemDAO extends GenericDAO<MSItemModel, Integer>{
public List<MSItemModel> findByLike(String filed, String text) throws Exception {
Criteria criteria = getCriteria();
criteria.add(Restrictions.like(filed, "%"+text+"%"));
return Utils.safetyList(criteria.list());
}
public List<MSItemModel> findBySearch(ItemQtySearchView itemQtySearchView){
List<MSItemModel> itemModels = new ArrayList<MSItemModel>();
log.debug("-------itemQtySearchView : {}", itemQtySearchView.toString());
try {
Criteria criteria = getCriteria();
if (!Utils.isZero(itemQtySearchView.getItemName().trim().length())){
criteria.add(Restrictions.like("itemName", "%" + itemQtySearchView.getItemName().trim() + "%"));
}
if (!Utils.isZero(itemQtySearchView.getItemCode().trim().length())){
criteria.add(Restrictions.like("itemId", "%" + itemQtySearchView.getItemCode().trim() + "%"));
}
if (!Utils.isZero(itemQtySearchView.getDescription().trim().length())){
criteria.add(Restrictions.like("dSGThaiItemDescription", "%" + itemQtySearchView.getDescription().trim() + "%"));
}
itemModels = criteria.list();
} catch (Exception e) {
log.debug("Exception error findBySearch : ", e);
}
return itemModels;
}
public MSItemModel findByItemId(String itemId){
MSItemModel msItemModel = new MSItemModel();
try {
Criteria criteria = getCriteria();
criteria.add(Restrictions.eq("itemId", itemId));
msItemModel = (MSItemModel) criteria.uniqueResult();
} catch (Exception e) {
log.debug("Exception error findBySearch : ", e);
}
return msItemModel;
}
public MSItemModel findByItemName(String itemName){
MSItemModel msItemModel = new MSItemModel();
try {
Criteria criteria = getCriteria();
criteria.add(Restrictions.eq("itemName", itemName));
msItemModel = (MSItemModel) criteria.uniqueResult();
} catch (Exception e) {
log.debug("Exception error findByItemName : ", e);
}
return msItemModel;
}
}