package model.manager.reports;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import model.manager.excel.conversion.exceptions.ReportException;
import net.sf.jasperreports.engine.data.JRCsvDataSource;
import org.celllife.idart.commonobjects.LocalObjects;
import org.eclipse.swt.widgets.Shell;
public class PackagesAwaitingReport extends AbstractJasperReport {
private final String clinicName;
private List<String[]> theStringList = new ArrayList<String[]>();
private File csvFile;
public PackagesAwaitingReport(Shell parent, String clinicName,
List<String[]> theList) {
super(parent);
this.clinicName = clinicName;
this.theStringList = theList;
}
@Override
protected void generateData() throws ReportException {
csvFile = createCSVFile("tmpPackagesAwaiting.csv", theStringList, true);
}
@Override
protected Map<String, Object> getParameterMap() throws ReportException {
Map<String, Object> map = new HashMap<String, Object>();
map.put("clinicName", clinicName);
map.put("path", getReportPath());
map.put("facilityName", LocalObjects.pharmacy.getPharmacyName());
map.put("pharmacist1", LocalObjects.pharmacy.getPharmacist());
map.put("pharmacist2", LocalObjects.pharmacy.getAssistantPharmacist());
return map;
}
@Override
protected String getReportFileName() {
return "packagesAwaiting";
}
@Override
public Object getDataSource() throws ReportException {
try {
JRCsvDataSource jcvs = new JRCsvDataSource(csvFile);
jcvs.setUseFirstRowAsHeader(true);
return jcvs;
} catch (Exception e) {
throw new ReportException("Error getting data source", e);
}
}
}