package ch.elexis.tarmed.printer;
import java.util.List;
import ch.fd.invoice440.request.RecordDRGType;
import ch.fd.invoice440.request.RecordDrugType;
import ch.fd.invoice440.request.RecordLabType;
import ch.fd.invoice440.request.RecordMigelType;
import ch.fd.invoice440.request.RecordOtherType;
import ch.fd.invoice440.request.RecordParamedType;
import ch.fd.invoice440.request.RecordTarmedType;
import ch.fd.invoice440.request.ServicesType;
import ch.rgw.tools.Money;
public class XML44Services {
private ServicesType services;
private Money tarmedMoney;
private Money drugMoney;
private Money drgMoney;
private Money migelMoney;
private Money labMoney;
private Money paramedMoney;
private Money otherMoney;
public XML44Services(ServicesType services){
this.services = services;
tarmedMoney = new Money();
drugMoney = new Money();
drgMoney = new Money();
migelMoney = new Money();
labMoney = new Money();
paramedMoney = new Money();
otherMoney = new Money();
initMoneyAmounts();
}
private void initMoneyAmounts(){
List<Object> serviceRecords = services.getRecordTarmedOrRecordDrgOrRecordLab();
for (Object rec : serviceRecords) {
if (rec instanceof RecordTarmedType) {
RecordTarmedType tarmed = (RecordTarmedType) rec;
tarmedMoney.addAmount(tarmed.getAmount());
} else if (rec instanceof RecordDrugType) {
RecordDrugType drug = (RecordDrugType) rec;
drugMoney.addAmount(drug.getAmount());
} else if (rec instanceof RecordDRGType) {
RecordDRGType drg = (RecordDRGType) rec;
drgMoney.addAmount(drg.getAmount());
} else if (rec instanceof RecordMigelType) {
RecordMigelType migel = (RecordMigelType) rec;
migelMoney.addAmount(migel.getAmount());
} else if (rec instanceof RecordLabType) {
RecordLabType lab = (RecordLabType) rec;
labMoney.addAmount(lab.getAmount());
} else if (rec instanceof RecordParamedType) {
RecordParamedType param = (RecordParamedType) rec;
paramedMoney.addAmount(param.getAmount());
} else if (rec instanceof RecordOtherType) {
RecordOtherType other = (RecordOtherType) rec;
otherMoney.addAmount(other.getAmount());
}
}
}
public Money getTarmedMoney(){
return tarmedMoney;
}
public Money getDrugMoney(){
return drugMoney;
}
public Money getDrgMoney(){
return drgMoney;
}
public Money getMigelMoney(){
return migelMoney;
}
public Money getLabMoney(){
return labMoney;
}
public Money getParamedMoney(){
return paramedMoney;
}
public Money getOtherMoney(){
return otherMoney;
}
}