-- --------------------------------------------------------
-- Server OS:                    Linux
-- HeidiSQL Version:             12.5.0.6677
-- --------------------------------------------------------



-- Dumping database structure for laporan
USE `laporan`;

-- Dumping structure for procedure laporan.LaporanPengirimanInternalFarmasi
DROP PROCEDURE IF EXISTS `LaporanPengirimanInternalFarmasi`;
DELIMITER //
CREATE PROCEDURE `LaporanPengirimanInternalFarmasi`(
	IN `TGLAWAL` DATETIME,
	IN `TGLAKHIR` DATETIME,
	IN `RUANGAN` CHAR(10),
	IN `LAPORAN` INT,
	IN `CARABAYAR` INT,
	IN `KATEGORI` INT,
	IN `BARANG` INT
)
BEGIN

	DECLARE vRUANGAN VARCHAR(11);
	DECLARE vKATEGORI VARCHAR(11);
      
   SET vRUANGAN = CONCAT(RUANGAN,'%');
   SET vKATEGORI = CONCAT(KATEGORI,'%');

	SET @sqlText = CONCAT('
				SELECT 
							p.NOMOR, p.TANGGAL, b.NAMA, pd.JUMLAH jml_krm
							, inventory.getHargaPenerimaanTerakhir(pd.BARANG) HPT, (pd.JUMLAH * inventory.getHargaPenerimaanTerakhir(pd.BARANG)) TOT
							, p2.NOMOR nmr_minta, minta.NAMA brg_minta, pd2.JUMLAH jml_minta 
							, p.TUJUAN kode_tujuan, r.DESKRIPSI RUANGAN_TUJUAN
							, p.ASAL kd_asal, r2.DESKRIPSI r_asal
							, inst.PPK, inst.NAMA NAMAINST, inst.ALAMAT ALAMATINST,
							master.getHeaderKategoriBarang(''',KATEGORI,''') KATEGORI,
							master.getHeaderLaporan(''',RUANGAN,''') INSTALASI,
							IF(',BARANG,'=0,''Semua'',(SELECT br.NAMA FROM inventory.barang br WHERE br.ID=',BARANG,')) BARANGHEADER
					FROM
							inventory.pengiriman p
							LEFT JOIN inventory.pengiriman_detil pd ON p.NOMOR=pd.PENGIRIMAN AND pd.STATUS = 2
							LEFT JOIN inventory.barang b ON pd.BARANG=b.ID
							LEFT JOIN `master`.ruangan r ON p.TUJUAN=r.ID AND r.JENIS_KUNJUNGAN=11
							LEFT JOIN `master`.ruangan r2 ON r2.ID=p.ASAL  AND r2.JENIS_KUNJUNGAN=11
							LEFT JOIN inventory.kategori ik ON b.KATEGORI=ik.ID 
							, inventory.permintaan p2
							LEFT JOIN inventory.permintaan_detil pd2 ON p2.NOMOR=pd2.PERMINTAAN
							LEFT JOIN inventory.barang minta ON pd2.BARANG= minta.ID 
							, (SELECT mp.NAMA, ai.PPK, mp.ALAMAT
								FROM aplikasi.instansi ai
									, master.ppk mp
								WHERE ai.PPK=mp.ID) inst
					WHERE p.PERMINTAAN=p2.NOMOR AND
							p.TANGGAL BETWEEN ''',TGLAWAL,''' AND ''',TGLAKHIR,'''
						  	',IF(RUANGAN=0,'',CONCAT(' AND p.TUJUAN LIKE ''',vRUANGAN,'''')),'
							',IF(KATEGORI=0,'',CONCAT(' AND ik.ID LIKE ''',VKATEGORI,'''')),'
							',IF(BARANG=0,'',CONCAT(' AND b.ID=',BARANG)),'
						ORDER BY p.TANGGAL DESC ,p.TUJUAN, p.ASAL, b.NAMA
								');	
	PREPARE stmt FROM @sqlText;
	EXECUTE stmt;
	DEALLOCATE PREPARE stmt;
	
END//
DELIMITER ;

