pemisahan produk diskon antara pegawai rsab dan nonpegawai yang disetujui mpp

This commit is contained in:
Salman Manoe 2021-09-07 07:25:26 +07:00
parent 6d827a0e2a
commit 5b51ef7e56
3 changed files with 8 additions and 13 deletions

View File

@ -159,22 +159,25 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
@Query("select new Map(pp.noRec as noRec,"
+ "(case when :jenisDiskon = 1 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon = 1 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
+ "when :jenisDiskon = 1 and pr.id in (:listProdukIdPegawai) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon = 1 and pr.id in (:listProdukIdPegawai) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
+ "when :jenisDiskon = 1 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon = 1 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
+ "when :jenisDiskon = 2 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/2) then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon = 2 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/2) then (pp.hargaJual/2) "
+ "when :jenisDiskon in (1,2) and pp.strukResepId is not null and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/10) then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon in (1,2) and pp.strukResepId is not null and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/10) then (pp.hargaJual/10) "
+ "when :jenisDiskon in (1,3,4) and pr.id in (:listProdukId) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon in (1,3,4) and pr.id in (:listProdukId) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
+ "when :jenisDiskon in (1,2) and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/2) then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon in (1,2) and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/2) then (pp.hargaJual/2) "
+ "when :jenisDiskon in (3,4) and pr.id in (:listProdukIdPasien) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
+ "when :jenisDiskon in (3,4) and pr.id in (:listProdukIdPasien) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
+ "else coalesce(pp.hargaDiscount,0) end) as hargaDiskon) " + "from PelayananPasien pp "
+ "left join pp.pasienDaftar apd " + "left join apd.pasienDaftar pd " + "left join pp.produk pr "
+ "left join pd.ruangan ru " + "where pp.strukFk is null " + "and pd.noRegistrasi = :noRegistrasi "
+ "order by pp.produkId")
List<Map<String, Object>> findLayananTagihan(@Param("noRegistrasi") String noRegistrasi,
@Param("jenisDiskon") Integer jenisDiskon, @Param("listDepartemenId") List<Integer> listIdDepartemen,
@Param("ruanganId") Integer idRuangan, @Param("listProdukId") List<Integer> listIdProduk);
@Param("ruanganId") Integer idRuangan, @Param("listProdukIdPegawai") List<Integer> listIdProdukPegawai,
@Param("listProdukIdPasien") List<Integer> listIdProdukPasien);
}

View File

@ -259,10 +259,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<String> result = new ArrayList<>();
List<Integer> listIdProdukDiskonPegawai = splitDataSettingDatafixed("listProdukDiskonPegawai");
List<Integer> listIdProdukDiskonPasien = splitDataSettingDatafixed("listProdukDiskonPasien");
List<Map<String, Object>> data = pelayananPasienDao.findLayananTagihan(noRegistrasi, jenisDiskon,
Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Master.Ruangan.KLINIK_KARYAWAN,
listIdProdukDiskonPegawai);
listIdProdukDiskonPegawai, listIdProdukDiskonPasien);
List<PelayananPasien> models = new ArrayList<>();
for (Map<String, Object> map : data) {

View File

@ -1,20 +1,11 @@
package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.StrukVerifikasi;
import com.jasamedika.medifirst2000.helper.Caption;
public class MonitoringAbsenVO extends BaseTransactionVO {