/******************************************************************************* * Copyright (c) 2008, 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.views; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import ch.elexis.core.ui.util.SWTHelper; import ch.elexis.data.TarmedLeistung; import ch.elexis.data.Verrechnet; import ch.rgw.tools.Money; public class TarmedDetailDialog extends Dialog { Verrechnet v; TarmedDetailDisplay td; Combo cSide; Button bPflicht; public TarmedDetailDialog(Shell shell, Verrechnet tl){ super(shell); v = tl; td = new TarmedDetailDisplay(); } @Override protected Control createDialogArea(Composite parent){ // Composite ret=td.createDisplay(parent, null); // td.display(tl); TarmedLeistung tl = (TarmedLeistung) v.getVerrechenbar(); Composite ret = (Composite) super.createDialogArea(parent); ret.setLayout(new GridLayout(8, false)); Label lTitle = new Label(ret, SWT.WRAP); lTitle.setText(tl.getText()); lTitle.setLayoutData(SWTHelper.getFillGridData(8, true, 1, true)); double tpAL = tl.getAL() / 100.0; double tpTL = tl.getTL() / 100.0; String arzl = v.getDetail("AL"); String tecl = v.getDetail("TL"); double primaryScale = v.getPrimaryScaleFactor(); double secondaryScale = v.getSecondaryScaleFactor(); if (arzl != null) { tpAL = Double.parseDouble(arzl) / 100.0; } if (tecl != null) { tpTL = Double.parseDouble(tecl) / 100.0; } double tpw = v.getTPW(); Money mAL = new Money(tpAL * tpw * primaryScale * secondaryScale); Money mTL = new Money(tpTL * tpw * primaryScale * secondaryScale); double tpAll = Math.round((tpAL + tpTL) * 100.0) / 100.0; Money mAll = new Money(tpAll * tpw * primaryScale * secondaryScale); new Label(ret, SWT.NONE).setText("TP AL"); new Label(ret, SWT.NONE).setText(Double.toString(tpAL)); new Label(ret, SWT.NONE).setText(" x "); new Label(ret, SWT.NONE).setText("TP-Wert"); new Label(ret, SWT.NONE).setText(Double.toString(tpw)); new Label(ret, SWT.NONE).setText(" = "); new Label(ret, SWT.NONE).setText("CHF AL"); new Label(ret, SWT.NONE).setText(mAL.getAmountAsString()); new Label(ret, SWT.NONE).setText("TP TL"); new Label(ret, SWT.NONE).setText(Double.toString(tpTL)); new Label(ret, SWT.NONE).setText(" x "); new Label(ret, SWT.NONE).setText("TP-Wert"); new Label(ret, SWT.NONE).setText(Double.toString(tpw)); new Label(ret, SWT.NONE).setText(" = "); new Label(ret, SWT.NONE).setText("CHF TL"); new Label(ret, SWT.NONE).setText(mTL.getAmountAsString()); Label sep = new Label(ret, SWT.SEPARATOR | SWT.HORIZONTAL); sep.setLayoutData(SWTHelper.getFillGridData(8, true, 1, false)); new Label(ret, SWT.NONE).setText("TP "); new Label(ret, SWT.NONE).setText(Double.toString(tpAll)); new Label(ret, SWT.NONE).setText(" x "); new Label(ret, SWT.NONE).setText("TP-Wert"); new Label(ret, SWT.NONE).setText(Double.toString(tpw)); new Label(ret, SWT.NONE).setText(" = "); new Label(ret, SWT.NONE).setText("CHF "); new Label(ret, SWT.NONE).setText(mAll.getAmountAsString()); Label sep2 = new Label(ret, SWT.SEPARATOR | SWT.HORIZONTAL); sep2.setLayoutData(SWTHelper.getFillGridData(8, true, 1, false)); String mins = Integer.toString(tl.getMinutes()); new Label(ret, SWT.NONE).setText("Zeit:"); new Label(ret, SWT.NONE).setText(mins + " min."); new Label(ret, SWT.NONE).setText("Seite"); cSide = new Combo(ret, SWT.SINGLE); cSide.setItems(new String[] { "egal", "links", "rechts" }); new Label(ret, SWT.NONE).setText("Pflichtleist."); bPflicht = new Button(ret, SWT.CHECK); String sPflicht = v.getDetail(TarmedLeistung.PFLICHTLEISTUNG); if ((sPflicht == null) || (Boolean.parseBoolean(sPflicht))) { bPflicht.setSelection(true); } String side = v.getDetail(TarmedLeistung.SIDE); if (side == null) { cSide.select(0); } else if (side.equalsIgnoreCase("l")) { cSide.select(1); } else { cSide.select(2); } ret.pack(); return ret; } @Override public void create(){ super.create(); getShell().setText("Tarmed-Details: " + v.getCode()); } @Override protected void okPressed(){ int idx = cSide.getSelectionIndex(); if (idx < 1) { v.setDetail(TarmedLeistung.SIDE, null); } else if (idx == 1) { v.setDetail(TarmedLeistung.SIDE, "l"); } else { v.setDetail(TarmedLeistung.SIDE, "r"); } v.setDetail(TarmedLeistung.PFLICHTLEISTUNG, Boolean.toString(bPflicht.getSelection())); super.okPressed(); } }