-- --------------------------------------------------------
-- Versi server:                 8.0.11 - MySQL Community Server - GPL
-- OS Server:                    Linux
-- HeidiSQL Versi:               10.2.0.5599
-- --------------------------------------------------------



-- Membuang struktur basisdata untuk cssd
#CREATE DATABASE IF NOT EXISTS `cssd` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `cssd`;

-- membuang struktur untuk procedure cssd.cetakPermintaanSterilisasi
DROP PROCEDURE IF EXISTS `cetakPermintaanSterilisasi`;
DELIMITER //
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `cetakPermintaanSterilisasi`(
	IN `PNOMOR` CHAR(21)





)
BEGIN

	SET @nm=0;
	SET @nmb=NULL;
	SET @nourut=0;

	SELECT NOMOR, TANGGAL, IF(NAMA_SET='','',@nourut:=@nourut+1) NOURUT, NAMA_SET, NAMA_BARANG, JUMLAH_MAPPING, JML_ITEM, TOTAL, ASAL, RUANG_ASAL, PENERIMA, RUANG_PENERIMA
			, PENGANTAR, PETUGAS_PENGANTAR, OLEH, PETUGAS_PENERIMA
			, RETAK, KOROSIF, AUS
			, NAMA_PETUGAS_PACKING
			, NAMA_OPERATOR_AUTOCLAVE
			, NAMA_PETUGAS_PENYIMPANAN
		   , NAMA_PETUGAS_MENERIMA
		   , NAMA_PETUGAS_MENYERAHKAN
	FROM (
		SELECT pak.NOMOR, DATE(pak.TANGGAL) TANGGAL
			  , sab.ID
			  , IF(pak.NOMOR<>IF((@nm=0 OR @nm<>pak.NOMOR) OR (@nm=pak.NOMOR AND @nmb<>sab.NAMA),'',@nm),sab.NAMA,'') NAMA_SET
			  , @nm:=pak.NOMOR
		     , @nmb:=sab.NAMA
			  , ib.ID IDBARANG, ib.NAMA NAMA_BARANG, pak.ASAL,  ras.DESKRIPSI RUANG_ASAL, pak.PENERIMA, rpn.DESKRIPSI RUANG_PENERIMA
			  , msab.JUMLAH JUMLAH_MAPPING
		     , pakd.JUMLAH_MAPPING JML_ITEM
			  , (msab.JUMLAH - pakd.JUMLAH_MAPPING) TOTAL
			  , pak.PENGANTAR, pak.OLEH, master.getNamaLengkapPegawai(pg.NIP) PETUGAS_PENERIMA, master.getNamaLengkapPegawai(pn.NIP) PETUGAS_PENGANTAR
			  , pad.RETAK, pad.KOROSIF, pad.AUS
			  , pk.SHINVA_I, pk.SHINVA_II, pk.BELIMED_I, pk.BELIMED_II, pk.DTT
			  , pk.PETUGAS_PACKING, pk.OPERATOR_AUTOCLAVE, pk.PETUGAS_PENYIMPANAN, pk.PETUGAS_MENERIMA, pk.PETUGAS_MENYERAHKAN
			  , master.getNamaLengkapPegawai(pp.NIP) NAMA_PETUGAS_PACKING
			  , master.getNamaLengkapPegawai(op.NIP) NAMA_OPERATOR_AUTOCLAVE
			  , master.getNamaLengkapPegawai(py.NIP) NAMA_PETUGAS_PENYIMPANAN
			  , master.getNamaLengkapPegawai(pm.NIP) NAMA_PETUGAS_MENERIMA
			  , master.getNamaLengkapPegawai(pmy.NIP) NAMA_PETUGAS_MENYERAHKAN
			FROM cssd.penerimaan_alat_kotor pak
			     LEFT JOIN master.ruangan rpn ON pak.PENERIMA=rpn.ID
			     LEFT JOIN master.ruangan ras ON pak.ASAL=ras.ID
			     LEFT JOIN aplikasi.pengguna pg ON pak.OLEH=pg.ID
			     LEFT JOIN master.pegawai pn ON pak.PENGANTAR=pn.ID
			     LEFT JOIN cssd.petugas_kegiatan pk ON pak.NOMOR=pk.PENERIMAAN_ALAT_KOTOR AND pk.`STATUS`!=0
			     LEFT JOIN master.staff_ruangan sr1 ON pk.PETUGAS_PACKING=sr1.ID
			     LEFT JOIN master.staff s1 ON sr1.STAFF=s1.ID
			     LEFT JOIN master.pegawai pp ON s1.NIP=pp.NIP
			     LEFT JOIN master.staff_ruangan sr2 ON pk.OPERATOR_AUTOCLAVE=sr2.ID
			     LEFT JOIN master.staff s2 ON sr2.STAFF=s2.ID
			     LEFT JOIN master.pegawai op ON s2.NIP=op.NIP
			     LEFT JOIN master.staff_ruangan sr3 ON pk.PETUGAS_PENYIMPANAN=sr3.ID
			     LEFT JOIN master.staff s3 ON sr3.STAFF=s3.ID
			     LEFT JOIN master.pegawai py ON s3.NIP=py.NIP
			     LEFT JOIN master.staff_ruangan sr4 ON pk.PETUGAS_MENERIMA=sr4.ID
			     LEFT JOIN master.staff s4 ON sr4.STAFF=s4.ID
			     LEFT JOIN master.pegawai pm ON s4.NIP=pm.NIP
			     LEFT JOIN master.staff_ruangan sr5 ON pk.PETUGAS_MENYERAHKAN=sr5.ID
			     LEFT JOIN master.staff s5 ON sr5.STAFF=s5.ID
			     LEFT JOIN master.pegawai pmy ON s5.NIP=pmy.NIP
			     LEFT JOIN cssd.penerimaan_alat_kotor_detil pakd ON pak.NOMOR=pakd.PENERIMAAN_ALAT_KOTOR AND pakd.`STATUS`!=0
			     LEFT JOIN cssd.pengembalian_alat_detil pad ON pakd.ID=pad.PENERIMAAN_ALAT_KOTOR_DETIL AND pad.`STATUS`!=0
			     LEFT JOIN cssd.set_alat_baru sab ON pakd.SET_ALAT_BARU=sab.ID AND sab.`STATUS`!=0
			     LEFT JOIN cssd.mapping_set_alat_baru msab ON pakd.MAPPING_SET_ALAT_BARU=msab.ID AND msab.`STATUS`!=0 
			     LEFT JOIN inventory.barang ib ON msab.BARANG=ib.ID 
		   WHERE pak.`STATUS`!=0 AND pak.NOMOR=PNOMOR
	   ) ab;


END//
DELIMITER ;

-- membuang struktur untuk procedure cssd.cetakPermintaanSterilisasiBarangRuangan
DROP PROCEDURE IF EXISTS `cetakPermintaanSterilisasiBarangRuangan`;
DELIMITER //
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `cetakPermintaanSterilisasiBarangRuangan`(
	IN `PNOMOR` CHAR(21)



)
BEGIN
	SELECT pak.NOMOR NOMOR_PENERIMAAN, pal.NOMOR NOMOR_PENGEMBALIAN, pal.ASAL, pal.PENERIMA, br.NAMA NAMA_BARANG, pnld.TOTAL
		, IF(pnld.PENERIMAAN_ALAT_KOTOR IS NULL,'', pak.TOTAL_BERAT) TOTAL_BERAT_PENERIMAAN, pal.TOTAL_BERAT TOTAL_BERAT_PENGEMBALIAN, pal.CATATAN, pald.RETAK, pald.KOROSIF, pald.AUS
	FROM cssd.penerimaan_alat_kotor pak
	     LEFT JOIN cssd.pengembalian_alat pal ON pak.NOMOR=pal.PENERIMAAN_ALAT_KOTOR AND pal.`STATUS`!=0
		  LEFT JOIN cssd.pengembalian_alat_detil_barangruangan pald ON pal.NOMOR=pald.PENGEMBALIAN_ALAT AND pald.`STATUS`!=0
		  LEFT JOIN cssd.penerimaan_alat_kotor_detil_barangruangan pnld ON pald.PENERIMAAN_ALAT_KOTOR_DETIL_BARANGRUANGAN=pnld.ID AND pnld.`STATUS`!=0
		  LEFT JOIN inventory.barang_ruangan brg ON pnld.BARANG_RUANGAN=brg.ID
		  LEFT JOIN inventory.barang br ON brg.BARANG=br.ID
	WHERE pak.`STATUS`!=0 AND pak.NOMOR=PNOMOR;
END//
DELIMITER ;

-- membuang struktur untuk procedure cssd.cetakPermintaanSterilisasiHeader
DROP PROCEDURE IF EXISTS `cetakPermintaanSterilisasiHeader`;
DELIMITER //
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `cetakPermintaanSterilisasiHeader`(
	IN `PNOMOR` CHAR(21)









)
BEGIN

	SELECT pak.NOMOR, DATE(pak.TANGGAL) TANGGAL
	       , IF(IFNULL((SELECT 1 FROM cssd.penerimaan_alat_kotor_detil a WHERE a.PENERIMAAN_ALAT_KOTOR=pak.NOMOR LIMIT 1),0)=0,'',pak.TOTAL_BERAT) TOTAL_BERAT
	       , pak.CATATAN, pak.ASAL,  ras.DESKRIPSI RUANG_ASAL, pak.PENERIMA, rpn.DESKRIPSI RUANG_PENERIMA
	        , pak.PENGANTAR, pak.OLEH, master.getNamaLengkapPegawai(pg.NIP) PETUGAS_PENERIMA, master.getNamaLengkapPegawai(pn.NIP) PETUGAS_PENGANTAR
			  , pk.SHINVA_I, pk.SHINVA_II, pk.BELIMED_I, pk.BELIMED_II, pk.DTT
			  , pk.PETUGAS_PACKING, pk.OPERATOR_AUTOCLAVE, pk.PETUGAS_PENYIMPANAN, pk.PETUGAS_MENERIMA, pk.PETUGAS_MENYERAHKAN
			  , master.getNamaLengkapPegawai(pp.NIP) NAMA_PETUGAS_PACKING
			  , master.getNamaLengkapPegawai(op.NIP) NAMA_OPERATOR_AUTOCLAVE
			  , master.getNamaLengkapPegawai(py.NIP) NAMA_PETUGAS_PENYIMPANAN
			  , master.getNamaLengkapPegawai(pm.NIP) NAMA_PETUGAS_MENERIMA
			  , master.getNamaLengkapPegawai(pmy.NIP) NAMA_PETUGAS_MENYERAHKAN
			FROM cssd.penerimaan_alat_kotor pak
			     LEFT JOIN master.ruangan rpn ON pak.PENERIMA=rpn.ID
			     LEFT JOIN master.ruangan ras ON pak.ASAL=ras.ID
			     LEFT JOIN aplikasi.pengguna pg ON pak.OLEH=pg.ID
			     LEFT JOIN master.pegawai pn ON pak.PENGANTAR=pn.ID
			     LEFT JOIN cssd.petugas_kegiatan pk ON pak.NOMOR=pk.PENERIMAAN_ALAT_KOTOR AND pk.`STATUS`!=0
			     
			     LEFT JOIN master.staff_ruangan sr1 ON pk.PETUGAS_PACKING=sr1.ID
			     LEFT JOIN master.staff s1 ON sr1.STAFF=s1.ID
			     LEFT JOIN master.pegawai pp ON s1.NIP=pp.NIP
			     
			     LEFT JOIN master.staff_ruangan sr2 ON pk.OPERATOR_AUTOCLAVE=sr2.ID
			     LEFT JOIN master.staff s2 ON sr2.STAFF=s2.ID
			     LEFT JOIN master.pegawai op ON s2.NIP=op.NIP
			     
			     LEFT JOIN master.staff_ruangan sr3 ON pk.PETUGAS_PENYIMPANAN=sr3.ID
			     LEFT JOIN master.staff s3 ON sr3.STAFF=s3.ID
			     LEFT JOIN master.pegawai py ON s3.NIP=py.NIP
			     
			     LEFT JOIN master.staff_ruangan sr4 ON pk.PETUGAS_MENERIMA=sr4.ID
			     LEFT JOIN master.staff s4 ON sr4.STAFF=s4.ID
			     LEFT JOIN master.pegawai pm ON s4.NIP=pm.NIP
			     
			     LEFT JOIN master.staff_ruangan sr5 ON pk.PETUGAS_MENYERAHKAN=sr5.ID
			     LEFT JOIN master.staff s5 ON sr5.STAFF=s5.ID
			     LEFT JOIN master.pegawai pmy ON s5.NIP=pmy.NIP
			  
		   WHERE pak.`STATUS`!=0 AND pak.NOMOR=PNOMOR;


END//
DELIMITER ;

