/******************************************************************************* * Copyright (c) 2006-2010, G. Weirich and Elexis * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * G. Weirich - initial implementation * *******************************************************************************/ package ch.elexis.TarmedRechnung; import ch.elexis.data.Fall; import ch.elexis.data.Kontakt; import ch.elexis.data.Rechnung; import ch.elexis.data.RnStatus; import ch.elexis.tarmedprefs.TarmedRequirements; import ch.rgw.tools.Result; import ch.rgw.tools.StringTool; public class Validator { public Result<Rechnung> checkBill(final XMLExporter xp, final Result<Rechnung> res){ Rechnung rn = xp.rn; Kontakt m = rn.getMandant(); if (rn.getStatus() > RnStatus.OFFEN) { return res; // Wenn sie eh schon gedruckt war machen wir kein Büro mehr auf } if ((m == null) || (!m.isValid())) { rn.reject(RnStatus.REJECTCODE.NO_MANDATOR, Messages.Validator_NoMandator); res.add(Result.SEVERITY.ERROR, 2, Messages.Validator_NoMandator, rn, true); } Fall fall = rn.getFall(); if ((fall == null) || (!fall.isValid())) { rn.reject(RnStatus.REJECTCODE.NO_CASE, Messages.Validator_NoCase); res.add(Result.SEVERITY.ERROR, 4, Messages.Validator_NoCase, rn, true); } /* * String g=fall.getGesetz(); if(g.equalsIgnoreCase(Fall.LAW_OTHER)){ return res; } */ String ean = TarmedRequirements.getEAN(m); if (StringTool.isNothing(ean)) { rn.reject(RnStatus.REJECTCODE.NO_MANDATOR, Messages.Validator_NoEAN); res.add(Result.SEVERITY.ERROR, 3, Messages.Validator_NoEAN, rn, true); } if (xp.getDiagnoses().isEmpty()) { rn.reject(RnStatus.REJECTCODE.NO_DIAG, Messages.Validator_NoDiagnosis); res.add(Result.SEVERITY.ERROR, 8, Messages.Validator_NoDiagnosis, rn, true); } Kontakt kostentraeger = (fall != null) ? fall.getRequiredContact(TarmedRequirements.INSURANCE) : null; // kostentraeger is optional for tiers garant else check if valid if (kostentraeger == null && xp.tiers != null && xp.tiers.equals(XMLExporter.TIERS_GARANT)) { return res; } else { if (kostentraeger == null) { rn.reject(RnStatus.REJECTCODE.NO_GUARANTOR, Messages.Validator_NoName); res.add(Result.SEVERITY.ERROR, 7, Messages.Validator_NoName, rn, true); return res; } ean = TarmedRequirements.getEAN(kostentraeger); if (StringTool.isNothing(ean) || (!ean.matches(TarmedRequirements.EAN_PATTERN))) { rn.reject(RnStatus.REJECTCODE.NO_GUARANTOR, Messages.Validator_NoEAN2); res.add(Result.SEVERITY.ERROR, 6, Messages.Validator_NoEAN2, rn, true); } String bez = kostentraeger.get(Kontakt.FLD_NAME1); if (StringTool.isNothing(bez)) { rn.reject(RnStatus.REJECTCODE.NO_GUARANTOR, Messages.Validator_NoName); res.add(Result.SEVERITY.ERROR, 7, Messages.Validator_NoName, rn, true); } } return res; } }