USE `bridge`;

DROP PROCEDURE IF EXISTS `bridge`.`sendBridgePenerimaanSka`;
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `bridge`.`sendBridgePenerimaanSka`(IN `PID` INT)
BEGIN
	DECLARE VID, VID_PENERIMAAN, VANGGARAN INT;
	DECLARE VNOMOR,VMAK,VKDMAK, VRUANGAN VARCHAR(50);
	DECLARE VFAKTUR VARCHAR(100);
	DECLARE VTANGGAL DATETIME;
	DECLARE VREKANAN SMALLINT;
	DECLARE VKETERANGAN VARCHAR(250);
	DECLARE VPPN, VPPNP, VSTATUS_PENERIMAAN,VSTATUSSKA TINYINT;
	DECLARE VBERAKHIR DATETIME;
	DECLARE VDIBUAT DATETIME;
	
	SET VID_PENERIMAAN = 0;
	SET VSTATUS_PENERIMAAN = 1;
	
	SELECT p.NOMOR, p.MAK, a.ID ANGGARAN
		 , pn.ID, pn.NOFAKTUR, pn.TANGGAL, p.KEPADA REKANAN, pn.NOBAP KETERANGAN, IF(p.PPN > 0, 0, 1) PPN
		 , p.JWPPAKHIR, pn.DIBUATANGGAL, pn.`STATUS`
		 , SUBSTRING_INDEX(SUBSTRING_INDEX(a.AKUN,'.',-2),'.',1)
		 INTO VNOMOR, VMAK, VANGGARAN, VID, VFAKTUR, VTANGGAL, VREKANAN, VKETERANGAN, VPPN, VBERAKHIR, VDIBUAT,VSTATUSSKA, VKDMAK
	FROM `bridge`.ska_penerimaan pn
		 , `bridge`.ska_pesanan p
		 , `bridge`.ska_permintaananggaran pa
		 , `bridge`.ska_akun a
	WHERE pn.ID = PID
	AND p.ID = pn.IDPESANAN
	AND pa.NOMOR = p.NOKEN
	AND a.ID = pa.AKUN AND p.`STATUS` > 1;
	
	IF VID > 0 THEN
		SELECT pb.ID, pb.`STATUS`, IF(pb.PPN='Ya',0,1)  INTO VID_PENERIMAAN, VSTATUS_PENERIMAAN, VPPNP
		  FROM inventory.penerimaan_barang pb
		 WHERE pb.REF_SKA = VID;
		IF VID_PENERIMAAN > 0 THEN
			IF VSTATUS_PENERIMAAN != 2 THEN
				UPDATE inventory.penerimaan_barang SET
					FAKTUR = VFAKTUR,
					NO_SP = VNOMOR,
					MAK = VMAK,
					TANGGAL = VTANGGAL,
					REF_REKANAN = VREKANAN,
					KETERANGAN = VKETERANGAN,
					SUMBER_DANA = VANGGARAN,
					PPN = IF(VPPN = 1, 'Ya', 'Tidak'),
					STATUS = IF(VSTATUSSKA=0,0,1)
				WHERE REF_SKA = VID;
				
				CALL `sendBridgePenerimaanSkaDetail`(VID, VID_PENERIMAAN, VPPNP,0);
			ELSE	
				UPDATE bridge.ska_penerimaan SET FLAG_KIRIM = 2 WHERE ID = VID;
			END IF;
		ELSE
			SELECT smmr.RUANGAN INTO VRUANGAN FROM bridge.ska_mapping_mak_ruangan smmr WHERE smmr.MAK = VKDMAK AND smmr.STATUS = 1 LIMIT 1;
			IF VRUANGAN > 0 THEN
				INSERT INTO inventory.penerimaan_barang(
					RUANGAN, FAKTUR, NO_SP, MAK, TANGGAL, TANGGAL_PENERIMAAN, REF_REKANAN, KETERANGAN, SUMBER_DANA, MASA_BERLAKU, PPN, TANGGAL_DIBUAT, OLEH, STATUS, JENIS, REF_PO, REF_SKA)
				VALUES(VRUANGAN, VFAKTUR, VNOMOR, VMAK, VTANGGAL, VTANGGAL, VREKANAN, VKETERANGAN, VANGGARAN, '0000-00-00', IF(VPPN = 1, 'Ya', 'Tidak'), '0000-00-00 00:00:00',0, 1, 3,'',VID);
			END IF;
		END IF;
	ELSE
		UPDATE bridge.ska_penerimaan SET FLAG_KIRIM = 99 WHERE ID = PID;
	END IF;
	
END//
DELIMITER ;