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 { @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 findByNoRecSppb(@Param("noRec") String noRec); @Query("select model from StrukRekapPemenang model where model.supplierId=:supplierId and model.kartuPengendali.noRec=:kartuPengendaliId") List 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> 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> 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> 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 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 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> findSppbDetail(@Param("noRec") String noRec); }