2021-01-07 11:34:56 +07:00

168 lines
7.6 KiB
Java

package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.StrukRekapPemenang;
@Repository("StrukRekapPemenangDao")
public interface StrukRekapPemenangDao extends PagingAndSortingRepository<StrukRekapPemenang, String> {
@Query("select new map("
+ "model.supplierId as supplierId,"
+ "coalesce(supplier.namaRekanan,'-') as namaSupplier,"
+ "coalesce(model.noRekap,'-') as noKontrak,"
+ "coalesce(model.tanggal,null) as tanggal,"
+ "coalesce(supplier.namaRekanan) as namaSupplier,"
+ "coalesce(supplier.telepon,'-') as telepon,"
+ "supplier.alamatLengkap as alamatLengkap) from StrukRekapPemenang model left join model.supplier supplier where model.noRec=:noRec")
Map<String,Object> findByNoRecSppb(@Param("noRec") String noRec);
@Query("select model from StrukRekapPemenang model where model.supplierId=:supplierId and model.kartuPengendali.noRec=:kartuPengendaliId")
List<StrukRekapPemenang> findBySupplierAndKartuPengendali(@Param("supplierId") Integer supplierId,@Param("kartuPengendaliId") String kartuPengendaliId);
@Query("select new Map ( "
+" strukRekap.noRekap as noKontrak, "
+" header.nostruk as noPphp, "
+" header.noRec as noRec, "
+" supp.namaRekanan as namaSupplier, "
+" supp.telepon as telepon, "
+" supp.id as supplierId, "
+" strukRekap.noRekap as noKontrak, "
+" str(date(header.tglstruk)) as tanggal ) "
+" from StrukPelayananDetail detail "
+" left join detail.nostruk header "
+" left join detail.kartuPengendaliDetail kartuPengendaliDetail "
+" left join kartuPengendaliDetail.detailRup rup "
+" left join rup.detailSpekAnggaran spek "
+" left join spek.produk produk "
+" left join kartuPengendaliDetail.strukRekapPemenang strukRekap "
+" left join kartuPengendaliDetail.kartuPengendali kartuPengendaliHeader "
+" left join strukRekap.supplier supp "
+" where detail.kartuPengendaliDetail is not null "
+" and header.noRec=:noRec ")
List<Map<String,Object>> findByNoRec(@Param("noRec") String noRec, Pageable topOne);
@Query("select new map ( strukRekap.noRec as noRecStrupRekap, "+
"strukRekap.supplierId as supplierId, "+
"strukRekap.supplier.namaRekanan as namaRekanan, "+
"strukRekap.kartuPengendaliId as kartuPengendaliId, "+
"sum(detail.hargaSupplier*detail.volumeBarang) as totalhargaSupplier, "+
"strukRekap.noRekap as noRekap ) "+
"from KartuPengendaliDetail detail "+
"left join detail.kartuPengendali header "+
"left join detail.strukRekapPemenang strukRekap "+
"where header.noRec=:noRec and strukRekap.noRec is not null "+
"group by strukRekap.supplierId ,strukRekap.supplier.namaRekanan ,strukRekap.kartuPengendaliId ,strukRekap.noRec,strukRekap.noRekap ")
List<Map<String,Object>> findSupplierByKartuPengendali(@Param("noRec") String noRec);
@Query("select new Map( "
+ "produk.namaProduk as namaProduk, "
+ "detail.volumeBarang as volume, "
+ "detail.hargaSupplier as harga, "
+ "satuanStandar.satuanStandar as satuan, "
+ "spek.spesifikasi as keterangan, "
+ "detail.hargaSupplier*detail.volumeBarang as subTotal ) "
+ "from KartuPengendaliDetail detail "
+ "left join detail.kartuPengendali header "
+ "left join detail.strukRekapPemenang strukRekap "
+ "left join detail.supplier supplier "
+ "left join detail.detailRup rup "
+ "left join rup.detailSpekAnggaran spek "
+ "left join spek.produk as produk "
+ "left join produk.satuanStandar as satuanStandar "
+ "where header.noRec=:noRecKartuPengendaliId and strukRekap.noRec is not null and supplier.id=:supplierId ")
List<Map<String,Object>> findPrdukBySupplier(@Param("supplierId") Integer supplierId, @Param("noRecKartuPengendaliId") String noRecKartuPengendaliId);
@Query("select new Map( "
+ "sum(detail.hargaSupplier*detail.volumeBarang) as subTotal,"
+ "sum(detail.ppn) as ppn, "
+ "sum(detail.hargaSupplier*detail.volumeBarang)+sum(detail.ppn) as total "
+ ") "
+ "from KartuPengendaliDetail detail "
+ "left join detail.kartuPengendali header "
+ "left join detail.strukRekapPemenang strukRekap "
+ "left join detail.supplier supplier "
+ "left join detail.detailRup rup "
+ "left join rup.detailSpekAnggaran spek "
+ "left join spek.produk as produk "
+ "left join produk.satuanStandar as satuanStandar "
+ "where header.noRec=:noRecKartuPengendaliId and strukRekap.noRec is not null and supplier.id=:supplierId ")
Map<String,Object> totalProdukBySupplier(@Param("supplierId") Integer supplierId, @Param("noRecKartuPengendaliId") String noRecKartuPengendaliId);
@Query("select new Map( "
+ "strukRekap.noRekap as noKontrak, "
+ "header.nostruk as noSppb, "
+ "header.noRec as noRec, "
+ "header.verifikasi as status, "
+ "supp.namaRekanan as namaRekanan, "
+ "str(date(header.tglstruk)) as tanggalSppb, "
+ "sum(detail.hargasatuan*detail.qtyproduk) as totalSppb, "
+ "str(date(kartuPengendaliHeader.tanggal)) as tanggalKartuKendali ) "
+ "from StrukPelayananDetail detail "
+ "left join detail.nostruk header "
+ "left join detail.kartuPengendaliDetail kartuPengendaliDetail "
+ "left join kartuPengendaliDetail.detailRup rup "
+ "left join rup.detailSpekAnggaran spek "
+ "left join spek.produk produk "
+ "left join kartuPengendaliDetail.strukRekapPemenang strukRekap "
+ "left join kartuPengendaliDetail.kartuPengendali kartuPengendaliHeader "
+ "left join strukRekap.supplier supp "
+ "where detail.kartuPengendaliDetail is not null "
+ "and header.kdkelompoktransaksi.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='kdKelompokTransaksiSppb') "
+ "and header.noRec=:noRec "
+ "group by "
+ "strukRekap.noRekap, "
+ "header.verifikasi, "
+ "header.nostruk, "
+ "supp.namaRekanan, "
+ "header.tglstruk, "
+ "header.noRec, "
+ "kartuPengendaliHeader.tanggal")
Map<String,Object> findSppbByNoRec(@Param("noRec") String noRec);
@Query("select new Map ( "
+" produk.namaProduk as namaProduk, "
+" produk.id as idProduk, "
+" asalProduk.id as idAsaProduk, "
+" asalProduk.asalProduk as asalProduk, "
+" spek.spesifikasi as keterangan, "
+" atas.spesifikasi as spesifikasi, "
+" kartuPengendaliDetail.volumeBarang as qtyKontrak, "
+" detail.qtyproduk as qtySppb, "
+" detail.hargasatuan as hargaSatuan, "
+" detail.hargadiscount as hargadiscount , "
+" detail.hargappn as hargaPpn, "
+" detail.noRec as noRec, "
+" kartuPengendaliDetail.noRec as noRecKartuPengendaliDetail,"
+" coalesce(detail.persendiscount,0.0) as diskon, "
+" coalesce(detail.persenppn,0.0) as ppn, "
+" satuanStandar.id as idSatuanStandar, "
+" satuanStandar.satuanStandar as satuanStandar, "
+" detail.noRec is noRec) "
+" from StrukPelayananDetail detail "
+" left join detail.nostruk header "
+" left join detail.kartuPengendaliDetail kartuPengendaliDetail "
+" left join kartuPengendaliDetail.detailRup rup "
+" left join rup.detailSpekAnggaran spek "
+" left join spek.produk produk "
+" left join detail.kdasalproduk asalProduk "
+" left join spek.detailSpekAnggaran atas "
+" left join kartuPengendaliDetail.strukRekapPemenang strukRekap "
+" left join kartuPengendaliDetail.kartuPengendali kartuPengendaliHeader "
+" left join strukRekap.supplier supp "
+" left join detail.kdsatuanstandar satuanStandar "
+" where detail.kartuPengendaliDetail is not null "
+" and header.noRec=:noRec ")
List<Map<String,Object>> findSppbDetail(@Param("noRec") String noRec);
}