package org.transgalactica.batch.salaire.item;
import java.math.BigDecimal;
import java.time.LocalDate;
import javax.inject.Inject;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.beans.factory.annotation.Required;
import org.transgalactica.batch.salaire.bo.SalaireTo;
import org.transgalactica.batch.salaire.mapper.SalaireMapper;
import org.transgalactica.batch.salaire.rule.FicheSalaireRule;
import org.transgalactica.management.data.people.bo.EmployeEntity;
public class BasicComputeSalaireItemProcessor implements ItemProcessor<EmployeEntity, SalaireTo> {
@Inject
private SalaireMapper salaireMapper;
@Inject
private FicheSalaireRule ficheSalaireRule;
private LocalDate dateCalcul;
protected BasicComputeSalaireItemProcessor() {
}
@Override
public SalaireTo process(EmployeEntity item) {
SalaireTo salaireTo = salaireMapper.mapEmployeInformation(item);
BigDecimal base = ficheSalaireRule.calculerSalaireBase(item);
BigDecimal anciennete = ficheSalaireRule.calculerPrimeAnciennete(item, dateCalcul);
BigDecimal experience = ficheSalaireRule.calculerPrimeExperience(item);
salaireTo.setSalaireBase(base);
salaireTo.setPrimeAnciennete(anciennete);
salaireTo.setPrimeExperience(experience);
salaireTo.setSalaire(base.add(anciennete).add(experience));
return salaireTo;
}
@Required
public void setDateCalcul(LocalDate dateCalcul) {
this.dateCalcul = dateCalcul;
}
}