persiapan service update pelayanan pasien detail saat entri klaim verifikasi tagihan untuk diskon karyawan
This commit is contained in:
parent
3c74ae5f63
commit
74b3ac482f
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
@ -17,7 +18,15 @@ import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
|
||||
@Repository("PelayananPasienDetailDao")
|
||||
public interface PelayananPasienDetailDao extends PagingAndSortingRepository<PelayananPasienDetail, String> {
|
||||
|
||||
|
||||
@Query("select model from PelayananPasienDetail model left join model.pelayananPasien a where a.noRec=:noRec")
|
||||
List<PelayananPasienDetail> getPelayananPasienDetail(@Param("noRec") String noRec);
|
||||
|
||||
@Query("select new Map(" + "ppd.hargaDiscount as hargaDiscount," + "ppd.hargaJual as hargaJual,"
|
||||
+ "ppd.hargaNetto as hargaNetto," + "ppd.hargaSatuan as hargaSatuan," + "ppd.jasa as jasa,"
|
||||
+ "ppd.jumlah as jumlah," + "ppd.komponenHargaId as idKomponenHarga,"
|
||||
+ "pd.dokterPenanggungJawabId as dpjpUtama," + "apd.pegawaiId as dpjp," + "pp.produkId as idLayanan"
|
||||
+ ") from PelayananPasienDetail ppd " + "inner join ppd.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "where pp.strukFk is null "
|
||||
+ "and pd.noRegistrasi = :noRegistrasi " + "order by ppd.komponenHargaId")
|
||||
List<Map<String, Object>> findDetailTagihan(@Param("noRegistrasi") String noRegistrasi);
|
||||
}
|
||||
|
||||
@ -18,4 +18,6 @@ public interface PelayananPasienService {
|
||||
|
||||
List<Map<String, Object>> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir);
|
||||
|
||||
void updateKlaimDiskonRSAB(String noRegistrasi, Double totalKlaim);
|
||||
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogAccDao;
|
||||
import com.jasamedika.medifirst2000.dao.PelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.PelayananPasienDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
|
||||
import com.jasamedika.medifirst2000.entities.JenisObat;
|
||||
import com.jasamedika.medifirst2000.entities.LogAcc;
|
||||
@ -41,6 +42,7 @@ import com.jasamedika.medifirst2000.vo.ProdukVO;
|
||||
*/
|
||||
@Service("pelayananPasienService")
|
||||
public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements PelayananPasienService {
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<PelayananPasienVO, PelayananPasien> pelayananPasienConverter;
|
||||
|
||||
@ -53,6 +55,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
@Autowired
|
||||
private PelayananPasienDao pelayananPasienDao;
|
||||
|
||||
@Autowired
|
||||
private PelayananPasienDetailDao pelayananPasienDetailDao;
|
||||
|
||||
@Autowired
|
||||
private LogAccDao logAccDao;
|
||||
|
||||
@ -231,7 +236,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return result;
|
||||
}
|
||||
|
||||
public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan, String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) {
|
||||
public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan,
|
||||
String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) {
|
||||
Double result = 0.0;
|
||||
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(idKelPasien)) {
|
||||
@ -239,11 +245,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
if (idLayanan.equals(Master.Produk.KONSULTASI_DOKTER_JAGA)) {
|
||||
result = 30000.0;
|
||||
} else {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan
|
||||
* Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
}
|
||||
} else if (idDepartemen.equals(Master.Departemen.RAWAT_INAP)) {
|
||||
if (tipePegawai.equals(Master.TipePegawai.PURNA_WAKTU)) {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan
|
||||
* Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
} else {
|
||||
result = 0.0;
|
||||
}
|
||||
@ -303,10 +311,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
List<Map<String, Object>> data = pelayananPasienDao.getDataPendapatan(Master.JenisPegawai.DOKTER, dateAwal, dateAkhir);
|
||||
List<Map<String, Object>> data = pelayananPasienDao.getDataPendapatan(Master.JenisPegawai.DOKTER, dateAwal,
|
||||
dateAkhir);
|
||||
|
||||
for (Map<String, Object> map : data) {
|
||||
if (!listIdPegawai.contains(Integer.parseInt(map.get("idPegawai").toString())) && !map.get("namaPegawai").equals("-")) {
|
||||
if (!listIdPegawai.contains(Integer.parseInt(map.get("idPegawai").toString()))
|
||||
&& !map.get("namaPegawai").equals("-")) {
|
||||
listIdPegawai.add(Integer.parseInt(map.get("idPegawai").toString()));
|
||||
}
|
||||
}
|
||||
@ -326,7 +336,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
Double jumlahLayanan = Double.parseDouble(map.get("jumlahLayanan").toString());
|
||||
|
||||
if (!map.get("idJenisProduk").equals(Master.JenisProduk.OBAT_ALKES)) {
|
||||
remun += calculateRemunWithFfs(idKelPasien, idDepartemen, idLayanan, namaLayanan, tipePegawai, hargaJual, hargaDiskon, jumlahLayanan);
|
||||
remun += calculateRemunWithFfs(idKelPasien, idDepartemen, idLayanan, namaLayanan, tipePegawai,
|
||||
hargaJual, hargaDiskon, jumlahLayanan);
|
||||
}
|
||||
|
||||
mapRes.put("namaPegawai", map.get("namaPegawai"));
|
||||
@ -341,4 +352,87 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateKlaimDiskonRSAB(String noRegistrasi, Double totalKlaim) {
|
||||
List<Map<String, Object>> detailSarana = new ArrayList<>();
|
||||
List<Map<String, Object>> detailUmum = new ArrayList<>();
|
||||
List<Map<String, Object>> detailParamedis = new ArrayList<>();
|
||||
List<Map<String, Object>> detailMedis = new ArrayList<>();
|
||||
List<Map<String, Object>> detailLainlain = new ArrayList<>();
|
||||
|
||||
double totalDetailSarana = 0.0;
|
||||
double totalDetailUmum = 0.0;
|
||||
double totalDetailParamedis = 0.0;
|
||||
double totalDetailMedis = 0.0;
|
||||
double totalDetailFarmasi = 0.0;
|
||||
double sisaTotalKlaim = totalKlaim;
|
||||
double fracTotalKlaim = 0.0;
|
||||
|
||||
List<Map<String, Object>> detail = pelayananPasienDetailDao.findDetailTagihan(noRegistrasi);
|
||||
for (Map<String, Object> map : detail) {
|
||||
if (Arrays.asList(Master.KomponenHarga.JASA_SARANA).contains(map.get("idKomponenHarga"))) {
|
||||
detailSarana.add(map);
|
||||
totalDetailSarana += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount"))
|
||||
* (double) map.get("jumlah");
|
||||
totalDetailFarmasi += (double) map.get("jasa");
|
||||
} else if (map.get("idKomponenHarga").equals(Master.KomponenHarga.JASA_UMUM)) {
|
||||
detailUmum.add(map);
|
||||
totalDetailUmum += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount"))
|
||||
* (double) map.get("jumlah");
|
||||
totalDetailFarmasi += (double) map.get("jasa");
|
||||
} else if (Arrays.asList(Master.KomponenHarga.JASA_PARAMEDIS).contains(map.get("idKomponenHarga"))) {
|
||||
detailParamedis.add(map);
|
||||
totalDetailParamedis += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount"))
|
||||
* (double) map.get("jumlah");
|
||||
totalDetailFarmasi += (double) map.get("jasa");
|
||||
} else if (Arrays.asList(Master.KomponenHarga.JASA_MEDIS).contains(map.get("idKomponenHarga"))) {
|
||||
detailMedis.add(map);
|
||||
totalDetailMedis += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount"))
|
||||
* (double) map.get("jumlah");
|
||||
totalDetailFarmasi += (double) map.get("jasa");
|
||||
} else {
|
||||
detailLainlain.add(map);
|
||||
}
|
||||
}
|
||||
|
||||
if (sisaTotalKlaim <= totalDetailSarana) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:50:43 AM] : diskonkan detail sarana!
|
||||
sisaTotalKlaim = 0.0;
|
||||
} else {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:51:36 AM] : nolkan detail sarana!
|
||||
sisaTotalKlaim -= totalDetailSarana;
|
||||
if (sisaTotalKlaim <= totalDetailUmum) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:52:10 AM] : diskonkan detail umum!
|
||||
sisaTotalKlaim = 0.0;
|
||||
} else {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:52:39 AM] : nolkan detail umum!
|
||||
sisaTotalKlaim -= totalDetailUmum;
|
||||
if (sisaTotalKlaim <= totalDetailParamedis) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:53:20 AM] : diskonkan detail paramedis!
|
||||
sisaTotalKlaim = 0.0;
|
||||
} else {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:54:40 AM] : nolkan detail paramedis!
|
||||
sisaTotalKlaim -= totalDetailParamedis;
|
||||
if (sisaTotalKlaim <= totalDetailMedis) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:55:18 AM] : diskonkan detail medis!
|
||||
sisaTotalKlaim = 0.0;
|
||||
} else {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 11:55:49 AM] : nolkan detail medis!
|
||||
sisaTotalKlaim -= totalDetailMedis;
|
||||
if (sisaTotalKlaim <= totalDetailFarmasi) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 1:08:16 PM] : diskonkan detail jasa!
|
||||
sisaTotalKlaim = 0.0;
|
||||
} else {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 1:08:38 PM] : nolkan detail jasa!
|
||||
sisaTotalKlaim -= totalDetailFarmasi;
|
||||
if (sisaTotalKlaim > 0.0) {
|
||||
// TODO inserted by ITI-14 [Feb 15, 2021, 1:09:42 PM] : error!
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user