com.aan.girsang.server.service.impl.ReportServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.aan.girsang.server.service.impl.ReportServiceImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.aan.girsang.server.service.impl;

import com.aan.girsang.api.model.report.ReportBarang;
import com.aan.girsang.api.model.report.ReportPenjualanBarang;
import com.aan.girsang.api.service.ReportService;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author ITSUSAHBRO
 */
@Service("reportService")
@Transactional(readOnly = true)
public class ReportServiceImpl implements ReportService {
    private static final Logger log = Logger.getLogger(ReportServiceImpl.class);
    @Autowired
    SessionFactory sessionFactory;

    @Override
    public JasperPrint testReport() {
        try {
            List<ReportBarang> reportBarang = sessionFactory.getCurrentSession()
                    .createQuery("select b.plu as plu," + " b.namaBarang as namaBarang, "
                            + " b.hargaBeli as hargaBeli from Barang b order by b.namaBarang")
                    .setResultTransformer(Transformers.aliasToBean(ReportBarang.class)).list();
            InputStream is = ReportServiceImpl.class
                    .getResourceAsStream("/com/aan/girsang/server/report/testBarangReport.jasper");
            Map<String, Object> parameters = new HashMap<String, Object>();
            System.out.println("Report Tampil");
            return JasperFillManager.fillReport(is, parameters, new JRBeanCollectionDataSource(reportBarang));
        } catch (JRException ex) {
            log.error("error generate DailySalesReport", ex);
            ex.printStackTrace();
        }
        return null;
    }

    @Override
    public JasperPrint penjualanBarang() {
        try {
            List<ReportPenjualanBarang> reportPenjualanBarang = sessionFactory.getCurrentSession()
                    .createQuery("select p.barang.namaBarang as namaBarang, " + "sum(p.kuantitas) as jumlah, "
                            + "sum(p.subTotal) as subTotal, " + "p.hargaJual as hargaJual "
                            + "from PenjualanDetail p "
                            + "group by p.barang.namaBarang order by p.barang.namaBarang")
                    .setResultTransformer(Transformers.aliasToBean(ReportPenjualanBarang.class)).list();

            InputStream is = ReportServiceImpl.class
                    .getResourceAsStream("/com/aan/girsang/server/report/PenjualanBarang.jasper");
            Map<String, Object> parameters = new HashMap<>();

            return JasperFillManager.fillReport(is, parameters,
                    new JRBeanCollectionDataSource(reportPenjualanBarang));
        } catch (JRException ex) {
            log.error("error generate DailySalesReport", ex);
            ex.printStackTrace();
        }
        return null;
    }
}