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

47 lines
1.9 KiB
Java

package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
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.KartuStok;
/**
* Repository class for StokProdukGlobal
*
* @author Adik
*/
@Repository("KartuStokDao")
public interface KartuStokDao extends PagingAndSortingRepository<KartuStok, String> {
@Query("select count(p.noRec) from KartuStok p where p.ruangan.id=:idRuangan and p.produk.id=:idProduk")
Integer checkData(@Param("idProduk") Integer idProduk,@Param("idRuangan") Integer idRuangan);
@Query(" select new map ( p.keterangan as keterangan,"
+ " str(p.tglInput) as tanggalKejadian,"
+ " produk.namaProduk as namaProduk,"
+ " coalesce(p.jumlah,0.0) as jumlah,"
+ " coalesce(p.saldoAwal,0.0) as saldoAhir ,"
+ " p.status as status ) "
+ " from KartuStok p left join p.produk produk"
+ " left join p.ruangan ruangan "
+ " where p.ruanganId=:idRuangan "
+ " and p.produkId=:idProduk "
+ " and date(tglInput) between :dateStart and :dateEnd "
+ " order by p.tglInput")
List<Map<String, Object>> kartuStokList(@Param("idProduk") Integer idProduk,@Param("idRuangan") Integer idRuangan,@Param("dateStart") Date dateStart,@Param("dateEnd") Date dateEnd);
@Query("select p from KartuStok p "
+ " left join p.produk produk "
+ " left join p.ruangan ruangan "
+ " where p.ruanganId=:ruanganId "
+ " and p.produkId=:produkId "
+ " and p.tglInput=(select max(sub.tglInput) from KartuStok sub where sub.produkId=:produkId and p.ruanganId=:ruanganId ) "
+ " order by p.tglInput")
List<KartuStok> findKartuStokLatest(@Param("ruanganId") Integer ruanganId, @Param("produkId") Integer produkId);
}