package com.jasamedika.medifirst2000.dao;

import java.util.List;

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.HargaNettoProdukByTerima;
import com.jasamedika.medifirst2000.entities.StokProdukGlobal;

@Repository("HargaNettoProdukByTerimaDao")
public interface HargaNettoProdukByTerimaDao extends PagingAndSortingRepository<HargaNettoProdukByTerima, String>{
	@Query("select model from HargaNettoProdukByTerima model where model.asalProduk.id=:asalProdukId and model.produk.id=:produkId "
			+ "order by model.noStrukTerima.nostruk")
	public List<HargaNettoProdukByTerima> getHargaNettoProdukByTerimaFifo(@Param("asalProdukId") Integer asalProdukId,@Param("produkId") Integer produkId);

	@Query("select model from HargaNettoProdukByTerima model where model.asalProduk.id=:asalProdukId and model.produk.id=:produkId "
			+ "order by date(tglKadaluarsaLast) desc")
	public List<HargaNettoProdukByTerima> getHargaNettoProdukByTerimaFefo(@Param("asalProdukId") Integer asalProdukId,@Param("produkId") Integer produkId);

	@Query("select model from StokProdukGlobal model where model.qtyProdukOnHand>0 and model.ruangan.id=:ruanganId and model.asalProduk.id=:asalProdukId and model.produk.id=:produkId")
	public List<StokProdukGlobal> getStokProdukGlobalAvg(@Param("ruanganId") Integer ruanganId,@Param("asalProdukId") Integer asalProdukId,@Param("produkId") Integer produkId);

	@Query("select model from StokProdukGlobal model where model.qtyProdukOnHand>0 and model.asalProduk.id=:asalProdukId and model.produk.id=:produkId")
	public StokProdukGlobal getStokProdukGlobalAvg2(@Param("asalProdukId") Integer asalProdukId,@Param("produkId") Integer produkId);
}
