
USE `sakti`;
DROP PROCEDURE IF EXISTS `generateDataAdk`;
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `generateDataAdk`(IN `PBAST` INT, IN `PNOMOR` INT)
BEGIN
	DECLARE VKODESATKER, VNODOKUMEN, VKATEGORI, VNOREK, VKODEMATAUANG, VNODIPA, VNILAIKURS, VNPWP CHAR(100);
	DECLARE VURAIANDOKUMEN, VOLEH, VKODEAKUN VARCHAR(500);
	DECLARE VTAHUN INT;
	DECLARE VNILAI DECIMAL (60,2);
	DECLARE VTGLDOK, VTGLBUKU, VTGLDIPA DATETIME;
	SET VTAHUN = 0;
	SELECT
		'548886' KODE_SATKER,
		ps.RBATAHUN KODE_TAHUN_ANGGARAN,
		CONCAT('BAST/',date_format(pb.TANGGAL_DIBUAT,'%Y'),'/',pb.ID)  NO_DOKUMEN,
		pb.TANGGAL_DIBUAT TGL_BUKU,
		pb.TANGGAL_DIBUAT TGL_DOKUMEN,
		ps.KETERANGAN URAIAN_DOKUMEN,
		'1' KATEGORI,
		IF(pg.NAMA IS NULL,'Tim Penerima',pg.NAMA) NAMA_PENERIMA,
		'80027005488861000' NO_REKENING,
		'IDR' KODE_MATA_UANG,
		SUM(pd.JUMLAH * pd.HARGA) NILAI_BAST,
		'DIPA-024.04.2.548886/2023' NO_DIPA,
		'2022-11-30 00:00:00' TGL_DIPA,
		'1' NILAI_KURS,
		ak.AKUN KODE_COA,
		'001456011801000' NPWP
	INTO
		VKODESATKER,VTAHUN,VNODOKUMEN,VTGLBUKU,VTGLDOK,VURAIANDOKUMEN,VKATEGORI,VOLEH, VNOREK, VKODEMATAUANG, VNILAI, VNODIPA, VTGLDIPA, VNILAIKURS, VKODEAKUN, VNPWP
	FROM inventory.penerimaan_barang pb
	LEFT JOIN aplikasi.pengguna pg ON pg.ID = pb.OLEH
	, inventory.penerimaan_barang_detil pd
	, `bridge`.ska_penerimaandetil spd
	, `bridge`.ska_penerimaan sp
	, `bridge`.ska_pesanan ps
	, `bridge`.ska_permintaananggaran pa
	, `bridge`.ska_akun ak
	WHERE
	ak.ID = pa.AKUN 
	AND pa.NOMOR = ps.NOKEN 
	AND ps.ID = sp.IDPESANAN
	AND sp.ID = spd.IDPENERIMAAN
	AND spd.ID = pd.REF_PO_DETIL
	AND pd.PENERIMAAN = pb.ID AND pd.`STATUS` = 2
	
	AND pb.ID = PNOMOR;
	
	IF VTAHUN > 0 THEN
		INSERT INTO sakti_header (BAST_REALISASI,KODE_SATKER,KODE_TAHUN_ANGGARAN,NO_DOKUMEN,TGL_BUKU,TGL_DOKUMEN,URAIAN_DOKUMEN,KATEGORI,NAMA_PENERIMA,NO_REKENING,KODE_MATA_UANG,NILAI_BAST,NO_DIPA,TGL_DIPA,NILAI_KURS,KODE_COA,NPWP) 
		VALUES (PBAST,VKODESATKER,VTAHUN,VNODOKUMEN,VTGLBUKU,VTGLDOK,VURAIANDOKUMEN,VKATEGORI,VOLEH, VNOREK, VKODEMATAUANG, VNILAI, VNODIPA, VTGLDIPA, VNILAIKURS, VKODEAKUN, VNPWP);
	END IF;
	
END//
DELIMITER ;