EffectiveDateConfigRepositoryImpl.java
package com.tradecloud.repository.rate.impl;
import org.hibernate.criterion.DetachedCriteria;
import com.tradecloud.domain.costing.CostGroup;
import com.tradecloud.domain.infrastructure.persistence.CriteriaBuilder;
import com.tradecloud.domain.rate.EffectiveDateALC;
import com.tradecloud.domain.rate.EffectiveDateCLC;
import com.tradecloud.domain.rate.EffectiveDateConfig;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import com.tradecloud.repository.rate.EffectiveDateConfigRepository;
import org.springframework.stereotype.Repository;
@Repository(value = "effectiveDateConfigRepository")
public class EffectiveDateConfigRepositoryImpl extends RepositoryBaseImpl<EffectiveDateConfig, Object>
implements EffectiveDateConfigRepository {
@Override
public EffectiveDateConfig findBy(CostGroup costGroup) {
DetachedCriteria criteria = DetachedCriteria.forClass(EffectiveDateConfig.class);
CriteriaBuilder.addEqRestriction(criteria, "costGroup", costGroup);
return (EffectiveDateConfig) criteria.getExecutableCriteria(getSessionCustom()).uniqueResult();
}
@Override
public void saveDefaultConfig() {
EffectiveDateConfig config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.AGENT);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.FORWARDING);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.FREIGHT);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.CLEARING);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.FINANCE);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
config = new EffectiveDateConfig();
config.setCostGroup(CostGroup.INTERNAL_PROVISIONS);
config.setEffectiveDateCLC(EffectiveDateCLC.EARLIEST_SHIPMENT_DATE);
config.setEffectiveDateALC(EffectiveDateALC.BILL_OF_LADING_DATE);
save(config);
}
}