Update ProdukService
Pembuatan cetakan informasi tarif lama
This commit is contained in:
parent
dd882039c5
commit
3b629a2f13
@ -308,7 +308,7 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
|
||||
@Query("select NEW Produk(p.kdProduk,p.namaProduk,p.id) from Produk p where lower(p.namaProduk) = lower (:name) and p.detailJenisProduk.jenisProduk.kelompokProduk.id='279' and p.statusEnabled=true")
|
||||
Produk findProdukByName(@Param("name") String name);
|
||||
|
||||
String strQueryTarifLayanan = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
|
||||
String strQueryTarifLayananBaru = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
|
||||
+ "kl.id as idKelas,kl.namaKelas as namaKelas,"
|
||||
+ "kh.id as idJasa,hp.hargaNetto1 as hargaLayanan,hd.hargaNetto1 as hargaJasa) "
|
||||
+ "from MapRuanganToProduk mr, HargaNettoProdukByKelas hp, HargaNettoProdukByKelasD hd "
|
||||
@ -324,6 +324,23 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
|
||||
+ "and jp.id not in (43,82,91,97,116,178,184,186,188,191,197,216) " + "and ru.id = :idRuangan "
|
||||
+ "and hp.statusEnabled is true " + "and hd.statusEnabled is true " + "and pd.statusEnabled is true "
|
||||
+ "and kh.statusEnabled is true ";
|
||||
|
||||
String strQueryTarifLayananLama = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
|
||||
+ "kl.id as idKelas,kl.namaKelas as namaKelas,"
|
||||
+ "kh.id as idJasa,hp.hargaNetto1 as hargaLayanan,hd.hargaNetto1 as hargaJasa) "
|
||||
+ "from MapRuanganToProduk mr, HargaNettoProdukByKelas hp, HargaNettoProdukByKelasD hd "
|
||||
+ "inner join mr.produk pd " + "inner join mr.ruangan ru " + "inner join hp.kelas kl "
|
||||
+ "inner join hd.komponenHarga kh " + "inner join pd.detailJenisProduk dj " + "inner join ru.departemen dp "
|
||||
+ "inner join dj.jenisProduk jp " + "where mr.produkId = hp.produkId and mr.produkId = hd.produkId "
|
||||
+ "and hp.produkId = hd.produkId and hp.kelasId = hd.kelasId and hp.produkId = pd.id "
|
||||
+ "and hd.produkId = pd.id and hd.kelasId = kl.id "
|
||||
+ "and pd.id not in (402611,10011571,10011572,10014240,10014241,10014242,10014243) "
|
||||
+ "and ((kl.id in (1,2,3,5,6,8) and dp.id = 25 or (dp.id in (1,16) and ru.id in (42,45,75,76,79,80,328,463,464,466))) "
|
||||
+ "or (kl.id in (1,2,3,5,8) and dp.id = 16 and ru.id not in (45,75,76,79,80,328,463,464,466)) "
|
||||
+ "or (kl.id = 6 and dp.id in (3,18,24,27,28))) " + "and kh.id in (6,21,22,25,26,27,30,35,38) "
|
||||
+ "and jp.id not in (43,82,91,97,116,178,184,186,188,191,197,216) " + "and ru.id = :idRuangan "
|
||||
+ "and hp.statusEnabled is false " + "and pd.statusEnabled is true "
|
||||
+ "and kh.statusEnabled is true ";
|
||||
|
||||
String produkTarifLayanan = "and pd.id = :idProduk ";
|
||||
|
||||
@ -331,20 +348,36 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
|
||||
|
||||
String sortTarifLayanan = " order by pd.namaProduk,kl.namaKelas";
|
||||
|
||||
@Query(strQueryTarifLayanan + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
|
||||
@Query(strQueryTarifLayananBaru + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananKelasProduk(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idProduk") Integer idProduk, @Param("idKelas") Integer idKelas);
|
||||
|
||||
@Query(strQueryTarifLayanan + produkTarifLayanan + sortTarifLayanan)
|
||||
@Query(strQueryTarifLayananBaru + produkTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananProduk(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idProduk") Integer idProduk);
|
||||
|
||||
@Query(strQueryTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
|
||||
@Query(strQueryTarifLayananBaru + kelasTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananKelas(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idKelas") Integer idKelas);
|
||||
|
||||
@Query(strQueryTarifLayanan + sortTarifLayanan)
|
||||
@Query(strQueryTarifLayananBaru + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananRuangan(@Param("idRuangan") Integer idRuangan);
|
||||
|
||||
|
||||
@Query(strQueryTarifLayananLama + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananLamaKelasProduk(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idProduk") Integer idProduk, @Param("idKelas") Integer idKelas);
|
||||
|
||||
@Query(strQueryTarifLayananLama + produkTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananLamaProduk(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idProduk") Integer idProduk);
|
||||
|
||||
@Query(strQueryTarifLayananLama + kelasTarifLayanan + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananLamaKelas(@Param("idRuangan") Integer idRuangan,
|
||||
@Param("idKelas") Integer idKelas);
|
||||
|
||||
@Query(strQueryTarifLayananLama + sortTarifLayanan)
|
||||
public List<Map<String, Object>> findTarifLayananLamaRuangan(@Param("idRuangan") Integer idRuangan);
|
||||
|
||||
String strQryCekNamaProduk = "select new Map(pd.id as id,pd.namaProduk as namaProduk) "
|
||||
+ "from Produk pd where pd.statusEnabled is true "
|
||||
|
||||
@ -103,6 +103,8 @@ public interface ProdukService extends BaseVoService<Produk, ProdukVO, Integer>
|
||||
List<JenisProdukVO> findJenisProdukLaboratorium();
|
||||
|
||||
List<Map<String, Object>> findTarifLayanan(Integer idRuangan, Integer idKelas, Integer idProduk);
|
||||
|
||||
List<Map<String, Object>> findTarifLayananLama(Integer idRuangan, Integer idKelas, Integer idProduk);
|
||||
|
||||
Map<String, Object> validateNamaProduk(Integer idProduk, String namaProduk);
|
||||
|
||||
|
||||
@ -1161,6 +1161,112 @@ public class ProdukServiceImpl extends BaseAngaranServiceImpl implements ProdukS
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findTarifLayananLama(Integer idRuangan, Integer idKelas, Integer idProduk) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
List<Map<String, Object>> data = new ArrayList<>();
|
||||
|
||||
List<Integer> listProduk = new ArrayList<>();
|
||||
List<Integer> listKelas = new ArrayList<>();
|
||||
|
||||
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
|
||||
formatRp.setCurrencySymbol("Rp");
|
||||
formatRp.setMonetaryDecimalSeparator(',');
|
||||
formatRp.setGroupingSeparator('.');
|
||||
|
||||
DecimalFormat kursINA = (DecimalFormat) DecimalFormat.getCurrencyInstance();
|
||||
kursINA.setDecimalFormatSymbols(formatRp);
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(idKelas) && CommonUtil.isNotNullOrEmpty(idProduk)) {
|
||||
data = produkDao.findTarifLayananLamaKelasProduk(idRuangan, idProduk, idKelas);
|
||||
} else if (CommonUtil.isNotNullOrEmpty(idKelas) && CommonUtil.isNullOrEmpty(idProduk)) {
|
||||
data = produkDao.findTarifLayananLamaKelas(idRuangan, idKelas);
|
||||
} else if (CommonUtil.isNullOrEmpty(idKelas) && CommonUtil.isNotNullOrEmpty(idProduk)) {
|
||||
data = produkDao.findTarifLayananLamaProduk(idRuangan, idProduk);
|
||||
} else if (CommonUtil.isNullOrEmpty(idKelas) && CommonUtil.isNullOrEmpty(idProduk)) {
|
||||
data = produkDao.findTarifLayananLamaRuangan(idRuangan);
|
||||
}
|
||||
|
||||
for (Map<String, Object> map : data) {
|
||||
if (!listProduk.contains(map.get("idProduk"))) {
|
||||
listProduk.add(Integer.parseInt(map.get("idProduk").toString()));
|
||||
}
|
||||
if (!listKelas.contains(map.get("idKelas"))) {
|
||||
listKelas.add(Integer.parseInt(map.get("idKelas").toString()));
|
||||
}
|
||||
}
|
||||
|
||||
for (Integer produkId : listProduk) {
|
||||
for (Integer kelasId : listKelas) {
|
||||
Map<String, Object> mapRs = new HashMap<>();
|
||||
Double jasaMedis = 0.0;
|
||||
Double jasaParamedis = 0.0;
|
||||
Double jasaSarana = 0.0;
|
||||
Double jasaUmum = 0.0;
|
||||
for (Map<String, Object> map : data) {
|
||||
if (map.get("idProduk").equals(produkId) && map.get("idKelas").equals(kelasId)) {
|
||||
if (Arrays.asList(Master.KomponenHarga.JASA_MEDIS).contains(map.get("idJasa"))) {
|
||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
|
||||
jasaMedis += Double.parseDouble(map.get("hargaJasa").toString());
|
||||
} else {
|
||||
jasaMedis += 0.0;
|
||||
}
|
||||
} else if (Arrays.asList(Master.KomponenHarga.JASA_PARAMEDIS).contains(map.get("idJasa"))) {
|
||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
|
||||
jasaParamedis += Double.parseDouble(map.get("hargaJasa").toString());
|
||||
} else {
|
||||
jasaParamedis += 0.0;
|
||||
}
|
||||
} else if (Arrays.asList(Master.KomponenHarga.JASA_SARANA).contains(map.get("idJasa"))) {
|
||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
|
||||
jasaSarana += Double.parseDouble(map.get("hargaJasa").toString());
|
||||
} else {
|
||||
jasaSarana += 0.0;
|
||||
}
|
||||
} else {
|
||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
|
||||
jasaUmum += Double.parseDouble(map.get("hargaJasa").toString());
|
||||
} else {
|
||||
jasaUmum += 0.0;
|
||||
}
|
||||
}
|
||||
mapRs.putAll(map);
|
||||
mapRs.put("hargaLayanan",
|
||||
kursINA.format(Double.parseDouble(map.get("hargaLayanan").toString())).toString());
|
||||
if (!jasaMedis.equals(0.0)) {
|
||||
mapRs.put("jasaMedis", kursINA.format(jasaMedis).toString());
|
||||
} else {
|
||||
mapRs.put("jasaMedis", "-");
|
||||
}
|
||||
if (!jasaParamedis.equals(0.0)) {
|
||||
mapRs.put("jasaParamedis", kursINA.format(jasaParamedis).toString());
|
||||
} else {
|
||||
mapRs.put("jasaParamedis", "-");
|
||||
}
|
||||
if (!jasaSarana.equals(0.0)) {
|
||||
mapRs.put("jasaSarana", kursINA.format(jasaSarana).toString());
|
||||
} else {
|
||||
mapRs.put("jasaSarana", "-");
|
||||
}
|
||||
if (!jasaUmum.equals(0.0)) {
|
||||
mapRs.put("jasaUmum", kursINA.format(jasaUmum).toString());
|
||||
} else {
|
||||
mapRs.put("jasaUmum", "-");
|
||||
}
|
||||
|
||||
mapRs.remove("idJasa");
|
||||
mapRs.remove("hargaJasa");
|
||||
}
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(mapRs)) {
|
||||
result.add(mapRs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> validateNamaProduk(Integer idProduk, String namaProduk) {
|
||||
|
||||
@ -7812,6 +7812,27 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@RequestMapping("/tarifLayananLamaRuangan")
|
||||
public ModelAndView getTarifLayananLama(ModelAndView m, @RequestParam(value = "format", required = false) String format,
|
||||
@RequestParam(value = "idRuangan", required = true) Integer idRuangan,
|
||||
@RequestParam(value = "idKelas", required = false) Integer idKelas,
|
||||
@RequestParam(value = "idProduk", required = false) Integer idProduk) {
|
||||
List<Map<String, Object>> result = produkService.findTarifLayananLama(idRuangan, idKelas, idProduk);
|
||||
|
||||
Map<String, Object> ruangan = ruanganService.getRuanganById(idRuangan);
|
||||
|
||||
m.addObject("dataSource", result);
|
||||
m.addObject("namaRuangan", ruangan.get("namaRuangan").toString().replace("/", "-"));
|
||||
m.addObject("format", "xls");
|
||||
|
||||
if (format != null && !format.isEmpty()) {
|
||||
m.addObject("format", format);
|
||||
}
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/master-bed", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getMasterBed(HttpServletRequest request) {
|
||||
|
||||
@ -572,4 +572,8 @@ reporting/lapGrafikSuhuMesin.url=/WEB-INF/templates/jrxml/lapGrafikSuhuMesin.jrx
|
||||
|
||||
#tarifLayananRuangan
|
||||
reporting/tarifLayananRuangan.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView
|
||||
reporting/tarifLayananRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml
|
||||
reporting/tarifLayananRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml
|
||||
|
||||
#tarifLayananLamaRuangan
|
||||
reporting/tarifLayananLamaRuangan.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView
|
||||
reporting/tarifLayananLamaRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml
|
||||
Loading…
x
Reference in New Issue
Block a user