package com.nortal.jroad.client.ehis;
import com.nortal.jroad.client.ehis.types.ee.riik.xtee.ehis.producers.producer.ehis.*;
import org.springframework.stereotype.Service;
import com.nortal.jroad.client.ehis.database.EhisXRoadDatabase;
import com.nortal.jroad.client.exception.XRoadServiceConsumptionException;
import javax.annotation.Resource;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.nortal.jroad.client.service.XRoadDatabaseService;
/**
* @author Margus Hanni
*/
@Service("ehisXTeeService")
public class EhisXTeeServiceImpl extends XRoadDatabaseService implements EhisXTeeService {
@Resource
private EhisXRoadDatabase ehisXRoadDatabase;
public List<TootukassaleKehtivadIsik> findTootukassaleKehtivad(Date algkuup, Date loppkuup, String... isikukoodid)
throws XRoadServiceConsumptionException {
TootukassaleKehtivadParing paring = TootukassaleKehtivadParing.Factory.newInstance();
TootukassaleKehtivadIsikukoodid isikud = paring.addNewIsikukoodid();
isikud.setIsikukoodArray(isikukoodid);
paring.setAlgusKp(toCalendar(algkuup));
paring.setLoppKp(toCalendar(loppkuup));
return ehisXRoadDatabase.tootukassaleKehtivadV1(paring).getIsikud().getIsikList();
}
public List<TootukassaleKehtivadV2Isik> findTootukassaleKehtivadV2(Date algusKp, Date loppKp, String... isikukoodid)
throws XRoadServiceConsumptionException {
TootukassaleKehtivadV2Paring request = TootukassaleKehtivadV2Paring.Factory.newInstance();
TootukassaleKehtivadV2Isikukoodid isikud = request.addNewIsikukoodid();
isikud.setIsikukoodArray(isikukoodid);
request.setAlgusKp(toCalendar(algusKp));
request.setLoppKp(toCalendar(loppKp));
return ehisXRoadDatabase.tootukassaleKehtivadV2V1(request).getIsikud().getIsikList();
}
public PolOppurVastus findPolOppur(String isikukood, Calendar algKp, Calendar loppKp) throws XRoadServiceConsumptionException {
PolOppurParing paring = PolOppurParing.Factory.newInstance();
paring.setIsikukood(isikukood);
paring.setAlgKpv(algKp);
paring.setLoppKpv(loppKp);
return ehisXRoadDatabase.polOppurV1(paring);
}
public TootukassaleOppimisedTellimusVastus submitTootukassaleOppimisedTellimusV1(Date algusKp, Date loppKp, BigInteger tkId, String... isikukoodid)
throws XRoadServiceConsumptionException {
TootukassaleOppimisedTellimusParing request = TootukassaleOppimisedTellimusParing.Factory.newInstance();
TootukassaleIsikukoodidTellimus isikud = request.addNewIsikukoodid();
isikud.setIsikukoodArray(isikukoodid);
request.setAlgusKp(toCalendar(algusKp));
request.setLoppKp(toCalendar(loppKp));
request.setTkId(tkId);
return ehisXRoadDatabase.tootukassaleOppimisedTellimusV1(request);
}
public TootukassaleOppimisedVastusVastus getTootukassaleOppimisedVastusV1(BigInteger tkId) throws XRoadServiceConsumptionException {
TootukassaleOppimisedVastusParing request = TootukassaleOppimisedVastusParing.Factory.newInstance();
request.setTkId(tkId);
return ehisXRoadDatabase.tootukassaleOppimisedVastusV1(request);
}
public TootukassaleTegevusloadVastus getTootukassaleTegevusload(String registrikood, Date algusKp, Date loppKp)
throws XRoadServiceConsumptionException {
TootukassaleTegevusloadParing request = TootukassaleTegevusloadParing.Factory.newInstance();
request.setRegistrikood(registrikood);
request.setAlgusKp(toCalendar(algusKp));
request.setLoppKp(toCalendar(loppKp));
return ehisXRoadDatabase.tootukassaleTegevusloadV1(request);
}
private Calendar toCalendar(Date date) {
if (date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
public void setEhisXRoadDatabase(EhisXRoadDatabase ehisXRoadDatabase) {
this.ehisXRoadDatabase = ehisXRoadDatabase;
}
}