diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..e19a910
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 524f096..18d872d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,5 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
+build/
+dist/
\ No newline at end of file
diff --git a/.project b/.project
new file mode 100644
index 0000000..5ff41e7
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ NetBeansProjects_DBD_LCD
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..5be4cb4
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/dbd_lcd/report/jrxml/Barang.jrxml=UTF-8
+encoding//src/dbd_lcd/report/jrxml/Peminjam.jrxml=UTF-8
+encoding//src/dbd_lcd/report/jrxml/Peminjaman.jrxml=UTF-8
diff --git a/Mysql Dump/dump.sql b/Mysql Dump/dump.sql
new file mode 100644
index 0000000..2682f2a
--- /dev/null
+++ b/Mysql Dump/dump.sql
@@ -0,0 +1,1497 @@
+-- MySQL dump 10.16 Distrib 10.1.34-MariaDB, for Win32 (AMD64)
+--
+-- Host: localhost Database: lcddbd
+-- ------------------------------------------------------
+-- Server version 10.1.34-MariaDB
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `barang`
+--
+
+DROP TABLE IF EXISTS `barang`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `barang` (
+ `TIPE_BARANG` char(1) NOT NULL,
+ `NOMOR_BARANG` int(11) NOT NULL,
+ PRIMARY KEY (`TIPE_BARANG`,`NOMOR_BARANG`),
+ CONSTRAINT `FK_BARANG_BERTIPE_TIPE_BAR` FOREIGN KEY (`TIPE_BARANG`) REFERENCES `tipe_barang` (`TIPE_BARANG`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `barang`
+--
+
+LOCK TABLES `barang` WRITE;
+/*!40000 ALTER TABLE `barang` DISABLE KEYS */;
+INSERT INTO `barang` VALUES ('K',1),('K',2),('L',1),('L',2),('L',3);
+/*!40000 ALTER TABLE `barang` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Temporary table structure for view `barang_terkini`
+--
+
+DROP TABLE IF EXISTS `barang_terkini`;
+/*!50001 DROP VIEW IF EXISTS `barang_terkini`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE TABLE `barang_terkini` (
+ `Nomor_Barang` tinyint NOT NULL,
+ `Tipe_Barang` tinyint NOT NULL,
+ `Status_Barang` tinyint NOT NULL,
+ `Nomor_Peminjaman` tinyint NOT NULL,
+ `Keterangan_Barang` tinyint NOT NULL
+) ENGINE=MyISAM */;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `keperluan_pinjam`
+--
+
+DROP TABLE IF EXISTS `keperluan_pinjam`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `keperluan_pinjam` (
+ `ID_KEPERLUAN_PINJAM` int(11) NOT NULL AUTO_INCREMENT,
+ `NOMOR_PEMINJAMAN` int(11) NOT NULL,
+ `KEPERLUAN_PINJAM` varchar(64) NOT NULL,
+ `NAMA_PENANGGUNG_JAWAB` varchar(64) NOT NULL,
+ `RUANG_PINJAM` varchar(64) NOT NULL,
+ `WAKTU_MULAI` datetime NOT NULL,
+ `WAKTU_SELESAI` datetime NOT NULL,
+ PRIMARY KEY (`ID_KEPERLUAN_PINJAM`),
+ KEY `FK_KEPERLUA_PINJAM_UN_PEMINJAM` (`NOMOR_PEMINJAMAN`),
+ CONSTRAINT `FK_KEPERLUA_PINJAM_UN_PEMINJAM` FOREIGN KEY (`NOMOR_PEMINJAMAN`) REFERENCES `peminjaman` (`NOMOR_PEMINJAMAN`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `keperluan_pinjam`
+--
+
+LOCK TABLES `keperluan_pinjam` WRITE;
+/*!40000 ALTER TABLE `keperluan_pinjam` DISABLE KEYS */;
+INSERT INTO `keperluan_pinjam` VALUES (1,1,'adsfasdf','asdfasdf','asdfasdf','2019-01-04 01:00:00','2019-01-04 02:00:00'),(2,2,'PTI','Pak Khalid','Labkom1','2019-01-04 01:00:00','2019-01-04 04:00:00'),(3,3,'dbd','trisha','labkom 1','2019-01-04 13:00:00','2019-01-04 16:00:00'),(4,4,'pbo','riski','labkom 1','2019-01-04 12:00:00','2019-01-04 13:00:00'),(5,5,'ifest','trisha','sport center','2019-01-04 06:00:00','2019-01-04 11:00:00');
+/*!40000 ALTER TABLE `keperluan_pinjam` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_INSERT_KEPERLUAN before insert
+on KEPERLUAN_PINJAM for each row
+begin
+
+ IF NEW.Keperluan_Pinjam IS NULL OR NEW.Keperluan_Pinjam = ' ' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan_Pinjam tidak valid';
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL OR NEW.Nama_Penanggung_Jawab = ' ' OR CHAR_LENGTH(NEW.Nama_Penanggung_Jawab) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama_Penanggung_Jawab tidak valid';
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL OR NEW.Ruang_Pinjam = ' ' OR CHAR_LENGTH(NEW.Ruang_Pinjam) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Ruang_Pinjam tidak valid';
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Mulai tidak boleh kosong';
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Selesai tidak boleh kosong';
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger AFTER_INSERT_KEPERLUAN_PINJAM after insert
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_UPDATE_KEPERLUAN before update
+on KEPERLUAN_PINJAM for each row
+begin
+ IF NEW.Nomor_Peminjaman IS NULL THEN
+ SET NEW.Nomor_Peminjaman = OLD.Nomor_Peminjaman;
+ END IF;
+ IF NEW.Keperluan_Pinjam IS NULL THEN
+ SET NEW.Keperluan_Pinjam = OLD.Keperluan_Pinjam;
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL THEN
+ SET NEW.Nama_Penanggung_Jawab = OLD.Nama_Penanggung_Jawab;
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL THEN
+ SET NEW.Ruang_Pinjam = OLD.Ruang_Pinjam;
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SET NEW.Waktu_Mulai = OLD.Waktu_Mulai;
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SET NEW.Waktu_Selesai = OLD.Waktu_Selesai;
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger AFTER_UPDATE_KEPERLUAN_PINJAM after update
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger AFTER_DELETE_KEPERLUAN_PINJAM after delete
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(OLD.Nomor_Peminjaman);
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `peminjam`
+--
+
+DROP TABLE IF EXISTS `peminjam`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `peminjam` (
+ `IDENTITAS_PEMINJAM` varchar(18) NOT NULL,
+ `USERNAME_PETUGAS` varchar(64) NOT NULL,
+ `NAMA_PEMINJAM` varchar(64) NOT NULL,
+ `ALAMAT_PEMINJAM` varchar(256) NOT NULL,
+ `NOMOR_HP_PEMINJAM` varchar(14) NOT NULL,
+ `KETERANGAN_BLACKLIST` varchar(256) DEFAULT NULL,
+ `WAKTU_ADMIN_PEMINJAM_TERAKHIR` datetime NOT NULL,
+ PRIMARY KEY (`IDENTITAS_PEMINJAM`),
+ KEY `FK_PEMINJAM_ADMINISTR_PETUGAS` (`USERNAME_PETUGAS`),
+ CONSTRAINT `FK_PEMINJAM_ADMINISTR_PETUGAS` FOREIGN KEY (`USERNAME_PETUGAS`) REFERENCES `petugas` (`USERNAME_PETUGAS`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `peminjam`
+--
+
+LOCK TABLES `peminjam` WRITE;
+/*!40000 ALTER TABLE `peminjam` DISABLE KEYS */;
+INSERT INTO `peminjam` VALUES ('H00000000','admin','Nama Mhs','Surabaya','0808080808',NULL,'2019-01-04 10:53:21'),('H0876543212','admin','TRISHA','SURABAYA','08765431324',NULL,'2019-01-04 11:00:50'),('h121212123','admin','rifa','sidoarjo','07654321423','Tidak bisa dihubungi','2019-01-04 11:06:40'),('H76217063','admin','Nama mhs','sdfasdfadsfsdfds','0808080808',NULL,'2019-01-04 08:23:25');
+/*!40000 ALTER TABLE `peminjam` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_INSERT_PEMINJAM before insert
+on PEMINJAM for each row
+begin
+
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_UPDATE_PEMINJAM before update
+on PEMINJAM for each row
+begin
+ IF NEW.Nama_Peminjam IS NULL THEN
+ SET NEW.Nama_Peminjam=OLD.Nama_Peminjam;
+ END IF;
+ IF NEW.Alamat_Peminjam IS NULL THEN
+ SET NEW.Alamat_Peminjam=OLD.Alamat_Peminjam;
+ END IF;
+ IF NEW.Identitas_Peminjam IS NULL THEN
+ SET NEW.Identitas_Peminjam=OLD.Identitas_Peminjam;
+ END IF;
+ IF NEW.Nomor_HP_Peminjam IS NULL THEN
+ SET NEW.Nomor_HP_Peminjam=OLD.Nomor_HP_Peminjam;
+ END IF;
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `peminjaman`
+--
+
+DROP TABLE IF EXISTS `peminjaman`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `peminjaman` (
+ `NOMOR_PEMINJAMAN` int(11) NOT NULL AUTO_INCREMENT,
+ `USERNAME_PETUGAS` varchar(64) DEFAULT NULL,
+ `IDENTITAS_PEMINJAM` varchar(18) NOT NULL,
+ `STATUS_PEMINJAMAN` char(1) NOT NULL,
+ `KETERANGAN_PEMINJAMAN` varchar(256) DEFAULT NULL,
+ `WAKTU_PINJAM` datetime NOT NULL,
+ `WAKTU_HARUS_KEMBALI` datetime NOT NULL,
+ `WAKTU_KEMBALI` datetime DEFAULT NULL,
+ `WAKTU_ADMIN_PEMINJAMAN_TERAKHIR` datetime NOT NULL,
+ PRIMARY KEY (`NOMOR_PEMINJAMAN`),
+ KEY `FK_PEMINJAMAN_ADMINISTR_PETUGAS` (`USERNAME_PETUGAS`),
+ KEY `FK_PEMINJAM_MELAKUKAN_PEMINJAM` (`IDENTITAS_PEMINJAM`),
+ KEY `FK_PEMINJAM_PEMINJAMA_STATUS_P` (`STATUS_PEMINJAMAN`),
+ CONSTRAINT `FK_PEMINJAMAN_ADMINISTR_PETUGAS` FOREIGN KEY (`USERNAME_PETUGAS`) REFERENCES `petugas` (`USERNAME_PETUGAS`),
+ CONSTRAINT `FK_PEMINJAM_MELAKUKAN_PEMINJAM` FOREIGN KEY (`IDENTITAS_PEMINJAM`) REFERENCES `peminjam` (`IDENTITAS_PEMINJAM`) ON UPDATE CASCADE,
+ CONSTRAINT `FK_PEMINJAM_PEMINJAMA_STATUS_P` FOREIGN KEY (`STATUS_PEMINJAMAN`) REFERENCES `status_peminjaman` (`STATUS_PEMINJAMAN`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `peminjaman`
+--
+
+LOCK TABLES `peminjaman` WRITE;
+/*!40000 ALTER TABLE `peminjaman` DISABLE KEYS */;
+INSERT INTO `peminjaman` VALUES (1,'admin','H76217063','S',NULL,'2019-01-04 08:23:51','2019-01-04 02:30:00','2019-01-04 10:58:28','2019-01-04 10:58:28'),(2,'admin','H00000000','A',NULL,'2019-01-04 10:57:05','2019-01-04 04:30:00',NULL,'2019-01-04 10:57:05'),(3,'admin','h121212123','S',NULL,'2019-01-04 11:04:09','2019-01-04 16:30:00','2019-01-04 11:07:00','2019-01-04 11:07:00'),(4,'admin','H0876543212','A',NULL,'2019-01-04 11:05:06','2019-01-04 13:30:00',NULL,'2019-01-04 11:05:06'),(5,'admin','H76217063','A',NULL,'2019-01-04 11:06:00','2019-01-04 11:30:00',NULL,'2019-01-04 11:06:00');
+/*!40000 ALTER TABLE `peminjaman` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_INSERT_PEMINJAMAN before insert
+on PEMINJAMAN for each row
+begin
+ DECLARE keterangan_blacklist VARCHAR(320);
+
+
+ SELECT P.Keterangan_Blacklist
+ INTO keterangan_blacklist
+ FROM Peminjam P
+ WHERE P.Identitas_Peminjam=NEW.Identitas_Peminjam;
+
+ IF keterangan_blacklist IS NOT NULL THEN
+ SET keterangan_blacklist = CONCAT('Peminjam terblacklist. Keterangan: ', keterangan_blacklist);
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT=keterangan_blacklist;
+ END IF;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_UPDATE_PEMINJAMAN before update
+on PEMINJAMAN for each row
+begin
+ IF NEW.Status_Peminjaman IS NULL THEN
+ SET NEW.Status_Peminjaman = OLD.Status_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Pinjam IS NULL THEN
+ SET NEW.Waktu_Pinjam = OLD.Waktu_Pinjam;
+ END IF;
+ IF NEW.Keterangan_Peminjaman IS NULL THEN
+ SET NEW.Keterangan_Peminjaman = OLD.Keterangan_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Harus_Kembali IS NULL THEN
+ SET NEW.Waktu_Harus_Kembali = OLD.Waktu_Harus_Kembali;
+ END IF;
+ IF NEW.Waktu_Kembali IS NULL AND NEW.Status_Peminjaman > 1 THEN
+ SET NEW.Waktu_Kembali = OLD.Waktu_Kembali;
+ END IF;
+
+ IF NEW.Username_Petugas IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username petugas harus diisi';
+ END IF;
+
+
+ IF OLD.Status_Peminjaman <> NEW.Status_Peminjaman THEN
+ IF NEW.Status_Peminjaman='A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Anda tidak dapat membuka kembali peminjaman. Silahkan buat peminjaman baru.';
+ ELSE
+ IF EXISTS (SELECT * FROM Barang_Terkini BR WHERE BR.Nomor_Peminjaman=NEW.Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Masih ada barang yang belum dikembalikan';
+ END IF;
+ SET NEW.Waktu_Kembali=NOW();
+ END IF;
+ END IF;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `petugas`
+--
+
+DROP TABLE IF EXISTS `petugas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `petugas` (
+ `USERNAME_PETUGAS` varchar(64) NOT NULL,
+ `NAMA_PETUGAS` varchar(64) NOT NULL,
+ `HASHPASS_PETUGAS` varchar(64) NOT NULL,
+ `SESI_PETUGAS` varchar(64) DEFAULT NULL,
+ `TIMEOUT_SESI_PETUGAS` datetime DEFAULT NULL,
+ PRIMARY KEY (`USERNAME_PETUGAS`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `petugas`
+--
+
+LOCK TABLES `petugas` WRITE;
+/*!40000 ALTER TABLE `petugas` DISABLE KEYS */;
+INSERT INTO `petugas` VALUES ('admin','Nama Admin','c92bc8fbbfddb05b005b4cbbe8d2b9a0','8ca0cac4049055ec085b6743e8e262ce','2019-01-04 11:12:00');
+/*!40000 ALTER TABLE `petugas` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger BEFORE_INSERT_PETUGAS before insert
+on PETUGAS for each row
+begin
+ IF NEW.Username_Petugas IS NULL OR NEW.Username_Petugas = ' ' OR CHAR_LENGTH(NEW.Username_Petugas) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF NEW.Nama_Petugas IS NULL OR NEW.Nama_Petugas = ' ' OR CHAR_LENGTH(NEW.Nama_Petugas) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama tidak valid';
+ END IF;
+
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `riwayat_barang`
+--
+
+DROP TABLE IF EXISTS `riwayat_barang`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `riwayat_barang` (
+ `ID_RIWAYAT_BARANG` int(11) NOT NULL AUTO_INCREMENT,
+ `TIPE_BARANG` char(1) NOT NULL,
+ `NOMOR_BARANG` int(11) NOT NULL,
+ `USERNAME_PETUGAS` varchar(64) NOT NULL,
+ `NOMOR_PEMINJAMAN` int(11) DEFAULT NULL,
+ `STATUS_BARANG` char(1) NOT NULL,
+ `KETERANGAN_BARANG` varchar(256) DEFAULT NULL,
+ `WAKTU_MULAI_RIWAYAT_BARANG` datetime NOT NULL,
+ `WAKTU_BERAKHIR_RIWAYAT_BARANG` datetime DEFAULT NULL,
+ PRIMARY KEY (`ID_RIWAYAT_BARANG`),
+ UNIQUE KEY `UNIQUE_START_TIMELINE` (`TIPE_BARANG`,`NOMOR_BARANG`,`WAKTU_MULAI_RIWAYAT_BARANG`),
+ UNIQUE KEY `UNIQUE_END_TIMELINE` (`TIPE_BARANG`,`NOMOR_BARANG`,`WAKTU_BERAKHIR_RIWAYAT_BARANG`),
+ KEY `FK_RIWAYAT__ADMINISTR_PETUGAS` (`USERNAME_PETUGAS`),
+ KEY `FK_RIWAYAT__BARANG_BE_STATUS_B` (`STATUS_BARANG`),
+ KEY `FK_RIWAYAT__BARANG_DI_PEMINJAM` (`NOMOR_PEMINJAMAN`),
+ CONSTRAINT `FK_RIWAYAT__ADMINISTR_PETUGAS` FOREIGN KEY (`USERNAME_PETUGAS`) REFERENCES `petugas` (`USERNAME_PETUGAS`),
+ CONSTRAINT `FK_RIWAYAT__BARANG_BE_STATUS_B` FOREIGN KEY (`STATUS_BARANG`) REFERENCES `status_barang` (`STATUS_BARANG`) ON UPDATE CASCADE,
+ CONSTRAINT `FK_RIWAYAT__BARANG_DI_PEMINJAM` FOREIGN KEY (`NOMOR_PEMINJAMAN`) REFERENCES `peminjaman` (`NOMOR_PEMINJAMAN`),
+ CONSTRAINT `FK_RIWAYAT__MEMILIKI__BARANG` FOREIGN KEY (`TIPE_BARANG`, `NOMOR_BARANG`) REFERENCES `barang` (`TIPE_BARANG`, `NOMOR_BARANG`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `riwayat_barang`
+--
+
+LOCK TABLES `riwayat_barang` WRITE;
+/*!40000 ALTER TABLE `riwayat_barang` DISABLE KEYS */;
+INSERT INTO `riwayat_barang` VALUES (1,'L',1,'admin',NULL,'A',NULL,'2019-01-04 08:23:08','2019-01-04 08:23:51'),(2,'L',1,'admin',1,'P',NULL,'2019-01-04 08:23:51','2019-01-04 10:58:28'),(3,'L',2,'admin',NULL,'A',NULL,'2019-01-04 10:53:54','2019-01-04 10:57:05'),(4,'L',2,'admin',2,'P',NULL,'2019-01-04 10:57:05',NULL),(5,'L',1,'admin',NULL,'A',NULL,'2019-01-04 10:58:28','2019-01-04 11:04:09'),(6,'L',3,'admin',NULL,'A',NULL,'2019-01-04 10:59:46','2019-01-04 11:05:06'),(7,'K',1,'admin',NULL,'A',NULL,'2019-01-04 10:59:53','2019-01-04 11:04:09'),(8,'K',2,'admin',NULL,'A',NULL,'2019-01-04 10:59:59','2019-01-04 11:06:00'),(9,'L',1,'admin',3,'P',NULL,'2019-01-04 11:04:09','2019-01-04 11:07:00'),(10,'K',1,'admin',3,'P',NULL,'2019-01-04 11:04:09','2019-01-04 11:07:00'),(11,'L',3,'admin',4,'P',NULL,'2019-01-04 11:05:06',NULL),(12,'K',2,'admin',5,'P',NULL,'2019-01-04 11:06:00',NULL),(13,'K',1,'admin',NULL,'A',NULL,'2019-01-04 11:07:00',NULL),(14,'L',1,'admin',NULL,'A',NULL,'2019-01-04 11:07:00',NULL);
+/*!40000 ALTER TABLE `riwayat_barang` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `status_barang`
+--
+
+DROP TABLE IF EXISTS `status_barang`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `status_barang` (
+ `STATUS_BARANG` char(1) NOT NULL,
+ `TEKS_STATUS_BARANG` varchar(16) DEFAULT NULL,
+ PRIMARY KEY (`STATUS_BARANG`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `status_barang`
+--
+
+LOCK TABLES `status_barang` WRITE;
+/*!40000 ALTER TABLE `status_barang` DISABLE KEYS */;
+INSERT INTO `status_barang` VALUES ('A','Ada'),('P','Dipinjam'),('R','Rusak');
+/*!40000 ALTER TABLE `status_barang` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `status_peminjaman`
+--
+
+DROP TABLE IF EXISTS `status_peminjaman`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `status_peminjaman` (
+ `STATUS_PEMINJAMAN` char(1) NOT NULL,
+ `TEKS_STATUS_PEMINJAMAN` varchar(16) DEFAULT NULL,
+ PRIMARY KEY (`STATUS_PEMINJAMAN`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `status_peminjaman`
+--
+
+LOCK TABLES `status_peminjaman` WRITE;
+/*!40000 ALTER TABLE `status_peminjaman` DISABLE KEYS */;
+INSERT INTO `status_peminjaman` VALUES ('A','Aktif'),('B','Batal'),('S','Selesai');
+/*!40000 ALTER TABLE `status_peminjaman` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `tipe_barang`
+--
+
+DROP TABLE IF EXISTS `tipe_barang`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tipe_barang` (
+ `TIPE_BARANG` char(1) NOT NULL,
+ `TEKS_TIPE_BARANG` varchar(16) DEFAULT NULL,
+ PRIMARY KEY (`TIPE_BARANG`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `tipe_barang`
+--
+
+LOCK TABLES `tipe_barang` WRITE;
+/*!40000 ALTER TABLE `tipe_barang` DISABLE KEYS */;
+INSERT INTO `tipe_barang` VALUES ('K','Kabel'),('L','LCD');
+/*!40000 ALTER TABLE `tipe_barang` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Dumping routines for database 'lcddbd'
+--
+/*!50003 DROP FUNCTION IF EXISTS `GET_NAMA_PETUGAS` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` FUNCTION `GET_NAMA_PETUGAS`(Username VARCHAR(16)) RETURNS varchar(64) CHARSET latin1
+BEGIN
+ DECLARE Nama VARCHAR(64);
+ SELECT P.Nama_Petugas INTO Nama FROM Petugas P WHERE P.Username_Petugas=Username;
+ RETURN Nama;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `DELETE_KEPERLUAN_PINJAM` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `DELETE_KEPERLUAN_PINJAM`(
+ IN Id INTEGER,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ DELETE FROM Keperluan_Pinjam
+ WHERE Id_Keperluan_Pinjam=Id;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `HITUNG_WAKTU_HARUS_KEMBALI` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `HITUNG_WAKTU_HARUS_KEMBALI`(
+ IN Nomor_Peminjaman INTEGER
+)
+BEGIN
+ DECLARE err VARCHAR(64);
+ DECLARE waktu_harus_kembali DATETIME;
+ DECLARE username VARCHAR(16);
+
+
+
+ SET waktu_harus_kembali=(
+ SELECT MAX(KP.Waktu_Selesai)+INTERVAL 30 MINUTE
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Nomor_Peminjaman=Nomor_Peminjaman
+ );
+
+
+
+ UPDATE Peminjaman P
+ SET
+ P.Waktu_Harus_Kembali=waktu_harus_kembali,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `INSERT_BARANG` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_BARANG`(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF EXISTS (SELECT * FROM Barang B WHERE B.Nomor_Barang=Nomor_Barang AND B.Tipe_Barang=Tipe_Barang) THEN
+ IF EXISTS (SELECT * FROM Riwayat_Barang RB WHERE RB.Nomor_Barang=Nomor_Barang AND RB.Tipe_Barang=Tipe_Barang AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang sudah ada';
+ END IF;
+ ELSE
+ INSERT INTO Barang(Nomor_Barang, Tipe_Barang) VALUES(Nomor_Barang, Tipe_Barang);
+ END IF;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ 'A',
+ Keterangan_Barang,
+ NOW()
+ );
+
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `INSERT_KEPERLUAN_PINJAM` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_KEPERLUAN_PINJAM`(
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Nomor_Peminjaman INTEGER,
+ IN Sesi CHAR(32),
+ OUT Id_Keperluan_Pinjam INTEGER,
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ INSERT INTO Keperluan_Pinjam(
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ ) VALUES (
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ );
+ SET Id_Keperluan_Pinjam = LAST_INSERT_ID();
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `INSERT_PEMINJAM` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_PEMINJAM`(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ INSERT INTO Peminjam (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ Username_Petugas,
+ Waktu_Admin_Peminjam_Terakhir
+ ) VALUES (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ username,
+ NOW()
+ );
+
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `INSERT_PEMINJAMAN` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_PEMINJAMAN`(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Nomor_Peminjaman INTEGER,
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ SET waktu=NOW();
+
+ START TRANSACTION;
+
+
+ INSERT INTO Peminjaman(
+ Username_Petugas,
+ Identitas_Peminjam,
+ Status_Peminjaman,
+ Keterangan_Peminjaman,
+ Waktu_Pinjam,
+ Waktu_Harus_Kembali,
+ Waktu_Admin_Peminjaman_Terakhir
+ ) VALUES (
+ username,
+ Identitas_Peminjam,
+ 'A',
+ Keterangan_Peminjaman,
+ waktu,
+ Waktu_Harus_Kembali,
+ waktu
+ );
+ SET Nomor_Peminjaman = LAST_INSERT_ID();
+
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `INSERT_PETUGAS_UNSAFE` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_PETUGAS_UNSAFE`(
+ IN Username VARCHAR(16),
+ IN Password VARCHAR(16),
+ IN Nama VARCHAR(64)
+)
+ SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+
+ INSERT INTO Petugas(
+ Username_Petugas,
+ Hashpass_Petugas,
+ Nama_Petugas
+ ) VALUES(
+ Username,
+ MD5(CONCAT(MD5(CONCAT(Password, 'Petugas')), 'Admin')),
+ Nama
+ );
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `LOGIN_PETUGAS` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `LOGIN_PETUGAS`(IN Username VARCHAR(16), IN Hashpass CHAR(32), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ IF Username IS NULL OR Username = ' ' OR CHAR_LENGTH(Username) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF Hashpass IS NULL OR Hashpass = ' ' OR CHAR_LENGTH(Hashpass) < 32 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Hashpass tidak valid';
+ END IF;
+ IF NOT EXISTS (SELECT * FROM Petugas WHERE Petugas.Username_Petugas = Username AND Petugas.Hashpass_Petugas = MD5(CONCAT(Hashpass, 'Admin'))) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username atau password salah';
+ END IF;
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ WHILE EXISTS (SELECT * FROM Petugas WHERE Sesi_Petugas=Sesi) DO
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ END WHILE;
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+
+ UPDATE Petugas SET Sesi_Petugas = Sesi, Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+ SELECT Nama_Petugas INTO Nama FROM Petugas WHERE Sesi_Petugas=Sesi;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `LOGIN_PETUGAS_UNSAFE` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `LOGIN_PETUGAS_UNSAFE`(IN Username VARCHAR(16), IN Password VARCHAR(16), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+ SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+ CALL Login_Petugas(Username, MD5(CONCAT(Password, 'Petugas')), Nama, Sesi, Timeout);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `LOGOUT_PETUGAS` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `LOGOUT_PETUGAS`(
+ IN Sesi_Petugas CHAR(32)
+)
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ UPDATE Petugas P
+ SET P.Sesi_Petugas=NULL,
+ P.Timeout_Sesi_Petugas=NULL
+ WHERE P.Sesi_Petugas=Sesi;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada';
+ END IF;
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `PING_SESI` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `PING_SESI`(
+ IN Sesi CHAR(32),
+ OUT Username VARCHAR(16),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ SET datetime_now = NOW();
+ SELECT Username_Petugas INTO Username FROM Petugas WHERE Sesi_Petugas=Sesi AND Timeout_Sesi_Petugas > datetime_now;
+ IF (SELECT ROW_COUNT()) = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada atau sudah hangus';
+ END IF;
+
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+ UPDATE Petugas SET Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `UPDATE_DETAIL_BARANG` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE_DETAIL_BARANG`(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Status_Barang CHAR(1),
+ IN Nomor_Peminjaman INTEGER,
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+proc_label: BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE id_riwayat_barang_lama INTEGER;
+ DECLARE nomor_peminjaman_lama INTEGER;
+ DECLARE status_barang_lama CHAR(1);
+ DECLARE keterangan_barang_lama VARCHAR(256);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ SELECT
+ RB.Id_Riwayat_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+ INTO
+ id_riwayat_barang_lama,
+ status_barang_lama,
+ nomor_peminjaman_lama,
+ keterangan_barang_lama
+ FROM Riwayat_Barang RB
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ IF Status_Barang = status_barang_lama
+ AND Nomor_Peminjaman = nomor_peminjaman_lama
+ AND Keterangan_Barang = keterangan_barang_lama THEN
+
+ LEAVE proc_label;
+ END IF;
+
+ IF ROW_COUNT() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak ada';
+ END IF;
+
+ IF Status_Barang='P' AND Nomor_Peminjaman IS NULL THEN
+ SET Nomor_Peminjaman=nomor_peminjaman_lama;
+ IF Nomor_Peminjaman IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor peminjaman harus diisi untuk barang berstatus dipinjam';
+ END IF;
+ END IF;
+
+ IF Status_Barang='P' AND Status_Barang=status_barang_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam.';
+ END IF;
+
+ IF Status_Barang<>'P' AND Nomor_Peminjaman IS NOT NULL THEN
+ SET Nomor_Peminjaman=NULL;
+ END IF;
+
+ IF Keterangan_Barang IS NULL THEN
+ SET Keterangan_Barang=keterangan_barang_lama;
+ END IF;
+
+ SET waktu=NOW();
+
+
+
+
+ IF Status_Barang <> status_barang_lama THEN
+ IF Status_Barang = 'P' AND status_barang_lama <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak bisa dipinjam';
+ END IF;
+ IF Status_Barang <> 'A' AND status_barang_lama = 'P' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ IF Status_Barang='P' THEN
+ IF (
+ SELECT P.Status_Peminjaman
+ FROM Peminjaman P
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman
+ ) <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak aktif';
+ END IF;
+ END IF;
+
+ ELSEIF Status_Barang='P' AND Nomor_Peminjaman<>nomor_peminjaman_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ UPDATE Riwayat_Barang RB
+ SET RB.Waktu_Berakhir_Riwayat_Barang=waktu
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ waktu
+ );
+
+ IF Status_Barang = 'A' AND status_barang_lama = 'P' THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+
+ IF nomor_peminjaman_lama IS NOT NULL AND NOT EXISTS (SELECT * FROM Barang_Terkini BT WHERE BT.Nomor_Peminjaman=nomor_peminjaman_lama) THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW(),
+ P.Waktu_Kembali=NOW(),
+ P.Status_Peminjaman='S'
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+ COMMIT;
+
+END; ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `UPDATE_DETAIL_PEMINJAMAN` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE_DETAIL_PEMINJAMAN`(
+ IN Nomor_Peminjaman INTEGER,
+ IN Status_Peminjaman CHAR(1),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjaman P
+ SET
+ P.Status_Peminjaman=Status_Peminjaman,
+ P.Keterangan_Peminjaman=Keterangan_Peminjaman,
+ P.Waktu_Harus_Kembali=Waktu_Harus_Kembali,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `UPDATE_KEPERLUAN_PINJAM` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE_KEPERLUAN_PINJAM`(
+ IN Id_Keperluan_Pinjam INTEGER,
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF NOT EXISTS(SELECT * FROM Peminjaman P WHERE P.Nomor_Peminjaman=Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ada';
+ END IF;
+
+ UPDATE Keperluan_Pinjam KP
+ SET KP.Keperluan_Pinjam = Keperluan_Pinjam,
+ KP.Nama_Penanggung_Jawab = Nama_Penanggung_Jawab,
+ KP.Ruang_Pinjam = Ruang_Pinjam,
+ KP.Waktu_Mulai = Waktu_Mulai,
+ KP.Waktu_Selesai = Waktu_Selesai
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `UPDATE_PEMINJAM` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE_PEMINJAM`(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Keterangan_Blacklist VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjam P
+ SET
+ P.Nama_Peminjam=Nama_Peminjam,
+ P.Alamat_Peminjam=Alamat_Peminjam,
+ P.Nomor_HP_Peminjam=Nomor_HP_Peminjam,
+ P.Keterangan_Blacklist=Keterangan_Blacklist,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjam_Terakhir=NOW()
+ WHERE P.Identitas_Peminjam=Identitas_Peminjam;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjam tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Final view structure for view `barang_terkini`
+--
+
+/*!50001 DROP TABLE IF EXISTS `barang_terkini`*/;
+/*!50001 DROP VIEW IF EXISTS `barang_terkini`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = latin1 */;
+/*!50001 SET character_set_results = latin1 */;
+/*!50001 SET collation_connection = latin1_swedish_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `barang_terkini` AS select `riwayat_barang`.`NOMOR_BARANG` AS `Nomor_Barang`,`riwayat_barang`.`TIPE_BARANG` AS `Tipe_Barang`,`riwayat_barang`.`STATUS_BARANG` AS `Status_Barang`,`riwayat_barang`.`NOMOR_PEMINJAMAN` AS `Nomor_Peminjaman`,`riwayat_barang`.`KETERANGAN_BARANG` AS `Keterangan_Barang` from `riwayat_barang` where isnull(`riwayat_barang`.`WAKTU_BERAKHIR_RIWAYAT_BARANG`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2019-01-04 22:14:27
diff --git a/Mysql Dump/init.sql b/Mysql Dump/init.sql
new file mode 100644
index 0000000..62b66a4
--- /dev/null
+++ b/Mysql Dump/init.sql
@@ -0,0 +1,27 @@
+
+CREATE USER 'client'@'%' IDENTIFIED BY 'asdfasdf';
+
+GRANT USAGE ON `database_name`.* TO 'client'@'%';
+
+GRANT SELECT ON peminjam TO 'client'@'%';
+GRANT SELECT ON barang TO 'client'@'%';
+GRANT SELECT ON keperluan_pinjam TO 'client'@'%';
+GRANT SELECT ON riwayat_barang TO 'client'@'%';
+GRANT SELECT ON peminjaman TO 'client'@'%';
+GRANT SELECT ON status_peminjaman TO 'client'@'%';
+GRANT SELECT ON status_barang TO 'client'@'%';
+GRANT SELECT ON tipe_barang TO 'client'@'%';
+
+GRANT EXECUTE ON PROCEDURE DELETE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGIN_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGOUT_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE PING_SESI TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON FUNCTION GET_NAMA_PETUGAS TO 'client'@'%';
diff --git a/PowerDesigner/LCD.cdb b/PowerDesigner/LCD.cdb
new file mode 100644
index 0000000..ab96242
--- /dev/null
+++ b/PowerDesigner/LCD.cdb
@@ -0,0 +1,3550 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+FC2D7782-6894-4E35-835E-66F89C7497B5
+LCD
+LCD
+1542535354
+Lenovo2
+1545882342
+user
+[FolderOptions]
+
+[FolderOptions\Conceptual Data Objects]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Package\ChildShortcut]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item]
+
+[FolderOptions\CheckModel\Data Item\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoNotUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoUsedSevTime]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoDiffDomn]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity]
+
+[FolderOptions\CheckModel\Entity\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNoAttrNo]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNbSerials]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNoAttrYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSamePrnt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttMultInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSevInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\PidtfInhrAtt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute]
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier]
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckIncludeColl - Entt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\IdtfChildPIdtf]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship]
+
+[FolderOptions\CheckModel\Relationship\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshMnyMny]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshDepdChild]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association]
+
+[FolderOptions\CheckModel\Association\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbLink]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbIdLink1]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbIdLink2]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscIdPass]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscMaxCard]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscReflex]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscMnyMny]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance]
+
+[FolderOptions\CheckModel\Inheritance\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\EmptyColl - CHILDCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Conceptual options]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+InfoUnique=Yes
+AllowReuse=Yes
+InfoAllowReuse=Yes
+Notation=2
+RlshUnique=Yes
+DefaultDttp=
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyExat=No
+DomnCopyMand=No
+DttpFullName=Yes
+RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%.
+RlshAsstExt=
+
+[ModelOptions\Conceptual options\NamingOptionsTemplates]
+
+[ModelOptions\Conceptual options\ClssNamingOptions]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Pdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+BuildTrgr=No
+TablePrefix=
+IndxPKName=%TABLE%_PK
+IndxAKName=%TABLE%_AK
+IndxFKName=%REFR%_FK
+IndxThreshold=
+ClassPrefix=
+ColnFKName=%.3:PARENT%_%COLUMN%
+ColnFKNameUse=No
+
+[ModelOptions\Generate\Oom]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=Yes
+PreserveMode=Yes
+
+[ModelOptions\Generate\Ldm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+PreserveMode=Yes
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.cdm
+
+
+714CC244-EB73-464B-8455-697BB9CFC741
+LCD
+LCD
+1542538110
+Lenovo2
+1542538110
+Lenovo2
+
+C2DA0AAA-7FA7-43FB-8ED2-CF5DCA5E27B7
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+79B52AD6-E399-4ADC-AEED-D4C9A741E9FE
+LCD
+LCD
+1543328491
+Lenovo2
+1543328491
+Lenovo2
+
+93B454DE-D8AA-44ED-9517-38AB9B1E3763
+18112060-1A4B-11D1-83D9-444553540000
+
+
+C65AAF34-4EAD-44CD-87D5-6463BAF3BD45
+LCD
+LCD
+1544787964
+Lenovo2
+1544787964
+Lenovo2
+
+BD8FB69F-80F1-4110-8B03-DE47F6A42299
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+6039B82F-2B3D-4854-B0BA-54C0149F14E6
+LCD
+LCD
+1544934056
+Lenovo2
+1544934056
+Lenovo2
+
+18A2988D-19E2-4878-9C37-D406CBA7BE9A
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+68545565-B9ED-4DFD-995F-770A9ABCBCA6
+LCD
+LCD
+1545736490
+user
+1545736490
+user
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+
+
+2EF18832-7E63-41A4-845C-5C1308FE1984
+LCD
+LCD
+1542535355
+Lenovo2
+1545882342
+user
+[DisplayPreferences]
+
+[DisplayPreferences\CDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1544933221
+1545736421
+(4955, -1196)
+((-37348,12151), (-25081,21137))
+((-36148,12551),(-36148,19737))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933463
+1545736421
+((-41576,25079), (-6467,41828))
+((-6867,40809),(-36139,40809),(-36139,26479))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933464
+1545736343
+((-2940,25914), (13260,37351))
+((5160,36951),(5160,27314))
+1
+4371
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933549
+1545812431
+(14, -275)
+((1167,8712), (10917,19024))
+((6028,18624),(6028,10112))
+1
+4628
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545736024
+1545736421
+((-24279,21777), (-8521,24177))
+((-22879,22977),(-8921,22977))
+1
+5137
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545736173
+1545882335
+((17821,23796), (28664,26196))
+((28264,24996),(18549,24996))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545736359
+1545882332
+(-4440, 394)
+((9531,26611), (45658,42975))
+((9931,41551),(42448,41551),(42448,27011))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545882169
+1545882344
+((-56239,21908), (-47999,24308))
+((-55839,23108),(-49399,23108))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882249
+1545882250
+((-53866,9651), (-42643,11571))
+((-53466,10551),(-43043,10551))
+1
+4631
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882342
+1545882342
+((17821,18024), (28905,20424))
+((28505,19224),(19221,19224))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1542535366
+1545736298
+-1
+((-8921,18624), (19221,27314))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542535367
+1545736343
+-1
+((-6867,36951), (15713,44667))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542535370
+1545736421
+-1
+((-43043,8551), (-29499,12551))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542536233
+1545736336
+-1
+((-6074,1422), (18130,10112))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1544877879
+1545736421
+-1
+((-49399,19737), (-22879,26479))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545735864
+1545882332
+-1
+((28264,22392), (55480,31082))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882110
+1545882344
+-1
+((-77339,21423), (-55839,26217))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882113
+1545882250
+-1
+((-74424,8188), (-53466,12982))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882277
+1545882337
+-1
+((28505,16084), (52091,20878))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+55B8452B-5D32-4503-8C30-48C89C1B74AE
+Peminjaman
+PEMINJAMAN
+1542535366
+Lenovo2
+1545882443
+user
+
+
+31B046B1-A4C8-4714-81F8-BB7EB106A8E7
+Identifier_1
+IDENTIFIER_1
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+BF46ED25-9207-48EB-8E78-6BA8C18159C3
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+1
+
+
+
+
+
+203B69FE-246A-4C7E-A730-992E303F6D3B
+1545736224
+user
+1545736239
+user
+
+
+
+
+
+B12F0ECB-FD98-487A-B151-F62D4B0E3486
+1545736224
+user
+1545736239
+user
+1
+
+
+
+
+
+0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76
+1545811022
+user
+1545811063
+user
+1
+
+
+
+
+
+584DE94B-99D8-40E2-AF33-14E5EEB0A747
+1545736224
+user
+1545736239
+user
+
+
+
+
+
+364039B9-3C9A-4BBF-9A15-606C658C4D37
+1545811380
+user
+1545811409
+user
+1
+
+
+
+
+
+
+
+6FE91B06-BFF3-43BE-AD99-838BCAD29B9D
+Petugas
+PETUGAS
+1542535367
+Lenovo2
+1545806294
+user
+
+
+60396C66-C10A-4C1A-8882-3638FE27393C
+Identifier_1
+IDENTIFIER_1
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+6A877022-56FB-4A1C-A1F2-01E82F95B35D
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+51F1354E-718E-4D22-A13A-756688479756
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+6CC33874-6734-4E4C-AA02-D6856A4A5F47
+1542536531
+Lenovo2
+1542536607
+Lenovo2
+
+
+
+
+
+F12EB1A4-DCE2-405C-B80D-973E76C68758
+1542536531
+Lenovo2
+1542536607
+Lenovo2
+
+
+
+
+
+
+
+F187F009-5829-4542-93B6-379273CE9E96
+Barang
+BARANG
+1542535370
+Lenovo2
+1545882254
+user
+
+
+D20F8C19-09B3-48B9-BF4B-BE9263947981
+Identifier_1
+IDENTIFIER_1
+1544933206
+Lenovo2
+1545882215
+user
+
+
+
+
+
+
+
+
+
+
+E20DB59F-9B35-4147-A619-9FBEB30B0B4F
+1542535422
+Lenovo2
+1545794991
+user
+1
+
+
+
+
+
+
+
+D59E323B-F178-4442-A688-93A883DAF7B7
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1542536233
+Lenovo2
+1545736335
+user
+
+
+2F11BA23-8474-4BEA-8D6A-3603F5927AA8
+Identifier_1
+IDENTIFIER_1
+1542536298
+Lenovo2
+1542536370
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+2E1269FA-5311-4C87-A578-969754041E4A
+1542536298
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+1EC0F598-7EF3-4F7A-832A-6237CE63030F
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+C5AE339A-26B1-471F-85A9-06702DBAE421
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+ABE9B8B1-AE32-497C-A295-E18C283E8D45
+1542624445
+Lenovo2
+1542624495
+Lenovo2
+1
+
+
+
+
+
+4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+9FC86DB0-C033-46CB-B5BC-3882DB2E0984
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+
+
+BE695DE0-DD52-4706-BDD1-7114F1752D6E
+Riwayat_Barang
+RIWAYAT_BARANG
+1544877879
+Lenovo2
+1545882443
+user
+
+
+69A2A70E-41BF-4689-A17C-24D073D6BDB3
+Identifier_1
+IDENTIFIER_1
+1544933722
+Lenovo2
+1544933741
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+4320093C-5EDB-409E-BD74-F8733C811D3E
+1544889340
+Lenovo2
+1544933741
+Lenovo2
+1
+
+
+
+
+
+BDBF8F76-470E-42CC-AA22-057AA22EAF1E
+1544889340
+Lenovo2
+1544889364
+Lenovo2
+
+
+
+
+
+C9F2898C-4ADC-41AE-9821-E89CAEAE0924
+1544933914
+Lenovo2
+1544933980
+Lenovo2
+1
+
+
+
+
+
+95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C
+1544934627
+Lenovo2
+1544934647
+Lenovo2
+
+
+
+
+
+
+
+FFDABF60-EAE7-4E70-9008-83498551821A
+Peminjam
+PEMINJAM
+1545735864
+user
+1545882427
+user
+
+
+22027363-79DE-4FE7-AE38-A9F331886544
+Identifier_1
+IDENTIFIER_1
+1545736034
+user
+1545736068
+user
+
+
+
+
+
+
+
+
+
+
+48B85F55-C048-4A5C-ACF7-16667562EE79
+1545735872
+user
+1545736068
+user
+1
+
+
+
+
+
+AE08FEAB-85B8-4CF0-82B8-7D790743D4A5
+1545735896
+user
+1545735931
+user
+1
+
+
+
+
+
+5E3B658B-EECF-4834-A257-F6DE66663BE6
+1545807732
+user
+1545807757
+user
+1
+
+
+
+
+
+7E4E8EBB-1885-4482-9B9C-326BE48F64CC
+1545735896
+user
+1545735931
+user
+1
+
+
+
+
+
+44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4
+1545735896
+user
+1545735979
+user
+
+
+
+
+
+12FDBE3F-E628-416A-AC2A-D57014BA79CE
+1545811349
+user
+1545811414
+user
+1
+
+
+
+
+
+
+
+3C806A88-E446-4FDA-8ECF-6CE4F9E501F7
+Status_Barang
+STATUS_BARANG
+1545882110
+user
+1545882349
+user
+
+
+575DC4AD-2D17-491E-B548-79D532409ABF
+Identifier_1
+IDENTIFIER_1
+1545882265
+user
+1545882269
+user
+
+
+
+
+
+
+
+
+
+
+A976B52C-3DDC-4E69-9133-FE8DCF21378F
+1545882114
+user
+1545882269
+user
+1
+
+
+
+
+
+29C6662F-D24E-4DEE-86FF-CDB32650C346
+1545882114
+user
+1545882157
+user
+
+
+
+
+
+
+
+21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D
+Tipe_Barang
+TIPE_BARANG
+1545882113
+user
+1545882264
+user
+
+
+4882EACA-B7BD-44E3-8395-52C76393B717
+Identifier_1
+IDENTIFIER_1
+1545882259
+user
+1545882264
+user
+
+
+
+
+
+
+
+
+
+
+C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2
+1545882216
+user
+1545882264
+user
+1
+
+
+
+
+
+81283A92-2185-4C1F-9A7B-8E9CE7F1064F
+1545882216
+user
+1545882243
+user
+
+
+
+
+
+
+
+A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882277
+user
+1545882412
+user
+
+
+189F29D6-7416-40A9-99F0-D56A730B20A1
+Identifier_1
+IDENTIFIER_1
+1545882320
+user
+1545882325
+user
+
+
+
+
+
+
+
+
+
+
+D1C6BAD0-4540-4A58-AD0B-03D5C2290932
+1545882278
+user
+1545882325
+user
+1
+
+
+
+
+
+6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38
+1545882278
+user
+1545882312
+user
+
+
+
+
+
+
+
+
+
+CAF22019-683A-4606-A434-4AF1B43FC192
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1544933221
+Lenovo2
+1544933894
+Lenovo2
+0,n
+1,1
+
+
+
+
+
+
+
+
+52FB82BC-B129-45B6-94E6-0CEA2EE01736
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1544933463
+Lenovo2
+1544934152
+Lenovo2
+0,n
+1,1
+
+
+
+
+
+
+
+
+17BAEB7F-E238-4518-A29D-22F822BAEBB3
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1544933464
+Lenovo2
+1545736395
+user
+0,n
+0,1
+
+
+
+
+
+
+
+
+DE55DE18-A4CE-4777-9DB4-C2D6E6857262
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1544933549
+Lenovo2
+1545736335
+user
+1,n
+1,1
+
+
+
+
+
+
+
+
+6642186D-AE4B-478E-AFB3-003B841DDB38
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545736024
+user
+1545882443
+user
+0,1
+1,n
+
+
+
+
+
+
+
+
+89C54AB1-F0F7-478E-9464-3984504D4E69
+Melakukan
+MELAKUKAN
+1545736173
+user
+1545882427
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+2BB40579-AFE4-481D-82D3-7B68BB2CE86B
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736359
+user
+1545736408
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+42514B80-385D-4C35-B6AC-13AFB1074D71
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882169
+user
+1545882349
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+C5002C15-EF11-45C5-8ACF-96F9512CA34C
+Bertipe
+BERTIPE
+1545882249
+user
+1545882254
+user
+B
+0,n
+1,1
+
+
+
+
+
+
+
+
+973A9C6D-016B-4CE1-A006-6F6D78BE16E7
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882342
+user
+1545882412
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+
+
+BAB71D4E-EEB4-497D-B603-237145507B76
+Nomor_Barang
+NOMOR_BARANG
+1542535422
+Lenovo2
+1544626705
+Lenovo2
+I
+
+
+CE866C08-3956-4390-B495-98DD18E96885
+Id_LCD
+ID_LCD
+1542535431
+Lenovo2
+1542535483
+Lenovo2
+
+
+5548B9F8-F347-44F0-9B1D-499A392D759B
+Nomor_LCD
+NOMOR_LCD
+1542535440
+Lenovo2
+1542535483
+Lenovo2
+I
+
+
+84886371-0A37-4557-9550-0BE543F6646D
+Status_LCD
+STATUS_LCD
+1542535440
+Lenovo2
+1542535554
+Lenovo2
+I
+
+
+8E1CD4A3-0B01-48B0-92D0-35BCA0623D09
+Keterangan_LCD
+KETERANGAN_LCD
+1542535440
+Lenovo2
+1542535554
+Lenovo2
+VA256
+256
+
+
+655A2533-7F3E-4D65-922D-C8EB65FF9AC8
+Status_Braang
+STATUS_BRAANG
+1542535484
+Lenovo2
+1544889391
+Lenovo2
+I
+
+
+9EBEF594-B895-4104-B196-B3C6B5195C24
+Keterangan_Barang
+KETERANGAN_BARANG
+1542535484
+Lenovo2
+1544889391
+Lenovo2
+VA256
+256
+
+
+B4D77A8B-97BC-4611-B892-8D3D029CFB47
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+I
+
+
+E454E9AA-F3FB-4D8A-9C8D-19B3397D37A1
+Tanggal_Peminjaman
+TANGGAL_PEMINJAMAN
+1542535568
+Lenovo2
+1544787920
+Lenovo2
+D
+
+
+E7076DBA-8529-48B2-903E-03D5EDAB0C00
+Nama_Peminjam
+NAMA_PEMINJAM
+1542535568
+Lenovo2
+1545735931
+user
+VA64
+64
+
+
+DA54F789-86E9-4127-A633-FBE5739EA362
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1542535568
+Lenovo2
+1545736068
+user
+VA18
+18
+
+
+FE504830-BD8C-48C4-9AF9-EB9AE6307BDE
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1542535568
+Lenovo2
+1545835720
+user
+VA14
+14
+
+
+D0F52FB2-6D3C-4381-95E1-A511FDEB770F
+Nomor_HP_Blacklist
+NOMOR_HP_BLACKLIST
+1542535927
+Lenovo2
+1544627017
+Lenovo2
+VA14
+14
+
+
+6C52E2B9-1C69-486F-A0C0-76BF98B2FE65
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1542535927
+Lenovo2
+1545735979
+user
+VA256
+256
+
+
+F6D708AB-E95A-43DB-9092-9E36819E7374
+Username_Petugas
+USERNAME_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+973FC1E3-66D7-467A-BD31-AE2AF9EFC055
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+20C158EB-1CC7-4CDF-AA63-FBAFE8BFDCFA
+Nama_Petugas
+NAMA_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+E9112501-6F34-49CE-9729-2E508DBE30B3
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+VA64
+64
+
+
+0917ECF8-9593-4C12-88BB-227AC05F8B35
+Waktu_Mulai
+WAKTU_MULAI
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+DT
+
+
+48A973E3-DC0F-411A-96A0-81AD6F3B5DBE
+Waktu_Selesai
+WAKTU_SELESAI
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+DT
+
+
+ADEC3001-C5DD-4FC3-8C47-80DFF29D64EE
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+VA64
+64
+
+
+82A1E977-10E6-4AFD-B95B-C1575CB5C4AE
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1542536298
+Lenovo2
+1544626881
+Lenovo2
+I
+
+
+D33660CE-6A14-44AB-8C46-63E5D7CF7003
+Sesi_Petugas
+SESI_PETUGAS
+1542536531
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+5BDCEB38-4DC6-46CB-8AC7-D0D96FE3D8BE
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1542536531
+Lenovo2
+1545806315
+user
+DT
+
+
+AD0A0376-A651-4B9D-A8E2-D5EA70EE0CEA
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1542536764
+Lenovo2
+1545882319
+user
+A1
+1
+
+
+73721979-BEF2-4993-9C3D-4C0597F4CC5D
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1542536764
+Lenovo2
+1545736239
+user
+VA256
+256
+
+
+288E2230-B48D-483A-8572-1F98EB0A6325
+Ruang_Pinjam
+RUANG_PINJAM
+1542624445
+Lenovo2
+1544626997
+Lenovo2
+VA64
+64
+
+
+D7FC0E7F-316B-497A-9CEA-DDAFAC6B3B15
+Tipe_Barang
+TIPE_BARANG
+1544626665
+Lenovo2
+1545882243
+user
+A1
+1
+
+
+BB6453F0-34DA-4B06-B274-261C07C898E8
+Waktu_Pinjam
+WAKTU_PINJAM
+1544626883
+Lenovo2
+1545736239
+user
+NOW()
+DT
+
+
+32B9D7F2-2702-408D-9109-F8A54E143EB0
+Waktu_Kembali
+WAKTU_KEMBALI
+1544626883
+Lenovo2
+1545736239
+user
+DT
+
+
+41B67BF4-8A98-4DC3-AE10-CD79E45FFABA
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1544889340
+Lenovo2
+1544933741
+Lenovo2
+I
+
+
+AFFA8A29-2FB8-45FB-9C79-18145978C7AC
+Id_Barang
+ID_BARANG
+1544889340
+Lenovo2
+1545794991
+user
+I
+
+
+6D664027-EB6A-4BE7-8E02-B5A5E3096C39
+Status_Barang
+STATUS_BARANG
+1544889340
+Lenovo2
+1545882166
+user
+A1
+1
+
+
+9358621E-52F1-4006-885C-8F0E10F02FD8
+Id_Riwayat_Peminjaman
+ID_RIWAYAT_PEMINJAMAN
+1544933264
+Lenovo2
+1544933280
+Lenovo2
+I
+
+
+0B95ECB7-EE4A-483F-BBE5-1D5DBE0FB2F7
+Id_Riwayat_Blacklist
+ID_RIWAYAT_BLACKLIST
+1544933395
+Lenovo2
+1544933439
+Lenovo2
+I
+
+
+7E59C647-1718-4074-88C9-5213F23A9A16
+Waktu_Mulai_Riwayat_Blacklist
+WAKTU_MULAI_RIWAYAT_BLACKLIST
+1544933395
+Lenovo2
+1544934687
+Lenovo2
+DT
+
+
+9B571CAE-31B1-476B-8786-FBA2010FE5D6
+Operasi_Blacklist
+OPERASI_BLACKLIST
+1544933395
+Lenovo2
+1544933439
+Lenovo2
+I
+
+
+1E6D54C9-1A9A-400C-8ABD-03BD3ED493EA
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1544933914
+Lenovo2
+1544934647
+Lenovo2
+DT
+
+
+739B5709-2F9D-46BC-B8CB-A878A2DF1109
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1544934627
+Lenovo2
+1544934647
+Lenovo2
+DT
+
+
+99155C81-65E0-4965-94AB-716B917EE3E5
+Waktu_Berangkir_Riwayat_Blacklist
+WAKTU_BERANGKIR_RIWAYAT_BLACKLIST
+1544934667
+Lenovo2
+1544934687
+Lenovo2
+DT
+
+
+CDD8DF3B-F9CE-4B4D-8082-600B60CC6D48
+Attribute_43
+ATTRIBUTE_43
+1545735872
+user
+1545735931
+user
+
+
+DC279B68-6928-4C18-8233-40FB2F9071AC
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807732
+user
+1545807757
+user
+VA256
+256
+
+
+38C581DA-6A31-4E88-B9A8-FD542B7386B3
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811022
+user
+1545811034
+user
+DT
+
+
+CC66698A-81C0-415C-A79D-50DD691F07FF
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811349
+user
+1545811377
+user
+DT
+
+
+05E803AC-0271-4FE5-9AAC-20AF6DD8BF6C
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811380
+user
+1545811400
+user
+DT
+
+
+A1A90187-D231-4A62-8B00-22EBB37EEA7E
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882114
+user
+1545882157
+user
+VA16
+16
+
+
+BEE67549-1553-4C9D-AF2E-5668ADBE820B
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882216
+user
+1545882243
+user
+VA16
+16
+
+
+C2F4639B-EE68-47F8-9B86-4587B2FC12F7
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882278
+user
+1545882312
+user
+VA16
+16
+
+
+
+
+6DD005D2-067C-4FDD-BCA7-AFB3026D25B9
+LCD
+LCD
+1542538110
+Lenovo2
+1544627180
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldb
+C2DA0AAA-7FA7-43FB-8ED2-CF5DCA5E27B7
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544627180
+
+
+
+
+
+C9DEF392-8D24-4A46-BEF7-2C2E88D6B2EE
+LCD
+LCD
+1543328491
+Lenovo2
+1543328545
+Lenovo2
+file:///C|/Users/Lenovo2/Documents/RPL/Design/PowerDesigner/LCD.oom
+93B454DE-D8AA-44ED-9517-38AB9B1E3763
+18112060-1A4B-11D1-83D9-444553540000
+1543328492
+
+
+
+
+
+2DE71D4E-60D6-4549-9263-365290F95C9D
+LCD
+LCD
+1544787964
+Lenovo2
+1544789363
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldm
+BD8FB69F-80F1-4110-8B03-DE47F6A42299
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544789363
+
+
+
+
+
+85C3A944-C96A-4564-9A16-BEA003D62CF3
+LCD
+LCD
+1544934056
+Lenovo2
+1544934738
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldm
+18A2988D-19E2-4878-9C37-D406CBA7BE9A
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544934738
+
+
+
+
+
+98320856-BD88-4398-97AE-88D5C6C17C4B
+LCD
+LCD
+1545736490
+user
+1545882484
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.ldm
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1545884130
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/LCD.cdm b/PowerDesigner/LCD.cdm
new file mode 100644
index 0000000..c437efa
--- /dev/null
+++ b/PowerDesigner/LCD.cdm
@@ -0,0 +1,3550 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+FC2D7782-6894-4E35-835E-66F89C7497B5
+LCD
+LCD
+1542535354
+Lenovo2
+1546273431
+user
+[FolderOptions]
+
+[FolderOptions\Conceptual Data Objects]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Package\ChildShortcut]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item]
+
+[FolderOptions\CheckModel\Data Item\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoNotUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoUsedSevTime]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\InfoDiffDomn]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Item\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity]
+
+[FolderOptions\CheckModel\Entity\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNoAttrNo]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNbSerials]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNoAttrYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSamePrnt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttMultInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSevInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\PidtfInhrAtt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute]
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier]
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckIncludeColl - Entt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\IdtfChildPIdtf]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship]
+
+[FolderOptions\CheckModel\Relationship\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshMnyMny]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshDepdChild]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association]
+
+[FolderOptions\CheckModel\Association\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbLink]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbIdLink1]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscNbIdLink2]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscIdPass]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscMaxCard]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscReflex]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\AsscMnyMny]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance]
+
+[FolderOptions\CheckModel\Inheritance\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\EmptyColl - CHILDCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Conceptual options]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+InfoUnique=Yes
+AllowReuse=Yes
+InfoAllowReuse=Yes
+Notation=2
+RlshUnique=Yes
+DefaultDttp=
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyExat=No
+DomnCopyMand=No
+DttpFullName=Yes
+RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%.
+RlshAsstExt=
+
+[ModelOptions\Conceptual options\NamingOptionsTemplates]
+
+[ModelOptions\Conceptual options\ClssNamingOptions]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\INFO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ENTT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\IDTF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\RLSH\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\ASSC\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR]
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Conceptual options\ClssNamingOptions\CDMINHR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Pdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+BuildTrgr=No
+TablePrefix=
+IndxPKName=%TABLE%_PK
+IndxAKName=%TABLE%_AK
+IndxFKName=%REFR%_FK
+IndxThreshold=
+ClassPrefix=
+ColnFKName=%.3:PARENT%_%COLUMN%
+ColnFKNameUse=No
+
+[ModelOptions\Generate\Oom]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=Yes
+PreserveMode=Yes
+
+[ModelOptions\Generate\Ldm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+PreserveMode=Yes
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.cdm
+
+
+714CC244-EB73-464B-8455-697BB9CFC741
+LCD
+LCD
+1542538110
+Lenovo2
+1542538110
+Lenovo2
+
+C2DA0AAA-7FA7-43FB-8ED2-CF5DCA5E27B7
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+79B52AD6-E399-4ADC-AEED-D4C9A741E9FE
+LCD
+LCD
+1543328491
+Lenovo2
+1543328491
+Lenovo2
+
+93B454DE-D8AA-44ED-9517-38AB9B1E3763
+18112060-1A4B-11D1-83D9-444553540000
+
+
+C65AAF34-4EAD-44CD-87D5-6463BAF3BD45
+LCD
+LCD
+1544787964
+Lenovo2
+1544787964
+Lenovo2
+
+BD8FB69F-80F1-4110-8B03-DE47F6A42299
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+6039B82F-2B3D-4854-B0BA-54C0149F14E6
+LCD
+LCD
+1544934056
+Lenovo2
+1544934056
+Lenovo2
+
+18A2988D-19E2-4878-9C37-D406CBA7BE9A
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+68545565-B9ED-4DFD-995F-770A9ABCBCA6
+LCD
+LCD
+1545736490
+user
+1545736490
+user
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+
+
+2EF18832-7E63-41A4-845C-5C1308FE1984
+LCD
+LCD
+1542535355
+Lenovo2
+1546273431
+user
+[DisplayPreferences]
+
+[DisplayPreferences\CDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1544933221
+1545736421
+(4955, -1196)
+((-37348,12151), (-25081,21137))
+((-36148,12551),(-36148,19737))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933463
+1545736421
+((-41576,25079), (-6467,41826))
+((-6867,40809),(-36139,40809),(-36139,26479))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933464
+1545736343
+((-2940,25914), (13260,37351))
+((5160,36951),(5160,27314))
+1
+4371
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1544933549
+1545812431
+(14, -275)
+((1167,8712), (10917,19024))
+((6028,18624),(6028,10112))
+1
+4628
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545736024
+1545736421
+((-24279,21777), (-8521,24177))
+((-22879,22977),(-8921,22977))
+1
+5137
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545736173
+1545882335
+((17821,23796), (28664,26196))
+((28264,24996),(18549,24996))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545736359
+1545882332
+(-4440, 394)
+((9531,26611), (45658,42975))
+((9931,41551),(42448,41551),(42448,27011))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545882169
+1545882344
+((-56239,21908), (-47999,24308))
+((-55839,23108),(-49399,23108))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882249
+1545882250
+((-53866,9651), (-42643,11569))
+((-53466,10551),(-43043,10551))
+1
+4631
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882342
+1545882342
+((17821,18024), (28905,20424))
+((28505,19224),(19221,19224))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1542535366
+1545736298
+-1
+((-8921,18624), (19221,27314))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542535367
+1545736343
+-1
+((-6867,36951), (15713,44667))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542535370
+1545736421
+-1
+((-43043,8551), (-29499,12551))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1542536233
+1545736336
+-1
+((-6074,1422), (18130,10112))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1544877879
+1545736421
+-1
+((-49399,19737), (-22879,26479))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545735864
+1545882332
+-1
+((28264,22392), (55480,31082))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882110
+1545882344
+-1
+((-77339,21423), (-55839,26217))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882113
+1545882250
+-1
+((-74424,8188), (-53466,12982))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545882277
+1545882337
+-1
+((28505,16084), (52091,20878))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+55B8452B-5D32-4503-8C30-48C89C1B74AE
+Peminjaman
+PEMINJAMAN
+1542535366
+Lenovo2
+1545882443
+user
+
+
+31B046B1-A4C8-4714-81F8-BB7EB106A8E7
+Identifier_1
+IDENTIFIER_1
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+BF46ED25-9207-48EB-8E78-6BA8C18159C3
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+1
+
+
+
+
+
+203B69FE-246A-4C7E-A730-992E303F6D3B
+1545736224
+user
+1545736239
+user
+
+
+
+
+
+B12F0ECB-FD98-487A-B151-F62D4B0E3486
+1545736224
+user
+1545736239
+user
+1
+
+
+
+
+
+0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76
+1545811022
+user
+1545811063
+user
+1
+
+
+
+
+
+584DE94B-99D8-40E2-AF33-14E5EEB0A747
+1545736224
+user
+1545736239
+user
+
+
+
+
+
+364039B9-3C9A-4BBF-9A15-606C658C4D37
+1545811380
+user
+1545811409
+user
+1
+
+
+
+
+
+
+
+6FE91B06-BFF3-43BE-AD99-838BCAD29B9D
+Petugas
+PETUGAS
+1542535367
+Lenovo2
+1545806294
+user
+
+
+60396C66-C10A-4C1A-8882-3638FE27393C
+Identifier_1
+IDENTIFIER_1
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+6A877022-56FB-4A1C-A1F2-01E82F95B35D
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+51F1354E-718E-4D22-A13A-756688479756
+1542536038
+Lenovo2
+1542536093
+Lenovo2
+1
+
+
+
+
+
+6CC33874-6734-4E4C-AA02-D6856A4A5F47
+1542536531
+Lenovo2
+1542536607
+Lenovo2
+
+
+
+
+
+F12EB1A4-DCE2-405C-B80D-973E76C68758
+1542536531
+Lenovo2
+1542536607
+Lenovo2
+
+
+
+
+
+
+
+F187F009-5829-4542-93B6-379273CE9E96
+Barang
+BARANG
+1542535370
+Lenovo2
+1545882254
+user
+
+
+D20F8C19-09B3-48B9-BF4B-BE9263947981
+Identifier_1
+IDENTIFIER_1
+1544933206
+Lenovo2
+1545882215
+user
+
+
+
+
+
+
+
+
+
+
+E20DB59F-9B35-4147-A619-9FBEB30B0B4F
+1542535422
+Lenovo2
+1545794991
+user
+1
+
+
+
+
+
+
+
+D59E323B-F178-4442-A688-93A883DAF7B7
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1542536233
+Lenovo2
+1545736335
+user
+
+
+2F11BA23-8474-4BEA-8D6A-3603F5927AA8
+Identifier_1
+IDENTIFIER_1
+1542536298
+Lenovo2
+1542536370
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+2E1269FA-5311-4C87-A578-969754041E4A
+1542536298
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+1EC0F598-7EF3-4F7A-832A-6237CE63030F
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+C5AE339A-26B1-471F-85A9-06702DBAE421
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+ABE9B8B1-AE32-497C-A295-E18C283E8D45
+1542624445
+Lenovo2
+1542624495
+Lenovo2
+1
+
+
+
+
+
+4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+9FC86DB0-C033-46CB-B5BC-3882DB2E0984
+1542536242
+Lenovo2
+1542536370
+Lenovo2
+1
+
+
+
+
+
+
+
+BE695DE0-DD52-4706-BDD1-7114F1752D6E
+Riwayat_Barang
+RIWAYAT_BARANG
+1544877879
+Lenovo2
+1545882443
+user
+
+
+69A2A70E-41BF-4689-A17C-24D073D6BDB3
+Identifier_1
+IDENTIFIER_1
+1544933722
+Lenovo2
+1544933741
+Lenovo2
+
+
+
+
+
+
+
+
+
+
+4320093C-5EDB-409E-BD74-F8733C811D3E
+1544889340
+Lenovo2
+1544933741
+Lenovo2
+1
+
+
+
+
+
+BDBF8F76-470E-42CC-AA22-057AA22EAF1E
+1544889340
+Lenovo2
+1544889364
+Lenovo2
+
+
+
+
+
+C9F2898C-4ADC-41AE-9821-E89CAEAE0924
+1544933914
+Lenovo2
+1544933980
+Lenovo2
+1
+
+
+
+
+
+95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C
+1544934627
+Lenovo2
+1544934647
+Lenovo2
+
+
+
+
+
+
+
+FFDABF60-EAE7-4E70-9008-83498551821A
+Peminjam
+PEMINJAM
+1545735864
+user
+1545882427
+user
+
+
+22027363-79DE-4FE7-AE38-A9F331886544
+Identifier_1
+IDENTIFIER_1
+1545736034
+user
+1545736068
+user
+
+
+
+
+
+
+
+
+
+
+48B85F55-C048-4A5C-ACF7-16667562EE79
+1545735872
+user
+1545736068
+user
+1
+
+
+
+
+
+AE08FEAB-85B8-4CF0-82B8-7D790743D4A5
+1545735896
+user
+1545735931
+user
+1
+
+
+
+
+
+5E3B658B-EECF-4834-A257-F6DE66663BE6
+1545807732
+user
+1545807757
+user
+1
+
+
+
+
+
+7E4E8EBB-1885-4482-9B9C-326BE48F64CC
+1545735896
+user
+1545735931
+user
+1
+
+
+
+
+
+44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4
+1545735896
+user
+1545735979
+user
+
+
+
+
+
+12FDBE3F-E628-416A-AC2A-D57014BA79CE
+1545811349
+user
+1545811414
+user
+1
+
+
+
+
+
+
+
+3C806A88-E446-4FDA-8ECF-6CE4F9E501F7
+Status_Barang
+STATUS_BARANG
+1545882110
+user
+1545882349
+user
+
+
+575DC4AD-2D17-491E-B548-79D532409ABF
+Identifier_1
+IDENTIFIER_1
+1545882265
+user
+1545882269
+user
+
+
+
+
+
+
+
+
+
+
+A976B52C-3DDC-4E69-9133-FE8DCF21378F
+1545882114
+user
+1545882269
+user
+1
+
+
+
+
+
+29C6662F-D24E-4DEE-86FF-CDB32650C346
+1545882114
+user
+1545882157
+user
+
+
+
+
+
+
+
+21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D
+Tipe_Barang
+TIPE_BARANG
+1545882113
+user
+1545882264
+user
+
+
+4882EACA-B7BD-44E3-8395-52C76393B717
+Identifier_1
+IDENTIFIER_1
+1545882259
+user
+1545882264
+user
+
+
+
+
+
+
+
+
+
+
+C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2
+1545882216
+user
+1545882264
+user
+1
+
+
+
+
+
+81283A92-2185-4C1F-9A7B-8E9CE7F1064F
+1545882216
+user
+1545882243
+user
+
+
+
+
+
+
+
+A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882277
+user
+1545882412
+user
+
+
+189F29D6-7416-40A9-99F0-D56A730B20A1
+Identifier_1
+IDENTIFIER_1
+1545882320
+user
+1545882325
+user
+
+
+
+
+
+
+
+
+
+
+D1C6BAD0-4540-4A58-AD0B-03D5C2290932
+1545882278
+user
+1545882325
+user
+1
+
+
+
+
+
+6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38
+1545882278
+user
+1545882312
+user
+
+
+
+
+
+
+
+
+
+CAF22019-683A-4606-A434-4AF1B43FC192
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1544933221
+Lenovo2
+1544933894
+Lenovo2
+0,n
+1,1
+
+
+
+
+
+
+
+
+52FB82BC-B129-45B6-94E6-0CEA2EE01736
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1544933463
+Lenovo2
+1544934152
+Lenovo2
+0,n
+1,1
+
+
+
+
+
+
+
+
+17BAEB7F-E238-4518-A29D-22F822BAEBB3
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1544933464
+Lenovo2
+1545736395
+user
+0,n
+0,1
+
+
+
+
+
+
+
+
+DE55DE18-A4CE-4777-9DB4-C2D6E6857262
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1544933549
+Lenovo2
+1545736335
+user
+1,n
+1,1
+
+
+
+
+
+
+
+
+6642186D-AE4B-478E-AFB3-003B841DDB38
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545736024
+user
+1545882443
+user
+0,1
+1,n
+
+
+
+
+
+
+
+
+89C54AB1-F0F7-478E-9464-3984504D4E69
+Melakukan
+MELAKUKAN
+1545736173
+user
+1545882427
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+2BB40579-AFE4-481D-82D3-7B68BB2CE86B
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736359
+user
+1545736408
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+42514B80-385D-4C35-B6AC-13AFB1074D71
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882169
+user
+1545882349
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+C5002C15-EF11-45C5-8ACF-96F9512CA34C
+Bertipe
+BERTIPE
+1545882249
+user
+1545882254
+user
+B
+0,n
+1,1
+
+
+
+
+
+
+
+
+973A9C6D-016B-4CE1-A006-6F6D78BE16E7
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882342
+user
+1545882412
+user
+0,n
+1,1
+
+
+
+
+
+
+
+
+
+
+BAB71D4E-EEB4-497D-B603-237145507B76
+Nomor_Barang
+NOMOR_BARANG
+1542535422
+Lenovo2
+1544626705
+Lenovo2
+I
+
+
+CE866C08-3956-4390-B495-98DD18E96885
+Id_LCD
+ID_LCD
+1542535431
+Lenovo2
+1542535483
+Lenovo2
+
+
+5548B9F8-F347-44F0-9B1D-499A392D759B
+Nomor_LCD
+NOMOR_LCD
+1542535440
+Lenovo2
+1542535483
+Lenovo2
+I
+
+
+84886371-0A37-4557-9550-0BE543F6646D
+Status_LCD
+STATUS_LCD
+1542535440
+Lenovo2
+1542535554
+Lenovo2
+I
+
+
+8E1CD4A3-0B01-48B0-92D0-35BCA0623D09
+Keterangan_LCD
+KETERANGAN_LCD
+1542535440
+Lenovo2
+1542535554
+Lenovo2
+VA256
+256
+
+
+655A2533-7F3E-4D65-922D-C8EB65FF9AC8
+Status_Braang
+STATUS_BRAANG
+1542535484
+Lenovo2
+1544889391
+Lenovo2
+I
+
+
+9EBEF594-B895-4104-B196-B3C6B5195C24
+Keterangan_Barang
+KETERANGAN_BARANG
+1542535484
+Lenovo2
+1544889391
+Lenovo2
+VA256
+256
+
+
+B4D77A8B-97BC-4611-B892-8D3D029CFB47
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1542535568
+Lenovo2
+1542535911
+Lenovo2
+I
+
+
+E454E9AA-F3FB-4D8A-9C8D-19B3397D37A1
+Tanggal_Peminjaman
+TANGGAL_PEMINJAMAN
+1542535568
+Lenovo2
+1544787920
+Lenovo2
+D
+
+
+E7076DBA-8529-48B2-903E-03D5EDAB0C00
+Nama_Peminjam
+NAMA_PEMINJAM
+1542535568
+Lenovo2
+1545735931
+user
+VA64
+64
+
+
+DA54F789-86E9-4127-A633-FBE5739EA362
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1542535568
+Lenovo2
+1545736068
+user
+VA18
+18
+
+
+FE504830-BD8C-48C4-9AF9-EB9AE6307BDE
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1542535568
+Lenovo2
+1545835720
+user
+VA14
+14
+
+
+D0F52FB2-6D3C-4381-95E1-A511FDEB770F
+Nomor_HP_Blacklist
+NOMOR_HP_BLACKLIST
+1542535927
+Lenovo2
+1544627017
+Lenovo2
+VA14
+14
+
+
+6C52E2B9-1C69-486F-A0C0-76BF98B2FE65
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1542535927
+Lenovo2
+1545735979
+user
+VA256
+256
+
+
+F6D708AB-E95A-43DB-9092-9E36819E7374
+Username_Petugas
+USERNAME_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+973FC1E3-66D7-467A-BD31-AE2AF9EFC055
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+20C158EB-1CC7-4CDF-AA63-FBAFE8BFDCFA
+Nama_Petugas
+NAMA_PETUGAS
+1542536038
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+E9112501-6F34-49CE-9729-2E508DBE30B3
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+VA64
+64
+
+
+0917ECF8-9593-4C12-88BB-227AC05F8B35
+Waktu_Mulai
+WAKTU_MULAI
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+DT
+
+
+48A973E3-DC0F-411A-96A0-81AD6F3B5DBE
+Waktu_Selesai
+WAKTU_SELESAI
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+DT
+
+
+ADEC3001-C5DD-4FC3-8C47-80DFF29D64EE
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1542536242
+Lenovo2
+1544626881
+Lenovo2
+VA64
+64
+
+
+82A1E977-10E6-4AFD-B95B-C1575CB5C4AE
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1542536298
+Lenovo2
+1544626881
+Lenovo2
+I
+
+
+D33660CE-6A14-44AB-8C46-63E5D7CF7003
+Sesi_Petugas
+SESI_PETUGAS
+1542536531
+Lenovo2
+1545806315
+user
+VA64
+64
+
+
+5BDCEB38-4DC6-46CB-8AC7-D0D96FE3D8BE
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1542536531
+Lenovo2
+1545806315
+user
+DT
+
+
+AD0A0376-A651-4B9D-A8E2-D5EA70EE0CEA
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1542536764
+Lenovo2
+1545882319
+user
+A1
+1
+
+
+73721979-BEF2-4993-9C3D-4C0597F4CC5D
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1542536764
+Lenovo2
+1545736239
+user
+VA256
+256
+
+
+288E2230-B48D-483A-8572-1F98EB0A6325
+Ruang_Pinjam
+RUANG_PINJAM
+1542624445
+Lenovo2
+1544626997
+Lenovo2
+VA64
+64
+
+
+D7FC0E7F-316B-497A-9CEA-DDAFAC6B3B15
+Tipe_Barang
+TIPE_BARANG
+1544626665
+Lenovo2
+1545882243
+user
+A1
+1
+
+
+BB6453F0-34DA-4B06-B274-261C07C898E8
+Waktu_Pinjam
+WAKTU_PINJAM
+1544626883
+Lenovo2
+1545736239
+user
+NOW()
+DT
+
+
+32B9D7F2-2702-408D-9109-F8A54E143EB0
+Waktu_Kembali
+WAKTU_KEMBALI
+1544626883
+Lenovo2
+1545736239
+user
+DT
+
+
+41B67BF4-8A98-4DC3-AE10-CD79E45FFABA
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1544889340
+Lenovo2
+1544933741
+Lenovo2
+I
+
+
+AFFA8A29-2FB8-45FB-9C79-18145978C7AC
+Id_Barang
+ID_BARANG
+1544889340
+Lenovo2
+1545794991
+user
+I
+
+
+6D664027-EB6A-4BE7-8E02-B5A5E3096C39
+Status_Barang
+STATUS_BARANG
+1544889340
+Lenovo2
+1545882166
+user
+A1
+1
+
+
+9358621E-52F1-4006-885C-8F0E10F02FD8
+Id_Riwayat_Peminjaman
+ID_RIWAYAT_PEMINJAMAN
+1544933264
+Lenovo2
+1544933280
+Lenovo2
+I
+
+
+0B95ECB7-EE4A-483F-BBE5-1D5DBE0FB2F7
+Id_Riwayat_Blacklist
+ID_RIWAYAT_BLACKLIST
+1544933395
+Lenovo2
+1544933439
+Lenovo2
+I
+
+
+7E59C647-1718-4074-88C9-5213F23A9A16
+Waktu_Mulai_Riwayat_Blacklist
+WAKTU_MULAI_RIWAYAT_BLACKLIST
+1544933395
+Lenovo2
+1544934687
+Lenovo2
+DT
+
+
+9B571CAE-31B1-476B-8786-FBA2010FE5D6
+Operasi_Blacklist
+OPERASI_BLACKLIST
+1544933395
+Lenovo2
+1544933439
+Lenovo2
+I
+
+
+1E6D54C9-1A9A-400C-8ABD-03BD3ED493EA
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1544933914
+Lenovo2
+1544934647
+Lenovo2
+DT
+
+
+739B5709-2F9D-46BC-B8CB-A878A2DF1109
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1544934627
+Lenovo2
+1544934647
+Lenovo2
+DT
+
+
+99155C81-65E0-4965-94AB-716B917EE3E5
+Waktu_Berangkir_Riwayat_Blacklist
+WAKTU_BERANGKIR_RIWAYAT_BLACKLIST
+1544934667
+Lenovo2
+1544934687
+Lenovo2
+DT
+
+
+CDD8DF3B-F9CE-4B4D-8082-600B60CC6D48
+Attribute_43
+ATTRIBUTE_43
+1545735872
+user
+1545735931
+user
+
+
+DC279B68-6928-4C18-8233-40FB2F9071AC
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807732
+user
+1545807757
+user
+VA256
+256
+
+
+38C581DA-6A31-4E88-B9A8-FD542B7386B3
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811022
+user
+1545811034
+user
+DT
+
+
+CC66698A-81C0-415C-A79D-50DD691F07FF
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811349
+user
+1545811377
+user
+DT
+
+
+05E803AC-0271-4FE5-9AAC-20AF6DD8BF6C
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811380
+user
+1545811400
+user
+DT
+
+
+A1A90187-D231-4A62-8B00-22EBB37EEA7E
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882114
+user
+1545882157
+user
+VA16
+16
+
+
+BEE67549-1553-4C9D-AF2E-5668ADBE820B
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882216
+user
+1545882243
+user
+VA16
+16
+
+
+C2F4639B-EE68-47F8-9B86-4587B2FC12F7
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882278
+user
+1545882312
+user
+VA16
+16
+
+
+
+
+6DD005D2-067C-4FDD-BCA7-AFB3026D25B9
+LCD
+LCD
+1542538110
+Lenovo2
+1544627180
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldb
+C2DA0AAA-7FA7-43FB-8ED2-CF5DCA5E27B7
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544627180
+
+
+
+
+
+C9DEF392-8D24-4A46-BEF7-2C2E88D6B2EE
+LCD
+LCD
+1543328491
+Lenovo2
+1543328545
+Lenovo2
+file:///C|/Users/Lenovo2/Documents/RPL/Design/PowerDesigner/LCD.oom
+93B454DE-D8AA-44ED-9517-38AB9B1E3763
+18112060-1A4B-11D1-83D9-444553540000
+1543328492
+
+
+
+
+
+2DE71D4E-60D6-4549-9263-365290F95C9D
+LCD
+LCD
+1544787964
+Lenovo2
+1544789363
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldm
+BD8FB69F-80F1-4110-8B03-DE47F6A42299
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544789363
+
+
+
+
+
+85C3A944-C96A-4564-9A16-BEA003D62CF3
+LCD
+LCD
+1544934056
+Lenovo2
+1544934738
+Lenovo2
+file:///C|/Users/Lenovo2/GoogleDrive/Documents/UINSA/DBD/Tugas Akhir/Design/PowerDesigner/2/LCD.ldm
+18A2988D-19E2-4878-9C37-D406CBA7BE9A
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1544934738
+
+
+
+
+
+98320856-BD88-4398-97AE-88D5C6C17C4B
+LCD
+LCD
+1545736490
+user
+1545882484
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.ldm
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1545884130
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/LCD.ldb b/PowerDesigner/LCD.ldb
new file mode 100644
index 0000000..56c57cd
--- /dev/null
+++ b/PowerDesigner/LCD.ldb
@@ -0,0 +1,3447 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+LCD
+LCD
+1545736486
+user
+1545882484
+user
+ORG {FC2D7782-6894-4E35-835E-66F89C7497B5}
+DAT 1545882484
+ATT FOPT
+DLD {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DLD {4320093C-5EDB-409E-BD74-F8733C811D3E},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DLD {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+[FolderOptions]
+
+[FolderOptions\Common]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Package\ChildShortcut]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity]
+
+[FolderOptions\CheckModel\Entity\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNbSerials]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyColl - IDTFCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSamePrnt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttMultInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSevInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\PidtfInhrAtt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute]
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\AttrDiffDomn]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier]
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckIncludeColl - Entt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\IdtfChildPIdtf]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship]
+
+[FolderOptions\CheckModel\Relationship\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshMany]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance]
+
+[FolderOptions\CheckModel\Inheritance\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\EmptyColl - CHILDCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\InhrComplete]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Logical options]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+Notation=0
+RlshUnique=Yes
+DefaultDttp=
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyExat=No
+DomnCopyMand=No
+DttpFullName=Yes
+RlshMigrateDomain=Yes
+RlshMigrateCheck=Yes
+RlshMigrateRule=Yes
+RlshMigrateExtd=Yes
+RlshAllowInhrDivr=No
+RlshAllowNN=No
+RlshGenNN=No
+FKNameTemplate=%.3:PARENT%_%ATTRIBUTE%
+FKNameTemplateUsage=No
+RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%.
+RlshAsstExt=
+
+[ModelOptions\Logical options\NamingOptionsTemplates]
+
+[ModelOptions\Logical options\ClssNamingOptions]
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO]
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA]
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Cdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+
+[ModelOptions\Generate\Pdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+BuildTrgr=No
+TablePrefix=
+IndxPKName=%TABLE%_PK
+IndxAKName=%TABLE%_AK
+IndxFKName=%REFR%_FK
+IndxThreshold=
+PreserveMode=Yes
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.ldm
+
+
+D8540464-C998-41E7-83E0-266763EB3CB6
+LCD
+LCD
+1545736527
+user
+1545736527
+user
+
+10924E5E-A1D5-465E-87C0-DBE999029350
+CDE44E21-9669-11D1-9914-006097355D9B
+
+
+
+
+E3E0B8A4-3A6F-4C52-98DC-E9F63F92159F
+LCD
+LCD
+1545884130
+user
+1545884130
+user
+
+FC2D7782-6894-4E35-835E-66F89C7497B5
+1E597170-9350-11D1-AB3C-0020AF71E433
+
+
+
+
+2FCC8033-97A7-455C-A68D-1262037A4314
+LCD
+LCD
+1545736490
+user
+1545882484
+user
+ORG {2EF18832-7E63-41A4-845C-5C1308FE1984}
+DAT 1545736490
+[DisplayPreferences]
+
+[DisplayPreferences\LDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.JoinExpression=No
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+EntityForeignAttributeFont=Arial,8,N
+EntityForeignAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=234 181 21
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMRLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=No
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1575
+Height=1000
+Brush color=250 241 211
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMLINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\CDM]
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1545882484
+((-64580,13423), (-52431,20474))
+((-58505,13823),(-58505,19074))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-63903,29286), (-6467,41843))
+((-6867,40809),(-58466,40809),(-58466,30686))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-2940,27205), (13260,37351))
+((5160,36951),(5160,27605))
+1
+4371
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((28,9199), (9778,18733))
+((4903,18333),(4903,10112))
+1
+4628
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-46490,22307), (-8501,25928))
+((-45206,24728),(-26021,24728),(-26021,22969),(-8901,22969))
+1
+5137
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((17937,21661), (28283,24061))
+((27883,22861),(19201,22861))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((9531,23644), (49717,42585))
+((9931,41551),(42067,41551),(42067,24044))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882491
+((-82906,23680), (-70442,26080))
+((-82506,24880),(-71842,24880))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882490
+((-83704,10526), (-64943,12472))
+((-83304,11426),(-65343,11426))
+1
+4631
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882506
+((12418,11647), (33137,18563))
+((32737,12704),(16843,12704),(16843,17835))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+2
+
+
+
+
+
+
+
+
+
+
+
+1545884130
+-1
+((-9037,17163), (19337,28775))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-6867,36951), (15713,44667))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-65343,9029), (-48711,13823))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-6074,935), (18130,10599))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-71842,19074), (-45090,30686))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((27883,18946), (55099,28610))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-104006,23441), (-82506,28235))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-104262,9197), (-83304,13991))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((32737,10307), (56323,15101))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+8BA361E9-B8A7-42FA-B7EE-596A4DCFE9BE
+Peminjaman
+PEMINJAMAN
+1545736490
+user
+1545811431
+user
+ORG {55B8452B-5D32-4503-8C30-48C89C1B74AE}
+DAT 1545736490
+
+
+999F4AC1-B2F0-41D9-9537-966B9BE229BD
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {31B046B1-A4C8-4714-81F8-BB7EB106A8E7}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+39303C18-5481-41AF-AADB-DBADCE0AA0CB
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3}
+DAT 1545736490
+I
+1
+
+
+773379BF-065F-4294-B175-9718B9176879
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+VA64
+64
+1
+
+
+8AE084CF-C644-4D1D-A37E-8F2548901F7B
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736490
+user
+1545882484
+user
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79},{89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+VA18
+18
+1
+1
+
+
+C06369AD-F6FD-473F-91E4-9FB95A602881
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545736490
+user
+1545882484
+user
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932},{973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545736490
+A1
+1
+1
+
+
+7415399D-0168-4F51-8386-97C0B817F1CC
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {203B69FE-246A-4C7E-A730-992E303F6D3B}
+DAT 1545736490
+VA256
+256
+
+
+BDAEC1A6-0F26-4E5B-BE3B-E1D6A629E02D
+Waktu_Pinjam
+WAKTU_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {B12F0ECB-FD98-487A-B151-F62D4B0E3486}
+DAT 1545736490
+NOW()
+DT
+1
+
+
+C6865222-C64A-4065-A455-5CC4D676897F
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811134
+user
+1545811136
+user
+ORG {0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76}
+DAT 1545811135
+DT
+1
+
+
+F51B8452-8222-4986-87DC-E74817A091CE
+Waktu_Kembali
+WAKTU_KEMBALI
+1545736490
+user
+1545736490
+user
+ORG {584DE94B-99D8-40E2-AF33-14E5EEB0A747}
+DAT 1545736490
+DT
+
+
+7F5A8523-42EA-44DB-B147-E65A0BBAE30F
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811429
+user
+1545811431
+user
+ORG {364039B9-3C9A-4BBF-9A15-606C658C4D37}
+DAT 1545811429
+DT
+1
+
+
+
+
+04B24E1A-6FF6-47A9-8A39-F4B1430FB8ED
+Petugas
+PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6FE91B06-BFF3-43BE-AD99-838BCAD29B9D}
+DAT 1545736490
+MOV PENTCOL
+
+
+5FC0BE80-0A06-40B3-A000-E116D27864B0
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {60396C66-C10A-4C1A-8882-3638FE27393C}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+18ED59F5-06F4-4F84-861A-C29F9050DB2E
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D}
+DAT 1545736490
+VA64
+64
+1
+
+
+17363653-90A4-4C53-9699-8E8DD736B25D
+Nama_Petugas
+NAMA_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC}
+DAT 1545736490
+VA64
+64
+1
+
+
+66E17700-1AEC-4D47-8C45-DECD745E8D0B
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {51F1354E-718E-4D22-A13A-756688479756}
+DAT 1545736490
+VA64
+64
+1
+
+
+22327F34-8E2D-4C2D-B7E5-795CA207A9BC
+Sesi_Petugas
+SESI_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6CC33874-6734-4E4C-AA02-D6856A4A5F47}
+DAT 1545736490
+VA64
+64
+
+
+3E718959-3BA1-4941-B6C1-9FB845891CFF
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {F12EB1A4-DCE2-405C-B80D-973E76C68758}
+DAT 1545736490
+DT
+
+
+
+
+E942B61C-6DFF-443D-8FCF-99622A84EF21
+Barang
+BARANG
+1545736490
+user
+1545882484
+user
+ORG {F187F009-5829-4542-93B6-379273CE9E96}
+DAT 1545736490
+MOV PENTCOL
+
+
+BA2C672C-F192-4B0F-A185-4E258A7DF564
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545806332
+user
+ORG {D20F8C19-09B3-48B9-BF4B-BE9263947981}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+
+53325852-A161-4C7E-BBB9-2A9F5DEA8E43
+Tipe_Barang
+TIPE_BARANG
+1545736490
+user
+1545736490
+user
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E}
+DAT 1545736490
+A1
+1
+1
+
+
+83905240-83D8-426C-8DF9-E4F3BF4EB2D2
+Nomor_Barang
+NOMOR_BARANG
+1545736490
+user
+1545736490
+user
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F}
+DAT 1545736490
+I
+1
+
+
+
+
+8AC8F2A2-B48B-4889-8765-6A651A1E3432
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {D59E323B-F178-4442-A688-93A883DAF7B7}
+DAT 1545736490
+
+
+F49AC256-243A-447C-A913-462343F7CA87
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {2F11BA23-8474-4BEA-8D6A-3603F5927AA8}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+63391AF3-95D2-48C3-836E-958F2793D03E
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {2E1269FA-5311-4C87-A578-969754041E4A}
+DAT 1545736490
+I
+1
+
+
+1395C165-578C-4A7A-84D0-F8211B740A33
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+I
+1
+1
+
+
+EDC27EF9-1BD3-4132-871E-FFC4EBB39D51
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {1EC0F598-7EF3-4F7A-832A-6237CE63030F}
+DAT 1545736490
+VA64
+64
+1
+
+
+93B5CDA8-C96B-4F29-AC7D-E009D0C0E039
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1545736490
+user
+1545736490
+user
+ORG {C5AE339A-26B1-471F-85A9-06702DBAE421}
+DAT 1545736490
+VA64
+64
+1
+
+
+2FFD6041-C931-4FEF-A8A8-2CB1A8855701
+Ruang_Pinjam
+RUANG_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {ABE9B8B1-AE32-497C-A295-E18C283E8D45}
+DAT 1545736490
+VA64
+64
+1
+
+
+97FE54BD-18FB-4985-A964-21948C9AF6E4
+Waktu_Mulai
+WAKTU_MULAI
+1545736490
+user
+1545736490
+user
+ORG {4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2}
+DAT 1545736490
+DT
+1
+
+
+FC21DDC2-4C53-43C0-A454-8190ECF3A7A0
+Waktu_Selesai
+WAKTU_SELESAI
+1545736490
+user
+1545736490
+user
+ORG {9FC86DB0-C033-46CB-B5BC-3882DB2E0984}
+DAT 1545736490
+DT
+1
+
+
+
+
+D4FC9204-E6C5-4303-809D-17366A76D3D5
+Riwayat_Barang
+RIWAYAT_BARANG
+1545736490
+user
+1545806332
+user
+ORG {BE695DE0-DD52-4706-BDD1-7114F1752D6E}
+DAT 1545736490
+
+
+B523B628-F58E-4A62-9598-265BE52EA7B6
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {69A2A70E-41BF-4689-A17C-24D073D6BDB3}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+5330DC82-ED07-417C-92F1-B8234FA8E4D5
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {4320093C-5EDB-409E-BD74-F8733C811D3E}
+DAT 1545736490
+I
+1
+
+
+6A9AC187-4FB7-4DB2-9843-AB5510055FF1
+Tipe_Barang
+TIPE_BARANG
+1545806330
+user
+1545882484
+user
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2},{C5002C15-EF11-45C5-8ACF-96F9512CA34C}-{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+A1
+1
+1
+1
+
+
+5D0408FC-8116-4DEA-9470-E84ECAFAACBA
+Nomor_Barang
+NOMOR_BARANG
+1545806330
+user
+1545806332
+user
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+I
+1
+1
+
+
+3FC95FE8-C947-4539-8F8B-F4973C437804
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+VA64
+64
+1
+1
+
+
+442ED9ED-8B8C-41A8-B5C8-EA4BEB270174
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545737101
+user
+1545737103
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545737101
+I
+1
+
+
+754903AE-5506-4923-ABAB-7E539D9183D0
+Status_Barang
+STATUS_BARANG
+1545736490
+user
+1545882484
+user
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F},{42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545736490
+A1
+1
+1
+
+
+050E98EE-FEA1-4BB2-B274-0EA65925BC00
+Keterangan_Barang
+KETERANGAN_BARANG
+1545736490
+user
+1545736490
+user
+ORG {BDBF8F76-470E-42CC-AA22-057AA22EAF1E}
+DAT 1545736490
+VA256
+256
+
+
+548915D3-BFBB-470E-B4E0-31E8C8D39A97
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {C9F2898C-4ADC-41AE-9821-E89CAEAE0924}
+DAT 1545736490
+DT
+1
+
+
+AB812FE8-A2A0-4E6D-A4F0-B65682BE54F0
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C}
+DAT 1545736490
+DT
+
+
+
+
+5EED8C4F-B64A-409F-A5BA-24ACFBBD3765
+Peminjam
+PEMINJAM
+1545736490
+user
+1545811431
+user
+ORG {FFDABF60-EAE7-4E70-9008-83498551821A}
+DAT 1545736490
+
+
+894F2D9E-1987-4652-B6DE-FB9C7420F151
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {22027363-79DE-4FE7-AE38-A9F331886544}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+7FE94923-C032-4E62-A159-800CDC335EA0
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736490
+user
+1545736490
+user
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79}
+DAT 1545736490
+VA18
+18
+1
+
+
+B3532DBB-D839-4712-A5D1-44A43C89BD76
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+VA64
+64
+1
+1
+
+
+5682D42D-AD64-4EBF-AC28-4CFF92656885
+Nama_Peminjam
+NAMA_PEMINJAM
+1545736490
+user
+1545736490
+user
+ORG {AE08FEAB-85B8-4CF0-82B8-7D790743D4A5}
+DAT 1545736490
+VA64
+64
+1
+
+
+664CEE36-85B2-40E4-B2C5-CA98D9F56759
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807841
+user
+1545807844
+user
+ORG {5E3B658B-EECF-4834-A257-F6DE66663BE6}
+DAT 1545807842
+VA256
+256
+1
+
+
+3487EA8A-A477-4121-B72A-954DEC36D2E0
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1545736490
+user
+1545835727
+user
+ORG {7E4E8EBB-1885-4482-9B9C-326BE48F64CC}
+DAT 1545736490
+VA14
+14
+1
+
+
+DEB6F661-47E8-42AC-9BF7-CC6AD05A5F46
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1545736490
+user
+1545736490
+user
+ORG {44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4}
+DAT 1545736490
+VA256
+256
+
+
+E4F756FF-6CB2-4323-90A8-6BC23D63ECEB
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811429
+user
+1545811431
+user
+ORG {12FDBE3F-E628-416A-AC2A-D57014BA79CE}
+DAT 1545811429
+DT
+1
+
+
+
+
+46D60488-0F14-4558-B4C2-DB4D46B027D4
+Status_Barang
+STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {3C806A88-E446-4FDA-8ECF-6CE4F9E501F7}
+DAT 1545882481
+
+
+804AF05B-D79C-4A25-9E19-6388E4FE0AFB
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {575DC4AD-2D17-491E-B548-79D532409ABF}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+2CE27FFD-0E29-4489-AF77-0072A1B7B2BE
+Status_Barang
+STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F}
+DAT 1545882481
+A1
+1
+1
+
+
+6C92BB54-E08A-456D-994D-4081DF6369B0
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {29C6662F-D24E-4DEE-86FF-CDB32650C346}
+DAT 1545882481
+VA16
+16
+
+
+
+
+71B01D00-C027-40AF-9901-39D12B18A234
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C}
+DAT 1545882481
+
+
+9998DAFA-DCB8-4957-ABA7-A93A1B23B915
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {189F29D6-7416-40A9-99F0-D56A730B20A1}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+5239B551-31DB-4E6C-A54E-54C3E0A2E0EB
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932}
+DAT 1545882481
+A1
+1
+1
+
+
+D5185D18-6712-473B-A4A3-798D315A0CD1
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38}
+DAT 1545882481
+VA16
+16
+
+
+
+
+88ECBAE0-C04C-41FD-A037-6B455864DB57
+Tipe_Barang
+TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D}
+DAT 1545882481
+
+
+A0280B18-0DE8-4230-8CAD-0177134BFED7
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {4882EACA-B7BD-44E3-8395-52C76393B717}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1
+Tipe_Barang
+TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2}
+DAT 1545882481
+A1
+1
+1
+
+
+3325103D-5152-4709-B3E7-92DB2AD25FC1
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {81283A92-2185-4C1F-9A7B-8E9CE7F1064F}
+DAT 1545882481
+VA16
+16
+
+
+
+
+
+
+88951577-C9AB-49AF-ACC7-02BB1C4A7D39
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1545736490
+user
+1545806332
+user
+ORG {CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+0C146031-37D5-45CD-BE9F-90D0F2CBB9D4
+1545806330
+user
+1545806332
+user
+
+
+
+
+
+
+
+
+E800DDCE-8E95-403D-84D0-B292CA2C39CB
+1545806332
+user
+1545806332
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+C11DBED6-E505-43AE-80F9-41A95A125CB7
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+62A4E79A-B9F0-48AB-ACF2-7F1F0CAF6937
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+86D65B31-5F01-4C0F-9B90-B5E90BE83F25
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+0,n
+0,1
+
+
+
+
+
+
+
+
+23C97E64-B977-4F73-9DCF-AAA87A10CCBB
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+F48EB24D-47D0-42BF-ADF6-2EC72B982E58
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882481
+user
+1545882484
+user
+ORG {42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545882481
+0,n
+1,1
+
+
+
+
+
+
+
+
+57E503A7-B41C-4162-9A73-9B52346ADD33
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+C88BD09A-D404-4E96-9770-FC4B662D42F6
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1545736490
+user
+1545736490
+user
+ORG {DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+1,n
+1,1
+
+
+
+
+
+
+
+
+933D2074-5DE4-4D5F-8B99-7C7EFD311BF2
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+8BBF67CD-73B4-4273-A3E8-084E496B1E95
+Bertipe
+BERTIPE
+1545882481
+user
+1545882484
+user
+ORG {C5002C15-EF11-45C5-8ACF-96F9512CA34C}
+DAT 1545882481
+B
+0,n
+1,1
+
+
+
+
+
+
+
+
+8D6E0A78-0BF8-4356-A791-478237BAB453
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+17A3E957-C933-46F4-A2CA-A43B776EBB6C
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545737101
+user
+1545882484
+user
+ORG {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545736490
+ATT ENTB
+ATT PIDF
+0,1
+1,n
+
+
+
+
+
+
+
+
+36178A50-83BB-42A5-AA58-8937AB7C8CA7
+1545737101
+user
+1545737103
+user
+
+
+
+
+
+
+
+
+52DD3169-A381-419F-BF8B-8ADAF3573432
+1545736490
+user
+1545737103
+user
+
+
+
+
+
+
+
+
+
+
+A889B2F4-CDE8-4492-AA80-0B49FECCB1BA
+Melakukan
+MELAKUKAN
+1545736490
+user
+1545882484
+user
+ORG {89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+854B14D1-B5A2-41F6-B7B0-973D5C52DD16
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+6C3E28DC-E125-49C6-ADD5-D96150EF481D
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882481
+user
+1545882484
+user
+ORG {973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545882481
+0,n
+1,1
+
+
+
+
+
+
+
+
+37B154E4-42CD-4070-AE20-E870AD521545
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+7DC0A850-3C9B-4832-B932-A5A6578C2B9C
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+D0D33740-B162-4010-B257-06E3395412A5
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+661231F7-1561-4414-89C6-6916F77C4304
+LCD
+LCD
+1545736490
+user
+1545882443
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.cdm
+FC2D7782-6894-4E35-835E-66F89C7497B5
+1E597170-9350-11D1-AB3C-0020AF71E433
+1545882443
+
+
+
+
+
+1398804D-974B-48EE-8618-EA77428943E2
+LCD
+LCD
+1545736527
+user
+1545884301
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.pdm
+10924E5E-A1D5-465E-87C0-DBE999029350
+CDE44E21-9669-11D1-9914-006097355D9B
+1545884546
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/LCD.ldm b/PowerDesigner/LCD.ldm
new file mode 100644
index 0000000..61a2659
--- /dev/null
+++ b/PowerDesigner/LCD.ldm
@@ -0,0 +1,3447 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+LCD
+LCD
+1545736486
+user
+1545882484
+user
+ORG {FC2D7782-6894-4E35-835E-66F89C7497B5}
+DAT 1545882484
+ATT FOPT
+DLD {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DLD {4320093C-5EDB-409E-BD74-F8733C811D3E},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DLD {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+[FolderOptions]
+
+[FolderOptions\Common]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\GenrCircularityNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Package\ChildShortcut]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity]
+
+[FolderOptions\CheckModel\Entity\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttNbSerials]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyColl - IDTFCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSamePrnt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttMultInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\EnttSevInhr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity\PidtfInhrAtt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute]
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\AttrDiffDomn]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckOtherDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Entity Attribute\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier]
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\EmptyColl - PENTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\CheckIncludeColl - Entt]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Entity.Identifier\IdtfChildPIdtf]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship]
+
+[FolderOptions\CheckModel\Relationship\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptYes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshReflexiveDeptNo]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshBject]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Relationship\RlshMany]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance]
+
+[FolderOptions\CheckModel\Inheritance\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\EmptyColl - CHILDCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Inheritance\InhrComplete]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Logical options]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+Notation=0
+RlshUnique=Yes
+DefaultDttp=
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyExat=No
+DomnCopyMand=No
+DttpFullName=Yes
+RlshMigrateDomain=Yes
+RlshMigrateCheck=Yes
+RlshMigrateRule=Yes
+RlshMigrateExtd=Yes
+RlshAllowInhrDivr=No
+RlshAllowNN=No
+RlshGenNN=No
+FKNameTemplate=%.3:PARENT%_%ATTRIBUTE%
+FKNameTemplateUsage=No
+RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%.
+RlshAsstExt=
+
+[ModelOptions\Logical options\NamingOptionsTemplates]
+
+[ModelOptions\Logical options\ClssNamingOptions]
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO]
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA]
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR]
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Cdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+
+[ModelOptions\Generate\Pdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+BuildTrgr=No
+TablePrefix=
+IndxPKName=%TABLE%_PK
+IndxAKName=%TABLE%_AK
+IndxFKName=%REFR%_FK
+IndxThreshold=
+PreserveMode=Yes
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.ldm
+
+
+D8540464-C998-41E7-83E0-266763EB3CB6
+LCD
+LCD
+1545736527
+user
+1545736527
+user
+
+10924E5E-A1D5-465E-87C0-DBE999029350
+CDE44E21-9669-11D1-9914-006097355D9B
+
+
+
+
+E3E0B8A4-3A6F-4C52-98DC-E9F63F92159F
+LCD
+LCD
+1545884130
+user
+1545884130
+user
+
+FC2D7782-6894-4E35-835E-66F89C7497B5
+1E597170-9350-11D1-AB3C-0020AF71E433
+
+
+
+
+2FCC8033-97A7-455C-A68D-1262037A4314
+LCD
+LCD
+1545736490
+user
+1545882484
+user
+ORG {2EF18832-7E63-41A4-845C-5C1308FE1984}
+DAT 1545736490
+[DisplayPreferences]
+
+[DisplayPreferences\LDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.JoinExpression=No
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+EntityForeignAttributeFont=Arial,8,N
+EntityForeignAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=234 181 21
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMRLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=No
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1575
+Height=1000
+Brush color=250 241 211
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMLINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\CDM]
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1545882484
+((-64580,13423), (-52431,20474))
+((-58505,13823),(-58505,19074))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-63903,29286), (-6467,41843))
+((-6867,40809),(-58466,40809),(-58466,30686))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-2940,27205), (13260,37351))
+((5160,36951),(5160,27605))
+1
+4371
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((28,9199), (9778,18733))
+((4903,18333),(4903,10112))
+1
+4628
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((-46490,22307), (-8501,25928))
+((-45206,24728),(-26021,24728),(-26021,22969),(-8901,22969))
+1
+5137
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((17937,21661), (28283,24061))
+((27883,22861),(19201,22861))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882484
+((9531,23644), (49717,42585))
+((9931,41551),(42067,41551),(42067,24044))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882491
+((-82906,23680), (-70442,26080))
+((-82506,24880),(-71842,24880))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882490
+((-83704,10526), (-64943,12472))
+((-83304,11426),(-65343,11426))
+1
+4631
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882506
+((12418,11647), (33137,18563))
+((32737,12704),(16843,12704),(16843,17835))
+1
+4627
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+2
+
+
+
+
+
+
+
+
+
+
+
+1545884130
+-1
+((-9037,17163), (19337,28775))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-6867,36951), (15713,44667))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-65343,9029), (-48711,13823))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-6074,935), (18130,10599))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-71842,19074), (-45090,30686))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((27883,18946), (55099,28610))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-104006,23441), (-82506,28235))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((-104262,9197), (-83304,13991))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884130
+-1
+((32737,10307), (56323,15101))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+Attributes 0 Arial,8,N
+EntityPrimaryAttribute 0 Arial,8,U
+EntityForeignAttribute 0 Arial,8,N
+Identifiers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+8BA361E9-B8A7-42FA-B7EE-596A4DCFE9BE
+Peminjaman
+PEMINJAMAN
+1545736490
+user
+1545811431
+user
+ORG {55B8452B-5D32-4503-8C30-48C89C1B74AE}
+DAT 1545736490
+
+
+999F4AC1-B2F0-41D9-9537-966B9BE229BD
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {31B046B1-A4C8-4714-81F8-BB7EB106A8E7}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+39303C18-5481-41AF-AADB-DBADCE0AA0CB
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3}
+DAT 1545736490
+I
+1
+
+
+773379BF-065F-4294-B175-9718B9176879
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+VA64
+64
+1
+
+
+8AE084CF-C644-4D1D-A37E-8F2548901F7B
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736490
+user
+1545882484
+user
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79},{89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+VA18
+18
+1
+1
+
+
+C06369AD-F6FD-473F-91E4-9FB95A602881
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545736490
+user
+1545882484
+user
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932},{973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545736490
+A1
+1
+1
+
+
+7415399D-0168-4F51-8386-97C0B817F1CC
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {203B69FE-246A-4C7E-A730-992E303F6D3B}
+DAT 1545736490
+VA256
+256
+
+
+BDAEC1A6-0F26-4E5B-BE3B-E1D6A629E02D
+Waktu_Pinjam
+WAKTU_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {B12F0ECB-FD98-487A-B151-F62D4B0E3486}
+DAT 1545736490
+NOW()
+DT
+1
+
+
+C6865222-C64A-4065-A455-5CC4D676897F
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811134
+user
+1545811136
+user
+ORG {0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76}
+DAT 1545811135
+DT
+1
+
+
+F51B8452-8222-4986-87DC-E74817A091CE
+Waktu_Kembali
+WAKTU_KEMBALI
+1545736490
+user
+1545736490
+user
+ORG {584DE94B-99D8-40E2-AF33-14E5EEB0A747}
+DAT 1545736490
+DT
+
+
+7F5A8523-42EA-44DB-B147-E65A0BBAE30F
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811429
+user
+1545811431
+user
+ORG {364039B9-3C9A-4BBF-9A15-606C658C4D37}
+DAT 1545811429
+DT
+1
+
+
+
+
+04B24E1A-6FF6-47A9-8A39-F4B1430FB8ED
+Petugas
+PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6FE91B06-BFF3-43BE-AD99-838BCAD29B9D}
+DAT 1545736490
+MOV PENTCOL
+
+
+5FC0BE80-0A06-40B3-A000-E116D27864B0
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {60396C66-C10A-4C1A-8882-3638FE27393C}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+18ED59F5-06F4-4F84-861A-C29F9050DB2E
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D}
+DAT 1545736490
+VA64
+64
+1
+
+
+17363653-90A4-4C53-9699-8E8DD736B25D
+Nama_Petugas
+NAMA_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC}
+DAT 1545736490
+VA64
+64
+1
+
+
+66E17700-1AEC-4D47-8C45-DECD745E8D0B
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {51F1354E-718E-4D22-A13A-756688479756}
+DAT 1545736490
+VA64
+64
+1
+
+
+22327F34-8E2D-4C2D-B7E5-795CA207A9BC
+Sesi_Petugas
+SESI_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6CC33874-6734-4E4C-AA02-D6856A4A5F47}
+DAT 1545736490
+VA64
+64
+
+
+3E718959-3BA1-4941-B6C1-9FB845891CFF
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {F12EB1A4-DCE2-405C-B80D-973E76C68758}
+DAT 1545736490
+DT
+
+
+
+
+E942B61C-6DFF-443D-8FCF-99622A84EF21
+Barang
+BARANG
+1545736490
+user
+1545882484
+user
+ORG {F187F009-5829-4542-93B6-379273CE9E96}
+DAT 1545736490
+MOV PENTCOL
+
+
+BA2C672C-F192-4B0F-A185-4E258A7DF564
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545806332
+user
+ORG {D20F8C19-09B3-48B9-BF4B-BE9263947981}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+
+53325852-A161-4C7E-BBB9-2A9F5DEA8E43
+Tipe_Barang
+TIPE_BARANG
+1545736490
+user
+1545736490
+user
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E}
+DAT 1545736490
+A1
+1
+1
+
+
+83905240-83D8-426C-8DF9-E4F3BF4EB2D2
+Nomor_Barang
+NOMOR_BARANG
+1545736490
+user
+1545736490
+user
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F}
+DAT 1545736490
+I
+1
+
+
+
+
+8AC8F2A2-B48B-4889-8765-6A651A1E3432
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {D59E323B-F178-4442-A688-93A883DAF7B7}
+DAT 1545736490
+
+
+F49AC256-243A-447C-A913-462343F7CA87
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {2F11BA23-8474-4BEA-8D6A-3603F5927AA8}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+63391AF3-95D2-48C3-836E-958F2793D03E
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {2E1269FA-5311-4C87-A578-969754041E4A}
+DAT 1545736490
+I
+1
+
+
+1395C165-578C-4A7A-84D0-F8211B740A33
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736490
+user
+1545736490
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+I
+1
+1
+
+
+EDC27EF9-1BD3-4132-871E-FFC4EBB39D51
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {1EC0F598-7EF3-4F7A-832A-6237CE63030F}
+DAT 1545736490
+VA64
+64
+1
+
+
+93B5CDA8-C96B-4F29-AC7D-E009D0C0E039
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1545736490
+user
+1545736490
+user
+ORG {C5AE339A-26B1-471F-85A9-06702DBAE421}
+DAT 1545736490
+VA64
+64
+1
+
+
+2FFD6041-C931-4FEF-A8A8-2CB1A8855701
+Ruang_Pinjam
+RUANG_PINJAM
+1545736490
+user
+1545736490
+user
+ORG {ABE9B8B1-AE32-497C-A295-E18C283E8D45}
+DAT 1545736490
+VA64
+64
+1
+
+
+97FE54BD-18FB-4985-A964-21948C9AF6E4
+Waktu_Mulai
+WAKTU_MULAI
+1545736490
+user
+1545736490
+user
+ORG {4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2}
+DAT 1545736490
+DT
+1
+
+
+FC21DDC2-4C53-43C0-A454-8190ECF3A7A0
+Waktu_Selesai
+WAKTU_SELESAI
+1545736490
+user
+1545736490
+user
+ORG {9FC86DB0-C033-46CB-B5BC-3882DB2E0984}
+DAT 1545736490
+DT
+1
+
+
+
+
+D4FC9204-E6C5-4303-809D-17366A76D3D5
+Riwayat_Barang
+RIWAYAT_BARANG
+1545736490
+user
+1545806332
+user
+ORG {BE695DE0-DD52-4706-BDD1-7114F1752D6E}
+DAT 1545736490
+
+
+B523B628-F58E-4A62-9598-265BE52EA7B6
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {69A2A70E-41BF-4689-A17C-24D073D6BDB3}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+5330DC82-ED07-417C-92F1-B8234FA8E4D5
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {4320093C-5EDB-409E-BD74-F8733C811D3E}
+DAT 1545736490
+I
+1
+
+
+6A9AC187-4FB7-4DB2-9843-AB5510055FF1
+Tipe_Barang
+TIPE_BARANG
+1545806330
+user
+1545882484
+user
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2},{C5002C15-EF11-45C5-8ACF-96F9512CA34C}-{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+A1
+1
+1
+1
+
+
+5D0408FC-8116-4DEA-9470-E84ECAFAACBA
+Nomor_Barang
+NOMOR_BARANG
+1545806330
+user
+1545806332
+user
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+I
+1
+1
+
+
+3FC95FE8-C947-4539-8F8B-F4973C437804
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+VA64
+64
+1
+1
+
+
+442ED9ED-8B8C-41A8-B5C8-EA4BEB270174
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545737101
+user
+1545737103
+user
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545737101
+I
+1
+
+
+754903AE-5506-4923-ABAB-7E539D9183D0
+Status_Barang
+STATUS_BARANG
+1545736490
+user
+1545882484
+user
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F},{42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545736490
+A1
+1
+1
+
+
+050E98EE-FEA1-4BB2-B274-0EA65925BC00
+Keterangan_Barang
+KETERANGAN_BARANG
+1545736490
+user
+1545736490
+user
+ORG {BDBF8F76-470E-42CC-AA22-057AA22EAF1E}
+DAT 1545736490
+VA256
+256
+
+
+548915D3-BFBB-470E-B4E0-31E8C8D39A97
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {C9F2898C-4ADC-41AE-9821-E89CAEAE0924}
+DAT 1545736490
+DT
+1
+
+
+AB812FE8-A2A0-4E6D-A4F0-B65682BE54F0
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1545736490
+user
+1545736490
+user
+ORG {95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C}
+DAT 1545736490
+DT
+
+
+
+
+5EED8C4F-B64A-409F-A5BA-24ACFBBD3765
+Peminjam
+PEMINJAM
+1545736490
+user
+1545811431
+user
+ORG {FFDABF60-EAE7-4E70-9008-83498551821A}
+DAT 1545736490
+
+
+894F2D9E-1987-4652-B6DE-FB9C7420F151
+Identifier_1
+IDENTIFIER_1
+1545736490
+user
+1545736490
+user
+ORG {22027363-79DE-4FE7-AE38-A9F331886544}
+DAT 1545736490
+
+
+
+
+
+
+
+
+
+
+7FE94923-C032-4E62-A159-800CDC335EA0
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736490
+user
+1545736490
+user
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79}
+DAT 1545736490
+VA18
+18
+1
+
+
+B3532DBB-D839-4712-A5D1-44A43C89BD76
+Username_Petugas
+USERNAME_PETUGAS
+1545736490
+user
+1545806332
+user
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+VA64
+64
+1
+1
+
+
+5682D42D-AD64-4EBF-AC28-4CFF92656885
+Nama_Peminjam
+NAMA_PEMINJAM
+1545736490
+user
+1545736490
+user
+ORG {AE08FEAB-85B8-4CF0-82B8-7D790743D4A5}
+DAT 1545736490
+VA64
+64
+1
+
+
+664CEE36-85B2-40E4-B2C5-CA98D9F56759
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807841
+user
+1545807844
+user
+ORG {5E3B658B-EECF-4834-A257-F6DE66663BE6}
+DAT 1545807842
+VA256
+256
+1
+
+
+3487EA8A-A477-4121-B72A-954DEC36D2E0
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1545736490
+user
+1545835727
+user
+ORG {7E4E8EBB-1885-4482-9B9C-326BE48F64CC}
+DAT 1545736490
+VA14
+14
+1
+
+
+DEB6F661-47E8-42AC-9BF7-CC6AD05A5F46
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1545736490
+user
+1545736490
+user
+ORG {44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4}
+DAT 1545736490
+VA256
+256
+
+
+E4F756FF-6CB2-4323-90A8-6BC23D63ECEB
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811429
+user
+1545811431
+user
+ORG {12FDBE3F-E628-416A-AC2A-D57014BA79CE}
+DAT 1545811429
+DT
+1
+
+
+
+
+46D60488-0F14-4558-B4C2-DB4D46B027D4
+Status_Barang
+STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {3C806A88-E446-4FDA-8ECF-6CE4F9E501F7}
+DAT 1545882481
+
+
+804AF05B-D79C-4A25-9E19-6388E4FE0AFB
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {575DC4AD-2D17-491E-B548-79D532409ABF}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+2CE27FFD-0E29-4489-AF77-0072A1B7B2BE
+Status_Barang
+STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F}
+DAT 1545882481
+A1
+1
+1
+
+
+6C92BB54-E08A-456D-994D-4081DF6369B0
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882481
+user
+1545882484
+user
+ORG {29C6662F-D24E-4DEE-86FF-CDB32650C346}
+DAT 1545882481
+VA16
+16
+
+
+
+
+71B01D00-C027-40AF-9901-39D12B18A234
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C}
+DAT 1545882481
+
+
+9998DAFA-DCB8-4957-ABA7-A93A1B23B915
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {189F29D6-7416-40A9-99F0-D56A730B20A1}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+5239B551-31DB-4E6C-A54E-54C3E0A2E0EB
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932}
+DAT 1545882481
+A1
+1
+1
+
+
+D5185D18-6712-473B-A4A3-798D315A0CD1
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882481
+user
+1545882484
+user
+ORG {6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38}
+DAT 1545882481
+VA16
+16
+
+
+
+
+88ECBAE0-C04C-41FD-A037-6B455864DB57
+Tipe_Barang
+TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D}
+DAT 1545882481
+
+
+A0280B18-0DE8-4230-8CAD-0177134BFED7
+Identifier_1
+IDENTIFIER_1
+1545882481
+user
+1545882484
+user
+ORG {4882EACA-B7BD-44E3-8395-52C76393B717}
+DAT 1545882481
+
+
+
+
+
+
+
+
+
+
+3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1
+Tipe_Barang
+TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2}
+DAT 1545882481
+A1
+1
+1
+
+
+3325103D-5152-4709-B3E7-92DB2AD25FC1
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882481
+user
+1545882484
+user
+ORG {81283A92-2185-4C1F-9A7B-8E9CE7F1064F}
+DAT 1545882481
+VA16
+16
+
+
+
+
+
+
+88951577-C9AB-49AF-ACC7-02BB1C4A7D39
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1545736490
+user
+1545806332
+user
+ORG {CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+0C146031-37D5-45CD-BE9F-90D0F2CBB9D4
+1545806330
+user
+1545806332
+user
+
+
+
+
+
+
+
+
+E800DDCE-8E95-403D-84D0-B292CA2C39CB
+1545806332
+user
+1545806332
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+C11DBED6-E505-43AE-80F9-41A95A125CB7
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+62A4E79A-B9F0-48AB-ACF2-7F1F0CAF6937
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+86D65B31-5F01-4C0F-9B90-B5E90BE83F25
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+0,n
+0,1
+
+
+
+
+
+
+
+
+23C97E64-B977-4F73-9DCF-AAA87A10CCBB
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+F48EB24D-47D0-42BF-ADF6-2EC72B982E58
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882481
+user
+1545882484
+user
+ORG {42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545882481
+0,n
+1,1
+
+
+
+
+
+
+
+
+57E503A7-B41C-4162-9A73-9B52346ADD33
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+C88BD09A-D404-4E96-9770-FC4B662D42F6
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1545736490
+user
+1545736490
+user
+ORG {DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+1,n
+1,1
+
+
+
+
+
+
+
+
+933D2074-5DE4-4D5F-8B99-7C7EFD311BF2
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+8BBF67CD-73B4-4273-A3E8-084E496B1E95
+Bertipe
+BERTIPE
+1545882481
+user
+1545882484
+user
+ORG {C5002C15-EF11-45C5-8ACF-96F9512CA34C}
+DAT 1545882481
+B
+0,n
+1,1
+
+
+
+
+
+
+
+
+8D6E0A78-0BF8-4356-A791-478237BAB453
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+17A3E957-C933-46F4-A2CA-A43B776EBB6C
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545737101
+user
+1545882484
+user
+ORG {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545736490
+ATT ENTB
+ATT PIDF
+0,1
+1,n
+
+
+
+
+
+
+
+
+36178A50-83BB-42A5-AA58-8937AB7C8CA7
+1545737101
+user
+1545737103
+user
+
+
+
+
+
+
+
+
+52DD3169-A381-419F-BF8B-8ADAF3573432
+1545736490
+user
+1545737103
+user
+
+
+
+
+
+
+
+
+
+
+A889B2F4-CDE8-4492-AA80-0B49FECCB1BA
+Melakukan
+MELAKUKAN
+1545736490
+user
+1545882484
+user
+ORG {89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+854B14D1-B5A2-41F6-B7B0-973D5C52DD16
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+6C3E28DC-E125-49C6-ADD5-D96150EF481D
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882481
+user
+1545882484
+user
+ORG {973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545882481
+0,n
+1,1
+
+
+
+
+
+
+
+
+37B154E4-42CD-4070-AE20-E870AD521545
+1545882481
+user
+1545882484
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+7DC0A850-3C9B-4832-B932-A5A6578C2B9C
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736490
+user
+1545736490
+user
+ORG {2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+0,n
+1,1
+
+
+
+
+
+
+
+
+D0D33740-B162-4010-B257-06E3395412A5
+1545736490
+user
+1545736490
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+661231F7-1561-4414-89C6-6916F77C4304
+LCD
+LCD
+1545736490
+user
+1545882443
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.cdm
+FC2D7782-6894-4E35-835E-66F89C7497B5
+1E597170-9350-11D1-AB3C-0020AF71E433
+1545882443
+
+
+
+
+
+1398804D-974B-48EE-8618-EA77428943E2
+LCD
+LCD
+1545736527
+user
+1545884546
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.pdm
+10924E5E-A1D5-465E-87C0-DBE999029350
+CDE44E21-9669-11D1-9914-006097355D9B
+1545884862
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/LCD.pdb b/PowerDesigner/LCD.pdb
new file mode 100644
index 0000000..e73df5a
--- /dev/null
+++ b/PowerDesigner/LCD.pdb
@@ -0,0 +1,9753 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+10924E5E-A1D5-465E-87C0-DBE999029350
+LCD
+LCD
+1545736519
+user
+1546564112
+user
+ORG {50AE78BB-2E9B-4731-B6DF-0E64723B1A0F}
+DAT 1545884139
+DLD {52DD3169-A381-419F-BF8B-8ADAF3573432}
+ATT FOPT
+[FolderOptions]
+
+[FolderOptions\Physical Objects]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=Database Generation=E3816B85-E2B2-42CB-9D03-EE8AEE94FA87
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+RevPkey=Yes
+RevFkey=Yes
+RevAkey=Yes
+RevCheck=Yes
+RevIndx=Yes
+RevOpts=Yes
+RevViewAsTabl=No
+RevViewOpts=Yes
+RevSystAsTabl=Yes
+RevTablPerm=No
+RevViewPerm=No
+RevProcPerm=No
+RevDbpkPerm=No
+RevSqncPerm=No
+RevAdtPerm=No
+RevUserPriv=No
+RevUserOpts=No
+RevGrpePriv=No
+RevRolePriv=No
+RevDtbsOpts=Yes
+RevDtbsPerm=No
+RevViewIndx=Yes
+RevJidxOpts=Yes
+RevStats=No
+RevTspcPerm=No
+RevCaseSensitive=No
+GenTrgrStdMsg=Yes
+GenTrgrMsgTab=
+GenTrgrMsgNo=
+GenTrgrMsgTxt=
+TrgrPreserve=No
+TrgrIns=Yes
+TrgrUpd=Yes
+TrgrDel=Yes
+TrgrC2Ins=Yes
+TrgrC2Upd=Yes
+TrgrC3=Yes
+TrgrC4=Yes
+TrgrC5=Yes
+TrgrC6=Yes
+TrgrC7=Yes
+TrgrC8=Yes
+TrgrC9=Yes
+TrgrC10=Yes
+TrgrC11=Yes
+TrgrC1=Yes
+TrgrC12Ins=Yes
+TrgrC12Upd=Yes
+TrgrC13=Yes
+UpdateTableStatistics=Yes
+UpdateColumnStatistics=Yes
+DeploymentMode=REP
+
+[FolderOptions\Physical Objects\Database Generation]
+GenScriptName=crebas.sql
+GenScriptName0=
+GenScriptName1=
+GenScriptName2=
+GenScriptName3=
+GenScriptName4=
+GenScriptName5=
+GenScriptName6=
+GenScriptName7=
+GenScriptName8=
+GenScriptName9=
+GenPathName=C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\
+GenSingleFile=Yes
+GenODBC=No
+GenCheckModel=Yes
+GenScriptPrev=Yes
+GenArchiveModel=No
+GenUseSync=No
+GenSyncChoice=0
+GenSyncArch=
+GenSyncRmg=0
+
+[FolderOptions\Physical Objects\Database Generation\Format]
+GenScriptTitle=Yes
+GenScriptNamLabl=No
+GenScriptQDtbs=No
+GenScriptQOwnr=Yes
+GenScriptCase=0
+GenScriptEncoding=ANSI
+GenScriptNAcct=No
+IdentifierDelimiter="
+
+[FolderOptions\Physical Objects\Database Generation\Database]
+Create=Yes
+Open=Yes
+Close=Yes
+Drop=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Database\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Tablespace]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Tablespace\Create]
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Storage]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\User]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\User\Create]
+Physical Options=No
+
+[FolderOptions\Physical Objects\Database Generation\Group]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\Role]
+Create=Yes
+Drop=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create]
+Default value=Yes
+Check=Yes
+
+[FolderOptions\Physical Objects\Database Generation\AbstractDataType]
+Create=Yes
+Header=Yes
+Footer=Yes
+Drop=Yes
+Comment=Yes
+Install JAVA class=Yes
+Remove JAVA class=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Rule]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Default]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Sequence]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column]
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create]
+Check=Yes
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check]
+Constraint declaration=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column]
+User datatype=No
+Default value=Yes
+Check=Yes
+Physical Options=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check]
+Constraint declaration=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key]
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create]
+Constraint declaration=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create]
+Constraint declaration=Yes
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter]
+Primary key=No
+Foreign key=No
+Alternate key=No
+Cluster=Yes
+Other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\View\Create]
+Force Column list=No
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewColumn]
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create]
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter]
+Cluster=Yes
+Other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\Trigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\DBMSTrigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synonym]
+Create=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synonym\Filter]
+Table=Yes
+View=Yes
+Proc=Yes
+Synonym=Yes
+Database Package=Yes
+Sequence=Yes
+
+[FolderOptions\Physical Objects\Database Generation\JoinIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Procedure]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Procedure\Create]
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\DatabasePackage]
+Create=Yes
+Drop=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\WebService]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Dimension]
+Create=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synchronization]
+GenBackupTabl=1
+GenKeepBackTabl=1
+GenTmpTablDrop=No
+GenKeepTablOpts=No
+
+[FolderOptions\Physical Objects\Test Data]
+GenDataPathName=
+GenDataSinglefile=Yes
+GenDataScriptName=testdata
+GenDataScriptName0=
+GenDataScriptName1=
+GenDataScriptName2=
+GenDataScriptName3=
+GenDataScriptName4=
+GenDataScriptName5=
+GenDataScriptName6=
+GenDataScriptName7=
+GenDataScriptName8=
+GenDataScriptName9=
+GenDataOdbc=0
+GenDataDelOld=No
+GenDataTitle=No
+GenDataDefNumRows=20
+GenDataCommit=0
+GenDataPacket=0
+GenDataOwner=No
+GenDataProfNumb=
+GenDataProfChar=
+GenDataProfDate=
+GenDataCSVSeparator=;
+GenDataFileFormat=CSV
+GenDataUseWizard=No
+
+[FolderOptions\Pdm]
+IndxIQName=%COLUMN%_%INDEXTYPE%
+IndxPK=Yes
+IndxFK=Yes
+IndxAK=Yes
+IndxPKName=%TABLE%_PK
+IndxFKName=%REFR%_FK
+IndxAKName=%TABLE%_AK
+IndxPreserve=Yes
+IndxThreshold=0
+IndxStats=No
+RefrPreserve=No
+JidxPreserve=No
+RbldMultiFact=Yes
+RbldMultiDim=Yes
+RbldMultiJidx=Yes
+CubePreserve=No
+TablStProcPreserve=No
+ProcDepPreserve=Yes
+TrgrDepPreserve=Yes
+CubeScriptPath=
+CubeScriptCase=0
+CubeScriptEncoding=ANSI
+CubeScriptNacct=No
+CubeScriptHeader=No
+CubeScriptExt=csv
+CubeScriptExt0=txt
+CubeScriptExt1=
+CubeScriptExt2=
+CubeScriptSep=,
+CubeScriptDeli="
+EstimationYears=0
+DfltDomnName=D_%.U:VALUE%
+DfltColnName=D_%.U:VALUE%
+DfltReuse=Yes
+DfltDrop=Yes
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CircularReference]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ConstraintName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CnstMaxLen]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CircularDependency]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Table]
+
+[FolderOptions\CheckModel\Table\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqIndex]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - COLNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - INDXCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - KEYCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\SerialColumnNumber]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\TableIndexes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Table\CheckTablePartitionKey]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableStartDate]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableRefNoLifecycle]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableSourceMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTablePartialColumnMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableKeyColumnMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableNotOnLifecycleTablespace]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MYSQL50_Table_Table_storage_type]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column]
+
+[FolderOptions\CheckModel\Table.Column\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DomainDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColumnMandatory]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\FkeyDttpDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\FkeyCheckDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColnSqncNoKey]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColnSqncDttp]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\SerialColumnFK]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColumnCompExpr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnOneToOneMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnDataTypeMapping]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnNoMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Auto_increment_key]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Datatype_attributes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index]
+
+[FolderOptions\CheckModel\Table.Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\EmptyColl - CIDXCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\UndefIndexType]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\IndexColumnCount]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\IQIndxHNGUniq]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\MYSQL50_Index_Fulltext_indexes_validity]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key]
+
+[FolderOptions\CheckModel\Table.Key\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\EmptyColl - COLNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\MultiKeySqnc]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger]
+
+[FolderOptions\CheckModel\Table.Trigger\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index]
+
+[FolderOptions\CheckModel\Join Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View]
+
+[FolderOptions\CheckModel\View\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\View.View Index]
+
+[FolderOptions\CheckModel\View.View Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\EmptyColl - CIDXCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\IndexColumnCount]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference]
+
+[FolderOptions\CheckModel\Reference\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\Reflexive]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\EmptyColl - RFJNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\IncompleteJoin]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\JoinOrder]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference]
+
+[FolderOptions\CheckModel\View Reference\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\EmptyColl - VRFJNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default]
+
+[FolderOptions\CheckModel\Default\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DfltValeEmpty]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DfltSameVale]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User]
+
+[FolderOptions\CheckModel\User\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniquePassword]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Group]
+
+[FolderOptions\CheckModel\Group\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\EmptyColl - USERCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniquePassword]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Role]
+
+[FolderOptions\CheckModel\Role\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\EmptyColl - USERCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure]
+
+[FolderOptions\CheckModel\Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\ProcBodyEmpty]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\DBMS Trigger]
+
+[FolderOptions\CheckModel\DBMS Trigger\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DbmsTriggerEvent]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source]
+
+[FolderOptions\CheckModel\Data Source\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\EmptyColl - MODLSRC]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DtscTargets]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\CheckDataSourceModels]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning]
+
+[FolderOptions\CheckModel\Horizontal Partitioning\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\EmptyColl - PARTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning]
+
+[FolderOptions\CheckModel\Vertical Partitioning\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\EmptyColl - PARTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing]
+
+[FolderOptions\CheckModel\Table Collapsing\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\EmptyColl - TargetTable]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact]
+
+[FolderOptions\CheckModel\Fact\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\EmptyColl - MEASCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\EmptyColl - ALLOLINKCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\CubeDupAssociation]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension]
+
+[FolderOptions\CheckModel\Dimension\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\EmptyColl - DATTRCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\EmptyColl - HIERCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DimnDupHierarchy]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DimnDefHierarchy]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\SerialColumnNumber]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association]
+
+[FolderOptions\CheckModel\Association\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\EmptyColl - Hierarchy]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute]
+
+[FolderOptions\CheckModel\Dimension.Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure]
+
+[FolderOptions\CheckModel\Fact.Measure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute]
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy]
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\EmptyColl - DATTRCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym]
+
+[FolderOptions\CheckModel\Synonym\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\EmptyColl - BASEOBJ]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type]
+
+[FolderOptions\CheckModel\Abstract Data Type\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\AdtInstantiable]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\AdtAbstractUsed]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure]
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\AdtProcUniqName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package]
+
+[FolderOptions\CheckModel\Database Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - PROCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - CURCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - VARCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - TYPCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - EXCCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure]
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\EmptyColl - PARM]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence]
+
+[FolderOptions\CheckModel\Sequence\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor]
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\EmptyColl - PARM]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable]
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type]
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception]
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace]
+
+[FolderOptions\CheckModel\Tablespace\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage]
+
+[FolderOptions\CheckModel\Storage\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database]
+
+[FolderOptions\CheckModel\Database\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service]
+
+[FolderOptions\CheckModel\Web Service\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation]
+
+[FolderOptions\CheckModel\Web Service.Web Operation\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle]
+
+[FolderOptions\CheckModel\Lifecycle\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckLifecyclePhase]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckLifecycleRetention]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckPartitionRange]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase]
+
+[FolderOptions\CheckModel\Lifecycle.Phase\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspace]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIQTbspace]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDuplicateTbspace]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspaceCurrency]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseRetention]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIdlePeriod]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDataSource]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseExternalOnFirst]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Physical Objects]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+DefaultDttp=
+IgnoreOwner=No
+RebuildTrigger=Yes
+RefrUnique=Yes
+RefrAutoMigrate=Yes
+RefrMigrateReuse=Yes
+RefrMigrateDomain=Yes
+RefrMigrateCheck=Yes
+RefrMigrateRule=Yes
+RefrMigrateExtd=No
+RefrMigrDefaultLink=No
+RefrDfltImpl=D
+RefrPrgtColn=No
+RefrMigrateToEnd=No
+RebuildTriggerDep=No
+ColnFKName=%.3:PARENT%_%COLUMN%
+ColnFKNameUse=No
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyMand=No
+DomnCopyExtd=No
+DomnCopyProf=No
+Notation=0
+DomnDefaultMandatory=No
+ColnDefaultMandatory=No
+TablDefaultOwner=
+ViewDefaultOwner=
+TrgrDefaultOwnerTabl=
+TrgrDefaultOwnerView=
+IdxDefaultOwnerTabl=
+IdxDefaultOwnerView=
+JdxDefaultOwner=
+DBPackDefaultOwner=
+SeqDefaultOwner=
+ProcDefaultOwner=
+DBMSTrgrDefaultOwner=
+Currency=USD
+RefrDeleteConstraint=1
+RefrUpdateConstraint=1
+RefrParentMandatory=No
+RefrParentChangeAllow=Yes
+RefrCheckOnCommit=No
+
+[ModelOptions\Physical Objects\NamingOptionsTemplates]
+
+[ModelOptions\Physical Objects\ClssNamingOptions]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Connection]
+
+[ModelOptions\Pdm]
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Xsm]
+GenRootElement=Yes
+GenComplexType=No
+GenAttribute=Yes
+CheckModel=Yes
+SaveLinks=Yes
+ORMapping=No
+NameToCode=No
+
+[ModelOptions\Generate\Pdm]
+RRMapping=No
+
+[ModelOptions\Generate\Cdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+Notation=2
+
+[ModelOptions\Generate\Oom]
+CheckModel=Yes
+SaveLinks=Yes
+ORMapping=No
+NameToCode=Yes
+ClassPrefix=
+
+[ModelOptions\Generate\Ldm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+
+[ModelOptions\Default Opts]
+
+[ModelOptions\Default Opts\TABL]
+PhysOpts=
+
+[ModelOptions\Default Opts\COLN]
+PhysOpts=
+
+[ModelOptions\Default Opts\INDX]
+PhysOpts=
+
+[ModelOptions\Default Opts\AKEY]
+PhysOpts=
+
+[ModelOptions\Default Opts\PKEY]
+PhysOpts=
+
+[ModelOptions\Default Opts\STOR]
+PhysOpts=
+
+[ModelOptions\Default Opts\TSPC]
+PhysOpts=
+
+[ModelOptions\Default Opts\SQNC]
+PhysOpts=
+
+[ModelOptions\Default Opts\DTBS]
+PhysOpts=
+
+[ModelOptions\Default Opts\USER]
+PhysOpts=
+
+[ModelOptions\Default Opts\JIDX]
+PhysOpts=
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.pdm
+
+
+011B0C1B-73BE-416D-8CA9-BBDDD75D82E8
+LCD
+LCD
+1545884139
+user
+1545884139
+user
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+
+
+4797140A-583F-4EDE-90B7-EB111C2CC71C
+MySQL 5.0
+MYSQL50
+1545736525
+user
+1545881719
+user
+
+F4F16ECD-F2F1-4006-AF6F-638D5C65F35E
+4BA9F647-DAB1-11D1-9944-006097355D9B
+
+
+A0D56B38-CD0F-4C23-A56A-31FDD7925602
+BeforeInsertTrigger
+BeforeInsertTrigger
+1545736808
+user
+1545811802
+user
+
+63C341EF-60CE-4B9B-8429-5484200F90D5
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+90EB8DB7-0E98-4B1E-998D-1CB0D19AB8E3
+AfterInsertTrigger
+AfterInsertTrigger
+1545736832
+user
+1545881810
+user
+
+58C21DCB-AC16-473D-99E6-A3DAAE116BDB
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+045D1FCB-EFB3-4EDB-BCB3-25FCD097D403
+AfterUpdateTrigger
+AfterUpdateTrigger
+1545736832
+user
+1545881864
+user
+
+2B3AE0D7-0CE4-4D08-BE93-2476B9E604D5
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+22E5B653-3568-4843-8F24-977DD830818D
+BeforeUpdateTrigger
+BeforeUpdateTrigger
+1545736832
+user
+1545811869
+user
+
+A4F66E74-54DB-4500-B8EF-67682F6BCA34
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+5EDECE99-D270-4F31-A888-A0AE08F00612
+BeforeDeleteTrigger
+BeforeDeleteTrigger
+1545736897
+user
+1545881719
+user
+
+B9B9F30F-7DCD-4156-A212-A2D417A1545C
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+12F40D1E-F605-4574-815E-831B8FCD3140
+AfterDeleteTrigger
+AfterDeleteTrigger
+1545881673
+user
+1545881719
+user
+
+7891F479-A42E-4BEE-93CE-E2D846F8651B
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+
+
+
+
+8E771B30-ECD2-4935-AA92-67E54CF50108
+LCD
+LCD
+1545736527
+user
+1546564112
+user
+ORG {2FCC8033-97A7-455C-A68D-1262037A4314}
+DAT 1545736527
+ORG {2EF18832-7E63-41A4-845C-5C1308FE1984}
+DAT 1545736490
+[DisplayPreferences]
+
+[DisplayPreferences\PDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Table.Stereotype=Yes
+Table.DisplayName=Yes
+Table.OwnerDisplayName=No
+Table.Columns=Yes
+Table.Columns._Filter="All Columns" PDMCOLNALL
+Table.Columns._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Table.Columns._Limit=-5
+Table.Keys=No
+Table.Keys._Columns=Stereotype Indicator
+Table.Indexes=No
+Table.Indexes._Columns=Stereotype
+Table.Triggers=No
+Table.Triggers._Columns=Stereotype
+Table.Comment=No
+Table.IconPicture=No
+Table.TextStyle=No
+Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No "Domain or Data type"\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters=""All Columns" PDMCOLNALL ""\r\n"PK Columns" PDMCOLNPK "\"PRIM \"TRUE\" TRUE\""\r\n"Key Columns" PDMCOLNKEY "\"KEYS \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+View.Stereotype=Yes
+View.DisplayName=Yes
+View.OwnerDisplayName=No
+View.Columns=Yes
+View.Columns._Columns=DisplayName
+View.Columns._Limit=-5
+View.TemporaryVTables=Yes
+View.Indexes=No
+View.Comment=No
+View.IconPicture=No
+View.TextStyle=No
+View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No "Domain or Data type"\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Procedure.Stereotype=No
+Procedure.DisplayName=Yes
+Procedure.OwnerDisplayName=No
+Procedure.Comment=No
+Procedure.IconPicture=No
+Procedure.TextStyle=No
+Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Reference.Cardinality=No
+Reference.ImplementationType=No
+Reference.ChildRole=Yes
+Reference.Stereotype=Yes
+Reference.DisplayName=Yes
+Reference.ForeignKeyConstraintName=No
+Reference.JoinExpression=No
+Reference.Integrity=No
+Reference.ParentRole=Yes
+Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+ViewReference.ChildRole=Yes
+ViewReference.Stereotype=Yes
+ViewReference.DisplayName=No
+ViewReference.JoinExpression=No
+ViewReference.ParentRole=Yes
+ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.JoinExpression=No
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\PDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0, 0, 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0, 0, 0
+LABLFont=Arial,8,N
+LABLFont color=0, 0, 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\TABL]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+ColumnsFont=Arial,8,N
+ColumnsFont color=0 0 0
+TablePkColumnsFont=Arial,8,U
+TablePkColumnsFont color=0 0 0
+TableFkColumnsFont=Arial,8,N
+TableFkColumnsFont color=0 0 0
+KeysFont=Arial,8,N
+KeysFont color=0 0 0
+IndexesFont=Arial,8,N
+IndexesFont color=0 0 0
+TriggersFont=Arial,8,N
+TriggersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=210 137 2
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\VIEW]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+ColumnsFont=Arial,8,N
+ColumnsFont color=0 0 0
+TablePkColumnsFont=Arial,8,U
+TablePkColumnsFont color=0 0 0
+TableFkColumnsFont=Arial,8,N
+TableFkColumnsFont color=0 0 0
+TemporaryVTablesFont=Arial,8,N
+TemporaryVTablesFont color=0 0 0
+IndexesFont=Arial,8,N
+IndexesFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=233 202 131
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\PROC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4000
+Height=1000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 108 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\REFR]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\VREF]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+EntityForeignAttributeFont=Arial,8,N
+EntityForeignAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=234 181 21
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMRLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=No
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1575
+Height=1000
+Brush color=250 241 211
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMLINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\LDM]
+
+[DisplayPreferences\CDM]
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1545884139
+((-25583,12311), (-13359,19034))
+((-19471,18634),(-19471,12711))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((-24826,22164), (369,41434))
+((-19389,22564),(-19389,40809),(-31,40809))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((-3378,27323), (12822,41209))
+((4722,27723),(4722,40809))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((275,9562), (10025,18200))
+((5150,9962),(5150,17800))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545979862
+((-13311,23173), (-1453,24843))
+((-12911,23798),(-1853,23798))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((11753,22596), (24856,24266))
+((12153,23221),(24456,23221))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((8477,26990), (38646,42634))
+((30996,27390),(30996,42009),(8877,42009))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1546255835
+((-35439,20108), (-24895,21778))
+((-25295,20733),(-35039,20733))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545912555
+((-35401,10624), (-22019,12294))
+((-22419,11249),(-35001,11249))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545912559
+((5186,14754), (32030,19919))
+((5586,19519),(17116,19519),(17116,15379),(31630,15379))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545808466
+1545809572
+((-21773,-11419), (-4681,19034))
+((-5081,-10373),(-15923,-10373),(-15923,18634))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545809915
+1545811440
+((-402,-11419), (17743,18200))
+((-2,-10373),(11893,-10373),(11893,17800))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545809915
+1545810332
+((-20171,-10773), (-3252,9111))
+((-3652,-10373),(-3652,-7725),(-19471,-7725),(-19471,8711))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545840072
+1545840212
+((-14561,-17467), (369,42709))
+((-3918,-17067),(-8711,-17067),(-8711,42009),(-31,42009))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545881272
+1545881368
+((-11531,-23764), (169,23669))
+((-5681,-23364),(-5681,22969),(-1853,22969))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545881272
+1545881368
+((-58,-23764), (11642,1972))
+((5792,-23364),(5792,1572))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882531
+1545912555
+((-39344,-10773), (1763,9649))
+((1363,-10373),(1363,-2628),(-38644,-2628),(-38644,9249))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882531
+1546255835
+((-39653,-10773), (-801,19133))
+((-1201,-10373),(-1201,14104),(-38953,14104),(-38953,18733))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545884384
+1545912559
+((-5851,-10773), (27074,14804))
+((-1,-10373),(-1,14104),(26674,14104))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1546563960
+1546564112
+((-402,-42776), (26566,41509))
+((-2,-42376),(20716,-42376),(20716,40809),(8877,40809))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+-1
+((-1853,17800), (12153,28138))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-31,37588), (8877,44030))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-22419,8711), (-16523,12711))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((763,1572), (11293,9962))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-25295,18634), (-12911,28972))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((24456,19000), (37536,27390))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545808345
+1545884139
+-1
+((-5081,-11022), (5078,-9724))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545840053
+1545884139
+-1
+((-3918,-17716), (3916,-16418))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545881226
+1545884139
+-1
+((-6394,-24013), (6392,-22715))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1546255835
+-1
+((-42867,18733), (-35039,22733))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545912555
+-1
+((-42287,9249), (-35001,13249))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545912559
+-1
+((26674,11979), (36586,15979))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545915113
+1545915358
+-1
+((-15689,-36728), (15686,-29012))
+8421504
+8637161
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+TemporaryVTables 0 Arial,8,N
+Indexes 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1546563829
+1546564252
+-1
+((-4594,-43025), (4591,-41727))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+E3816B85-E2B2-42CB-9D03-EE8AEE94FA87
+MySettings
+1545829744
+user
+1545829744
+user
+[Physical Objects\Database Generation\Format]
+GenScriptTitle=Yes
+GenScriptNamLabl=No
+GenScriptQDtbs=No
+GenScriptQOwnr=Yes
+GenScriptCase=0
+GenScriptEncoding=ANSI
+GenScriptNAcct=No
+IdentifierDelimiter="
+
+[Physical Objects\Database Generation\Database]
+Create=Yes
+Open=Yes
+Close=Yes
+Drop=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Database\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Tablespace]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Tablespace\Create]
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Storage]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\User]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\User\Create]
+Physical Options=No
+
+[Physical Objects\Database Generation\Group]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\Role]
+Create=Yes
+Drop=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\UserDefinedDataType]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\UserDefinedDataType\Create]
+Default value=Yes
+Check=Yes
+
+[Physical Objects\Database Generation\AbstractDataType]
+Create=Yes
+Header=Yes
+Footer=Yes
+Drop=Yes
+Comment=Yes
+Install JAVA class=Yes
+Remove JAVA class=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Rule]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Default]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\Sequence]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Table&&Column\Table]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Table&&Column\Table\Create]
+Check=Yes
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Table\Create\Check]
+Constraint declaration=No
+
+[Physical Objects\Database Generation\Table&&Column\Column]
+User datatype=No
+Default value=Yes
+Check=Yes
+Physical Options=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Column\Check]
+Constraint declaration=No
+
+[Physical Objects\Database Generation\Table&&Column\Key\Primary key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Alternate key]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Foreign key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Foreign key\Create]
+Constraint declaration=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index\Create]
+Constraint declaration=Yes
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index\Filter]
+Primary key=No
+Foreign key=No
+Alternate key=No
+Cluster=Yes
+Other=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Trigger]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[Physical Objects\Database Generation\View]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\View\Create]
+Force Column list=No
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\View\ViewColumn]
+Comment=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex\Create]
+Physical Options=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex\Filter]
+Cluster=Yes
+Other=Yes
+
+[Physical Objects\Database Generation\View\Trigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\View\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[Physical Objects\Database Generation\DBMSTrigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Synonym]
+Create=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\Synonym\Filter]
+Table=Yes
+View=Yes
+Proc=Yes
+Synonym=Yes
+Database Package=Yes
+Sequence=Yes
+
+[Physical Objects\Database Generation\JoinIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\JoinIndex\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Procedure]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Procedure\Create]
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\DatabasePackage]
+Create=Yes
+Drop=Yes
+Permission=No
+
+[Physical Objects\Database Generation\WebService]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Dimension]
+Create=Yes
+Drop=Yes
+Database Generation
+
+
+
+
+D964A7DA-CC7E-4803-BC7C-1C40B27C65E1
+Delete_Keperluan_Pinjam
+DELETE_KEPERLUAN_PINJAM
+1545161879
+Lenovo2
+1545885516
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Id INTEGER,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ DELETE FROM Keperluan_Pinjam
+ WHERE Id_Keperluan_Pinjam=Id;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+0C4BA84B-12C1-41D5-BB82-F3D4234CBF5B
+Insert_Keperluan_Pinjam
+INSERT_KEPERLUAN_PINJAM
+1545162505
+Lenovo2
+1545885508
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %PROC% (
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Nomor_Peminjaman INTEGER,
+ IN Sesi CHAR(32),
+ OUT Id_Keperluan_Pinjam INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ INSERT INTO Keperluan_Pinjam(
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ ) VALUES (
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ );
+ SET Id_Keperluan_Pinjam = LAST_INSERT_ID();
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+AC373B6D-9112-4333-867C-2C7340E89194
+Insert_Barang
+INSERT_BARANG
+1545112381
+Lenovo2
+1545843218
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF EXISTS (SELECT * FROM Barang B WHERE B.Nomor_Barang=Nomor_Barang AND B.Tipe_Barang=Tipe_Barang) THEN
+ IF EXISTS (SELECT * FROM Riwayat_Barang RB WHERE RB.Nomor_Barang=Nomor_Barang AND RB.Tipe_Barang=Tipe_Barang AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang sudah ada';
+ END IF;
+ ELSE
+ INSERT INTO Barang(Nomor_Barang, Tipe_Barang) VALUES(Nomor_Barang, Tipe_Barang);
+ END IF;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ 'A',
+ Keterangan_Barang,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+236171BE-0A59-47AF-BA0F-A18C389A76DF
+Insert_Peminjaman
+INSERT_PEMINJAMAN
+1545113210
+Lenovo2
+1545881128
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Nomor_Peminjaman INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ SET waktu=NOW();
+
+ START TRANSACTION;
+
+
+ INSERT INTO Peminjaman(
+ Username_Petugas,
+ Identitas_Peminjam,
+ Status_Peminjaman,
+ Keterangan_Peminjaman,
+ Waktu_Pinjam,
+ Waktu_Harus_Kembali,
+ Waktu_Admin_Peminjaman_Terakhir
+ ) VALUES (
+ username,
+ Identitas_Peminjam,
+ 'A',
+ Keterangan_Peminjaman,
+ waktu,
+ Waktu_Harus_Kembali,
+ waktu
+ );
+ SET Nomor_Peminjaman = LAST_INSERT_ID();
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+2ACD4320-07AB-4251-AB9F-99AFE9E32501
+Insert_Petugas_Unsafe
+INSERT_PETUGAS_UNSAFE
+1544973235
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (
+ IN Username VARCHAR(16),
+ IN Password VARCHAR(16),
+ IN Nama VARCHAR(64)
+)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+
+ INSERT INTO Petugas(
+ Username_Petugas,
+ Hashpass_Petugas,
+ Nama_Petugas
+ ) VALUES(
+ Username,
+ MD5(CONCAT(MD5(CONCAT(Password, 'Petugas')), 'Admin')),
+ Nama
+ );
+
+END//
+DELIMITER ;
+
+
+68ED0FC1-9019-4873-83CF-CABC1DE7118D
+Login_Petugas
+LOGIN_PETUGAS
+1544939328
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (IN Username VARCHAR(16), IN Hashpass CHAR(32), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ IF Username IS NULL OR Username = ' ' OR CHAR_LENGTH(Username) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF Hashpass IS NULL OR Hashpass = ' ' OR CHAR_LENGTH(Hashpass) < 32 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Hashpass tidak valid';
+ END IF;
+ IF NOT EXISTS (SELECT * FROM Petugas WHERE Petugas.Username_Petugas = Username AND Petugas.Hashpass_Petugas = MD5(CONCAT(Hashpass, 'Admin'))) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username atau password salah';
+ END IF;
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ WHILE EXISTS (SELECT * FROM Petugas WHERE Sesi_Petugas=Sesi) DO
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ END WHILE;
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+
+ UPDATE Petugas SET Sesi_Petugas = Sesi, Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+ SELECT Nama_Petugas INTO Nama FROM Petugas WHERE Sesi_Petugas=Sesi;
+END//
+DELIMITER ;
+
+
+D5483236-B560-4ED5-870A-2BEA64F5058D
+Login_Petugas_Unsafe
+LOGIN_PETUGAS_UNSAFE
+1545016666
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (IN Username VARCHAR(16), IN Password VARCHAR(16), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+ CALL Login_Petugas(Username, MD5(CONCAT(Password, 'Petugas')), Nama, Sesi, Timeout);
+END//
+DELIMITER ;
+
+
+936D72C2-DBA0-4618-AEAB-6F5EF794D4B1
+Ping_Sesi
+PING_SESI
+1544941703
+Lenovo2
+1545881767
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Sesi CHAR(32),
+ OUT Username VARCHAR(16),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ SET datetime_now = NOW();
+ SELECT Username_Petugas INTO Username FROM Petugas WHERE Sesi_Petugas=Sesi AND Timeout_Sesi_Petugas > datetime_now;
+ IF (SELECT ROW_COUNT()) = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada atau sudah hangus';
+ END IF;
+
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+ UPDATE Petugas SET Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+0A9B4958-68DD-4231-B2C7-CE5082B2440F
+Update_Detail_Peminjaman
+UPDATE_DETAIL_PEMINJAMAN
+1545131924
+Lenovo2
+1545882847
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Peminjaman INTEGER,
+ IN Status_Peminjaman CHAR(1),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjaman P
+ SET
+ P.Status_Peminjaman=Status_Peminjaman,
+ P.Keterangan_Peminjaman=Keterangan_Peminjaman,
+ P.Waktu_Harus_Kembali=Waktu_Harus_Kembali,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+BA4B8D1C-ECA2-4B34-9500-593ABBFFBE89
+Update_Keperluan_Pinjam
+UPDATE_KEPERLUAN_PINJAM
+1545131930
+Lenovo2
+1545886575
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Id_Keperluan_Pinjam INTEGER,
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF NOT EXISTS(SELECT * FROM Peminjaman P WHERE P.Nomor_Peminjaman=Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ada';
+ END IF;
+
+ UPDATE Keperluan_Pinjam KP
+ SET KP.Keperluan_Pinjam = Keperluan_Pinjam,
+ KP.Nama_Penanggung_Jawab = Nama_Penanggung_Jawab,
+ KP.Ruang_Pinjam = Ruang_Pinjam,
+ KP.Waktu_Mulai = Waktu_Mulai,
+ KP.Waktu_Selesai = Waktu_Selesai
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+7B5A7380-B9F4-4DD1-ACB6-18DC270A8EF6
+Insert_Peminjam
+INSERT_PEMINJAM
+1545796788
+user
+1545880129
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ INSERT INTO Peminjam (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ Username_Petugas,
+ Waktu_Admin_Peminjam_Terakhir
+ ) VALUES (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ username,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+3D5C919A-6BD3-4733-8069-CF3BA97AE5C4
+Update_Peminjam
+UPDATE_PEMINJAM
+1545796796
+user
+1545880151
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Keterangan_Blacklist VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjam P
+ SET
+ P.Nama_Peminjam=Nama_Peminjam,
+ P.Alamat_Peminjam=Alamat_Peminjam,
+ P.Nomor_HP_Peminjam=Nomor_HP_Peminjam,
+ P.Keterangan_Blacklist=Keterangan_Blacklist,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjam_Terakhir=NOW()
+ WHERE P.Identitas_Peminjam=Identitas_Peminjam;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjam tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+695BB5A8-442F-4171-A2C2-C1CBF9A36F51
+Update_Detail_Barang
+UPDATE_DETAIL_BARANG
+1545808345
+user
+1546244337
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Status_Barang CHAR(1),
+ IN Nomor_Peminjaman INTEGER,
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+proc_label: BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE id_riwayat_barang_lama INTEGER;
+ DECLARE nomor_peminjaman_lama INTEGER;
+ DECLARE status_barang_lama CHAR(1);
+ DECLARE keterangan_barang_lama VARCHAR(256);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ SELECT
+ RB.Id_Riwayat_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+ INTO
+ id_riwayat_barang_lama,
+ status_barang_lama,
+ nomor_peminjaman_lama,
+ keterangan_barang_lama
+ FROM Riwayat_Barang RB
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ IF Status_Barang = status_barang_lama
+ AND Nomor_Peminjaman = nomor_peminjaman_lama
+ AND Keterangan_Barang = keterangan_barang_lama THEN
+
+ LEAVE proc_label;
+ END IF;
+
+ IF ROW_COUNT() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak ada';
+ END IF;
+
+ IF Status_Barang='P' AND Nomor_Peminjaman IS NULL THEN
+ SET Nomor_Peminjaman=nomor_peminjaman_lama;
+ IF Nomor_Peminjaman IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor peminjaman harus diisi untuk barang berstatus dipinjam';
+ END IF;
+ END IF;
+
+ IF Status_Barang='P' AND Status_Barang=status_barang_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam.';
+ END IF;
+
+ IF Status_Barang<>'P' AND Nomor_Peminjaman IS NOT NULL THEN
+ SET Nomor_Peminjaman=NULL;
+ END IF;
+
+ IF Keterangan_Barang IS NULL THEN
+ SET Keterangan_Barang=keterangan_barang_lama;
+ END IF;
+
+ SET waktu=NOW();
+
+
+
+
+ IF Status_Barang <> status_barang_lama THEN
+ IF Status_Barang = 'P' AND status_barang_lama <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak bisa dipinjam';
+ END IF;
+ IF Status_Barang <> 'A' AND status_barang_lama = 'P' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ IF Status_Barang='P' THEN
+ IF (
+ SELECT P.Status_Peminjaman
+ FROM Peminjaman P
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman
+ ) <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak aktif';
+ END IF;
+ END IF;
+
+ ELSEIF Status_Barang='P' AND Nomor_Peminjaman<>nomor_peminjaman_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ UPDATE Riwayat_Barang RB
+ SET RB.Waktu_Berakhir_Riwayat_Barang=waktu
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ waktu
+ );
+
+ IF Status_Barang = 'A' AND status_barang_lama = 'P' THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+
+ IF nomor_peminjaman_lama IS NOT NULL AND NOT EXISTS (SELECT * FROM Barang_Terkini BT WHERE BT.Nomor_Peminjaman=nomor_peminjaman_lama) THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW(),
+ P.Waktu_Kembali=NOW(),
+ P.Status_Peminjaman='S'
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+C90AD608-E526-48D6-8C82-7A1A5251F91F
+Logout_Petugas
+LOGOUT_PETUGAS
+1545840053
+user
+1545840212
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Sesi_Petugas CHAR(32)
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ UPDATE Petugas P
+ SET P.Sesi_Petugas=NULL,
+ P.Timeout_Sesi_Petugas=NULL
+ WHERE P.Sesi_Petugas=Sesi;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+2B553430-2070-469B-9AEB-34E3E3F9E968
+Hitung_Waktu_Harus_Kembali
+HITUNG_WAKTU_HARUS_KEMBALI
+1545881226
+user
+1545886447
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Peminjaman INTEGER
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE err VARCHAR(64);
+ DECLARE waktu_harus_kembali DATETIME;
+ DECLARE username VARCHAR(16);
+
+
+
+ SET waktu_harus_kembali=(
+ SELECT MAX(KP.Waktu_Selesai)+INTERVAL 30 MINUTE
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Nomor_Peminjaman=Nomor_Peminjaman
+ );
+
+
+
+ UPDATE Peminjaman P
+ SET
+ P.Waktu_Harus_Kembali=waktu_harus_kembali,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+END//
+DELIMITER ;
+
+
+5AF1128B-5218-4DC4-9B13-04C3802027CE
+Get_Nama_Petugas
+GET_NAMA_PETUGAS
+1546563829
+user
+1546564252
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' function %FUNC%(Username VARCHAR(16))
+RETURNS VARCHAR(64)
+SQL SECURITY INVOKER
+BEGIN
+ DECLARE Nama VARCHAR(64);
+ SELECT P.Nama_Petugas INTO Nama FROM Petugas P WHERE P.Username_Petugas=Username;
+ RETURN Nama;
+END //
+DELIMITER ;
+1
+
+
+
+
+8170004D-0AE1-4F07-923C-DA6D03CB1B9B
+Peminjaman
+PEMINJAMAN
+1545736527
+user
+1545927151
+user
+ORG {8BA361E9-B8A7-42FA-B7EE-596A4DCFE9BE}
+DAT 1545736527
+ORG {55B8452B-5D32-4503-8C30-48C89C1B74AE}
+DAT 1545736490
+
+
+
+072CD3BD-8EF9-45A0-89A1-76A311E62EA6
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736527
+user
+1545843341
+user
+ORG {39303C18-5481-41AF-AADB-DBADCE0AA0CB}
+DAT 1545736527
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+4DA6DCEC-A27B-40CB-AC3D-B4CAE64AFF26
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {773379BF-065F-4294-B175-9718B9176879}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+varchar(64)
+64
+
+
+79A85866-43F1-4199-B8B5-028EEA620EC7
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736527
+user
+1545882532
+user
+ORG {8AE084CF-C644-4D1D-A37E-8F2548901F7B}
+DAT 1545736527
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79},{89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+varchar(18)
+18
+1
+
+
+9E1AAFFD-8964-4FD3-8713-76F7B94BD526
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545736527
+user
+1545794866
+user
+ORG {C06369AD-F6FD-473F-91E4-9FB95A602881}
+DAT 1545736527
+ORG {4DE0E9A7-5D8E-4E99-B213-FC4346E2B946}
+DAT 1545736490
+char(1)
+1
+1
+
+
+96C54F02-2E93-4D4A-A3C2-533E8D54A144
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1545736527
+user
+1545736527
+user
+ORG {7415399D-0168-4F51-8386-97C0B817F1CC}
+DAT 1545736527
+ORG {203B69FE-246A-4C7E-A730-992E303F6D3B}
+DAT 1545736490
+varchar(256)
+256
+
+
+BA35266F-C8DC-492E-B1F9-9205AC40E6CA
+Waktu_Pinjam
+WAKTU_PINJAM
+1545736527
+user
+1545835115
+user
+ORG {BDAEC1A6-0F26-4E5B-BE3B-E1D6A629E02D}
+DAT 1545736527
+ORG {B12F0ECB-FD98-487A-B151-F62D4B0E3486}
+DAT 1545736490
+ATT OBJEXA
+ATT DVAL
+datetime
+1
+{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=
+{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=
+
+
+
+
+A75A1CBC-B38F-415F-9BCF-2AAE27AE6C68
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811142
+user
+1545811145
+user
+ORG {C6865222-C64A-4065-A455-5CC4D676897F}
+DAT 1545811143
+ORG {0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76}
+DAT 1545811135
+datetime
+1
+
+
+D11F1FBB-30FB-43AF-9B78-28DBBFD06054
+Waktu_Kembali
+WAKTU_KEMBALI
+1545736527
+user
+1545736527
+user
+ORG {F51B8452-8222-4986-87DC-E74817A091CE}
+DAT 1545736527
+ORG {584DE94B-99D8-40E2-AF33-14E5EEB0A747}
+DAT 1545736490
+datetime
+
+
+726DCF4B-8926-47A1-A6DE-0B74A1545650
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811437
+user
+1545811440
+user
+ORG {7F5A8523-42EA-44DB-B147-E65A0BBAE30F}
+DAT 1545811437
+ORG {364039B9-3C9A-4BBF-9A15-606C658C4D37}
+DAT 1545811429
+datetime
+1
+
+
+
+
+BAE7750F-2EA6-4DCA-A8D4-6EA8CBB0CC2B
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {999F4AC1-B2F0-41D9-9537-966B9BE229BD}
+DAT 1545736527
+ORG {31B046B1-A4C8-4714-81F8-BB7EB106A8E7}
+DAT 1545736490
+
+
+
+
+
+
+
+87D64710-B180-4006-AE9A-C5CB65D9E6FF
+PEMINJAMAN_PK
+PEMINJAMAN_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+A239521A-14D0-43BA-9174-763C206AACCB
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+6D69C0CA-5373-4677-98CA-2D52B4F26CAE
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT_FK
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+B7DC3675-3830-4140-987C-5B25BC90BF26
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+D3BB825C-509C-4A59-B4C6-02EA9DB441FD
+MELAKUKAN_FK
+MELAKUKAN_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+B0D0F63E-0FED-4D17-9005-001D7CC77FEF
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+AAB7F6E3-E363-48CD-832B-EE14605C821D
+PEMINJAMAN_BERSTATUS_FK
+PEMINJAMAN_BERSTATUS_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+BF2E6438-172D-4772-8EB0-A158F4070FFE
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+0B7BF1A8-9F2B-4D74-9BFA-0A6F6A8038F5
+BEFORE_INSERT_PEMINJAMAN
+BEFORE_INSERT_PEMINJAMAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ DECLARE keterangan_blacklist VARCHAR(320);
+
+
+ SELECT P.Keterangan_Blacklist
+ INTO keterangan_blacklist
+ FROM Peminjam P
+ WHERE P.Identitas_Peminjam=NEW.Identitas_Peminjam;
+
+ IF keterangan_blacklist IS NOT NULL THEN
+ SET keterangan_blacklist = CONCAT('Peminjam terblacklist. Keterangan: ', keterangan_blacklist);
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT=keterangan_blacklist;
+ END IF;
+end//
+DELIMITER ;
+1545139962
+Lenovo2
+1545812990
+user
+
+
+
+
+
+89E61656-C4B2-4E88-8793-6EC6D96AB771
+BEFORE_UPDATE_PEMINJAMAN
+BEFORE_UPDATE_PEMINJAMAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Status_Peminjaman IS NULL THEN
+ SET NEW.Status_Peminjaman = OLD.Status_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Pinjam IS NULL THEN
+ SET NEW.Waktu_Pinjam = OLD.Waktu_Pinjam;
+ END IF;
+ IF NEW.Keterangan_Peminjaman IS NULL THEN
+ SET NEW.Keterangan_Peminjaman = OLD.Keterangan_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Harus_Kembali IS NULL THEN
+ SET NEW.Waktu_Harus_Kembali = OLD.Waktu_Harus_Kembali;
+ END IF;
+ IF NEW.Waktu_Kembali IS NULL AND NEW.Status_Peminjaman > 1 THEN
+ SET NEW.Waktu_Kembali = OLD.Waktu_Kembali;
+ END IF;
+
+ IF NEW.Username_Petugas IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username petugas harus diisi';
+ END IF;
+
+
+ IF OLD.Status_Peminjaman <> NEW.Status_Peminjaman THEN
+ IF NEW.Status_Peminjaman='A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Anda tidak dapat membuka kembali peminjaman. Silahkan buat peminjaman baru.';
+ ELSE
+ IF EXISTS (SELECT * FROM Barang_Terkini BR WHERE BR.Nomor_Peminjaman=NEW.Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Masih ada barang yang belum dikembalikan';
+ END IF;
+ SET NEW.Waktu_Kembali=NOW();
+ END IF;
+ END IF;
+end//
+DELIMITER ;
+1545130776
+Lenovo2
+1545886955
+user
+Update
+
+
+
+
+
+
+
+
+
+
+55634B15-0D3F-49B4-B2D5-CD8BFD88924E
+Petugas
+PETUGAS
+1545736527
+user
+1546564112
+user
+ORG {04B24E1A-6FF6-47A9-8A39-F4B1430FB8ED}
+DAT 1545736527
+ORG {6FE91B06-BFF3-43BE-AD99-838BCAD29B9D}
+DAT 1545736490
+MOV COLNCOL
+
+
+
+7D9F9C3D-7DD5-49B5-81A6-2F3F3FB07144
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {18ED59F5-06F4-4F84-861A-C29F9050DB2E}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+08722869-F2DD-43AC-B8FB-3650B146573D
+Nama_Petugas
+NAMA_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {17363653-90A4-4C53-9699-8E8DD736B25D}
+DAT 1545736527
+ORG {D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+07C38EAB-CF35-4A52-BFC5-06C7C9CFDD06
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {66E17700-1AEC-4D47-8C45-DECD745E8D0B}
+DAT 1545736527
+ORG {51F1354E-718E-4D22-A13A-756688479756}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+6A70D0CA-B089-4A92-80C2-C5770E206ACF
+Sesi_Petugas
+SESI_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {22327F34-8E2D-4C2D-B7E5-795CA207A9BC}
+DAT 1545736527
+ORG {6CC33874-6734-4E4C-AA02-D6856A4A5F47}
+DAT 1545736490
+varchar(64)
+64
+
+
+AACFD154-10EF-4F63-8EEA-581D8E2C80A3
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {3E718959-3BA1-4941-B6C1-9FB845891CFF}
+DAT 1545736527
+ORG {F12EB1A4-DCE2-405C-B80D-973E76C68758}
+DAT 1545736490
+datetime
+
+
+
+
+2B8A5A63-506B-4C57-B43D-473C839305E0
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {5FC0BE80-0A06-40B3-A000-E116D27864B0}
+DAT 1545736527
+ORG {60396C66-C10A-4C1A-8882-3638FE27393C}
+DAT 1545736490
+
+
+
+
+
+
+
+28A7DD70-1362-4A4F-875D-40F3A76DE0A2
+ADMIN_PK
+ADMIN_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+B167E2E7-A915-4BEF-9AAD-7222EEA466FF
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+4EF60A74-4DC5-4D10-840E-22D1E72E47ED
+BEFORE_INSERT_PETUGAS
+BEFORE_INSERT_PETUGAS
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Username_Petugas IS NULL OR NEW.Username_Petugas = ' ' OR CHAR_LENGTH(NEW.Username_Petugas) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF NEW.Nama_Petugas IS NULL OR NEW.Nama_Petugas = ' ' OR CHAR_LENGTH(NEW.Nama_Petugas) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+1545140240
+Lenovo2
+1545736808
+user
+
+
+
+
+
+
+
+
+
+
+86BCFB92-984E-4824-AEA4-472E4A2FD021
+Barang
+BARANG
+1545736527
+user
+1545927122
+user
+ORG {E942B61C-6DFF-443D-8FCF-99622A84EF21}
+DAT 1545736527
+ORG {F187F009-5829-4542-93B6-379273CE9E96}
+DAT 1545736490
+MOV COLNCOL
+
+
+
+D84A12C6-7973-4854-839A-E20EB4EA8690
+Tipe_Barang
+TIPE_BARANG
+1545736527
+user
+1545736527
+user
+ORG {53325852-A161-4C7E-BBB9-2A9F5DEA8E43}
+DAT 1545736527
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E}
+DAT 1545736490
+char(1)
+1
+1
+
+
+A78596ED-37C5-4A4C-9A23-C249D37DA636
+Nomor_Barang
+NOMOR_BARANG
+1545736527
+user
+1545736527
+user
+ORG {83905240-83D8-426C-8DF9-E4F3BF4EB2D2}
+DAT 1545736527
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F}
+DAT 1545736490
+int
+1
+
+
+
+
+88B4111B-AF93-4BA8-BD36-B2762A339FB0
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545806343
+user
+ORG {BA2C672C-F192-4B0F-A185-4E258A7DF564}
+DAT 1545736527
+ORG {D20F8C19-09B3-48B9-BF4B-BE9263947981}
+DAT 1545736490
+REM COLNCOL {BF485DA6-CEEE-42D4-A5E5-4E982FAF6CC8}
+INS COLNCOL {53325852-A161-4C7E-BBB9-2A9F5DEA8E43}
+INS COLNCOL {83905240-83D8-426C-8DF9-E4F3BF4EB2D2}
+
+
+
+
+
+
+
+
+FFD47E7A-306A-42B7-99CE-62854AF96D87
+BARANG_PK
+BARANG_PK
+1545736527
+user
+1545806343
+user
+1
+
+
+
+
+
+E5DC62B5-AEAC-4241-BB1E-70ABA85F4EDA
+1545806341
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+CBCCC5A3-518D-42A2-9665-F7E97E3CBC50
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+
+
+B44B2174-873E-4D94-A4BE-B2F99CAC4FD5
+BERTIPE_FK
+BERTIPE_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+89AF0CCE-3801-417D-8F8D-70F43686BCEF
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+32AC13DD-AEEF-4C98-AA45-EA4B09B81782
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736527
+user
+1545881864
+user
+ORG {8AC8F2A2-B48B-4889-8765-6A651A1E3432}
+DAT 1545736527
+ORG {D59E323B-F178-4442-A688-93A883DAF7B7}
+DAT 1545736490
+
+
+
+C17516AF-6A68-4E6D-9FC4-497222BB06DC
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1545736527
+user
+1545843355
+user
+ORG {63391AF3-95D2-48C3-836E-958F2793D03E}
+DAT 1545736527
+ORG {2E1269FA-5311-4C87-A578-969754041E4A}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+662394F9-A15D-4625-AECC-DF5AF4596FD1
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736527
+user
+1545736527
+user
+ORG {1395C165-578C-4A7A-84D0-F8211B740A33}
+DAT 1545736527
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+int
+1
+
+
+89AE7AEB-C526-4A3E-A2BB-19C232CC96D7
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736527
+user
+1545736527
+user
+ORG {EDC27EF9-1BD3-4132-871E-FFC4EBB39D51}
+DAT 1545736527
+ORG {1EC0F598-7EF3-4F7A-832A-6237CE63030F}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+AC5CE796-71DA-47FE-B225-5234793DDC28
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1545736527
+user
+1545736527
+user
+ORG {93B5CDA8-C96B-4F29-AC7D-E009D0C0E039}
+DAT 1545736527
+ORG {C5AE339A-26B1-471F-85A9-06702DBAE421}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+76FCBBF1-498E-46E0-8216-44A5162BB6A4
+Ruang_Pinjam
+RUANG_PINJAM
+1545736527
+user
+1545736527
+user
+ORG {2FFD6041-C931-4FEF-A8A8-2CB1A8855701}
+DAT 1545736527
+ORG {ABE9B8B1-AE32-497C-A295-E18C283E8D45}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+253B68FD-6484-4716-9E02-404E4578DAC4
+Waktu_Mulai
+WAKTU_MULAI
+1545736527
+user
+1545736527
+user
+ORG {97FE54BD-18FB-4985-A964-21948C9AF6E4}
+DAT 1545736527
+ORG {4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2}
+DAT 1545736490
+datetime
+1
+
+
+A1936723-15C0-4F40-B875-07497E203C1E
+Waktu_Selesai
+WAKTU_SELESAI
+1545736527
+user
+1545736527
+user
+ORG {FC21DDC2-4C53-43C0-A454-8190ECF3A7A0}
+DAT 1545736527
+ORG {9FC86DB0-C033-46CB-B5BC-3882DB2E0984}
+DAT 1545736490
+datetime
+1
+
+
+
+
+54A5FEA1-C3CE-4483-82A3-8977F6A7997C
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {F49AC256-243A-447C-A913-462343F7CA87}
+DAT 1545736527
+ORG {2F11BA23-8474-4BEA-8D6A-3603F5927AA8}
+DAT 1545736490
+
+
+
+
+
+
+
+2DF1C1ED-B7EF-4F76-8DB5-6A5040D1F630
+KEPERLUAN_PINJAM_PK
+KEPERLUAN_PINJAM_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+E2F1B922-D180-4EE0-ACA7-4A8D1A48EA49
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+C1495579-33FD-44D5-8EA2-E750528BBDF8
+PINJAM_UNTUK_KEPERLUAN_FK
+PINJAM_UNTUK_KEPERLUAN_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+0D139041-0648-45B5-AA6E-C9E3A9D2EA63
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+4861F202-88AA-4CB6-9915-14829D21F021
+BEFORE_INSERT_KEPERLUAN
+BEFORE_INSERT_KEPERLUAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+
+ IF NEW.Keperluan_Pinjam IS NULL OR NEW.Keperluan_Pinjam = ' ' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan_Pinjam tidak valid';
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL OR NEW.Nama_Penanggung_Jawab = ' ' OR CHAR_LENGTH(NEW.Nama_Penanggung_Jawab) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama_Penanggung_Jawab tidak valid';
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL OR NEW.Ruang_Pinjam = ' ' OR CHAR_LENGTH(NEW.Ruang_Pinjam) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Ruang_Pinjam tidak valid';
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Mulai tidak boleh kosong';
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Selesai tidak boleh kosong';
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+1545131505
+Lenovo2
+1545881189
+user
+
+
+
+
+
+8ED6AE92-DFF5-4D30-97CD-2E0635D75155
+BEFORE_UPDATE_KEPERLUAN
+BEFORE_UPDATE_KEPERLUAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Nomor_Peminjaman IS NULL THEN
+ SET NEW.Nomor_Peminjaman = OLD.Nomor_Peminjaman;
+ END IF;
+ IF NEW.Keperluan_Pinjam IS NULL THEN
+ SET NEW.Keperluan_Pinjam = OLD.Keperluan_Pinjam;
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL THEN
+ SET NEW.Nama_Penanggung_Jawab = OLD.Nama_Penanggung_Jawab;
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL THEN
+ SET NEW.Ruang_Pinjam = OLD.Ruang_Pinjam;
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SET NEW.Waktu_Mulai = OLD.Waktu_Mulai;
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SET NEW.Waktu_Selesai = OLD.Waktu_Selesai;
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545131279
+Lenovo2
+1545881179
+user
+Update
+
+
+
+
+
+B88ED56C-D1C6-405E-9E24-0A4BD2A5E834
+AFTER_DELETE_KEPERLUAN_PINJAM
+AFTER_DELETE_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger %TRIGGER% after delete
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(OLD.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881673
+user
+1545881782
+user
+After
+Delete
+
+
+
+
+
+FAF08BF5-9E03-4BD9-BD11-07B0C0B82E4D
+AFTER_INSERT_KEPERLUAN_PINJAM
+AFTER_INSERT_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger %TRIGGER% after insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881785
+user
+1545881874
+user
+After
+
+
+
+
+
+380F4EA2-03B1-489B-8419-0A0ACBA4F85E
+AFTER_UPDATE_KEPERLUAN_PINJAM
+AFTER_UPDATE_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% after update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881811
+user
+1545885789
+user
+After
+Update
+
+
+
+
+
+
+
+
+
+
+2259CAD9-D453-4037-865D-F654BECF86A5
+Riwayat_Barang
+RIWAYAT_BARANG
+1545736527
+user
+1545927127
+user
+ORG {D4FC9204-E6C5-4303-809D-17366A76D3D5}
+DAT 1545736527
+ORG {BE695DE0-DD52-4706-BDD1-7114F1752D6E}
+DAT 1545736490
+
+
+
+B9A18B88-091B-46CF-AC83-A9638DB07880
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1545736527
+user
+1545843331
+user
+ORG {5330DC82-ED07-417C-92F1-B8234FA8E4D5}
+DAT 1545736527
+ORG {4320093C-5EDB-409E-BD74-F8733C811D3E}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+5F224395-869B-41A1-AF1D-0CD4DE519F2B
+Tipe_Barang
+TIPE_BARANG
+1545806340
+user
+1545915358
+user
+ORG {6A9AC187-4FB7-4DB2-9843-AB5510055FF1}
+DAT 1545806341
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+char(1)
+1
+1
+
+
+555B0DDF-E25E-419E-836D-B195BDC42F2F
+Nomor_Barang
+NOMOR_BARANG
+1545806340
+user
+1545915358
+user
+ORG {5D0408FC-8116-4DEA-9470-E84ECAFAACBA}
+DAT 1545806341
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+int
+1
+
+
+32E02732-5B68-4670-92E7-0630CE3BD0B6
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {3FC95FE8-C947-4539-8F8B-F4973C437804}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+A3616330-DEBD-492B-B46B-88D403EE6FF6
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545737110
+user
+1545915358
+user
+ORG {442ED9ED-8B8C-41A8-B5C8-EA4BEB270174}
+DAT 1545737110
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545737101
+int
+
+
+13D5475F-82F3-4B44-A58E-BB8BC5494DB3
+Status_Barang
+STATUS_BARANG
+1545736527
+user
+1545915358
+user
+ORG {754903AE-5506-4923-ABAB-7E539D9183D0}
+DAT 1545736527
+ORG {30D1E1BD-4ABB-4593-B08E-E3C3E41740E7}
+DAT 1545736490
+char(1)
+1
+1
+
+
+32325490-0CDB-40E4-91A0-E15074971B80
+Keterangan_Barang
+KETERANGAN_BARANG
+1545736527
+user
+1545915358
+user
+ORG {050E98EE-FEA1-4BB2-B274-0EA65925BC00}
+DAT 1545736527
+ORG {BDBF8F76-470E-42CC-AA22-057AA22EAF1E}
+DAT 1545736490
+varchar(256)
+256
+
+
+EEF52DAC-C171-416F-873A-975BA97B47A8
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1545736527
+user
+1545914423
+user
+ORG {548915D3-BFBB-470E-B4E0-31E8C8D39A97}
+DAT 1545736527
+ORG {C9F2898C-4ADC-41AE-9821-E89CAEAE0924}
+DAT 1545736490
+datetime
+1
+
+
+661D7ED4-41E8-4060-B4F8-531B1DF397F5
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1545736527
+user
+1545914442
+user
+ORG {AB812FE8-A2A0-4E6D-A4F0-B65682BE54F0}
+DAT 1545736527
+ORG {95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C}
+DAT 1545736490
+datetime
+
+
+
+
+FC7D2FDD-6F2C-4F20-A19F-53B3CB71B0C9
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {B523B628-F58E-4A62-9598-265BE52EA7B6}
+DAT 1545736527
+ORG {69A2A70E-41BF-4689-A17C-24D073D6BDB3}
+DAT 1545736490
+
+
+
+
+
+
+
+2130DC12-0C16-474F-BED8-ACA2635EED28
+RIWAYAT_BARANG_PK
+RIWAYAT_BARANG_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+7D633C8A-114E-4FB7-BADA-242025D08D1D
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+D8FA2D65-D062-4CBF-934F-0F2858B86C3A
+MEMILIKI_RIWAYAT_STATE_BARANG_FK
+MEMILIKI_RIWAYAT_STATE_BARANG_FK
+1545736527
+user
+1545806343
+user
+
+
+
+
+
+4729AD3F-8108-49FB-A9B0-F58067ED646D
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+6C20792A-81DB-46BC-90C5-A8C66AE05F33
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+
+
+C16AEC09-DB39-4896-9CAF-75C43921F236
+ADMINISTRASI_BARANG_DICATAT_FK
+ADMINISTRASI_BARANG_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+16E9DCC8-D15B-4C88-8CF1-AD9D08D32842
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+50CF0733-1D7E-4C24-BE89-A9AEA3CADA83
+BARANG_BERSTATUS_FK
+BARANG_BERSTATUS_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+79BEEE5A-FC05-4099-870D-7DE04DC05940
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+0E160B95-E7B6-4297-9C48-F9CE13EA7CDF
+UNIQUE_START_TIMELINE
+UNIQUE_START_TIMELINE
+1545914399
+user
+1545914423
+user
+1
+
+
+BA688C04-D5AA-4DF9-99A3-E329728B0302
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+B2197BB3-0AE4-49DD-8F7C-29741529A0C0
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+8642459C-FD35-47A0-BD73-6CD74B69F2D5
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+
+
+269E7415-8042-4015-885C-DCFE0B5586CB
+UNIQUE_END_TIMELINE
+UNIQUE_END_TIMELINE
+1545914415
+user
+1545914442
+user
+1
+
+
+F403B320-0620-4426-8621-F0C9CD313FDF
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+BD97383F-72E3-4F63-B240-1883C2F8321C
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+C6B53A3B-3BF7-4BB4-B734-366F820C5B21
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+D2E21C6B-9E36-4FFF-B20B-A736B88F1CD9
+Peminjam
+PEMINJAM
+1545736527
+user
+1545927151
+user
+ORG {5EED8C4F-B64A-409F-A5BA-24ACFBBD3765}
+DAT 1545736527
+ORG {FFDABF60-EAE7-4E70-9008-83498551821A}
+DAT 1545736490
+
+
+
+0D6B075F-D503-4296-B864-4F92EF563BDD
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736527
+user
+1545736527
+user
+ORG {7FE94923-C032-4E62-A159-800CDC335EA0}
+DAT 1545736527
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79}
+DAT 1545736490
+varchar(18)
+18
+1
+
+
+BE641E4F-2D8A-4D7D-B03F-5A49FE51DBDA
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {B3532DBB-D839-4712-A5D1-44A43C89BD76}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+0071A455-48DA-4B1D-9FE5-5D33AB0D3BEE
+Nama_Peminjam
+NAMA_PEMINJAM
+1545736527
+user
+1545736527
+user
+ORG {5682D42D-AD64-4EBF-AC28-4CFF92656885}
+DAT 1545736527
+ORG {AE08FEAB-85B8-4CF0-82B8-7D790743D4A5}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+6607C4CB-6F42-4C04-BB50-C69059DD934E
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807851
+user
+1545807853
+user
+ORG {664CEE36-85B2-40E4-B2C5-CA98D9F56759}
+DAT 1545807851
+ORG {5E3B658B-EECF-4834-A257-F6DE66663BE6}
+DAT 1545807842
+varchar(256)
+256
+1
+
+
+B9D19B10-F397-4E94-A1F3-600B972E7B56
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1545736527
+user
+1545835735
+user
+ORG {3487EA8A-A477-4121-B72A-954DEC36D2E0}
+DAT 1545736527
+ORG {7E4E8EBB-1885-4482-9B9C-326BE48F64CC}
+DAT 1545736490
+varchar(14)
+14
+1
+
+
+4F8DFC32-7E2E-4333-855C-D7CE78B0EC70
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1545736527
+user
+1545736527
+user
+ORG {DEB6F661-47E8-42AC-9BF7-CC6AD05A5F46}
+DAT 1545736527
+ORG {44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4}
+DAT 1545736490
+varchar(256)
+256
+
+
+D1926690-1790-498D-864D-8956E817EC89
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811437
+user
+1545811440
+user
+ORG {E4F756FF-6CB2-4323-90A8-6BC23D63ECEB}
+DAT 1545811437
+ORG {12FDBE3F-E628-416A-AC2A-D57014BA79CE}
+DAT 1545811429
+datetime
+1
+
+
+
+
+DCDD5520-67F0-40A3-93AD-3F8F9733E022
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {894F2D9E-1987-4652-B6DE-FB9C7420F151}
+DAT 1545736527
+ORG {22027363-79DE-4FE7-AE38-A9F331886544}
+DAT 1545736490
+
+
+
+
+
+
+
+2F61BD4D-81E3-49AB-B65C-A7FCF002BE08
+PEMINJAM_PK
+PEMINJAM_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+BA24EBCF-3B66-4111-903D-7127AE3911B9
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+678B0828-FB28-415D-8111-9F147415775C
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT_FK
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+045A2A0B-CD08-438D-B2D1-C7B84625E414
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+3F8FBFE8-1B8D-44B5-AA90-959FBA7519AC
+BEFORE_INSERT_PEMINJAM
+BEFORE_INSERT_PEMINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545806836
+user
+1545835670
+user
+
+
+
+
+
+00498B95-863B-4A81-AAC5-AFF9210787FF
+BEFORE_UPDATE_PEMINJAM
+BEFORE_UPDATE_PEMINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Nama_Peminjam IS NULL THEN
+ SET NEW.Nama_Peminjam=OLD.Nama_Peminjam;
+ END IF;
+ IF NEW.Alamat_Peminjam IS NULL THEN
+ SET NEW.Alamat_Peminjam=OLD.Alamat_Peminjam;
+ END IF;
+ IF NEW.Identitas_Peminjam IS NULL THEN
+ SET NEW.Identitas_Peminjam=OLD.Identitas_Peminjam;
+ END IF;
+ IF NEW.Nomor_HP_Peminjam IS NULL THEN
+ SET NEW.Nomor_HP_Peminjam=OLD.Nomor_HP_Peminjam;
+ END IF;
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545806846
+user
+1545836039
+user
+Update
+
+
+
+
+
+
+
+
+
+
+5161BAF8-4BD3-4F68-955B-7837DCADFE94
+Status_Barang
+STATUS_BARANG
+1545882529
+user
+1545927127
+user
+ORG {46D60488-0F14-4558-B4C2-DB4D46B027D4}
+DAT 1545882530
+ORG {3C806A88-E446-4FDA-8ECF-6CE4F9E501F7}
+DAT 1545882481
+
+
+
+72C518C1-6434-46B7-BF2A-42CB835C94A1
+Status_Barang
+STATUS_BARANG
+1545882529
+user
+1545882532
+user
+ORG {2CE27FFD-0E29-4489-AF77-0072A1B7B2BE}
+DAT 1545882530
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F}
+DAT 1545882481
+char(1)
+1
+1
+
+
+90752D91-5D8A-49D7-96B2-D24276C200C5
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882529
+user
+1545882532
+user
+ORG {6C92BB54-E08A-456D-994D-4081DF6369B0}
+DAT 1545882530
+ORG {29C6662F-D24E-4DEE-86FF-CDB32650C346}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+78822A21-9863-4143-B438-285D866D31F9
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {804AF05B-D79C-4A25-9E19-6388E4FE0AFB}
+DAT 1545882530
+ORG {575DC4AD-2D17-491E-B548-79D532409ABF}
+DAT 1545882481
+INS COLNCOL {2CE27FFD-0E29-4489-AF77-0072A1B7B2BE}
+
+
+
+
+
+
+
+91AADB89-9337-42A8-940F-4B3E98BCA7CC
+STATUS_BARANG_PK
+STATUS_BARANG_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+6AE5ECE8-8979-434D-8F88-334585EE6633
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6BA9B22C-5AE9-473C-9902-8D53EB45D0C1
+Tipe_Barang
+TIPE_BARANG
+1545882529
+user
+1545927122
+user
+ORG {88ECBAE0-C04C-41FD-A037-6B455864DB57}
+DAT 1545882530
+ORG {21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D}
+DAT 1545882481
+
+
+
+4AB45A18-A635-481F-A464-52E1051F6017
+Tipe_Barang
+TIPE_BARANG
+1545882529
+user
+1545882532
+user
+ORG {3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1}
+DAT 1545882530
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2}
+DAT 1545882481
+char(1)
+1
+1
+
+
+6843851B-7798-43A7-BA73-890F01CA1DF9
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882529
+user
+1545882532
+user
+ORG {3325103D-5152-4709-B3E7-92DB2AD25FC1}
+DAT 1545882530
+ORG {81283A92-2185-4C1F-9A7B-8E9CE7F1064F}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+FC4EE009-68AD-42AE-8260-DF5740393E04
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {A0280B18-0DE8-4230-8CAD-0177134BFED7}
+DAT 1545882530
+ORG {4882EACA-B7BD-44E3-8395-52C76393B717}
+DAT 1545882481
+INS COLNCOL {3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1}
+
+
+
+
+
+
+
+76B9CB80-849B-4329-BD17-CE5E4DCEF4BD
+TIPE_BARANG_PK
+TIPE_BARANG_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+145B2B51-BC00-452C-8FB8-A5CFBC958FC5
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4A07E202-645B-42A0-AA2C-E4568041806F
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882529
+user
+1545927145
+user
+ORG {71B01D00-C027-40AF-9901-39D12B18A234}
+DAT 1545882530
+ORG {A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C}
+DAT 1545882481
+
+
+
+F9688BA3-7E26-4334-BE80-CF37A22520F5
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882529
+user
+1545882532
+user
+ORG {5239B551-31DB-4E6C-A54E-54C3E0A2E0EB}
+DAT 1545882530
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932}
+DAT 1545882481
+char(1)
+1
+1
+
+
+C4B4C341-4780-4FD5-A64D-62201ED365F4
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882529
+user
+1545882532
+user
+ORG {D5185D18-6712-473B-A4A3-798D315A0CD1}
+DAT 1545882530
+ORG {6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+2B2AA5C8-D283-4EE0-8FFB-233EE7612C2E
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {9998DAFA-DCB8-4957-ABA7-A93A1B23B915}
+DAT 1545882530
+ORG {189F29D6-7416-40A9-99F0-D56A730B20A1}
+DAT 1545882481
+INS COLNCOL {5239B551-31DB-4E6C-A54E-54C3E0A2E0EB}
+
+
+
+
+
+
+
+B2A04B29-7B73-4CC3-8DBC-DBEB95362E70
+STATUS_PEMINJAMAN_PK
+STATUS_PEMINJAMAN_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+DD8269A8-F327-40E6-B6A5-4DD80478A0B3
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0CA997F3-085D-49AF-A911-0EADE344EA62
+Barang_Terkini
+BARANG_TERKINI
+1545812308
+user
+1545884301
+user
+SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+1
+
+
+50914669-E396-4F3B-A61E-F6DFC2A6BA32
+NOMOR_BARANG
+NOMOR_BARANG
+1546255800
+user
+1546255800
+user
+
+
+DEA97270-E80A-46CC-B7C9-F81D418A9141
+TIPE_BARANG
+TIPE_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+D63D355C-ED85-434F-BFE1-BBC70ABECC43
+STATUS_BARANG
+STATUS_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+0E628E08-DD36-4909-9820-4B1C25CEDE57
+NOMOR_PEMINJAMAN
+NOMOR_PEMINJAMAN
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+51D9D38D-5985-4805-8A0E-074A6A33B558
+KETERANGAN_BARANG
+KETERANGAN_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+
+
+
+
+
+9F7E3ACB-0CB1-4896-B709-79FD1E65AB8A
+Peminjaman_Barang_Terakhir
+PEMINJAMAN_BARANG_TERAKHIR
+1545915113
+user
+1545915439
+user
+SELECT
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+FROM (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ ON RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+WHERE RB2.Id_Riwayat_Barang IS NULL;
+select
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+from (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ on RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+where RB2.Id_Riwayat_Barang IS NULL;
+
+
+422FA3E5-B9D5-4FB3-B693-42E7B03EE41E
+NOMOR_BARANG
+NOMOR_BARANG
+1545915113
+user
+1545915358
+user
+
+
+E15FBDA8-22FB-4A5A-81D0-928B3C8A9A95
+TIPE_BARANG
+TIPE_BARANG
+1545915113
+user
+1545915358
+user
+
+
+E8D9B5F2-CDFB-4329-AD55-723C306E56CB
+STATUS_BARANG
+STATUS_BARANG
+1545915113
+user
+1545915358
+user
+
+
+23A2CDD0-CDF4-41C8-A62C-0C93EE48EC3E
+NOMOR_PEMINJAMAN
+NOMOR_PEMINJAMAN
+1545915113
+user
+1545915358
+user
+
+
+17E6A7F8-72AB-4DD4-9409-22DB55B3C40C
+KETERANGAN_BARANG
+KETERANGAN_BARANG
+1545915113
+user
+1545915358
+user
+
+
+
+
+
+
+3AEA0463-B2D0-4582-855E-97C9D44C284E
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1545736527
+user
+1545927099
+user
+ORG {88951577-C9AB-49AF-ACC7-02BB1C4A7D39}
+DAT 1545736527
+ORG {CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545736490
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+11560571-4CE4-438E-A27A-644050B73EEF
+1545806340
+user
+1545806343
+user
+ORG {0C146031-37D5-45CD-BE9F-90D0F2CBB9D4}
+DAT 1545806341
+
+
+
+
+
+
+
+
+15A2C61F-42FF-40C5-BF88-E9626AFFBDAA
+1545806340
+user
+1545806343
+user
+ORG {E800DDCE-8E95-403D-84D0-B292CA2C39CB}
+DAT 1545806341
+
+
+
+
+
+
+
+
+
+
+A49A8D29-50FE-4715-BC10-37437547655C
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1545736527
+user
+1545736527
+user
+ORG {C11DBED6-E505-43AE-80F9-41A95A125CB7}
+DAT 1545736527
+ORG {52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+E4BCADD6-A97B-43C9-865B-D1600872AD83
+1545736527
+user
+1545736527
+user
+ORG {62A4E79A-B9F0-48AB-ACF2-7F1F0CAF6937}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+6D2E8AE2-7BEB-4CF0-BFCE-D2A932ED5B29
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1545736527
+user
+1545835254
+user
+ORG {86D65B31-5F01-4C0F-9B90-B5E90BE83F25}
+DAT 1545736527
+ORG {17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+ATT FKCN
+FK_PEMINJAMAN_ADMINISTR_PETUGAS
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+FA59D7CF-FE28-47D4-9457-769F47DE1EA9
+1545736527
+user
+1545736527
+user
+ORG {23C97E64-B977-4F73-9DCF-AAA87A10CCBB}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+222EED32-6711-49DE-B0E9-4BA357129886
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882529
+user
+1545927127
+user
+ORG {F48EB24D-47D0-42BF-ADF6-2EC72B982E58}
+DAT 1545882530
+ORG {42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+03BFC894-2B6D-4879-887C-0ECB660EA8C7
+1545882529
+user
+1545882532
+user
+ORG {57E503A7-B41C-4162-9A73-9B52346ADD33}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+D9936845-24E0-48CD-90A9-3C25E3BF671D
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1545736527
+user
+1545736527
+user
+ORG {C88BD09A-D404-4E96-9770-FC4B662D42F6}
+DAT 1545736527
+ORG {DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+1..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+D9C909FC-3254-4B64-9EF3-4042B74FFA2E
+1545736527
+user
+1545736527
+user
+ORG {933D2074-5DE4-4D5F-8B99-7C7EFD311BF2}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+BB69F7AB-C748-49FE-91AF-6F305A5DDE0E
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545736527
+user
+1545882532
+user
+ORG {17A3E957-C933-46F4-A2CA-A43B776EBB6C}
+DAT 1545736527
+ORG {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545736490
+ATT PTBL
+ATT CTBL
+ATT PKEY
+1..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+FE924AED-E325-46B6-B686-BB5C23BB0457
+1545737110
+user
+1545737112
+user
+ORG {36178A50-83BB-42A5-AA58-8937AB7C8CA7}
+DAT 1545737110
+
+
+
+
+
+
+
+
+
+
+C171E313-A448-4B55-BB4E-A86DCB6263EB
+Bertipe
+BERTIPE
+1545882529
+user
+1545927122
+user
+ORG {8BBF67CD-73B4-4273-A3E8-084E496B1E95}
+DAT 1545882530
+ORG {C5002C15-EF11-45C5-8ACF-96F9512CA34C}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+38B483FC-3F7A-4622-BC9B-CB36DA80B617
+1545882529
+user
+1545882532
+user
+ORG {8D6E0A78-0BF8-4356-A791-478237BAB453}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+19843597-A487-4431-A4C6-2A27CD4B1B53
+Melakukan
+MELAKUKAN
+1545736527
+user
+1545927151
+user
+ORG {A889B2F4-CDE8-4492-AA80-0B49FECCB1BA}
+DAT 1545736527
+ORG {89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+91707B45-AA78-4907-8AF1-6884C53DD159
+1545736527
+user
+1545736527
+user
+ORG {854B14D1-B5A2-41F6-B7B0-973D5C52DD16}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+272B16DE-0EFB-4F7F-8210-BD84DFB81456
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736527
+user
+1545736527
+user
+ORG {7DC0A850-3C9B-4832-B932-A5A6578C2B9C}
+DAT 1545736527
+ORG {2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+0B393E68-136B-400E-923D-12F41B1D8128
+1545736527
+user
+1545736527
+user
+ORG {D0D33740-B162-4010-B257-06E3395412A5}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+CAFA02B0-1901-4574-955D-A3088EDBF35F
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882529
+user
+1545927145
+user
+ORG {6C3E28DC-E125-49C6-ADD5-D96150EF481D}
+DAT 1545882530
+ORG {973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+861C138B-053E-46BD-A721-64A3C6732E3F
+1545882529
+user
+1545882532
+user
+ORG {37B154E4-42CD-4070-AE20-E870AD521545}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+
+
+BA1103F5-CB73-49F6-9CC0-5A0281C5C62E
+PUBLIC
+PUBLIC
+1545736519
+user
+1545736519
+user
+
+
+
+
+2BEAB2A2-0899-48C1-99FF-F8E7ABBD0024
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E3DD9DE9-7C11-4330-837C-3BB4002F8C51
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+390BCCD1-4FBE-41DC-AC6A-A3305093F6D1
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+F3113F7D-0EFA-4318-AF3F-2B899A9BB10D
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+1D0E38F7-BA0D-44AD-B3F1-CD3E41F263FE
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A6CE3FA2-00F4-4CF8-B332-A8F1E83B893B
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+82434106-3ED7-4769-AAA8-34832B88A7A7
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+684C1363-31BD-41C4-993F-523AC6DBDE57
+1545739563
+user
+1545739611
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BAA64E7C-1335-4742-89B3-722BFBE8714C
+1545794866
+user
+1545794866
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+88EF4673-FE04-415D-A9AB-E7F5980C5C1F
+1545807523
+user
+1545807728
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+109F1AF8-9157-4CF7-8BAD-B523E2DCEF54
+1545807523
+user
+1545807728
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+CB531887-AFFE-442E-B278-7C746C8C0063
+1545807944
+user
+1545808252
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BFB870A6-D71E-421A-968B-3514A0FD859C
+1545808376
+user
+1545808466
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+63560780-B967-4D9E-BE0F-CCCA6B38997D
+1545808466
+user
+1545809572
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+1244C4D1-4089-49E3-A120-B3AC13691520
+1545809915
+user
+1545810332
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+601ABF10-187F-41BC-A4B1-FC32F0811F7C
+1545809915
+user
+1545810332
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A03ED60C-47D3-4A48-B49E-4F72723DA011
+1545813665
+user
+1545813673
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E5060FC5-F420-486D-9E6B-707C53769B60
+1545813690
+user
+1545813698
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+F863484C-463D-495F-9C3C-14F5D50E2031
+1545813810
+user
+1545814034
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A989EEC3-2C7D-449A-8334-EF0BE9AE1A31
+1545827911
+user
+1545828075
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+67771DA3-7348-4161-BFAF-00AA52DB4998
+1545827911
+user
+1545828075
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+3A050064-A0A3-4433-B8A0-EA90CC17B7F3
+1545828132
+user
+1545828221
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+0846014B-BC88-48FA-B2B8-BDAC639C6EC0
+1545828368
+user
+1545828581
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+58EB3A73-CEF6-4A07-B264-7AD940EAEC3D
+1545835775
+user
+1545835848
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+9899E0AD-C0CC-4F75-B9FE-9F62BB6F3464
+1545840072
+user
+1545840212
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E96115F2-8953-41CF-8BEC-9B1368133468
+1545879658
+user
+1545879771
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+045FB2EB-3A0A-4CD2-A91F-14E0B896539A
+1545881272
+user
+1545881368
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+D71EFC14-55FD-47D7-9383-581BD0529180
+1545881272
+user
+1545881368
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+ACE91832-3CDD-40B9-92C7-5693D503A268
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+24B55D4F-9039-40C0-8C5D-E4EFA8D53D21
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+92FED3A1-1A36-49B4-97F4-0667EDC3D277
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+6C42E69D-F399-4E2A-8C2B-EE6923060AF3
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+4020DC3A-5E22-48F2-9798-498DE964E6D1
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BC0FD7B5-EBC2-4B36-95BE-55DDC5F9A1FD
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+58EA6CFF-57EA-470A-8386-5538D1601F50
+1545884384
+user
+1545884546
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+75B298DE-2C1C-4689-928E-8E08466D6823
+1545885498
+user
+1545885508
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+45E0F300-2263-47F3-9312-E149C0B86ADF
+1545885510
+user
+1545885516
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+7FF63B8C-C623-48A1-9D3D-309DC16CDE36
+1546563960
+user
+1546564112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+
+
+6F370A6E-AE99-4218-8DD9-9A16BD1E5048
+MySQL 5.0
+MYSQL50
+1545736525
+user
+1545881719
+user
+file:///%[XDB]%/mysql50.xdb
+F4F16ECD-F2F1-4006-AF6F-638D5C65F35E
+4BA9F647-DAB1-11D1-9944-006097355D9B
+1242731549
+
+
+
+
+
+
+
+
+
+
+
+3117C587-5845-44B8-9A0C-E13DC24EF8DF
+LCD
+LCD
+1545736527
+user
+1545884130
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.ldm
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1545884130
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/LCD.pdm b/PowerDesigner/LCD.pdm
new file mode 100644
index 0000000..cd72f55
--- /dev/null
+++ b/PowerDesigner/LCD.pdm
@@ -0,0 +1,9753 @@
+
+
+
+
+
+
+
+00000000-0000-0000-0000-000000000000
+
+
+10924E5E-A1D5-465E-87C0-DBE999029350
+LCD
+LCD
+1545736519
+user
+1546564112
+user
+ORG {50AE78BB-2E9B-4731-B6DF-0E64723B1A0F}
+DAT 1545884139
+DLD {52DD3169-A381-419F-BF8B-8ADAF3573432}
+ATT FOPT
+[FolderOptions]
+
+[FolderOptions\Physical Objects]
+GenerationCheckModel=Yes
+GenerationPath=
+GenerationOptions=Database Generation=E3816B85-E2B2-42CB-9D03-EE8AEE94FA87
+GenerationTasks=
+GenerationTargets=
+GenerationSelections=
+RevPkey=Yes
+RevFkey=Yes
+RevAkey=Yes
+RevCheck=Yes
+RevIndx=Yes
+RevOpts=Yes
+RevViewAsTabl=No
+RevViewOpts=Yes
+RevSystAsTabl=Yes
+RevTablPerm=No
+RevViewPerm=No
+RevProcPerm=No
+RevDbpkPerm=No
+RevSqncPerm=No
+RevAdtPerm=No
+RevUserPriv=No
+RevUserOpts=No
+RevGrpePriv=No
+RevRolePriv=No
+RevDtbsOpts=Yes
+RevDtbsPerm=No
+RevViewIndx=Yes
+RevJidxOpts=Yes
+RevStats=No
+RevTspcPerm=No
+RevCaseSensitive=No
+GenTrgrStdMsg=Yes
+GenTrgrMsgTab=
+GenTrgrMsgNo=
+GenTrgrMsgTxt=
+TrgrPreserve=No
+TrgrIns=Yes
+TrgrUpd=Yes
+TrgrDel=Yes
+TrgrC2Ins=Yes
+TrgrC2Upd=Yes
+TrgrC3=Yes
+TrgrC4=Yes
+TrgrC5=Yes
+TrgrC6=Yes
+TrgrC7=Yes
+TrgrC8=Yes
+TrgrC9=Yes
+TrgrC10=Yes
+TrgrC11=Yes
+TrgrC1=Yes
+TrgrC12Ins=Yes
+TrgrC12Upd=Yes
+TrgrC13=Yes
+UpdateTableStatistics=Yes
+UpdateColumnStatistics=Yes
+DeploymentMode=REP
+
+[FolderOptions\Physical Objects\Database Generation]
+GenScriptName=crebas.sql
+GenScriptName0=
+GenScriptName1=
+GenScriptName2=
+GenScriptName3=
+GenScriptName4=
+GenScriptName5=
+GenScriptName6=
+GenScriptName7=
+GenScriptName8=
+GenScriptName9=
+GenPathName=C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\
+GenSingleFile=Yes
+GenODBC=No
+GenCheckModel=Yes
+GenScriptPrev=Yes
+GenArchiveModel=No
+GenUseSync=No
+GenSyncChoice=0
+GenSyncArch=
+GenSyncRmg=0
+
+[FolderOptions\Physical Objects\Database Generation\Format]
+GenScriptTitle=Yes
+GenScriptNamLabl=No
+GenScriptQDtbs=No
+GenScriptQOwnr=Yes
+GenScriptCase=0
+GenScriptEncoding=ANSI
+GenScriptNAcct=No
+IdentifierDelimiter="
+
+[FolderOptions\Physical Objects\Database Generation\Database]
+Create=Yes
+Open=Yes
+Close=Yes
+Drop=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Database\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Tablespace]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Tablespace\Create]
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Storage]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\User]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\User\Create]
+Physical Options=No
+
+[FolderOptions\Physical Objects\Database Generation\Group]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\Role]
+Create=Yes
+Drop=Yes
+Privilege=No
+
+[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create]
+Default value=Yes
+Check=Yes
+
+[FolderOptions\Physical Objects\Database Generation\AbstractDataType]
+Create=Yes
+Header=Yes
+Footer=Yes
+Drop=Yes
+Comment=Yes
+Install JAVA class=Yes
+Remove JAVA class=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Rule]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Default]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Sequence]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column]
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create]
+Check=Yes
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check]
+Constraint declaration=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column]
+User datatype=No
+Default value=Yes
+Check=Yes
+Physical Options=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check]
+Constraint declaration=No
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key]
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create]
+Constraint declaration=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create]
+Constraint declaration=Yes
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter]
+Primary key=No
+Foreign key=No
+Alternate key=No
+Cluster=Yes
+Other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\View\Create]
+Force Column list=No
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewColumn]
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create]
+Physical Options=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter]
+Cluster=Yes
+Other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\Trigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[FolderOptions\Physical Objects\Database Generation\DBMSTrigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synonym]
+Create=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synonym\Filter]
+Table=Yes
+View=Yes
+Proc=Yes
+Synonym=Yes
+Database Package=Yes
+Sequence=Yes
+
+[FolderOptions\Physical Objects\Database Generation\JoinIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Procedure]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\Procedure\Create]
+Header=Yes
+Footer=Yes
+
+[FolderOptions\Physical Objects\Database Generation\DatabasePackage]
+Create=Yes
+Drop=Yes
+Permission=No
+
+[FolderOptions\Physical Objects\Database Generation\WebService]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Dimension]
+Create=Yes
+Drop=Yes
+
+[FolderOptions\Physical Objects\Database Generation\Synchronization]
+GenBackupTabl=1
+GenKeepBackTabl=1
+GenTmpTablDrop=No
+GenKeepTablOpts=No
+
+[FolderOptions\Physical Objects\Test Data]
+GenDataPathName=
+GenDataSinglefile=Yes
+GenDataScriptName=testdata
+GenDataScriptName0=
+GenDataScriptName1=
+GenDataScriptName2=
+GenDataScriptName3=
+GenDataScriptName4=
+GenDataScriptName5=
+GenDataScriptName6=
+GenDataScriptName7=
+GenDataScriptName8=
+GenDataScriptName9=
+GenDataOdbc=0
+GenDataDelOld=No
+GenDataTitle=No
+GenDataDefNumRows=20
+GenDataCommit=0
+GenDataPacket=0
+GenDataOwner=No
+GenDataProfNumb=
+GenDataProfChar=
+GenDataProfDate=
+GenDataCSVSeparator=;
+GenDataFileFormat=CSV
+GenDataUseWizard=No
+
+[FolderOptions\Pdm]
+IndxIQName=%COLUMN%_%INDEXTYPE%
+IndxPK=Yes
+IndxFK=Yes
+IndxAK=Yes
+IndxPKName=%TABLE%_PK
+IndxFKName=%REFR%_FK
+IndxAKName=%TABLE%_AK
+IndxPreserve=Yes
+IndxThreshold=0
+IndxStats=No
+RefrPreserve=No
+JidxPreserve=No
+RbldMultiFact=Yes
+RbldMultiDim=Yes
+RbldMultiJidx=Yes
+CubePreserve=No
+TablStProcPreserve=No
+ProcDepPreserve=Yes
+TrgrDepPreserve=Yes
+CubeScriptPath=
+CubeScriptCase=0
+CubeScriptEncoding=ANSI
+CubeScriptNacct=No
+CubeScriptHeader=No
+CubeScriptExt=csv
+CubeScriptExt0=txt
+CubeScriptExt1=
+CubeScriptExt2=
+CubeScriptSep=,
+CubeScriptDeli="
+EstimationYears=0
+DfltDomnName=D_%.U:VALUE%
+DfltColnName=D_%.U:VALUE%
+DfltReuse=Yes
+DfltDrop=Yes
+
+[FolderOptions\CheckModel]
+
+[FolderOptions\CheckModel\Package]
+
+[FolderOptions\CheckModel\Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CircularReference]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ConstraintName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CnstMaxLen]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\CircularDependency]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Package\ShortcutUniqCode]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Table]
+
+[FolderOptions\CheckModel\Table\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\UniqIndex]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - COLNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - INDXCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - KEYCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\SerialColumnNumber]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyCollYesYes]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\TableIndexes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Table\CheckTablePartitionKey]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableStartDate]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableRefNoLifecycle]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableSourceMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTablePartialColumnMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableKeyColumnMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\CheckTableNotOnLifecycleTablespace]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table\MYSQL50_Table_Table_storage_type]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column]
+
+[FolderOptions\CheckModel\Table.Column\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\DomainDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColumnMandatory]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\FkeyDttpDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\FkeyCheckDivergence]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColnSqncNoKey]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColnSqncDttp]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\SerialColumnFK]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\ColumnCompExpr]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnOneToOneMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnDataTypeMapping]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckColumnNoMapping]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Auto_increment_key]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Datatype_attributes]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index]
+
+[FolderOptions\CheckModel\Table.Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\EmptyColl - CIDXCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\UndefIndexType]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\IndexColumnCount]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\IQIndxHNGUniq]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Index\MYSQL50_Index_Fulltext_indexes_validity]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key]
+
+[FolderOptions\CheckModel\Table.Key\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\EmptyColl - COLNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Key\MultiKeySqnc]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger]
+
+[FolderOptions\CheckModel\Table.Trigger\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table.Trigger\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index]
+
+[FolderOptions\CheckModel\Join Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Join Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View]
+
+[FolderOptions\CheckModel\View\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\View.View Index]
+
+[FolderOptions\CheckModel\View.View Index\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\EmptyColl - CIDXCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\IndexColumnCount]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View.View Index\CheckIncludeColl - Tabl]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference]
+
+[FolderOptions\CheckModel\Reference\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\Reflexive]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\EmptyColl - RFJNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\IncompleteJoin]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Reference\JoinOrder]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference]
+
+[FolderOptions\CheckModel\View Reference\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\View Reference\EmptyColl - VRFJNCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain]
+
+[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckNumParam]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckPrecSupLng]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default]
+
+[FolderOptions\CheckModel\Default\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DfltValeEmpty]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Default\DfltSameVale]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User]
+
+[FolderOptions\CheckModel\User\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\User\UniquePassword]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Group]
+
+[FolderOptions\CheckModel\Group\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\EmptyColl - USERCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Group\UniquePassword]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Role]
+
+[FolderOptions\CheckModel\Role\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Role\EmptyColl - USERCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure]
+
+[FolderOptions\CheckModel\Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\ProcBodyEmpty]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Procedure\EmptyColl - PERMCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\DBMS Trigger]
+
+[FolderOptions\CheckModel\DBMS Trigger\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\DBMS Trigger\DbmsTriggerEvent]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source]
+
+[FolderOptions\CheckModel\Data Source\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\EmptyColl - MODLSRC]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\DtscTargets]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Source\CheckDataSourceModels]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning]
+
+[FolderOptions\CheckModel\Horizontal Partitioning\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\EmptyColl - PARTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Horizontal Partitioning\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning]
+
+[FolderOptions\CheckModel\Vertical Partitioning\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\EmptyColl - PARTCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Vertical Partitioning\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing]
+
+[FolderOptions\CheckModel\Table Collapsing\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\EmptyColl - TargetTable]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Table Collapsing\TargetTables]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact]
+
+[FolderOptions\CheckModel\Fact\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\EmptyColl - MEASCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\EmptyColl - ALLOLINKCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact\CubeDupAssociation]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension]
+
+[FolderOptions\CheckModel\Dimension\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\EmptyColl - DATTRCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\EmptyColl - HIERCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DimnDupHierarchy]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\DimnDefHierarchy]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\Mapping]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\MappingSFMap]
+CheckSeverity=No
+FixRequested=Yes
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension\SerialColumnNumber]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association]
+
+[FolderOptions\CheckModel\Association\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Association\EmptyColl - Hierarchy]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute]
+
+[FolderOptions\CheckModel\Dimension.Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure]
+
+[FolderOptions\CheckModel\Fact.Measure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Measure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute]
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Fact.Fact Attribute\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy]
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Dimension.Hierarchy\EmptyColl - DATTRCOL]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym]
+
+[FolderOptions\CheckModel\Synonym\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Synonym\EmptyColl - BASEOBJ]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type]
+
+[FolderOptions\CheckModel\Abstract Data Type\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\AdtInstantiable]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type\AdtAbstractUsed]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure]
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\AdtProcUniqName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package]
+
+[FolderOptions\CheckModel\Database Package\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\MaxLen - NAME]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - PROCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - CURCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - VARCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - TYPCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package\EmptyColl - EXCCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure]
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\EmptyColl - PARM]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Procedure\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence]
+
+[FolderOptions\CheckModel\Sequence\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Sequence\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor]
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\ReturnDataType]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Cursor\EmptyColl - PARM]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=No
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable]
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUndefDttp]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type]
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueDefinition]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception]
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database Package.Database Package Exception\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace]
+
+[FolderOptions\CheckModel\Tablespace\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Tablespace\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage]
+
+[FolderOptions\CheckModel\Storage\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Storage\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database]
+
+[FolderOptions\CheckModel\Database\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Database\IsObjectUsed]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service]
+
+[FolderOptions\CheckModel\Web Service\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation]
+
+[FolderOptions\CheckModel\Web Service.Web Operation\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Web Service.Web Operation\MaxLen - CODE]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle]
+
+[FolderOptions\CheckModel\Lifecycle\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckLifecyclePhase]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckLifecycleRetention]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle\CheckPartitionRange]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase]
+
+[FolderOptions\CheckModel\Lifecycle.Phase\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspace]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIQTbspace]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDuplicateTbspace]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspaceCurrency]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseRetention]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIdlePeriod]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDataSource]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseExternalOnFirst]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Replication]
+
+[FolderOptions\CheckModel\Replication\PartialReplication]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule]
+
+[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object]
+
+[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Object\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link]
+
+[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Extended Link\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File]
+
+[FolderOptions\CheckModel\File\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\File\CheckPathExists]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format]
+
+[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area]
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\CheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseOnlyTerms]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\DefaultCheckUseTermBySynonym]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\NotApprovedTerms]
+CheckSeverity=Yes
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueName]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+
+[FolderOptions\CheckModel\Architecture Area\UniqueCode]
+CheckSeverity=No
+FixRequested=No
+CheckRequested=Yes
+[ModelOptions]
+
+[ModelOptions\Physical Objects]
+CaseSensitive=No
+DisplayName=Yes
+EnableTrans=No
+UseTerm=No
+EnableRequirements=No
+EnableFullShortcut=Yes
+SynchroCode=Yes
+DefaultDttp=
+IgnoreOwner=No
+RebuildTrigger=Yes
+RefrUnique=Yes
+RefrAutoMigrate=Yes
+RefrMigrateReuse=Yes
+RefrMigrateDomain=Yes
+RefrMigrateCheck=Yes
+RefrMigrateRule=Yes
+RefrMigrateExtd=No
+RefrMigrDefaultLink=No
+RefrDfltImpl=D
+RefrPrgtColn=No
+RefrMigrateToEnd=No
+RebuildTriggerDep=No
+ColnFKName=%.3:PARENT%_%COLUMN%
+ColnFKNameUse=No
+DomnCopyDttp=Yes
+DomnCopyChck=No
+DomnCopyRule=No
+DomnCopyMand=No
+DomnCopyExtd=No
+DomnCopyProf=No
+Notation=0
+DomnDefaultMandatory=No
+ColnDefaultMandatory=No
+TablDefaultOwner=
+ViewDefaultOwner=
+TrgrDefaultOwnerTabl=
+TrgrDefaultOwnerView=
+IdxDefaultOwnerTabl=
+IdxDefaultOwnerView=
+JdxDefaultOwner=
+DBPackDefaultOwner=
+SeqDefaultOwner=
+ProcDefaultOwner=
+DBMSTrgrDefaultOwner=
+Currency=USD
+RefrDeleteConstraint=1
+RefrUpdateConstraint=1
+RefrParentMandatory=No
+RefrParentChangeAllow=Yes
+RefrCheckOnCommit=No
+
+[ModelOptions\Physical Objects\NamingOptionsTemplates]
+
+[ModelOptions\Physical Objects\ClssNamingOptions]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar="\/:*?<>|"
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_. "
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass]
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name]
+Template=
+MaxLen=254
+Case=M
+ValidChar=
+InvldChar=
+AllValid=Yes
+NoAccent=No
+DefaultChar=_
+Script=.convert_name(%Name%,"_")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code]
+Template=
+MaxLen=254
+Case=U
+ValidChar='a'-'z','A'-'Z','0'-'9',"_"
+InvldChar=
+AllValid=No
+NoAccent=Yes
+DefaultChar=_
+Script=.convert_code(%Code%," ")
+ConvTable=
+ConvTablePath=%_HOME%\Resource Files\Conversion Tables
+
+[ModelOptions\Connection]
+
+[ModelOptions\Pdm]
+
+[ModelOptions\Generate]
+
+[ModelOptions\Generate\Xsm]
+GenRootElement=Yes
+GenComplexType=No
+GenAttribute=Yes
+CheckModel=Yes
+SaveLinks=Yes
+ORMapping=No
+NameToCode=No
+
+[ModelOptions\Generate\Pdm]
+RRMapping=No
+
+[ModelOptions\Generate\Cdm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+Notation=2
+
+[ModelOptions\Generate\Oom]
+CheckModel=Yes
+SaveLinks=Yes
+ORMapping=No
+NameToCode=Yes
+ClassPrefix=
+
+[ModelOptions\Generate\Ldm]
+CheckModel=Yes
+SaveLinks=Yes
+NameToCode=No
+
+[ModelOptions\Default Opts]
+
+[ModelOptions\Default Opts\TABL]
+PhysOpts=
+
+[ModelOptions\Default Opts\COLN]
+PhysOpts=
+
+[ModelOptions\Default Opts\INDX]
+PhysOpts=
+
+[ModelOptions\Default Opts\AKEY]
+PhysOpts=
+
+[ModelOptions\Default Opts\PKEY]
+PhysOpts=
+
+[ModelOptions\Default Opts\STOR]
+PhysOpts=
+
+[ModelOptions\Default Opts\TSPC]
+PhysOpts=
+
+[ModelOptions\Default Opts\SQNC]
+PhysOpts=
+
+[ModelOptions\Default Opts\DTBS]
+PhysOpts=
+
+[ModelOptions\Default Opts\USER]
+PhysOpts=
+
+[ModelOptions\Default Opts\JIDX]
+PhysOpts=
+C:\Users\user\Documents\Kiki\DBD\Tugas Akhir\Design\PowerDesigner\3\LCD.pdm
+
+
+011B0C1B-73BE-416D-8CA9-BBDDD75D82E8
+LCD
+LCD
+1545884139
+user
+1545884139
+user
+
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+
+
+
+
+4797140A-583F-4EDE-90B7-EB111C2CC71C
+MySQL 5.0
+MYSQL50
+1545736525
+user
+1545881719
+user
+
+F4F16ECD-F2F1-4006-AF6F-638D5C65F35E
+4BA9F647-DAB1-11D1-9944-006097355D9B
+
+
+A0D56B38-CD0F-4C23-A56A-31FDD7925602
+BeforeInsertTrigger
+BeforeInsertTrigger
+1545736808
+user
+1545811802
+user
+
+63C341EF-60CE-4B9B-8429-5484200F90D5
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+90EB8DB7-0E98-4B1E-998D-1CB0D19AB8E3
+AfterInsertTrigger
+AfterInsertTrigger
+1545736832
+user
+1545881810
+user
+
+58C21DCB-AC16-473D-99E6-A3DAAE116BDB
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+045D1FCB-EFB3-4EDB-BCB3-25FCD097D403
+AfterUpdateTrigger
+AfterUpdateTrigger
+1545736832
+user
+1545881864
+user
+
+2B3AE0D7-0CE4-4D08-BE93-2476B9E604D5
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+22E5B653-3568-4843-8F24-977DD830818D
+BeforeUpdateTrigger
+BeforeUpdateTrigger
+1545736832
+user
+1545811869
+user
+
+A4F66E74-54DB-4500-B8EF-67682F6BCA34
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+5EDECE99-D270-4F31-A888-A0AE08F00612
+BeforeDeleteTrigger
+BeforeDeleteTrigger
+1545736897
+user
+1545881719
+user
+
+B9B9F30F-7DCD-4156-A212-A2D417A1545C
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+12F40D1E-F605-4574-815E-831B8FCD3140
+AfterDeleteTrigger
+AfterDeleteTrigger
+1545881673
+user
+1545881719
+user
+
+7891F479-A42E-4BEE-93CE-E2D846F8651B
+D4B2DF42-0047-11D2-9952-006097355D9B
+<Model>::MySQL 5.0
+
+
+
+
+
+
+8E771B30-ECD2-4935-AA92-67E54CF50108
+LCD
+LCD
+1545736527
+user
+1546564112
+user
+ORG {2FCC8033-97A7-455C-A68D-1262037A4314}
+DAT 1545736527
+ORG {2EF18832-7E63-41A4-845C-5C1308FE1984}
+DAT 1545736490
+[DisplayPreferences]
+
+[DisplayPreferences\PDM]
+
+[DisplayPreferences\General]
+Adjust to text=Yes
+Snap Grid=No
+Constrain Labels=Yes
+Display Grid=No
+Show Page Delimiter=Yes
+Show Links intersections=Yes
+Activate automatic link routing=Yes
+Grid size=800
+Graphic unit=2
+Window color=255 255 255
+Background image=
+Background mode=8
+Watermark image=
+Watermark mode=8
+Show watermark on screen=No
+Gradient mode=0
+Gradient end color=255 255 255
+Show Swimlane=No
+SwimlaneVert=Yes
+TreeVert=No
+CompDark=0
+
+[DisplayPreferences\Object]
+Show Icon=No
+Mode=2
+Trunc Length=40
+Word Length=40
+Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~
+Shortcut IntIcon=Yes
+Shortcut IntLoct=Yes
+Shortcut IntFullPath=No
+Shortcut IntLastPackage=Yes
+Shortcut ExtIcon=Yes
+Shortcut ExtLoct=No
+Shortcut ExtFullPath=No
+Shortcut ExtLastPackage=Yes
+Shortcut ExtIncludeModl=Yes
+Area.IconPicture=Yes
+Area.Stereotype=Yes
+Area.Comment=No
+Area.TextStyle=No
+Area.SubSymbols=Yes
+Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Architecture Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+EObjShowStrn=Yes
+ExtendedObject.Comment=No
+ExtendedObject.IconPicture=No
+ExtendedObject.TextStyle=No
+ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+ELnkShowStrn=Yes
+ELnkShowName=Yes
+ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+ExtDpdShowStrn=Yes
+ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+FileObject.Stereotype=No
+FileObject.DisplayName=Yes
+FileObject.LocationOrName=No
+FileObject.IconPicture=No
+FileObject.TextStyle=No
+FileObject.IconMode=Yes
+FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Package.Stereotype=Yes
+Package.Comment=No
+Package.IconPicture=No
+Package.TextStyle=No
+Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Display Model Version=Yes
+Table.Stereotype=Yes
+Table.DisplayName=Yes
+Table.OwnerDisplayName=No
+Table.Columns=Yes
+Table.Columns._Filter="All Columns" PDMCOLNALL
+Table.Columns._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Table.Columns._Limit=-5
+Table.Keys=No
+Table.Keys._Columns=Stereotype Indicator
+Table.Indexes=No
+Table.Indexes._Columns=Stereotype
+Table.Triggers=No
+Table.Triggers._Columns=Stereotype
+Table.Comment=No
+Table.IconPicture=No
+Table.TextStyle=No
+Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No "Domain or Data type"\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters=""All Columns" PDMCOLNALL ""\r\n"PK Columns" PDMCOLNPK "\"PRIM \"TRUE\" TRUE\""\r\n"Key Columns" PDMCOLNKEY "\"KEYS \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+View.Stereotype=Yes
+View.DisplayName=Yes
+View.OwnerDisplayName=No
+View.Columns=Yes
+View.Columns._Columns=DisplayName
+View.Columns._Limit=-5
+View.TemporaryVTables=Yes
+View.Indexes=No
+View.Comment=No
+View.IconPicture=No
+View.TextStyle=No
+View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No "Domain or Data type"\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Procedure.Stereotype=No
+Procedure.DisplayName=Yes
+Procedure.OwnerDisplayName=No
+Procedure.Comment=No
+Procedure.IconPicture=No
+Procedure.TextStyle=No
+Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Reference.Cardinality=No
+Reference.ImplementationType=No
+Reference.ChildRole=Yes
+Reference.Stereotype=Yes
+Reference.DisplayName=Yes
+Reference.ForeignKeyConstraintName=No
+Reference.JoinExpression=No
+Reference.Integrity=No
+Reference.ParentRole=Yes
+Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+ViewReference.ChildRole=Yes
+ViewReference.Stereotype=Yes
+ViewReference.DisplayName=No
+ViewReference.JoinExpression=No
+ViewReference.ParentRole=Yes
+ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Entity.Stereotype=Yes
+Entity.Attributes=Yes
+Entity.Attributes._Filter="All attributes" CDMPENTALL
+Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator
+Entity.Attributes._Limit=-5
+Entity.Identifiers=Yes
+Entity.Identifiers._Columns=Stereotype IdentifierIndicator
+Entity.Comment=No
+Entity.IconPicture=No
+Entity.TextStyle=No
+Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" Filters=""All attributes" CDMPENTALL ""\r\n"Primary attributes" CDMPENTPK "\"PIDTF \"TRUE\" TRUE\""\r\n"Identifying attributes" CDMPENTIDTF "\"AIDF \"TRUE\" TRUE\""" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No "Identifier indicators"" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Relationship.Entity1ToEntity2Role=Yes
+Relationship.Entity2ToEntity1RoleCardinality=No
+Relationship.Entity1ToEntity2RoleDominant=Yes
+Relationship.Stereotype=Yes
+Relationship.DisplayName=Yes
+Relationship.JoinExpression=No
+Relationship.Entity2ToEntity1Role=Yes
+Relationship.Entity1ToEntity2RoleCardinality=No
+Relationship.Entity2ToEntity1RoleDominant=Yes
+Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form>
+Inheritance.Stereotype=Yes
+Inheritance.DisplayName=Yes
+Inheritance.IconPicture=No
+Inheritance.TextStyle=No
+Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+Association.Stereotype=Yes
+Association.Comment=No
+Association.Attributes=Yes
+Association.Attributes._Columns=Stereotype DataType NullIndicator
+Association.Attributes._Limit=-5
+Association.IconPicture=No
+Association.TextStyle=No
+Association_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nDomainOrDataType No "Domain or Data type"\r\nDomain No\r\nNullIndicator No Mandatory" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form>
+AssociationLink.SymbolCardinality=Yes
+AssociationLink.Stereotype=Yes
+AssociationLink.Role=Yes
+AssociationLink_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="SymbolCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="<<" Suffix=">>" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Role" Attribute="Role" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form>
+
+[DisplayPreferences\Symbol]
+
+[DisplayPreferences\Symbol\AREA]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=9600
+Height=8000
+Brush color=253 249 234
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=16
+Brush gradient color=245 230 173
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 121 98 6
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMEOBJ]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=6000
+Height=2000
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=64
+Brush gradient color=192 192 192
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 255 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FRMELNK]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\USRDEPD]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=2 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\FILO]
+OBJSTRNFont=Arial,8,N
+OBJSTRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LCNMFont=Arial,8,N
+LCNMFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\PDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0, 0, 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0, 0, 0
+LABLFont=Arial,8,N
+LABLFont color=0, 0, 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\TABL]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+ColumnsFont=Arial,8,N
+ColumnsFont color=0 0 0
+TablePkColumnsFont=Arial,8,U
+TablePkColumnsFont color=0 0 0
+TableFkColumnsFont=Arial,8,N
+TableFkColumnsFont color=0 0 0
+KeysFont=Arial,8,N
+KeysFont color=0 0 0
+IndexesFont=Arial,8,N
+IndexesFont color=0 0 0
+TriggersFont=Arial,8,N
+TriggersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=210 137 2
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\VIEW]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+ColumnsFont=Arial,8,N
+ColumnsFont color=0 0 0
+TablePkColumnsFont=Arial,8,U
+TablePkColumnsFont color=0 0 0
+TableFkColumnsFont=Arial,8,N
+TableFkColumnsFont color=0 0 0
+TemporaryVTablesFont=Arial,8,N
+TemporaryVTablesFont color=0 0 0
+IndexesFont=Arial,8,N
+IndexesFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=233 202 131
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 128
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\PROC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+OWNRDISPNAMEFont=Arial,8,N
+OWNRDISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4000
+Height=1000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 108 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\REFR]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\VREF]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\Free Symbol]
+Free TextFont=Arial,8,N
+Free TextFont color=0 0 0
+Line style=0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 0 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3600
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+EntityForeignAttributeFont=Arial,8,N
+EntityForeignAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=234 181 21
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMRLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 0 64
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=No
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1575
+Height=1000
+Brush color=250 241 211
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LDMLINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=2
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 64 0
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMPCKG]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=255 255 192
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 178 178 178
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ENTT]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+IdentifiersFont=Arial,8,N
+IdentifiersFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=4000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\RLSH]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+DESTINATIONFont=Arial,8,N
+DESTINATIONFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 0 170 170
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\ASSC]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+LABLFont=Arial,8,N
+LABLFont color=0 0 0
+AttributesFont=Arial,8,N
+AttributesFont color=0 0 0
+EntityPrimaryAttributeFont=Arial,8,U
+EntityPrimaryAttributeFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Width=4800
+Height=3000
+Brush color=208 208 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINK]
+SOURCEFont=Arial,8,N
+SOURCEFont color=0 0 0
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\CDMINHR]
+STRNFont=Arial,8,N
+STRNFont color=0 0 0
+DISPNAMEFont=Arial,8,N
+DISPNAMEFont color=0 0 0
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=Yes
+Width=1600
+Height=1000
+Brush color=176 255 255
+Fill Color=Yes
+Brush style=6
+Brush bitmap mode=12
+Brush gradient mode=65
+Brush gradient color=255 255 255
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\Symbol\LINH]
+CENTERFont=Arial,8,N
+CENTERFont color=0 0 0
+Line style=1
+AutoAdjustToText=Yes
+Keep aspect=No
+Keep center=No
+Keep size=No
+Brush color=255 255 255
+Fill Color=Yes
+Brush style=1
+Brush bitmap mode=12
+Brush gradient mode=0
+Brush gradient color=118 118 118
+Brush background image=
+Custom shape=
+Custom text mode=0
+Pen=1 0 128 128 255
+Shadow color=192 192 192
+Shadow=0
+
+[DisplayPreferences\LDM]
+
+[DisplayPreferences\CDM]
+(8500, 11000)
+((315,354), (433,354))
+1
+15
+
+
+1545884139
+((-25583,12311), (-13359,19034))
+((-19471,18634),(-19471,12711))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((-24826,22164), (369,41434))
+((-19389,22564),(-19389,40809),(-31,40809))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((-3378,27323), (12822,41209))
+((4722,27723),(4722,40809))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((275,9562), (10025,18200))
+((5150,9962),(5150,17800))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545979862
+((-13311,23173), (-1453,24842))
+((-12911,23798),(-1853,23798))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+3
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((11753,22596), (24856,24265))
+((12153,23221),(24456,23221))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+((8477,26990), (38646,42634))
+((30996,27390),(30996,42009),(8877,42009))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1546255835
+((-35439,20108), (-24895,21777))
+((-25295,20733),(-35039,20733))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545912555
+((-35401,10624), (-22019,12293))
+((-22419,11249),(-35001,11249))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545912559
+((5186,14754), (32030,19919))
+((5586,19519),(17116,19519),(17116,15379),(31630,15379))
+1
+1
+11184640
+12632256
+CENTER 0 Arial,8,N
+SOURCE 0 Arial,8,N
+DESTINATION 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545808466
+1545809572
+((-21773,-11419), (-4681,19034))
+((-5081,-10373),(-15923,-10373),(-15923,18634))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545809915
+1545811440
+((-402,-11419), (17743,18200))
+((-2,-10373),(11893,-10373),(11893,17800))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545809915
+1545810332
+((-20171,-10773), (-3252,9111))
+((-3652,-10373),(-3652,-7725),(-19471,-7725),(-19471,8711))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545840072
+1545840212
+((-14561,-17467), (369,42709))
+((-3918,-17067),(-8711,-17067),(-8711,42009),(-31,42009))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545881272
+1545881368
+((-11531,-23764), (169,23669))
+((-5681,-23364),(-5681,22969),(-1853,22969))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545881272
+1545881368
+((-58,-23764), (11642,1972))
+((5792,-23364),(5792,1572))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882531
+1545912555
+((-39344,-10773), (1763,9649))
+((1363,-10373),(1363,-2628),(-38644,-2628),(-38644,9249))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545882531
+1546255835
+((-39653,-10773), (-801,19133))
+((-1201,-10373),(-1201,14104),(-38953,14104),(-38953,18733))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+4
+
+
+
+
+
+
+
+
+
+
+
+1545884384
+1545912559
+((-5851,-10773), (27074,14804))
+((-1,-10373),(-1,14104),(26674,14104))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1546563960
+1546564112
+((-402,-42776), (26566,41509))
+((-2,-42376),(20716,-42376),(20716,40809),(8877,40809))
+1
+8
+16744576
+12632256
+CENTER 0 Arial,8,N
+
+
+
+
+
+
+
+
+
+
+
+1545884139
+-1
+((-1853,17800), (12153,28138))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-31,37588), (8877,44030))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-22419,8711), (-16523,12711))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((763,1572), (11293,9962))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((-25295,18634), (-12911,28972))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545884139
+-1
+((24456,19000), (37536,27390))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545808345
+1545884139
+-1
+((-5081,-11022), (5078,-9724))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545840053
+1545884139
+-1
+((-3918,-17716), (3916,-16418))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545881226
+1545884139
+-1
+((-6394,-24013), (6392,-22715))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1546255835
+-1
+((-42867,18733), (-35039,22733))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545912555
+-1
+((-42287,9249), (-35001,13249))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545912559
+-1
+((26674,11979), (36586,15979))
+11184640
+16777136
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+Keys 0 Arial,8,N
+Indexes 0 Arial,8,N
+Triggers 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1545915113
+1545915358
+-1
+((-15689,-36728), (15686,-29012))
+8421504
+8637161
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+Columns 0 Arial,8,N
+TablePkColumns 0 Arial,8,U
+TableFkColumns 0 Arial,8,N
+TemporaryVTables 0 Arial,8,N
+Indexes 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+1546563829
+1546564252
+-1
+((-4594,-43025), (4591,-41727))
+27776
+12648447
+12632256
+STRN 0 Arial,8,N
+DISPNAME 0 Arial,8,N
+OWNRDISPNAME 0 Arial,8,N
+LABL 0 Arial,8,N
+6
+65
+16777215
+
+
+
+
+
+
+
+
+
+
+
+
+E3816B85-E2B2-42CB-9D03-EE8AEE94FA87
+MySettings
+1545829744
+user
+1545829744
+user
+[Physical Objects\Database Generation\Format]
+GenScriptTitle=Yes
+GenScriptNamLabl=No
+GenScriptQDtbs=No
+GenScriptQOwnr=Yes
+GenScriptCase=0
+GenScriptEncoding=ANSI
+GenScriptNAcct=No
+IdentifierDelimiter="
+
+[Physical Objects\Database Generation\Database]
+Create=Yes
+Open=Yes
+Close=Yes
+Drop=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Database\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Tablespace]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Tablespace\Create]
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Storage]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\User]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\User\Create]
+Physical Options=No
+
+[Physical Objects\Database Generation\Group]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\Role]
+Create=Yes
+Drop=Yes
+Privilege=No
+
+[Physical Objects\Database Generation\UserDefinedDataType]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\UserDefinedDataType\Create]
+Default value=Yes
+Check=Yes
+
+[Physical Objects\Database Generation\AbstractDataType]
+Create=Yes
+Header=Yes
+Footer=Yes
+Drop=Yes
+Comment=Yes
+Install JAVA class=Yes
+Remove JAVA class=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Rule]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Default]
+Create=Yes
+Comment=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\Sequence]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Table&&Column\Table]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Table&&Column\Table\Create]
+Check=Yes
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Table\Create\Check]
+Constraint declaration=No
+
+[Physical Objects\Database Generation\Table&&Column\Column]
+User datatype=No
+Default value=Yes
+Check=Yes
+Physical Options=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Column\Check]
+Constraint declaration=No
+
+[Physical Objects\Database Generation\Table&&Column\Key\Primary key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Alternate key]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create]
+Constraint declaration=No
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Foreign key]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Foreign key\Create]
+Constraint declaration=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index\Create]
+Constraint declaration=Yes
+Physical Options=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Index\Filter]
+Primary key=No
+Foreign key=No
+Alternate key=No
+Cluster=Yes
+Other=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Trigger]
+Create=Yes
+Drop=No
+Comment=Yes
+
+[Physical Objects\Database Generation\Table&&Column\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[Physical Objects\Database Generation\View]
+Create=Yes
+Drop=Yes
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\View\Create]
+Force Column list=No
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\View\ViewColumn]
+Comment=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex\Create]
+Physical Options=Yes
+
+[Physical Objects\Database Generation\View\ViewIndex\Filter]
+Cluster=Yes
+Other=Yes
+
+[Physical Objects\Database Generation\View\Trigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\View\Trigger\Filter]
+For insert=Yes
+For update=Yes
+For delete=Yes
+For other=Yes
+
+[Physical Objects\Database Generation\DBMSTrigger]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Synonym]
+Create=Yes
+Drop=Yes
+
+[Physical Objects\Database Generation\Synonym\Filter]
+Table=Yes
+View=Yes
+Proc=Yes
+Synonym=Yes
+Database Package=Yes
+Sequence=Yes
+
+[Physical Objects\Database Generation\JoinIndex]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\JoinIndex\Create]
+Physical Options=Yes
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\Procedure]
+Create=Yes
+Drop=No
+Comment=Yes
+Permission=No
+
+[Physical Objects\Database Generation\Procedure\Create]
+Header=Yes
+Footer=Yes
+
+[Physical Objects\Database Generation\DatabasePackage]
+Create=Yes
+Drop=Yes
+Permission=No
+
+[Physical Objects\Database Generation\WebService]
+Create=Yes
+Drop=Yes
+Comment=Yes
+
+[Physical Objects\Database Generation\Dimension]
+Create=Yes
+Drop=Yes
+Database Generation
+
+
+
+
+D964A7DA-CC7E-4803-BC7C-1C40B27C65E1
+Delete_Keperluan_Pinjam
+DELETE_KEPERLUAN_PINJAM
+1545161879
+Lenovo2
+1545885516
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Id INTEGER,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ DELETE FROM Keperluan_Pinjam
+ WHERE Id_Keperluan_Pinjam=Id;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+0C4BA84B-12C1-41D5-BB82-F3D4234CBF5B
+Insert_Keperluan_Pinjam
+INSERT_KEPERLUAN_PINJAM
+1545162505
+Lenovo2
+1545885508
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %PROC% (
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Nomor_Peminjaman INTEGER,
+ IN Sesi CHAR(32),
+ OUT Id_Keperluan_Pinjam INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ INSERT INTO Keperluan_Pinjam(
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ ) VALUES (
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ );
+ SET Id_Keperluan_Pinjam = LAST_INSERT_ID();
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+AC373B6D-9112-4333-867C-2C7340E89194
+Insert_Barang
+INSERT_BARANG
+1545112381
+Lenovo2
+1545843218
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF EXISTS (SELECT * FROM Barang B WHERE B.Nomor_Barang=Nomor_Barang AND B.Tipe_Barang=Tipe_Barang) THEN
+ IF EXISTS (SELECT * FROM Riwayat_Barang RB WHERE RB.Nomor_Barang=Nomor_Barang AND RB.Tipe_Barang=Tipe_Barang AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang sudah ada';
+ END IF;
+ ELSE
+ INSERT INTO Barang(Nomor_Barang, Tipe_Barang) VALUES(Nomor_Barang, Tipe_Barang);
+ END IF;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ 'A',
+ Keterangan_Barang,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+236171BE-0A59-47AF-BA0F-A18C389A76DF
+Insert_Peminjaman
+INSERT_PEMINJAMAN
+1545113210
+Lenovo2
+1545881128
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Nomor_Peminjaman INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ SET waktu=NOW();
+
+ START TRANSACTION;
+
+
+ INSERT INTO Peminjaman(
+ Username_Petugas,
+ Identitas_Peminjam,
+ Status_Peminjaman,
+ Keterangan_Peminjaman,
+ Waktu_Pinjam,
+ Waktu_Harus_Kembali,
+ Waktu_Admin_Peminjaman_Terakhir
+ ) VALUES (
+ username,
+ Identitas_Peminjam,
+ 'A',
+ Keterangan_Peminjaman,
+ waktu,
+ Waktu_Harus_Kembali,
+ waktu
+ );
+ SET Nomor_Peminjaman = LAST_INSERT_ID();
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+2ACD4320-07AB-4251-AB9F-99AFE9E32501
+Insert_Petugas_Unsafe
+INSERT_PETUGAS_UNSAFE
+1544973235
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (
+ IN Username VARCHAR(16),
+ IN Password VARCHAR(16),
+ IN Nama VARCHAR(64)
+)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+
+ INSERT INTO Petugas(
+ Username_Petugas,
+ Hashpass_Petugas,
+ Nama_Petugas
+ ) VALUES(
+ Username,
+ MD5(CONCAT(MD5(CONCAT(Password, 'Petugas')), 'Admin')),
+ Nama
+ );
+
+END//
+DELIMITER ;
+
+
+68ED0FC1-9019-4873-83CF-CABC1DE7118D
+Login_Petugas
+LOGIN_PETUGAS
+1544939328
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (IN Username VARCHAR(16), IN Hashpass CHAR(32), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ IF Username IS NULL OR Username = ' ' OR CHAR_LENGTH(Username) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF Hashpass IS NULL OR Hashpass = ' ' OR CHAR_LENGTH(Hashpass) < 32 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Hashpass tidak valid';
+ END IF;
+ IF NOT EXISTS (SELECT * FROM Petugas WHERE Petugas.Username_Petugas = Username AND Petugas.Hashpass_Petugas = MD5(CONCAT(Hashpass, 'Admin'))) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username atau password salah';
+ END IF;
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ WHILE EXISTS (SELECT * FROM Petugas WHERE Sesi_Petugas=Sesi) DO
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ END WHILE;
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+
+ UPDATE Petugas SET Sesi_Petugas = Sesi, Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+ SELECT Nama_Petugas INTO Nama FROM Petugas WHERE Sesi_Petugas=Sesi;
+END//
+DELIMITER ;
+
+
+D5483236-B560-4ED5-870A-2BEA64F5058D
+Login_Petugas_Unsafe
+LOGIN_PETUGAS_UNSAFE
+1545016666
+Lenovo2
+1545736746
+user
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE %PROC% (IN Username VARCHAR(16), IN Password VARCHAR(16), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+ CALL Login_Petugas(Username, MD5(CONCAT(Password, 'Petugas')), Nama, Sesi, Timeout);
+END//
+DELIMITER ;
+
+
+936D72C2-DBA0-4618-AEAB-6F5EF794D4B1
+Ping_Sesi
+PING_SESI
+1544941703
+Lenovo2
+1545881767
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Sesi CHAR(32),
+ OUT Username VARCHAR(16),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ SET datetime_now = NOW();
+ SELECT Username_Petugas INTO Username FROM Petugas WHERE Sesi_Petugas=Sesi AND Timeout_Sesi_Petugas > datetime_now;
+ IF (SELECT ROW_COUNT()) = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada atau sudah hangus';
+ END IF;
+
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+ UPDATE Petugas SET Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+0A9B4958-68DD-4231-B2C7-CE5082B2440F
+Update_Detail_Peminjaman
+UPDATE_DETAIL_PEMINJAMAN
+1545131924
+Lenovo2
+1545882847
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Peminjaman INTEGER,
+ IN Status_Peminjaman CHAR(1),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjaman P
+ SET
+ P.Status_Peminjaman=Status_Peminjaman,
+ P.Keterangan_Peminjaman=Keterangan_Peminjaman,
+ P.Waktu_Harus_Kembali=Waktu_Harus_Kembali,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+BA4B8D1C-ECA2-4B34-9500-593ABBFFBE89
+Update_Keperluan_Pinjam
+UPDATE_KEPERLUAN_PINJAM
+1545131930
+Lenovo2
+1545886575
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Id_Keperluan_Pinjam INTEGER,
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF NOT EXISTS(SELECT * FROM Peminjaman P WHERE P.Nomor_Peminjaman=Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ada';
+ END IF;
+
+ UPDATE Keperluan_Pinjam KP
+ SET KP.Keperluan_Pinjam = Keperluan_Pinjam,
+ KP.Nama_Penanggung_Jawab = Nama_Penanggung_Jawab,
+ KP.Ruang_Pinjam = Ruang_Pinjam,
+ KP.Waktu_Mulai = Waktu_Mulai,
+ KP.Waktu_Selesai = Waktu_Selesai
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+7B5A7380-B9F4-4DD1-ACB6-18DC270A8EF6
+Insert_Peminjam
+INSERT_PEMINJAM
+1545796788
+user
+1545880129
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ INSERT INTO Peminjam (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ Username_Petugas,
+ Waktu_Admin_Peminjam_Terakhir
+ ) VALUES (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ username,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+3D5C919A-6BD3-4733-8069-CF3BA97AE5C4
+Update_Peminjam
+UPDATE_PEMINJAM
+1545796796
+user
+1545880151
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Keterangan_Blacklist VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjam P
+ SET
+ P.Nama_Peminjam=Nama_Peminjam,
+ P.Alamat_Peminjam=Alamat_Peminjam,
+ P.Nomor_HP_Peminjam=Nomor_HP_Peminjam,
+ P.Keterangan_Blacklist=Keterangan_Blacklist,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjam_Terakhir=NOW()
+ WHERE P.Identitas_Peminjam=Identitas_Peminjam;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjam tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+695BB5A8-442F-4171-A2C2-C1CBF9A36F51
+Update_Detail_Barang
+UPDATE_DETAIL_BARANG
+1545808345
+user
+1546244337
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Status_Barang CHAR(1),
+ IN Nomor_Peminjaman INTEGER,
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+proc_label: BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE id_riwayat_barang_lama INTEGER;
+ DECLARE nomor_peminjaman_lama INTEGER;
+ DECLARE status_barang_lama CHAR(1);
+ DECLARE keterangan_barang_lama VARCHAR(256);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ SELECT
+ RB.Id_Riwayat_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+ INTO
+ id_riwayat_barang_lama,
+ status_barang_lama,
+ nomor_peminjaman_lama,
+ keterangan_barang_lama
+ FROM Riwayat_Barang RB
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ IF Status_Barang = status_barang_lama
+ AND Nomor_Peminjaman = nomor_peminjaman_lama
+ AND Keterangan_Barang = keterangan_barang_lama THEN
+
+ LEAVE proc_label;
+ END IF;
+
+ IF ROW_COUNT() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak ada';
+ END IF;
+
+ IF Status_Barang='P' AND Nomor_Peminjaman IS NULL THEN
+ SET Nomor_Peminjaman=nomor_peminjaman_lama;
+ IF Nomor_Peminjaman IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor peminjaman harus diisi untuk barang berstatus dipinjam';
+ END IF;
+ END IF;
+
+ IF Status_Barang='P' AND Status_Barang=status_barang_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam.';
+ END IF;
+
+ IF Status_Barang<>'P' AND Nomor_Peminjaman IS NOT NULL THEN
+ SET Nomor_Peminjaman=NULL;
+ END IF;
+
+ IF Keterangan_Barang IS NULL THEN
+ SET Keterangan_Barang=keterangan_barang_lama;
+ END IF;
+
+ SET waktu=NOW();
+
+
+
+
+ IF Status_Barang <> status_barang_lama THEN
+ IF Status_Barang = 'P' AND status_barang_lama <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak bisa dipinjam';
+ END IF;
+ IF Status_Barang <> 'A' AND status_barang_lama = 'P' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ IF Status_Barang='P' THEN
+ IF (
+ SELECT P.Status_Peminjaman
+ FROM Peminjaman P
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman
+ ) <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak aktif';
+ END IF;
+ END IF;
+
+ ELSEIF Status_Barang='P' AND Nomor_Peminjaman<>nomor_peminjaman_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ UPDATE Riwayat_Barang RB
+ SET RB.Waktu_Berakhir_Riwayat_Barang=waktu
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ waktu
+ );
+
+ IF Status_Barang = 'A' AND status_barang_lama = 'P' THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+
+ IF nomor_peminjaman_lama IS NOT NULL AND NOT EXISTS (SELECT * FROM Barang_Terkini BT WHERE BT.Nomor_Peminjaman=nomor_peminjaman_lama) THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW(),
+ P.Waktu_Kembali=NOW(),
+ P.Status_Peminjaman='S'
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+C90AD608-E526-48D6-8C82-7A1A5251F91F
+Logout_Petugas
+LOGOUT_PETUGAS
+1545840053
+user
+1545840212
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Sesi_Petugas CHAR(32)
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ UPDATE Petugas P
+ SET P.Sesi_Petugas=NULL,
+ P.Timeout_Sesi_Petugas=NULL
+ WHERE P.Sesi_Petugas=Sesi;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+2B553430-2070-469B-9AEB-34E3E3F9E968
+Hitung_Waktu_Harus_Kembali
+HITUNG_WAKTU_HARUS_KEMBALI
+1545881226
+user
+1545886447
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure %FUNC%(
+ IN Nomor_Peminjaman INTEGER
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE err VARCHAR(64);
+ DECLARE waktu_harus_kembali DATETIME;
+ DECLARE username VARCHAR(16);
+
+
+
+ SET waktu_harus_kembali=(
+ SELECT MAX(KP.Waktu_Selesai)+INTERVAL 30 MINUTE
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Nomor_Peminjaman=Nomor_Peminjaman
+ );
+
+
+
+ UPDATE Peminjaman P
+ SET
+ P.Waktu_Harus_Kembali=waktu_harus_kembali,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+END//
+DELIMITER ;
+
+
+5AF1128B-5218-4DC4-9B13-04C3802027CE
+Get_Nama_Petugas
+GET_NAMA_PETUGAS
+1546563829
+user
+1546564443
+user
+DELIMITER //
+create DEFINER = 'root'@'localhost' function %FUNC%(Username VARCHAR(16))
+RETURNS VARCHAR(64)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE Nama VARCHAR(64);
+ SELECT P.Nama_Petugas INTO Nama FROM Petugas P WHERE P.Username_Petugas=Username;
+ RETURN Nama;
+END //
+DELIMITER ;
+1
+
+
+
+
+8170004D-0AE1-4F07-923C-DA6D03CB1B9B
+Peminjaman
+PEMINJAMAN
+1545736527
+user
+1545927151
+user
+ORG {8BA361E9-B8A7-42FA-B7EE-596A4DCFE9BE}
+DAT 1545736527
+ORG {55B8452B-5D32-4503-8C30-48C89C1B74AE}
+DAT 1545736490
+
+
+
+072CD3BD-8EF9-45A0-89A1-76A311E62EA6
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736527
+user
+1545843341
+user
+ORG {39303C18-5481-41AF-AADB-DBADCE0AA0CB}
+DAT 1545736527
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+4DA6DCEC-A27B-40CB-AC3D-B4CAE64AFF26
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {773379BF-065F-4294-B175-9718B9176879}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+varchar(64)
+64
+
+
+79A85866-43F1-4199-B8B5-028EEA620EC7
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736527
+user
+1545882532
+user
+ORG {8AE084CF-C644-4D1D-A37E-8F2548901F7B}
+DAT 1545736527
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79},{89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+varchar(18)
+18
+1
+
+
+9E1AAFFD-8964-4FD3-8713-76F7B94BD526
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545736527
+user
+1545794866
+user
+ORG {C06369AD-F6FD-473F-91E4-9FB95A602881}
+DAT 1545736527
+ORG {4DE0E9A7-5D8E-4E99-B213-FC4346E2B946}
+DAT 1545736490
+char(1)
+1
+1
+
+
+96C54F02-2E93-4D4A-A3C2-533E8D54A144
+Keterangan_Peminjaman
+KETERANGAN_PEMINJAMAN
+1545736527
+user
+1545736527
+user
+ORG {7415399D-0168-4F51-8386-97C0B817F1CC}
+DAT 1545736527
+ORG {203B69FE-246A-4C7E-A730-992E303F6D3B}
+DAT 1545736490
+varchar(256)
+256
+
+
+BA35266F-C8DC-492E-B1F9-9205AC40E6CA
+Waktu_Pinjam
+WAKTU_PINJAM
+1545736527
+user
+1545835115
+user
+ORG {BDAEC1A6-0F26-4E5B-BE3B-E1D6A629E02D}
+DAT 1545736527
+ORG {B12F0ECB-FD98-487A-B151-F62D4B0E3486}
+DAT 1545736490
+ATT OBJEXA
+ATT DVAL
+datetime
+1
+{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=
+{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=
+
+
+
+
+A75A1CBC-B38F-415F-9BCF-2AAE27AE6C68
+Waktu_Harus_Kembali
+WAKTU_HARUS_KEMBALI
+1545811142
+user
+1545811145
+user
+ORG {C6865222-C64A-4065-A455-5CC4D676897F}
+DAT 1545811143
+ORG {0FA73593-ACAF-493A-9DE1-D8AB8EA8EA76}
+DAT 1545811135
+datetime
+1
+
+
+D11F1FBB-30FB-43AF-9B78-28DBBFD06054
+Waktu_Kembali
+WAKTU_KEMBALI
+1545736527
+user
+1545736527
+user
+ORG {F51B8452-8222-4986-87DC-E74817A091CE}
+DAT 1545736527
+ORG {584DE94B-99D8-40E2-AF33-14E5EEB0A747}
+DAT 1545736490
+datetime
+
+
+726DCF4B-8926-47A1-A6DE-0B74A1545650
+Waktu_Admin_Peminjaman_Terakhir
+WAKTU_ADMIN_PEMINJAMAN_TERAKHIR
+1545811437
+user
+1545811440
+user
+ORG {7F5A8523-42EA-44DB-B147-E65A0BBAE30F}
+DAT 1545811437
+ORG {364039B9-3C9A-4BBF-9A15-606C658C4D37}
+DAT 1545811429
+datetime
+1
+
+
+
+
+BAE7750F-2EA6-4DCA-A8D4-6EA8CBB0CC2B
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {999F4AC1-B2F0-41D9-9537-966B9BE229BD}
+DAT 1545736527
+ORG {31B046B1-A4C8-4714-81F8-BB7EB106A8E7}
+DAT 1545736490
+
+
+
+
+
+
+
+87D64710-B180-4006-AE9A-C5CB65D9E6FF
+PEMINJAMAN_PK
+PEMINJAMAN_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+A239521A-14D0-43BA-9174-763C206AACCB
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+6D69C0CA-5373-4677-98CA-2D52B4F26CAE
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT_FK
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+B7DC3675-3830-4140-987C-5B25BC90BF26
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+D3BB825C-509C-4A59-B4C6-02EA9DB441FD
+MELAKUKAN_FK
+MELAKUKAN_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+B0D0F63E-0FED-4D17-9005-001D7CC77FEF
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+AAB7F6E3-E363-48CD-832B-EE14605C821D
+PEMINJAMAN_BERSTATUS_FK
+PEMINJAMAN_BERSTATUS_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+BF2E6438-172D-4772-8EB0-A158F4070FFE
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+0B7BF1A8-9F2B-4D74-9BFA-0A6F6A8038F5
+BEFORE_INSERT_PEMINJAMAN
+BEFORE_INSERT_PEMINJAMAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ DECLARE keterangan_blacklist VARCHAR(320);
+
+
+ SELECT P.Keterangan_Blacklist
+ INTO keterangan_blacklist
+ FROM Peminjam P
+ WHERE P.Identitas_Peminjam=NEW.Identitas_Peminjam;
+
+ IF keterangan_blacklist IS NOT NULL THEN
+ SET keterangan_blacklist = CONCAT('Peminjam terblacklist. Keterangan: ', keterangan_blacklist);
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT=keterangan_blacklist;
+ END IF;
+end//
+DELIMITER ;
+1545139962
+Lenovo2
+1545812990
+user
+
+
+
+
+
+89E61656-C4B2-4E88-8793-6EC6D96AB771
+BEFORE_UPDATE_PEMINJAMAN
+BEFORE_UPDATE_PEMINJAMAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Status_Peminjaman IS NULL THEN
+ SET NEW.Status_Peminjaman = OLD.Status_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Pinjam IS NULL THEN
+ SET NEW.Waktu_Pinjam = OLD.Waktu_Pinjam;
+ END IF;
+ IF NEW.Keterangan_Peminjaman IS NULL THEN
+ SET NEW.Keterangan_Peminjaman = OLD.Keterangan_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Harus_Kembali IS NULL THEN
+ SET NEW.Waktu_Harus_Kembali = OLD.Waktu_Harus_Kembali;
+ END IF;
+ IF NEW.Waktu_Kembali IS NULL AND NEW.Status_Peminjaman > 1 THEN
+ SET NEW.Waktu_Kembali = OLD.Waktu_Kembali;
+ END IF;
+
+ IF NEW.Username_Petugas IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username petugas harus diisi';
+ END IF;
+
+
+ IF OLD.Status_Peminjaman <> NEW.Status_Peminjaman THEN
+ IF NEW.Status_Peminjaman='A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Anda tidak dapat membuka kembali peminjaman. Silahkan buat peminjaman baru.';
+ ELSE
+ IF EXISTS (SELECT * FROM Barang_Terkini BR WHERE BR.Nomor_Peminjaman=NEW.Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Masih ada barang yang belum dikembalikan';
+ END IF;
+ SET NEW.Waktu_Kembali=NOW();
+ END IF;
+ END IF;
+end//
+DELIMITER ;
+1545130776
+Lenovo2
+1545886955
+user
+Update
+
+
+
+
+
+
+
+
+
+
+55634B15-0D3F-49B4-B2D5-CD8BFD88924E
+Petugas
+PETUGAS
+1545736527
+user
+1546564112
+user
+ORG {04B24E1A-6FF6-47A9-8A39-F4B1430FB8ED}
+DAT 1545736527
+ORG {6FE91B06-BFF3-43BE-AD99-838BCAD29B9D}
+DAT 1545736490
+MOV COLNCOL
+
+
+
+7D9F9C3D-7DD5-49B5-81A6-2F3F3FB07144
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {18ED59F5-06F4-4F84-861A-C29F9050DB2E}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+08722869-F2DD-43AC-B8FB-3650B146573D
+Nama_Petugas
+NAMA_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {17363653-90A4-4C53-9699-8E8DD736B25D}
+DAT 1545736527
+ORG {D66AE1F9-3BAD-4C7C-95E3-A48B914AAFFC}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+07C38EAB-CF35-4A52-BFC5-06C7C9CFDD06
+Hashpass_Petugas
+HASHPASS_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {66E17700-1AEC-4D47-8C45-DECD745E8D0B}
+DAT 1545736527
+ORG {51F1354E-718E-4D22-A13A-756688479756}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+6A70D0CA-B089-4A92-80C2-C5770E206ACF
+Sesi_Petugas
+SESI_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {22327F34-8E2D-4C2D-B7E5-795CA207A9BC}
+DAT 1545736527
+ORG {6CC33874-6734-4E4C-AA02-D6856A4A5F47}
+DAT 1545736490
+varchar(64)
+64
+
+
+AACFD154-10EF-4F63-8EEA-581D8E2C80A3
+Timeout_Sesi_Petugas
+TIMEOUT_SESI_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {3E718959-3BA1-4941-B6C1-9FB845891CFF}
+DAT 1545736527
+ORG {F12EB1A4-DCE2-405C-B80D-973E76C68758}
+DAT 1545736490
+datetime
+
+
+
+
+2B8A5A63-506B-4C57-B43D-473C839305E0
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {5FC0BE80-0A06-40B3-A000-E116D27864B0}
+DAT 1545736527
+ORG {60396C66-C10A-4C1A-8882-3638FE27393C}
+DAT 1545736490
+
+
+
+
+
+
+
+28A7DD70-1362-4A4F-875D-40F3A76DE0A2
+ADMIN_PK
+ADMIN_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+B167E2E7-A915-4BEF-9AAD-7222EEA466FF
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+4EF60A74-4DC5-4D10-840E-22D1E72E47ED
+BEFORE_INSERT_PETUGAS
+BEFORE_INSERT_PETUGAS
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Username_Petugas IS NULL OR NEW.Username_Petugas = ' ' OR CHAR_LENGTH(NEW.Username_Petugas) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF NEW.Nama_Petugas IS NULL OR NEW.Nama_Petugas = ' ' OR CHAR_LENGTH(NEW.Nama_Petugas) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+1545140240
+Lenovo2
+1545736808
+user
+
+
+
+
+
+
+
+
+
+
+86BCFB92-984E-4824-AEA4-472E4A2FD021
+Barang
+BARANG
+1545736527
+user
+1545927122
+user
+ORG {E942B61C-6DFF-443D-8FCF-99622A84EF21}
+DAT 1545736527
+ORG {F187F009-5829-4542-93B6-379273CE9E96}
+DAT 1545736490
+MOV COLNCOL
+
+
+
+D84A12C6-7973-4854-839A-E20EB4EA8690
+Tipe_Barang
+TIPE_BARANG
+1545736527
+user
+1545736527
+user
+ORG {53325852-A161-4C7E-BBB9-2A9F5DEA8E43}
+DAT 1545736527
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E}
+DAT 1545736490
+char(1)
+1
+1
+
+
+A78596ED-37C5-4A4C-9A23-C249D37DA636
+Nomor_Barang
+NOMOR_BARANG
+1545736527
+user
+1545736527
+user
+ORG {83905240-83D8-426C-8DF9-E4F3BF4EB2D2}
+DAT 1545736527
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F}
+DAT 1545736490
+int
+1
+
+
+
+
+88B4111B-AF93-4BA8-BD36-B2762A339FB0
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545806343
+user
+ORG {BA2C672C-F192-4B0F-A185-4E258A7DF564}
+DAT 1545736527
+ORG {D20F8C19-09B3-48B9-BF4B-BE9263947981}
+DAT 1545736490
+REM COLNCOL {BF485DA6-CEEE-42D4-A5E5-4E982FAF6CC8}
+INS COLNCOL {53325852-A161-4C7E-BBB9-2A9F5DEA8E43}
+INS COLNCOL {83905240-83D8-426C-8DF9-E4F3BF4EB2D2}
+
+
+
+
+
+
+
+
+FFD47E7A-306A-42B7-99CE-62854AF96D87
+BARANG_PK
+BARANG_PK
+1545736527
+user
+1545806343
+user
+1
+
+
+
+
+
+E5DC62B5-AEAC-4241-BB1E-70ABA85F4EDA
+1545806341
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+CBCCC5A3-518D-42A2-9665-F7E97E3CBC50
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+
+
+B44B2174-873E-4D94-A4BE-B2F99CAC4FD5
+BERTIPE_FK
+BERTIPE_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+89AF0CCE-3801-417D-8F8D-70F43686BCEF
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+32AC13DD-AEEF-4C98-AA45-EA4B09B81782
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736527
+user
+1545881864
+user
+ORG {8AC8F2A2-B48B-4889-8765-6A651A1E3432}
+DAT 1545736527
+ORG {D59E323B-F178-4442-A688-93A883DAF7B7}
+DAT 1545736490
+
+
+
+C17516AF-6A68-4E6D-9FC4-497222BB06DC
+Id_Keperluan_Pinjam
+ID_KEPERLUAN_PINJAM
+1545736527
+user
+1545843355
+user
+ORG {63391AF3-95D2-48C3-836E-958F2793D03E}
+DAT 1545736527
+ORG {2E1269FA-5311-4C87-A578-969754041E4A}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+662394F9-A15D-4625-AECC-DF5AF4596FD1
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545736527
+user
+1545736527
+user
+ORG {1395C165-578C-4A7A-84D0-F8211B740A33}
+DAT 1545736527
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+int
+1
+
+
+89AE7AEB-C526-4A3E-A2BB-19C232CC96D7
+Keperluan_Pinjam
+KEPERLUAN_PINJAM
+1545736527
+user
+1545736527
+user
+ORG {EDC27EF9-1BD3-4132-871E-FFC4EBB39D51}
+DAT 1545736527
+ORG {1EC0F598-7EF3-4F7A-832A-6237CE63030F}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+AC5CE796-71DA-47FE-B225-5234793DDC28
+Nama_Penanggung_Jawab
+NAMA_PENANGGUNG_JAWAB
+1545736527
+user
+1545736527
+user
+ORG {93B5CDA8-C96B-4F29-AC7D-E009D0C0E039}
+DAT 1545736527
+ORG {C5AE339A-26B1-471F-85A9-06702DBAE421}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+76FCBBF1-498E-46E0-8216-44A5162BB6A4
+Ruang_Pinjam
+RUANG_PINJAM
+1545736527
+user
+1545736527
+user
+ORG {2FFD6041-C931-4FEF-A8A8-2CB1A8855701}
+DAT 1545736527
+ORG {ABE9B8B1-AE32-497C-A295-E18C283E8D45}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+253B68FD-6484-4716-9E02-404E4578DAC4
+Waktu_Mulai
+WAKTU_MULAI
+1545736527
+user
+1545736527
+user
+ORG {97FE54BD-18FB-4985-A964-21948C9AF6E4}
+DAT 1545736527
+ORG {4E678A6A-AE63-44F1-99D5-E0E4ADC5A9E2}
+DAT 1545736490
+datetime
+1
+
+
+A1936723-15C0-4F40-B875-07497E203C1E
+Waktu_Selesai
+WAKTU_SELESAI
+1545736527
+user
+1545736527
+user
+ORG {FC21DDC2-4C53-43C0-A454-8190ECF3A7A0}
+DAT 1545736527
+ORG {9FC86DB0-C033-46CB-B5BC-3882DB2E0984}
+DAT 1545736490
+datetime
+1
+
+
+
+
+54A5FEA1-C3CE-4483-82A3-8977F6A7997C
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {F49AC256-243A-447C-A913-462343F7CA87}
+DAT 1545736527
+ORG {2F11BA23-8474-4BEA-8D6A-3603F5927AA8}
+DAT 1545736490
+
+
+
+
+
+
+
+2DF1C1ED-B7EF-4F76-8DB5-6A5040D1F630
+KEPERLUAN_PINJAM_PK
+KEPERLUAN_PINJAM_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+E2F1B922-D180-4EE0-ACA7-4A8D1A48EA49
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+C1495579-33FD-44D5-8EA2-E750528BBDF8
+PINJAM_UNTUK_KEPERLUAN_FK
+PINJAM_UNTUK_KEPERLUAN_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+0D139041-0648-45B5-AA6E-C9E3A9D2EA63
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+4861F202-88AA-4CB6-9915-14829D21F021
+BEFORE_INSERT_KEPERLUAN
+BEFORE_INSERT_KEPERLUAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+
+ IF NEW.Keperluan_Pinjam IS NULL OR NEW.Keperluan_Pinjam = ' ' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan_Pinjam tidak valid';
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL OR NEW.Nama_Penanggung_Jawab = ' ' OR CHAR_LENGTH(NEW.Nama_Penanggung_Jawab) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama_Penanggung_Jawab tidak valid';
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL OR NEW.Ruang_Pinjam = ' ' OR CHAR_LENGTH(NEW.Ruang_Pinjam) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Ruang_Pinjam tidak valid';
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Mulai tidak boleh kosong';
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Selesai tidak boleh kosong';
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+1545131505
+Lenovo2
+1545881189
+user
+
+
+
+
+
+8ED6AE92-DFF5-4D30-97CD-2E0635D75155
+BEFORE_UPDATE_KEPERLUAN
+BEFORE_UPDATE_KEPERLUAN
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Nomor_Peminjaman IS NULL THEN
+ SET NEW.Nomor_Peminjaman = OLD.Nomor_Peminjaman;
+ END IF;
+ IF NEW.Keperluan_Pinjam IS NULL THEN
+ SET NEW.Keperluan_Pinjam = OLD.Keperluan_Pinjam;
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL THEN
+ SET NEW.Nama_Penanggung_Jawab = OLD.Nama_Penanggung_Jawab;
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL THEN
+ SET NEW.Ruang_Pinjam = OLD.Ruang_Pinjam;
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SET NEW.Waktu_Mulai = OLD.Waktu_Mulai;
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SET NEW.Waktu_Selesai = OLD.Waktu_Selesai;
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545131279
+Lenovo2
+1545881179
+user
+Update
+
+
+
+
+
+B88ED56C-D1C6-405E-9E24-0A4BD2A5E834
+AFTER_DELETE_KEPERLUAN_PINJAM
+AFTER_DELETE_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger %TRIGGER% after delete
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(OLD.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881673
+user
+1545881782
+user
+After
+Delete
+
+
+
+
+
+FAF08BF5-9E03-4BD9-BD11-07B0C0B82E4D
+AFTER_INSERT_KEPERLUAN_PINJAM
+AFTER_INSERT_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger %TRIGGER% after insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881785
+user
+1545881874
+user
+After
+
+
+
+
+
+380F4EA2-03B1-489B-8419-0A0ACBA4F85E
+AFTER_UPDATE_KEPERLUAN_PINJAM
+AFTER_UPDATE_KEPERLUAN_PINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% after update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+1545881811
+user
+1545885789
+user
+After
+Update
+
+
+
+
+
+
+
+
+
+
+2259CAD9-D453-4037-865D-F654BECF86A5
+Riwayat_Barang
+RIWAYAT_BARANG
+1545736527
+user
+1545927127
+user
+ORG {D4FC9204-E6C5-4303-809D-17366A76D3D5}
+DAT 1545736527
+ORG {BE695DE0-DD52-4706-BDD1-7114F1752D6E}
+DAT 1545736490
+
+
+
+B9A18B88-091B-46CF-AC83-A9638DB07880
+Id_Riwayat_Barang
+ID_RIWAYAT_BARANG
+1545736527
+user
+1545843331
+user
+ORG {5330DC82-ED07-417C-92F1-B8234FA8E4D5}
+DAT 1545736527
+ORG {4320093C-5EDB-409E-BD74-F8733C811D3E}
+DAT 1545736490
+ATT IDNT
+int
+1
+1
+
+
+5F224395-869B-41A1-AF1D-0CD4DE519F2B
+Tipe_Barang
+TIPE_BARANG
+1545806340
+user
+1545915358
+user
+ORG {6A9AC187-4FB7-4DB2-9843-AB5510055FF1}
+DAT 1545806341
+ORG {07BF26EA-C8D0-4B3E-B486-71694985698E},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+char(1)
+1
+1
+
+
+555B0DDF-E25E-419E-836D-B195BDC42F2F
+Nomor_Barang
+NOMOR_BARANG
+1545806340
+user
+1545915358
+user
+ORG {5D0408FC-8116-4DEA-9470-E84ECAFAACBA}
+DAT 1545806341
+ORG {E20DB59F-9B35-4147-A619-9FBEB30B0B4F},{CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545806330
+int
+1
+
+
+32E02732-5B68-4670-92E7-0630CE3BD0B6
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {3FC95FE8-C947-4539-8F8B-F4973C437804}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+A3616330-DEBD-492B-B46B-88D403EE6FF6
+Nomor_Peminjaman
+NOMOR_PEMINJAMAN
+1545737110
+user
+1545915358
+user
+ORG {442ED9ED-8B8C-41A8-B5C8-EA4BEB270174}
+DAT 1545737110
+ORG {BF46ED25-9207-48EB-8E78-6BA8C18159C3},{6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545737101
+int
+
+
+13D5475F-82F3-4B44-A58E-BB8BC5494DB3
+Status_Barang
+STATUS_BARANG
+1545736527
+user
+1545915358
+user
+ORG {754903AE-5506-4923-ABAB-7E539D9183D0}
+DAT 1545736527
+ORG {30D1E1BD-4ABB-4593-B08E-E3C3E41740E7}
+DAT 1545736490
+char(1)
+1
+1
+
+
+32325490-0CDB-40E4-91A0-E15074971B80
+Keterangan_Barang
+KETERANGAN_BARANG
+1545736527
+user
+1545915358
+user
+ORG {050E98EE-FEA1-4BB2-B274-0EA65925BC00}
+DAT 1545736527
+ORG {BDBF8F76-470E-42CC-AA22-057AA22EAF1E}
+DAT 1545736490
+varchar(256)
+256
+
+
+EEF52DAC-C171-416F-873A-975BA97B47A8
+Waktu_Mulai_Riwayat_Barang
+WAKTU_MULAI_RIWAYAT_BARANG
+1545736527
+user
+1545914423
+user
+ORG {548915D3-BFBB-470E-B4E0-31E8C8D39A97}
+DAT 1545736527
+ORG {C9F2898C-4ADC-41AE-9821-E89CAEAE0924}
+DAT 1545736490
+datetime
+1
+
+
+661D7ED4-41E8-4060-B4F8-531B1DF397F5
+Waktu_Berakhir_Riwayat_Barang
+WAKTU_BERAKHIR_RIWAYAT_BARANG
+1545736527
+user
+1545914442
+user
+ORG {AB812FE8-A2A0-4E6D-A4F0-B65682BE54F0}
+DAT 1545736527
+ORG {95CC1E2A-C438-4E7F-9982-B9C2B88B0C1C}
+DAT 1545736490
+datetime
+
+
+
+
+FC7D2FDD-6F2C-4F20-A19F-53B3CB71B0C9
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {B523B628-F58E-4A62-9598-265BE52EA7B6}
+DAT 1545736527
+ORG {69A2A70E-41BF-4689-A17C-24D073D6BDB3}
+DAT 1545736490
+
+
+
+
+
+
+
+2130DC12-0C16-474F-BED8-ACA2635EED28
+RIWAYAT_BARANG_PK
+RIWAYAT_BARANG_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+7D633C8A-114E-4FB7-BADA-242025D08D1D
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+D8FA2D65-D062-4CBF-934F-0F2858B86C3A
+MEMILIKI_RIWAYAT_STATE_BARANG_FK
+MEMILIKI_RIWAYAT_STATE_BARANG_FK
+1545736527
+user
+1545806343
+user
+
+
+
+
+
+4729AD3F-8108-49FB-A9B0-F58067ED646D
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+6C20792A-81DB-46BC-90C5-A8C66AE05F33
+1545806343
+user
+1545806343
+user
+
+
+
+
+
+
+
+
+
+
+C16AEC09-DB39-4896-9CAF-75C43921F236
+ADMINISTRASI_BARANG_DICATAT_FK
+ADMINISTRASI_BARANG_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+16E9DCC8-D15B-4C88-8CF1-AD9D08D32842
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+50CF0733-1D7E-4C24-BE89-A9AEA3CADA83
+BARANG_BERSTATUS_FK
+BARANG_BERSTATUS_FK
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+79BEEE5A-FC05-4099-870D-7DE04DC05940
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+0E160B95-E7B6-4297-9C48-F9CE13EA7CDF
+UNIQUE_START_TIMELINE
+UNIQUE_START_TIMELINE
+1545914399
+user
+1545914423
+user
+1
+
+
+BA688C04-D5AA-4DF9-99A3-E329728B0302
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+B2197BB3-0AE4-49DD-8F7C-29741529A0C0
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+8642459C-FD35-47A0-BD73-6CD74B69F2D5
+1545914415
+user
+1545914423
+user
+
+
+
+
+
+
+
+
+
+
+269E7415-8042-4015-885C-DCFE0B5586CB
+UNIQUE_END_TIMELINE
+UNIQUE_END_TIMELINE
+1545914415
+user
+1545914442
+user
+1
+
+
+F403B320-0620-4426-8621-F0C9CD313FDF
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+BD97383F-72E3-4F63-B240-1883C2F8321C
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+C6B53A3B-3BF7-4BB4-B734-366F820C5B21
+1545914432
+user
+1545914442
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+D2E21C6B-9E36-4FFF-B20B-A736B88F1CD9
+Peminjam
+PEMINJAM
+1545736527
+user
+1545927151
+user
+ORG {5EED8C4F-B64A-409F-A5BA-24ACFBBD3765}
+DAT 1545736527
+ORG {FFDABF60-EAE7-4E70-9008-83498551821A}
+DAT 1545736490
+
+
+
+0D6B075F-D503-4296-B864-4F92EF563BDD
+Identitas_Peminjam
+IDENTITAS_PEMINJAM
+1545736527
+user
+1545736527
+user
+ORG {7FE94923-C032-4E62-A159-800CDC335EA0}
+DAT 1545736527
+ORG {48B85F55-C048-4A5C-ACF7-16667562EE79}
+DAT 1545736490
+varchar(18)
+18
+1
+
+
+BE641E4F-2D8A-4D7D-B03F-5A49FE51DBDA
+Username_Petugas
+USERNAME_PETUGAS
+1545736527
+user
+1545806343
+user
+ORG {B3532DBB-D839-4712-A5D1-44A43C89BD76}
+DAT 1545736527
+ORG {6A877022-56FB-4A1C-A1F2-01E82F95B35D},{2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+0071A455-48DA-4B1D-9FE5-5D33AB0D3BEE
+Nama_Peminjam
+NAMA_PEMINJAM
+1545736527
+user
+1545736527
+user
+ORG {5682D42D-AD64-4EBF-AC28-4CFF92656885}
+DAT 1545736527
+ORG {AE08FEAB-85B8-4CF0-82B8-7D790743D4A5}
+DAT 1545736490
+varchar(64)
+64
+1
+
+
+6607C4CB-6F42-4C04-BB50-C69059DD934E
+Alamat_Peminjam
+ALAMAT_PEMINJAM
+1545807851
+user
+1545807853
+user
+ORG {664CEE36-85B2-40E4-B2C5-CA98D9F56759}
+DAT 1545807851
+ORG {5E3B658B-EECF-4834-A257-F6DE66663BE6}
+DAT 1545807842
+varchar(256)
+256
+1
+
+
+B9D19B10-F397-4E94-A1F3-600B972E7B56
+Nomor_HP_Peminjam
+NOMOR_HP_PEMINJAM
+1545736527
+user
+1545835735
+user
+ORG {3487EA8A-A477-4121-B72A-954DEC36D2E0}
+DAT 1545736527
+ORG {7E4E8EBB-1885-4482-9B9C-326BE48F64CC}
+DAT 1545736490
+varchar(14)
+14
+1
+
+
+4F8DFC32-7E2E-4333-855C-D7CE78B0EC70
+Keterangan_Blacklist
+KETERANGAN_BLACKLIST
+1545736527
+user
+1545736527
+user
+ORG {DEB6F661-47E8-42AC-9BF7-CC6AD05A5F46}
+DAT 1545736527
+ORG {44A792DF-98F4-4A7D-9CAE-F0E8C6648DA4}
+DAT 1545736490
+varchar(256)
+256
+
+
+D1926690-1790-498D-864D-8956E817EC89
+Waktu_Admin_Peminjam_Terakhir
+WAKTU_ADMIN_PEMINJAM_TERAKHIR
+1545811437
+user
+1545811440
+user
+ORG {E4F756FF-6CB2-4323-90A8-6BC23D63ECEB}
+DAT 1545811437
+ORG {12FDBE3F-E628-416A-AC2A-D57014BA79CE}
+DAT 1545811429
+datetime
+1
+
+
+
+
+DCDD5520-67F0-40A3-93AD-3F8F9733E022
+Identifier_1
+IDENTIFIER_1
+1545736527
+user
+1545736527
+user
+ORG {894F2D9E-1987-4652-B6DE-FB9C7420F151}
+DAT 1545736527
+ORG {22027363-79DE-4FE7-AE38-A9F331886544}
+DAT 1545736490
+
+
+
+
+
+
+
+2F61BD4D-81E3-49AB-B65C-A7FCF002BE08
+PEMINJAM_PK
+PEMINJAM_PK
+1545736527
+user
+1545736527
+user
+1
+
+
+
+
+
+BA24EBCF-3B66-4111-903D-7127AE3911B9
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+678B0828-FB28-415D-8111-9F147415775C
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT_FK
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT_FK
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+045A2A0B-CD08-438D-B2D1-C7B84625E414
+1545736527
+user
+1545736527
+user
+
+
+
+
+
+
+
+
+
+
+
+
+3F8FBFE8-1B8D-44B5-AA90-959FBA7519AC
+BEFORE_INSERT_PEMINJAM
+BEFORE_INSERT_PEMINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before insert
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545806836
+user
+1545835670
+user
+
+
+
+
+
+00498B95-863B-4A81-AAC5-AFF9210787FF
+BEFORE_UPDATE_PEMINJAM
+BEFORE_UPDATE_PEMINJAM
+DELIMITER //
+create trigger [%QUALIFIER%]%TRIGGER% before update
+on [%TABLQUALIFIER%]%TABLE% for each row
+begin
+ IF NEW.Nama_Peminjam IS NULL THEN
+ SET NEW.Nama_Peminjam=OLD.Nama_Peminjam;
+ END IF;
+ IF NEW.Alamat_Peminjam IS NULL THEN
+ SET NEW.Alamat_Peminjam=OLD.Alamat_Peminjam;
+ END IF;
+ IF NEW.Identitas_Peminjam IS NULL THEN
+ SET NEW.Identitas_Peminjam=OLD.Identitas_Peminjam;
+ END IF;
+ IF NEW.Nomor_HP_Peminjam IS NULL THEN
+ SET NEW.Nomor_HP_Peminjam=OLD.Nomor_HP_Peminjam;
+ END IF;
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+1545806846
+user
+1545836039
+user
+Update
+
+
+
+
+
+
+
+
+
+
+5161BAF8-4BD3-4F68-955B-7837DCADFE94
+Status_Barang
+STATUS_BARANG
+1545882529
+user
+1545927127
+user
+ORG {46D60488-0F14-4558-B4C2-DB4D46B027D4}
+DAT 1545882530
+ORG {3C806A88-E446-4FDA-8ECF-6CE4F9E501F7}
+DAT 1545882481
+
+
+
+72C518C1-6434-46B7-BF2A-42CB835C94A1
+Status_Barang
+STATUS_BARANG
+1545882529
+user
+1545882532
+user
+ORG {2CE27FFD-0E29-4489-AF77-0072A1B7B2BE}
+DAT 1545882530
+ORG {A976B52C-3DDC-4E69-9133-FE8DCF21378F}
+DAT 1545882481
+char(1)
+1
+1
+
+
+90752D91-5D8A-49D7-96B2-D24276C200C5
+Teks_Status_Barang
+TEKS_STATUS_BARANG
+1545882529
+user
+1545882532
+user
+ORG {6C92BB54-E08A-456D-994D-4081DF6369B0}
+DAT 1545882530
+ORG {29C6662F-D24E-4DEE-86FF-CDB32650C346}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+78822A21-9863-4143-B438-285D866D31F9
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {804AF05B-D79C-4A25-9E19-6388E4FE0AFB}
+DAT 1545882530
+ORG {575DC4AD-2D17-491E-B548-79D532409ABF}
+DAT 1545882481
+INS COLNCOL {2CE27FFD-0E29-4489-AF77-0072A1B7B2BE}
+
+
+
+
+
+
+
+91AADB89-9337-42A8-940F-4B3E98BCA7CC
+STATUS_BARANG_PK
+STATUS_BARANG_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+6AE5ECE8-8979-434D-8F88-334585EE6633
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6BA9B22C-5AE9-473C-9902-8D53EB45D0C1
+Tipe_Barang
+TIPE_BARANG
+1545882529
+user
+1545927122
+user
+ORG {88ECBAE0-C04C-41FD-A037-6B455864DB57}
+DAT 1545882530
+ORG {21B74FD5-A997-4A4F-AE2E-4DB114C5AE7D}
+DAT 1545882481
+
+
+
+4AB45A18-A635-481F-A464-52E1051F6017
+Tipe_Barang
+TIPE_BARANG
+1545882529
+user
+1545882532
+user
+ORG {3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1}
+DAT 1545882530
+ORG {C31EDA6A-5D43-46B5-A2C1-F0C765BDA0D2}
+DAT 1545882481
+char(1)
+1
+1
+
+
+6843851B-7798-43A7-BA73-890F01CA1DF9
+Teks_Tipe_Barang
+TEKS_TIPE_BARANG
+1545882529
+user
+1545882532
+user
+ORG {3325103D-5152-4709-B3E7-92DB2AD25FC1}
+DAT 1545882530
+ORG {81283A92-2185-4C1F-9A7B-8E9CE7F1064F}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+FC4EE009-68AD-42AE-8260-DF5740393E04
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {A0280B18-0DE8-4230-8CAD-0177134BFED7}
+DAT 1545882530
+ORG {4882EACA-B7BD-44E3-8395-52C76393B717}
+DAT 1545882481
+INS COLNCOL {3A8B4B98-B44E-4A4D-AFF7-0366F63ECCF1}
+
+
+
+
+
+
+
+76B9CB80-849B-4329-BD17-CE5E4DCEF4BD
+TIPE_BARANG_PK
+TIPE_BARANG_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+145B2B51-BC00-452C-8FB8-A5CFBC958FC5
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4A07E202-645B-42A0-AA2C-E4568041806F
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882529
+user
+1545927145
+user
+ORG {71B01D00-C027-40AF-9901-39D12B18A234}
+DAT 1545882530
+ORG {A3C8D74E-43CC-44C9-AD78-80B9AAF60F8C}
+DAT 1545882481
+
+
+
+F9688BA3-7E26-4334-BE80-CF37A22520F5
+Status_Peminjaman
+STATUS_PEMINJAMAN
+1545882529
+user
+1545882532
+user
+ORG {5239B551-31DB-4E6C-A54E-54C3E0A2E0EB}
+DAT 1545882530
+ORG {D1C6BAD0-4540-4A58-AD0B-03D5C2290932}
+DAT 1545882481
+char(1)
+1
+1
+
+
+C4B4C341-4780-4FD5-A64D-62201ED365F4
+Teks_Status_Peminjaman
+TEKS_STATUS_PEMINJAMAN
+1545882529
+user
+1545882532
+user
+ORG {D5185D18-6712-473B-A4A3-798D315A0CD1}
+DAT 1545882530
+ORG {6F5449F6-5FE9-4E13-BFE8-BD5729FFFA38}
+DAT 1545882481
+varchar(16)
+16
+
+
+
+
+2B2AA5C8-D283-4EE0-8FFB-233EE7612C2E
+Identifier_1
+IDENTIFIER_1
+1545882529
+user
+1545882532
+user
+ORG {9998DAFA-DCB8-4957-ABA7-A93A1B23B915}
+DAT 1545882530
+ORG {189F29D6-7416-40A9-99F0-D56A730B20A1}
+DAT 1545882481
+INS COLNCOL {5239B551-31DB-4E6C-A54E-54C3E0A2E0EB}
+
+
+
+
+
+
+
+B2A04B29-7B73-4CC3-8DBC-DBEB95362E70
+STATUS_PEMINJAMAN_PK
+STATUS_PEMINJAMAN_PK
+1545882530
+user
+1545882532
+user
+1
+
+
+
+
+
+DD8269A8-F327-40E6-B6A5-4DD80478A0B3
+1545882530
+user
+1545882532
+user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0CA997F3-085D-49AF-A911-0EADE344EA62
+Barang_Terkini
+BARANG_TERKINI
+1545812308
+user
+1545884301
+user
+SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+1
+
+
+50914669-E396-4F3B-A61E-F6DFC2A6BA32
+NOMOR_BARANG
+NOMOR_BARANG
+1546255800
+user
+1546255800
+user
+
+
+DEA97270-E80A-46CC-B7C9-F81D418A9141
+TIPE_BARANG
+TIPE_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+D63D355C-ED85-434F-BFE1-BBC70ABECC43
+STATUS_BARANG
+STATUS_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+0E628E08-DD36-4909-9820-4B1C25CEDE57
+NOMOR_PEMINJAMAN
+NOMOR_PEMINJAMAN
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+51D9D38D-5985-4805-8A0E-074A6A33B558
+KETERANGAN_BARANG
+KETERANGAN_BARANG
+1545812308
+user
+1545812370
+user
+
+
+
+
+
+
+
+
+
+
+9F7E3ACB-0CB1-4896-B709-79FD1E65AB8A
+Peminjaman_Barang_Terakhir
+PEMINJAMAN_BARANG_TERAKHIR
+1545915113
+user
+1545915439
+user
+SELECT
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+FROM (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ ON RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+WHERE RB2.Id_Riwayat_Barang IS NULL;
+select
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+from (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ on RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+where RB2.Id_Riwayat_Barang IS NULL;
+
+
+422FA3E5-B9D5-4FB3-B693-42E7B03EE41E
+NOMOR_BARANG
+NOMOR_BARANG
+1545915113
+user
+1545915358
+user
+
+
+E15FBDA8-22FB-4A5A-81D0-928B3C8A9A95
+TIPE_BARANG
+TIPE_BARANG
+1545915113
+user
+1545915358
+user
+
+
+E8D9B5F2-CDFB-4329-AD55-723C306E56CB
+STATUS_BARANG
+STATUS_BARANG
+1545915113
+user
+1545915358
+user
+
+
+23A2CDD0-CDF4-41C8-A62C-0C93EE48EC3E
+NOMOR_PEMINJAMAN
+NOMOR_PEMINJAMAN
+1545915113
+user
+1545915358
+user
+
+
+17E6A7F8-72AB-4DD4-9409-22DB55B3C40C
+KETERANGAN_BARANG
+KETERANGAN_BARANG
+1545915113
+user
+1545915358
+user
+
+
+
+
+
+
+3AEA0463-B2D0-4582-855E-97C9D44C284E
+Memiliki_Riwayat_State_Barang
+MEMILIKI_RIWAYAT_STATE_BARANG
+1545736527
+user
+1545927099
+user
+ORG {88951577-C9AB-49AF-ACC7-02BB1C4A7D39}
+DAT 1545736527
+ORG {CAF22019-683A-4606-A434-4AF1B43FC192}
+DAT 1545736490
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+11560571-4CE4-438E-A27A-644050B73EEF
+1545806340
+user
+1545806343
+user
+ORG {0C146031-37D5-45CD-BE9F-90D0F2CBB9D4}
+DAT 1545806341
+
+
+
+
+
+
+
+
+15A2C61F-42FF-40C5-BF88-E9626AFFBDAA
+1545806340
+user
+1545806343
+user
+ORG {E800DDCE-8E95-403D-84D0-B292CA2C39CB}
+DAT 1545806341
+
+
+
+
+
+
+
+
+
+
+A49A8D29-50FE-4715-BC10-37437547655C
+Administrasi_Barang_Dicatat
+ADMINISTRASI_BARANG_DICATAT
+1545736527
+user
+1545736527
+user
+ORG {C11DBED6-E505-43AE-80F9-41A95A125CB7}
+DAT 1545736527
+ORG {52FB82BC-B129-45B6-94E6-0CEA2EE01736}
+DAT 1545736490
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+E4BCADD6-A97B-43C9-865B-D1600872AD83
+1545736527
+user
+1545736527
+user
+ORG {62A4E79A-B9F0-48AB-ACF2-7F1F0CAF6937}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+6D2E8AE2-7BEB-4CF0-BFCE-D2A932ED5B29
+Administrasi_Peminjaman_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAMAN_TERAKHIR_DICATAT
+1545736527
+user
+1545835254
+user
+ORG {86D65B31-5F01-4C0F-9B90-B5E90BE83F25}
+DAT 1545736527
+ORG {17BAEB7F-E238-4518-A29D-22F822BAEBB3}
+DAT 1545736490
+ATT FKCN
+FK_PEMINJAMAN_ADMINISTR_PETUGAS
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+FA59D7CF-FE28-47D4-9457-769F47DE1EA9
+1545736527
+user
+1545736527
+user
+ORG {23C97E64-B977-4F73-9DCF-AAA87A10CCBB}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+222EED32-6711-49DE-B0E9-4BA357129886
+Barang_Berstatus
+BARANG_BERSTATUS
+1545882529
+user
+1545927127
+user
+ORG {F48EB24D-47D0-42BF-ADF6-2EC72B982E58}
+DAT 1545882530
+ORG {42514B80-385D-4C35-B6AC-13AFB1074D71}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+03BFC894-2B6D-4879-887C-0ECB660EA8C7
+1545882529
+user
+1545882532
+user
+ORG {57E503A7-B41C-4162-9A73-9B52346ADD33}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+D9936845-24E0-48CD-90A9-3C25E3BF671D
+Pinjam_Untuk_Keperluan
+PINJAM_UNTUK_KEPERLUAN
+1545736527
+user
+1545736527
+user
+ORG {C88BD09A-D404-4E96-9770-FC4B662D42F6}
+DAT 1545736527
+ORG {DE55DE18-A4CE-4777-9DB4-C2D6E6857262}
+DAT 1545736490
+1..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+D9C909FC-3254-4B64-9EF3-4042B74FFA2E
+1545736527
+user
+1545736527
+user
+ORG {933D2074-5DE4-4D5F-8B99-7C7EFD311BF2}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+BB69F7AB-C748-49FE-91AF-6F305A5DDE0E
+Barang_Dipinjam
+BARANG_DIPINJAM
+1545736527
+user
+1545882532
+user
+ORG {17A3E957-C933-46F4-A2CA-A43B776EBB6C}
+DAT 1545736527
+ORG {6642186D-AE4B-478E-AFB3-003B841DDB38}
+DAT 1545736490
+ATT PTBL
+ATT CTBL
+ATT PKEY
+1..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+FE924AED-E325-46B6-B686-BB5C23BB0457
+1545737110
+user
+1545737112
+user
+ORG {36178A50-83BB-42A5-AA58-8937AB7C8CA7}
+DAT 1545737110
+
+
+
+
+
+
+
+
+
+
+C171E313-A448-4B55-BB4E-A86DCB6263EB
+Bertipe
+BERTIPE
+1545882529
+user
+1545927122
+user
+ORG {8BBF67CD-73B4-4273-A3E8-084E496B1E95}
+DAT 1545882530
+ORG {C5002C15-EF11-45C5-8ACF-96F9512CA34C}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+38B483FC-3F7A-4622-BC9B-CB36DA80B617
+1545882529
+user
+1545882532
+user
+ORG {8D6E0A78-0BF8-4356-A791-478237BAB453}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+19843597-A487-4431-A4C6-2A27CD4B1B53
+Melakukan
+MELAKUKAN
+1545736527
+user
+1545927151
+user
+ORG {A889B2F4-CDE8-4492-AA80-0B49FECCB1BA}
+DAT 1545736527
+ORG {89C54AB1-F0F7-478E-9464-3984504D4E69}
+DAT 1545736490
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+91707B45-AA78-4907-8AF1-6884C53DD159
+1545736527
+user
+1545736527
+user
+ORG {854B14D1-B5A2-41F6-B7B0-973D5C52DD16}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+272B16DE-0EFB-4F7F-8210-BD84DFB81456
+Administrasi_Peminjam_Terakhir_Dicatat
+ADMINISTRASI_PEMINJAM_TERAKHIR_DICATAT
+1545736527
+user
+1545736527
+user
+ORG {7DC0A850-3C9B-4832-B932-A5A6578C2B9C}
+DAT 1545736527
+ORG {2BB40579-AFE4-481D-82D3-7B68BB2CE86B}
+DAT 1545736490
+0..*
+1
+1
+
+
+
+
+
+
+
+
+
+
+
+0B393E68-136B-400E-923D-12F41B1D8128
+1545736527
+user
+1545736527
+user
+ORG {D0D33740-B162-4010-B257-06E3395412A5}
+DAT 1545736527
+
+
+
+
+
+
+
+
+
+
+CAFA02B0-1901-4574-955D-A3088EDBF35F
+Peminjaman_Berstatus
+PEMINJAMAN_BERSTATUS
+1545882529
+user
+1545927145
+user
+ORG {6C3E28DC-E125-49C6-ADD5-D96150EF481D}
+DAT 1545882530
+ORG {973A9C6D-016B-4CE1-A006-6F6D78BE16E7}
+DAT 1545882481
+ATT URUL
+0..*
+2
+1
+
+
+
+
+
+
+
+
+
+
+
+861C138B-053E-46BD-A721-64A3C6732E3F
+1545882529
+user
+1545882532
+user
+ORG {37B154E4-42CD-4070-AE20-E870AD521545}
+DAT 1545882530
+
+
+
+
+
+
+
+
+
+
+
+
+BA1103F5-CB73-49F6-9CC0-5A0281C5C62E
+PUBLIC
+PUBLIC
+1545736519
+user
+1545736519
+user
+
+
+
+
+2BEAB2A2-0899-48C1-99FF-F8E7ABBD0024
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E3DD9DE9-7C11-4330-837C-3BB4002F8C51
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+390BCCD1-4FBE-41DC-AC6A-A3305093F6D1
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+F3113F7D-0EFA-4318-AF3F-2B899A9BB10D
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+1D0E38F7-BA0D-44AD-B3F1-CD3E41F263FE
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A6CE3FA2-00F4-4CF8-B332-A8F1E83B893B
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+82434106-3ED7-4769-AAA8-34832B88A7A7
+1545737112
+user
+1545737112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+684C1363-31BD-41C4-993F-523AC6DBDE57
+1545739563
+user
+1545739611
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BAA64E7C-1335-4742-89B3-722BFBE8714C
+1545794866
+user
+1545794866
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+88EF4673-FE04-415D-A9AB-E7F5980C5C1F
+1545807523
+user
+1545807728
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+109F1AF8-9157-4CF7-8BAD-B523E2DCEF54
+1545807523
+user
+1545807728
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+CB531887-AFFE-442E-B278-7C746C8C0063
+1545807944
+user
+1545808252
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BFB870A6-D71E-421A-968B-3514A0FD859C
+1545808376
+user
+1545808466
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+63560780-B967-4D9E-BE0F-CCCA6B38997D
+1545808466
+user
+1545809572
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+1244C4D1-4089-49E3-A120-B3AC13691520
+1545809915
+user
+1545810332
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+601ABF10-187F-41BC-A4B1-FC32F0811F7C
+1545809915
+user
+1545810332
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A03ED60C-47D3-4A48-B49E-4F72723DA011
+1545813665
+user
+1545813673
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E5060FC5-F420-486D-9E6B-707C53769B60
+1545813690
+user
+1545813698
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+F863484C-463D-495F-9C3C-14F5D50E2031
+1545813810
+user
+1545814034
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+A989EEC3-2C7D-449A-8334-EF0BE9AE1A31
+1545827911
+user
+1545828075
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+67771DA3-7348-4161-BFAF-00AA52DB4998
+1545827911
+user
+1545828075
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+3A050064-A0A3-4433-B8A0-EA90CC17B7F3
+1545828132
+user
+1545828221
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+0846014B-BC88-48FA-B2B8-BDAC639C6EC0
+1545828368
+user
+1545828581
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+58EB3A73-CEF6-4A07-B264-7AD940EAEC3D
+1545835775
+user
+1545835848
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+9899E0AD-C0CC-4F75-B9FE-9F62BB6F3464
+1545840072
+user
+1545840212
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+E96115F2-8953-41CF-8BEC-9B1368133468
+1545879658
+user
+1545879771
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+045FB2EB-3A0A-4CD2-A91F-14E0B896539A
+1545881272
+user
+1545881368
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+D71EFC14-55FD-47D7-9383-581BD0529180
+1545881272
+user
+1545881368
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+ACE91832-3CDD-40B9-92C7-5693D503A268
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+24B55D4F-9039-40C0-8C5D-E4EFA8D53D21
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+92FED3A1-1A36-49B4-97F4-0667EDC3D277
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+6C42E69D-F399-4E2A-8C2B-EE6923060AF3
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+4020DC3A-5E22-48F2-9798-498DE964E6D1
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+BC0FD7B5-EBC2-4B36-95BE-55DDC5F9A1FD
+1545882531
+user
+1545882532
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+58EA6CFF-57EA-470A-8386-5538D1601F50
+1545884384
+user
+1545884546
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+75B298DE-2C1C-4689-928E-8E08466D6823
+1545885498
+user
+1545885508
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+45E0F300-2263-47F3-9312-E149C0B86ADF
+1545885510
+user
+1545885516
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+7FF63B8C-C623-48A1-9D3D-309DC16CDE36
+1546563960
+user
+1546564112
+user
+DBCreateAfter (computed)
+
+
+
+
+
+
+
+
+
+
+6F370A6E-AE99-4218-8DD9-9A16BD1E5048
+MySQL 5.0
+MYSQL50
+1545736525
+user
+1545881719
+user
+file:///%[XDB]%/mysql50.xdb
+F4F16ECD-F2F1-4006-AF6F-638D5C65F35E
+4BA9F647-DAB1-11D1-9944-006097355D9B
+1242731549
+
+
+
+
+
+
+
+
+
+
+
+3117C587-5845-44B8-9A0C-E13DC24EF8DF
+LCD
+LCD
+1545736527
+user
+1545884130
+user
+file:///C|/Users/user/Documents/Kiki/DBD/Tugas Akhir/Design/PowerDesigner/3/LCD.ldm
+50AE78BB-2E9B-4731-B6DF-0E64723B1A0F
+5F45F978-C4F3-4E35-A3FC-AF3318663A0F
+1545884130
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PowerDesigner/Workspace.sws b/PowerDesigner/Workspace.sws
new file mode 100644
index 0000000..e25c72b
--- /dev/null
+++ b/PowerDesigner/Workspace.sws
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PowerDesigner/crebas.sql b/PowerDesigner/crebas.sql
new file mode 100644
index 0000000..9ce5880
--- /dev/null
+++ b/PowerDesigner/crebas.sql
@@ -0,0 +1,1079 @@
+/*==============================================================*/
+/* DBMS name: MySQL 5.0 */
+/* Created on: 04/01/2019 8:14:11 */
+/*==============================================================*/
+
+
+/*==============================================================*/
+/* Table: BARANG */
+/*==============================================================*/
+create table BARANG
+(
+ TIPE_BARANG char(1) not null comment '',
+ NOMOR_BARANG int not null comment '',
+ primary key (TIPE_BARANG, NOMOR_BARANG)
+);
+
+/*==============================================================*/
+/* Table: KEPERLUAN_PINJAM */
+/*==============================================================*/
+create table KEPERLUAN_PINJAM
+(
+ ID_KEPERLUAN_PINJAM int not null auto_increment comment '',
+ NOMOR_PEMINJAMAN int not null comment '',
+ KEPERLUAN_PINJAM varchar(64) not null comment '',
+ NAMA_PENANGGUNG_JAWAB varchar(64) not null comment '',
+ RUANG_PINJAM varchar(64) not null comment '',
+ WAKTU_MULAI datetime not null comment '',
+ WAKTU_SELESAI datetime not null comment '',
+ primary key (ID_KEPERLUAN_PINJAM)
+);
+
+/*==============================================================*/
+/* Table: PEMINJAM */
+/*==============================================================*/
+create table PEMINJAM
+(
+ IDENTITAS_PEMINJAM varchar(18) not null comment '',
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NAMA_PEMINJAM varchar(64) not null comment '',
+ ALAMAT_PEMINJAM varchar(256) not null comment '',
+ NOMOR_HP_PEMINJAM varchar(14) not null comment '',
+ KETERANGAN_BLACKLIST varchar(256) comment '',
+ WAKTU_ADMIN_PEMINJAM_TERAKHIR datetime not null comment '',
+ primary key (IDENTITAS_PEMINJAM)
+);
+
+/*==============================================================*/
+/* Table: PEMINJAMAN */
+/*==============================================================*/
+create table PEMINJAMAN
+(
+ NOMOR_PEMINJAMAN int not null auto_increment comment '',
+ USERNAME_PETUGAS varchar(64) comment '',
+ IDENTITAS_PEMINJAM varchar(18) not null comment '',
+ STATUS_PEMINJAMAN char(1) not null comment '',
+ KETERANGAN_PEMINJAMAN varchar(256) comment '',
+ WAKTU_PINJAM datetime not null comment '',
+ WAKTU_HARUS_KEMBALI datetime not null comment '',
+ WAKTU_KEMBALI datetime comment '',
+ WAKTU_ADMIN_PEMINJAMAN_TERAKHIR datetime not null comment '',
+ primary key (NOMOR_PEMINJAMAN)
+);
+
+/*==============================================================*/
+/* Table: PETUGAS */
+/*==============================================================*/
+create table PETUGAS
+(
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NAMA_PETUGAS varchar(64) not null comment '',
+ HASHPASS_PETUGAS varchar(64) not null comment '',
+ SESI_PETUGAS varchar(64) comment '',
+ TIMEOUT_SESI_PETUGAS datetime comment '',
+ primary key (USERNAME_PETUGAS)
+);
+
+/*==============================================================*/
+/* Table: RIWAYAT_BARANG */
+/*==============================================================*/
+create table RIWAYAT_BARANG
+(
+ ID_RIWAYAT_BARANG int not null auto_increment comment '',
+ TIPE_BARANG char(1) not null comment '',
+ NOMOR_BARANG int not null comment '',
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NOMOR_PEMINJAMAN int comment '',
+ STATUS_BARANG char(1) not null comment '',
+ KETERANGAN_BARANG varchar(256) comment '',
+ WAKTU_MULAI_RIWAYAT_BARANG datetime not null comment '',
+ WAKTU_BERAKHIR_RIWAYAT_BARANG datetime comment '',
+ primary key (ID_RIWAYAT_BARANG)
+);
+
+/*==============================================================*/
+/* Index: UNIQUE_START_TIMELINE */
+/*==============================================================*/
+create unique index UNIQUE_START_TIMELINE on RIWAYAT_BARANG
+(
+ TIPE_BARANG,
+ NOMOR_BARANG,
+ WAKTU_MULAI_RIWAYAT_BARANG
+);
+
+/*==============================================================*/
+/* Index: UNIQUE_END_TIMELINE */
+/*==============================================================*/
+create unique index UNIQUE_END_TIMELINE on RIWAYAT_BARANG
+(
+ TIPE_BARANG,
+ NOMOR_BARANG,
+ WAKTU_BERAKHIR_RIWAYAT_BARANG
+);
+
+/*==============================================================*/
+/* Table: STATUS_BARANG */
+/*==============================================================*/
+create table STATUS_BARANG
+(
+ STATUS_BARANG char(1) not null comment '',
+ TEKS_STATUS_BARANG varchar(16) comment '',
+ primary key (STATUS_BARANG)
+);
+
+/*==============================================================*/
+/* Table: STATUS_PEMINJAMAN */
+/*==============================================================*/
+create table STATUS_PEMINJAMAN
+(
+ STATUS_PEMINJAMAN char(1) not null comment '',
+ TEKS_STATUS_PEMINJAMAN varchar(16) comment '',
+ primary key (STATUS_PEMINJAMAN)
+);
+
+/*==============================================================*/
+/* Table: TIPE_BARANG */
+/*==============================================================*/
+create table TIPE_BARANG
+(
+ TIPE_BARANG char(1) not null comment '',
+ TEKS_TIPE_BARANG varchar(16) comment '',
+ primary key (TIPE_BARANG)
+);
+
+alter table BARANG add constraint FK_BARANG_BERTIPE_TIPE_BAR foreign key (TIPE_BARANG)
+ references TIPE_BARANG (TIPE_BARANG) on delete restrict on update cascade;
+
+alter table KEPERLUAN_PINJAM add constraint FK_KEPERLUA_PINJAM_UN_PEMINJAM foreign key (NOMOR_PEMINJAMAN)
+ references PEMINJAMAN (NOMOR_PEMINJAMAN) on delete restrict on update restrict;
+
+alter table PEMINJAM add constraint FK_PEMINJAM_ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAMAN_ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAM_MELAKUKAN_PEMINJAM foreign key (IDENTITAS_PEMINJAM)
+ references PEMINJAM (IDENTITAS_PEMINJAM) on delete restrict on update cascade;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAM_PEMINJAMA_STATUS_P foreign key (STATUS_PEMINJAMAN)
+ references STATUS_PEMINJAMAN (STATUS_PEMINJAMAN) on delete restrict on update cascade;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__BARANG_BE_STATUS_B foreign key (STATUS_BARANG)
+ references STATUS_BARANG (STATUS_BARANG) on delete restrict on update cascade;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__BARANG_DI_PEMINJAM foreign key (NOMOR_PEMINJAMAN)
+ references PEMINJAMAN (NOMOR_PEMINJAMAN) on delete restrict on update restrict;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__MEMILIKI__BARANG foreign key (TIPE_BARANG, NOMOR_BARANG)
+ references BARANG (TIPE_BARANG, NOMOR_BARANG) on delete restrict on update cascade;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure PING_SESI(
+ IN Sesi CHAR(32),
+ OUT Username VARCHAR(16),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ SET datetime_now = NOW();
+ SELECT Username_Petugas INTO Username FROM Petugas WHERE Sesi_Petugas=Sesi AND Timeout_Sesi_Petugas > datetime_now;
+ IF (SELECT ROW_COUNT()) = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada atau sudah hangus';
+ END IF;
+
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+ UPDATE Petugas SET Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure DELETE_KEPERLUAN_PINJAM(
+ IN Id INTEGER,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ DELETE FROM Keperluan_Pinjam
+ WHERE Id_Keperluan_Pinjam=Id;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' function GET_NAMA_PETUGAS(Username VARCHAR(16))
+RETURNS VARCHAR(64)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE Nama VARCHAR(64);
+ SELECT P.Nama_Petugas INTO Nama FROM Petugas P WHERE P.Username_Petugas=Username;
+ RETURN Nama;
+END //
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure HITUNG_WAKTU_HARUS_KEMBALI(
+ IN Nomor_Peminjaman INTEGER
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE err VARCHAR(64);
+ DECLARE waktu_harus_kembali DATETIME;
+ DECLARE username VARCHAR(16);
+
+
+
+ SET waktu_harus_kembali=(
+ SELECT MAX(KP.Waktu_Selesai)+INTERVAL 30 MINUTE
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Nomor_Peminjaman=Nomor_Peminjaman
+ );
+
+
+
+ UPDATE Peminjaman P
+ SET
+ P.Waktu_Harus_Kembali=waktu_harus_kembali,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_BARANG(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF EXISTS (SELECT * FROM Barang B WHERE B.Nomor_Barang=Nomor_Barang AND B.Tipe_Barang=Tipe_Barang) THEN
+ IF EXISTS (SELECT * FROM Riwayat_Barang RB WHERE RB.Nomor_Barang=Nomor_Barang AND RB.Tipe_Barang=Tipe_Barang AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang sudah ada';
+ END IF;
+ ELSE
+ INSERT INTO Barang(Nomor_Barang, Tipe_Barang) VALUES(Nomor_Barang, Tipe_Barang);
+ END IF;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ 'A',
+ Keterangan_Barang,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_KEPERLUAN_PINJAM (
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Nomor_Peminjaman INTEGER,
+ IN Sesi CHAR(32),
+ OUT Id_Keperluan_Pinjam INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ INSERT INTO Keperluan_Pinjam(
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ ) VALUES (
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ );
+ SET Id_Keperluan_Pinjam = LAST_INSERT_ID();
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_PEMINJAM(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ INSERT INTO Peminjam (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ Username_Petugas,
+ Waktu_Admin_Peminjam_Terakhir
+ ) VALUES (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ username,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_PEMINJAMAN(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Nomor_Peminjaman INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ SET waktu=NOW();
+
+ START TRANSACTION;
+
+
+ INSERT INTO Peminjaman(
+ Username_Petugas,
+ Identitas_Peminjam,
+ Status_Peminjaman,
+ Keterangan_Peminjaman,
+ Waktu_Pinjam,
+ Waktu_Harus_Kembali,
+ Waktu_Admin_Peminjaman_Terakhir
+ ) VALUES (
+ username,
+ Identitas_Peminjam,
+ 'A',
+ Keterangan_Peminjaman,
+ waktu,
+ Waktu_Harus_Kembali,
+ waktu
+ );
+ SET Nomor_Peminjaman = LAST_INSERT_ID();
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE INSERT_PETUGAS_UNSAFE (
+ IN Username VARCHAR(16),
+ IN Password VARCHAR(16),
+ IN Nama VARCHAR(64)
+)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+
+ INSERT INTO Petugas(
+ Username_Petugas,
+ Hashpass_Petugas,
+ Nama_Petugas
+ ) VALUES(
+ Username,
+ MD5(CONCAT(MD5(CONCAT(Password, 'Petugas')), 'Admin')),
+ Nama
+ );
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE LOGIN_PETUGAS (IN Username VARCHAR(16), IN Hashpass CHAR(32), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ IF Username IS NULL OR Username = ' ' OR CHAR_LENGTH(Username) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF Hashpass IS NULL OR Hashpass = ' ' OR CHAR_LENGTH(Hashpass) < 32 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Hashpass tidak valid';
+ END IF;
+ IF NOT EXISTS (SELECT * FROM Petugas WHERE Petugas.Username_Petugas = Username AND Petugas.Hashpass_Petugas = MD5(CONCAT(Hashpass, 'Admin'))) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username atau password salah';
+ END IF;
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ WHILE EXISTS (SELECT * FROM Petugas WHERE Sesi_Petugas=Sesi) DO
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ END WHILE;
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+
+ UPDATE Petugas SET Sesi_Petugas = Sesi, Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+ SELECT Nama_Petugas INTO Nama FROM Petugas WHERE Sesi_Petugas=Sesi;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE LOGIN_PETUGAS_UNSAFE (IN Username VARCHAR(16), IN Password VARCHAR(16), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+ CALL Login_Petugas(Username, MD5(CONCAT(Password, 'Petugas')), Nama, Sesi, Timeout);
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure LOGOUT_PETUGAS(
+ IN Sesi_Petugas CHAR(32)
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ UPDATE Petugas P
+ SET P.Sesi_Petugas=NULL,
+ P.Timeout_Sesi_Petugas=NULL
+ WHERE P.Sesi_Petugas=Sesi;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_DETAIL_BARANG(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Status_Barang CHAR(1),
+ IN Nomor_Peminjaman INTEGER,
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+proc_label: BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE id_riwayat_barang_lama INTEGER;
+ DECLARE nomor_peminjaman_lama INTEGER;
+ DECLARE status_barang_lama CHAR(1);
+ DECLARE keterangan_barang_lama VARCHAR(256);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ SELECT
+ RB.Id_Riwayat_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+ INTO
+ id_riwayat_barang_lama,
+ status_barang_lama,
+ nomor_peminjaman_lama,
+ keterangan_barang_lama
+ FROM Riwayat_Barang RB
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ IF Status_Barang = status_barang_lama
+ AND Nomor_Peminjaman = nomor_peminjaman_lama
+ AND Keterangan_Barang = keterangan_barang_lama THEN
+
+ LEAVE proc_label;
+ END IF;
+
+ IF ROW_COUNT() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak ada';
+ END IF;
+
+ IF Status_Barang='P' AND Nomor_Peminjaman IS NULL THEN
+ SET Nomor_Peminjaman=nomor_peminjaman_lama;
+ IF Nomor_Peminjaman IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor peminjaman harus diisi untuk barang berstatus dipinjam';
+ END IF;
+ END IF;
+
+ IF Status_Barang='P' AND Status_Barang=status_barang_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam.';
+ END IF;
+
+ IF Status_Barang<>'P' AND Nomor_Peminjaman IS NOT NULL THEN
+ SET Nomor_Peminjaman=NULL;
+ END IF;
+
+ IF Keterangan_Barang IS NULL THEN
+ SET Keterangan_Barang=keterangan_barang_lama;
+ END IF;
+
+ SET waktu=NOW();
+
+
+
+
+ IF Status_Barang <> status_barang_lama THEN
+ IF Status_Barang = 'P' AND status_barang_lama <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak bisa dipinjam';
+ END IF;
+ IF Status_Barang <> 'A' AND status_barang_lama = 'P' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ IF Status_Barang='P' THEN
+ IF (
+ SELECT P.Status_Peminjaman
+ FROM Peminjaman P
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman
+ ) <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak aktif';
+ END IF;
+ END IF;
+
+ ELSEIF Status_Barang='P' AND Nomor_Peminjaman<>nomor_peminjaman_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ UPDATE Riwayat_Barang RB
+ SET RB.Waktu_Berakhir_Riwayat_Barang=waktu
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ waktu
+ );
+
+ IF Status_Barang = 'A' AND status_barang_lama = 'P' THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+
+ IF nomor_peminjaman_lama IS NOT NULL AND NOT EXISTS (SELECT * FROM Barang_Terkini BT WHERE BT.Nomor_Peminjaman=nomor_peminjaman_lama) THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW(),
+ P.Waktu_Kembali=NOW(),
+ P.Status_Peminjaman='S'
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_DETAIL_PEMINJAMAN(
+ IN Nomor_Peminjaman INTEGER,
+ IN Status_Peminjaman CHAR(1),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjaman P
+ SET
+ P.Status_Peminjaman=Status_Peminjaman,
+ P.Keterangan_Peminjaman=Keterangan_Peminjaman,
+ P.Waktu_Harus_Kembali=Waktu_Harus_Kembali,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_KEPERLUAN_PINJAM(
+ IN Id_Keperluan_Pinjam INTEGER,
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF NOT EXISTS(SELECT * FROM Peminjaman P WHERE P.Nomor_Peminjaman=Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ada';
+ END IF;
+
+ UPDATE Keperluan_Pinjam KP
+ SET KP.Keperluan_Pinjam = Keperluan_Pinjam,
+ KP.Nama_Penanggung_Jawab = Nama_Penanggung_Jawab,
+ KP.Ruang_Pinjam = Ruang_Pinjam,
+ KP.Waktu_Mulai = Waktu_Mulai,
+ KP.Waktu_Selesai = Waktu_Selesai
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_PEMINJAM(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Keterangan_Blacklist VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjam P
+ SET
+ P.Nama_Peminjam=Nama_Peminjam,
+ P.Alamat_Peminjam=Alamat_Peminjam,
+ P.Nomor_HP_Peminjam=Nomor_HP_Peminjam,
+ P.Keterangan_Blacklist=Keterangan_Blacklist,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjam_Terakhir=NOW()
+ WHERE P.Identitas_Peminjam=Identitas_Peminjam;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjam tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_DELETE_KEPERLUAN_PINJAM after delete
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(OLD.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_INSERT_KEPERLUAN_PINJAM after insert
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_UPDATE_KEPERLUAN_PINJAM after update
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_KEPERLUAN before insert
+on KEPERLUAN_PINJAM for each row
+begin
+
+ IF NEW.Keperluan_Pinjam IS NULL OR NEW.Keperluan_Pinjam = ' ' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan_Pinjam tidak valid';
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL OR NEW.Nama_Penanggung_Jawab = ' ' OR CHAR_LENGTH(NEW.Nama_Penanggung_Jawab) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama_Penanggung_Jawab tidak valid';
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL OR NEW.Ruang_Pinjam = ' ' OR CHAR_LENGTH(NEW.Ruang_Pinjam) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Ruang_Pinjam tidak valid';
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Mulai tidak boleh kosong';
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Selesai tidak boleh kosong';
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_KEPERLUAN before update
+on KEPERLUAN_PINJAM for each row
+begin
+ IF NEW.Nomor_Peminjaman IS NULL THEN
+ SET NEW.Nomor_Peminjaman = OLD.Nomor_Peminjaman;
+ END IF;
+ IF NEW.Keperluan_Pinjam IS NULL THEN
+ SET NEW.Keperluan_Pinjam = OLD.Keperluan_Pinjam;
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL THEN
+ SET NEW.Nama_Penanggung_Jawab = OLD.Nama_Penanggung_Jawab;
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL THEN
+ SET NEW.Ruang_Pinjam = OLD.Ruang_Pinjam;
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SET NEW.Waktu_Mulai = OLD.Waktu_Mulai;
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SET NEW.Waktu_Selesai = OLD.Waktu_Selesai;
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PEMINJAM before insert
+on PEMINJAM for each row
+begin
+
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_PEMINJAM before update
+on PEMINJAM for each row
+begin
+ IF NEW.Nama_Peminjam IS NULL THEN
+ SET NEW.Nama_Peminjam=OLD.Nama_Peminjam;
+ END IF;
+ IF NEW.Alamat_Peminjam IS NULL THEN
+ SET NEW.Alamat_Peminjam=OLD.Alamat_Peminjam;
+ END IF;
+ IF NEW.Identitas_Peminjam IS NULL THEN
+ SET NEW.Identitas_Peminjam=OLD.Identitas_Peminjam;
+ END IF;
+ IF NEW.Nomor_HP_Peminjam IS NULL THEN
+ SET NEW.Nomor_HP_Peminjam=OLD.Nomor_HP_Peminjam;
+ END IF;
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PEMINJAMAN before insert
+on PEMINJAMAN for each row
+begin
+ DECLARE keterangan_blacklist VARCHAR(320);
+
+
+ SELECT P.Keterangan_Blacklist
+ INTO keterangan_blacklist
+ FROM Peminjam P
+ WHERE P.Identitas_Peminjam=NEW.Identitas_Peminjam;
+
+ IF keterangan_blacklist IS NOT NULL THEN
+ SET keterangan_blacklist = CONCAT('Peminjam terblacklist. Keterangan: ', keterangan_blacklist);
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT=keterangan_blacklist;
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_PEMINJAMAN before update
+on PEMINJAMAN for each row
+begin
+ IF NEW.Status_Peminjaman IS NULL THEN
+ SET NEW.Status_Peminjaman = OLD.Status_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Pinjam IS NULL THEN
+ SET NEW.Waktu_Pinjam = OLD.Waktu_Pinjam;
+ END IF;
+ IF NEW.Keterangan_Peminjaman IS NULL THEN
+ SET NEW.Keterangan_Peminjaman = OLD.Keterangan_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Harus_Kembali IS NULL THEN
+ SET NEW.Waktu_Harus_Kembali = OLD.Waktu_Harus_Kembali;
+ END IF;
+ IF NEW.Waktu_Kembali IS NULL AND NEW.Status_Peminjaman > 1 THEN
+ SET NEW.Waktu_Kembali = OLD.Waktu_Kembali;
+ END IF;
+
+ IF NEW.Username_Petugas IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username petugas harus diisi';
+ END IF;
+
+
+ IF OLD.Status_Peminjaman <> NEW.Status_Peminjaman THEN
+ IF NEW.Status_Peminjaman='A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Anda tidak dapat membuka kembali peminjaman. Silahkan buat peminjaman baru.';
+ ELSE
+ IF EXISTS (SELECT * FROM Barang_Terkini BR WHERE BR.Nomor_Peminjaman=NEW.Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Masih ada barang yang belum dikembalikan';
+ END IF;
+ SET NEW.Waktu_Kembali=NOW();
+ END IF;
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PETUGAS before insert
+on PETUGAS for each row
+begin
+ IF NEW.Username_Petugas IS NULL OR NEW.Username_Petugas = ' ' OR CHAR_LENGTH(NEW.Username_Petugas) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF NEW.Nama_Petugas IS NULL OR NEW.Nama_Petugas = ' ' OR CHAR_LENGTH(NEW.Nama_Petugas) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+
diff --git a/PowerDesigner/init.sql b/PowerDesigner/init.sql
new file mode 100644
index 0000000..9baf73f
--- /dev/null
+++ b/PowerDesigner/init.sql
@@ -0,0 +1,68 @@
+
+CREATE USER 'client'@'%' IDENTIFIED BY 'client_password';
+
+GRANT USAGE ON `database_name`.* TO 'client'@'%';
+
+GRANT SELECT ON peminjam TO 'client'@'%';
+GRANT SELECT ON barang TO 'client'@'%';
+GRANT SELECT ON keperluan_pinjam TO 'client'@'%';
+GRANT SELECT ON riwayat_barang TO 'client'@'%';
+GRANT SELECT ON peminjaman TO 'client'@'%';
+GRANT SELECT ON status_peminjaman TO 'client'@'%';
+GRANT SELECT ON status_barang TO 'client'@'%';
+GRANT SELECT ON tipe_barang TO 'client'@'%';
+
+GRANT EXECUTE ON PROCEDURE DELETE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGIN_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGOUT_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE PING_SESI TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON FUNCTION GET_NAMA_PETUGAS TO 'client'@'%';
+
+CREATE VIEW Barang_Terkini AS SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+GRANT SELECT ON Barang_Terkini TO 'client'@'%';
+
+
+/*CREATE VIEW Peminjaman_Barang_Terakhir AS SELECT
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+FROM (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ ON RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+WHERE RB2.Id_Riwayat_Barang IS NULL;
+
+GRANT SELECT ON Peminjaman_Barang_Terakhir TO 'client'@'%';
+*/
+
+
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('A', 'Ada');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('P', 'Dipinjam');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('R', 'Rusak');
+
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('L', 'LCD');
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('K', 'Kabel');
+
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('A', 'Aktif');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('S', 'Selesai');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('B', 'Batal');
+
+CALL INSERT_PETUGAS_UNSAFE('admin', 'admin_password', 'Nama Admin');
\ No newline at end of file
diff --git a/PowerDesigner/report.sql b/PowerDesigner/report.sql
new file mode 100644
index 0000000..55649e1
--- /dev/null
+++ b/PowerDesigner/report.sql
@@ -0,0 +1,92 @@
+SELECT
+ P.Waktu_Pinjam,
+ P.Identitas_Peminjam AS Nomor_Induk_Peminjam,
+ PM.Nama_Peminjam,
+ SP.Teks_Status_Peminjaman AS Status_Peminjaman,
+ IF(P.Waktu_Kembali IS NULL, P.Waktu_Harus_Kembali, P.Waktu_Kembali) AS Waktu_Kembali,
+ IF(P.Waktu_Kembali IS NULL,
+ IF(NOW() > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(NOW(), P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ ),
+ IF(P.Waktu_Kembali > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ )
+ ) AS Keterlambatan,
+ GROUP_CONCAT(DISTINCT CONCAT(RB.Tipe_Barang, RB.Nomor_Barang), ", ") AS Barang_Dipinjam,
+ Get_Nama_Petugas(P.Username_Petugas) AS PJ
+FROM Peminjaman P, Peminjam PM, Riwayat_Barang RB, Status_Peminjaman SP, Tipe_Barang TP
+WHERE P.Identitas_Peminjam=PM.Identitas_Peminjam
+ AND P.Nomor_Peminjaman=RB.Nomor_Peminjaman
+ AND P.Status_Peminjaman=SP.Status_Peminjaman
+ AND YEAR(P.Waktu_Pinjam) = $P{REPORT_YEAR}
+ AND MONTH(P.Waktu_Pinjam) = $P{REPORT_MONTH}
+GROUP BY P.Identitas_Peminjam, PM.Nama_Peminjam, SP.Teks_Status_Peminjaman, P.Waktu_Pinjam, P.Waktu_Kembali
+ORDER BY P.Waktu_Pinjam, P.Waktu_Kembali ASC;
+
+SELECT
+ P.Identitas_Peminjam AS Nomor_Induk_Peminjam,
+ PM.Nama_Peminjam,
+ PM.Nomor_Hp_Peminjam,
+ IF(PM.Keterangan_Blacklist IS NULL, "Tidak terblacklist", CONCAT("Terblacklist karena: ", PM.Keterangan_Blacklist)) AS Blacklist,
+ P.Waktu_Pinjam,
+ SP.Teks_Status_Peminjaman AS Status_Peminjaman,
+ IF(P.Waktu_Kembali IS NULL, P.Waktu_Harus_Kembali, P.Waktu_Kembali) AS Waktu_Kembali,
+ IF(P.Waktu_Kembali IS NULL,
+ IF(NOW() > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(NOW(), P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ ),
+ IF(P.Waktu_Kembali > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ )
+ ) AS Keterlambatan,
+ GROUP_CONCAT(DISTINCT CONCAT(RB.Tipe_Barang, RB.Nomor_Barang), ", ") AS Barang_Dipinjam,
+ Get_Nama_Petugas(P.Username_Petugas) AS PJ
+FROM Peminjaman P, Peminjam PM, Riwayat_Barang RB, Status_Peminjaman SP, Tipe_Barang TP
+WHERE P.Identitas_Peminjam=PM.Identitas_Peminjam
+ AND P.Nomor_Peminjaman=RB.Nomor_Peminjaman
+ AND P.Status_Peminjaman=SP.Status_Peminjaman
+ AND YEAR(P.Waktu_Pinjam) = $P{REPORT_YEAR}
+ AND MONTH(P.Waktu_Pinjam) = $P{REPORT_MONTH}
+GROUP BY P.Identitas_Peminjam, PM.Nama_Peminjam, PM.Nomor_Hp_Peminjam, Blacklist, SP.Teks_Status_Peminjaman, P.Waktu_Pinjam, P.Waktu_Kembali
+ORDER BY P.Identitas_Peminjam, P.Waktu_Pinjam, P.Waktu_Kembali ASC;
+
+SELECT
+ TB.Teks_Tipe_Barang,
+ RB.Nomor_Barang,
+ RB.Waktu_Mulai_Riwayat_Barang,
+ RB.Waktu_Berakhir_Riwayat_Barang,
+ SB.Teks_Status_Barang,
+ PM.Identitas_Peminjam AS Nomor_Induk_Peminjam,
+ PM.Nama_Peminjam,
+ Get_Nama_Petugas(P.Username_Petugas) AS Petugas
+FROM
+ Riwayat_Barang RB
+ LEFT JOIN Peminjaman P
+ ON P.Nomor_Peminjaman=RB.Nomor_Peminjaman,
+ Peminjam PM, Tipe_Barang TB, Status_Barang SB
+WHERE P.Identitas_Peminjam=PM.Identitas_Peminjam
+ AND TB.Tipe_Barang=RB.Tipe_Barang
+ AND SB.Status_Barang=RB.Status_Barang
+ AND YEAR(P.Waktu_Pinjam) = $P{REPORT_YEAR}
+ AND MONTH(P.Waktu_Pinjam) = $P{REPORT_MONTH}
+ORDER BY TB.Teks_Tipe_Barang, RB.Nomor_Barang, RB.Waktu_Mulai_Riwayat_Barang ASC;
\ No newline at end of file
diff --git a/PowerDesigner/testcase.sql b/PowerDesigner/testcase.sql
new file mode 100644
index 0000000..88aeabd
--- /dev/null
+++ b/PowerDesigner/testcase.sql
@@ -0,0 +1,132 @@
+# Init - Root
+
+CALL INSERT_PETUGAS_UNSAFE('admin', 'admin', 'Nama PETUGAS');
+
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('A', 'Ada');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('P', 'Dipinjam');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('R', 'Rusak');
+
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('L', 'LCD');
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('K', 'Kabel');
+
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('A', 'Aktif');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('S', 'Selesai');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('B', 'Batal');
+
+# Init - any
+
+
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+SET @nomor=0;
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+SET @nomor=@nomor+1;
+CALL INSERT_BARANG(@nomor, 'L', NULL, @sesi, @timeout);
+CALL INSERT_BARANG(@nomor, 'K', NULL, @sesi, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_BARANG(1, 'L', 'R', NULL, NULL, @sesi, @timeout);
+
+# Error
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_BARANG(1, 'K', 'P', NULL, NULL, @sesi, @timeout);
+
+# Error
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_BARANG(1, 'K', 'P', 1, NULL, @sesi, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL INSERT_PEMINJAM('H76217063', 'Rizqi', 'Mojo', '083830000200', @sesi, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_PEMINJAM('H76217063', 'M. Rizqi', 'Mojo Kidul', '083830000100', NULL, @sesi, @timeout);
+
+# {
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL INSERT_PEMINJAMAN('H76217063', NOW(), NULL, @sesi, @nomor, @timeout);
+
+# ERROR
+CALL UPDATE_DETAIL_BARANG(1, 'L', 'P', @nomor, NULL, @sesi,@timeout);
+
+# OK
+CALL UPDATE_DETAIL_BARANG(2, 'L', 'P', @nomor, NULL, @sesi, @timeout);
+
+# OK
+CALL INSERT_KEPERLUAN_PINJAM('DBD', 'Pak Khalid', 'LabKom 1', NOW(), NOW() + INTERVAL 1 HOUR, @nomor, @sesi, @id, @timeout);
+# }
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_PEMINJAMAN(@nomor, NULL, NOW(), 'halo', @sesi, @timeout);
+CALL INSERT_KEPERLUAN_PINJAM('PBO', 'Pak Teguh', 'LabKom 3', NOW(), NOW() + INTERVAL 1 HOUR, @nomor, @sesi, @id, @timeout);
+CALL UPDATE_KEPERLUAN_PINJAM(@id, 'PBO2', 'Pak Yusuf', 'LabKom 1', NOW(), NOW() + INTERVAL 1 HOUR, @sesi, @timeout);
+CALL DELETE_KEPERLUAN_PINJAM(@id, @sesi, @timeout);
+
+# ERROR
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_PEMINJAMAN(@nomor, 'S', NOW(), NULL, @sesi, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_PEMINJAM('H76217063', NULL, NULL, '083830000200', 'Tidak bisa dihubungi' , @sesi, @timeout);
+
+# ERROR
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL INSERT_PEMINJAMAN('H76217063', NOW(), NULL, @sesi, @nomor2, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_PEMINJAM('H76217063', NULL, NULL, NULL, NULL , @sesi, @timeout);
+
+
+# {
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL INSERT_PEMINJAMAN('H76217063', NOW(), NULL, @sesi, @nomor2, @timeout);
+
+# ERROR
+CALL UPDATE_DETAIL_BARANG(2, 'L', 'P', @nomor2, NULL, @sesi, @timeout);
+# }
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_PEMINJAMAN(@nomor2, 'B', NOW(), NULL, @sesi, @timeout);
+
+# OK
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_BARANG(2, 'L', 'A', NULL, NULL, @sesi, @timeout);
+CALL UPDATE_DETAIL_PEMINJAMAN(@nomor, 'S', NOW(), NULL, @sesi, @timeout);
+
+
+# ERROR
+CALL LOGIN_PETUGAS('admin', MD5(CONCAT('admin', 'Petugas')), @nama, @sesi, @timeout);
+CALL UPDATE_DETAIL_BARANG(2, 'L', 'P', @nomor, NULL, @sesi, @timeout);
\ No newline at end of file
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..ef1e2e6
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+ Builds, tests, and runs the project DBD_LCD.
+
+
+
diff --git a/manifest.mf b/manifest.mf
new file mode 100644
index 0000000..328e8e5
--- /dev/null
+++ b/manifest.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml
new file mode 100644
index 0000000..867974f
--- /dev/null
+++ b/nbproject/build-impl.xml
@@ -0,0 +1,1771 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set src.dir
+ Must set test.src.dir
+ Must set build.dir
+ Must set dist.dir
+ Must set build.classes.dir
+ Must set dist.javadoc.dir
+ Must set build.test.classes.dir
+ Must set build.test.results.dir
+ Must set build.classes.excludes
+ Must set dist.jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No tests executed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set JVM to use for profiling in profiler.info.jvm
+ Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ To run this application from the command line without Ant, try:
+
+ java -jar "${dist.jar.resolved}"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must set fix.includes
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set profile.class
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+ Some tests failed; see details above.
+
+
+
+ Must select some files in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+ Must select one file in the IDE or set test.class
+
+
+
+ Must select one file in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
new file mode 100644
index 0000000..2fe8869
--- /dev/null
+++ b/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=03de8c83
+build.xml.script.CRC32=f3147fa1
+build.xml.stylesheet.CRC32=f85dc8f2@1.102.0.48
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=03de8c83
+nbproject/build-impl.xml.script.CRC32=ebe2ce57
+nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.102.0.48
diff --git a/nbproject/private/config.properties b/nbproject/private/config.properties
new file mode 100644
index 0000000..e69de29
diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties
new file mode 100644
index 0000000..39b315a
--- /dev/null
+++ b/nbproject/private/private.properties
@@ -0,0 +1,6 @@
+compile.on.save=true
+do.depend=false
+do.jar=true
+javac.debug=true
+javadoc.preview=true
+user.properties.file=C:\\Users\\rizqi\\AppData\\Roaming\\NetBeans\\13\\build.properties
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
new file mode 100644
index 0000000..46160b9
--- /dev/null
+++ b/nbproject/private/private.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ src/dbd_lcd/Util.java
+
+
+ 175
+
+
+
+
+
+
+
+
diff --git a/nbproject/private/retriever/catalog.xml b/nbproject/private/retriever/catalog.xml
new file mode 100644
index 0000000..6255ef5
--- /dev/null
+++ b/nbproject/private/retriever/catalog.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/nbproject/private/retriever/jasperreports.sourceforge.net/xsd/jasperreport.xsd b/nbproject/private/retriever/jasperreports.sourceforge.net/xsd/jasperreport.xsd
new file mode 100644
index 0000000..cec1bbb
--- /dev/null
+++ b/nbproject/private/retriever/jasperreports.sourceforge.net/xsd/jasperreport.xsd
@@ -0,0 +1,7531 @@
+
+
+
+
+
+
+ Root element representing the definition of a report.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the report.
+
+
+
+
+ Specifies the language used for the report expressions.
+
+
+
+
+ Number of columns on the report.
+
+
+
+
+ Columns filling order.
+
+
+
+
+
+ Columns on the report are filled vertically.
+
+
+
+
+ Columns on the report are filled horizontally.
+
+
+
+
+
+
+
+ Columns filling direction.
+
+
+
+
+
+ Columns on the report are filled from left to right.
+
+
+
+
+ Columns on the report are filled from right to left.
+
+
+
+
+
+
+
+ Page width.
+
+
+
+
+ Page height.
+
+
+
+
+ Page printing orientation.
+
+
+
+
+
+ Portrait page layout.
+
+
+
+
+ Landscape page layout.
+
+
+
+
+
+
+
+ Allows users to customize the behavior of the reporting engine when there are now rows in the data source.
+
+
+
+
+
+ The generated document contains zero pages.
+
+
+
+
+ The generated document contains one blank page.
+
+
+
+
+ All the report sections except the detail section will get printed.
+
+
+
+
+ The generated document contains only the noData section.
+
+
+
+
+
+
+
+ Specifies if the report design is made of sections containing bands or containing parts.
+
+
+
+
+
+ The report template is made of sections containing bands.
+
+
+
+
+ The report template is made of sections containing parts.
+
+
+
+
+
+
+
+ Column width.
+
+
+
+
+ Space between columns.
+
+
+
+
+ Left margin.
+
+
+
+
+ Right margin.
+
+
+
+
+ Top margin.
+
+
+
+
+ Bottom margin.
+
+
+
+
+ Flag used to specify if the title section should be printed on a separate initial page.
+
+
+
+
+
+ Title section will be printed on a separate initial page
+
+
+
+
+ Title section will be printed on the first page of the report, along with the other sections.
+
+
+
+
+
+
+
+ Flag used to specify if the summary section should be printed on a separate last page.
+
+
+
+
+
+ Summary section will be printed on a separate last page.
+
+
+
+
+ Summary section will be printed on the last page of the report, along with the other sections, if there is enough space.
+
+
+
+
+
+
+
+ Flag used to specify if the summary section should be accompanied by the page header and footer.
+
+
+
+
+
+ Summary section will be printed along with the page header and footer.
+
+
+
+
+ Summary section will be printed without page header and footer.
+
+
+
+
+
+
+
+ Flag used to specify if the column footer section should be printed at the bottom of the column or if it should immediately follow the last detail or group footer printed on the current column.
+
+
+
+
+
+ The column footer section is printed immediately after the last detail or group footer printed on the current column.
+
+
+
+
+ The column footer section is printed at the bottom of the current column.
+
+
+
+
+
+
+
+ Indicates which class implements the scriptlets functionality for this report. The specified class must be a subclass of JRAbstractScriptlet
class. If omitted, an instance of JRDefaultScriptlet
will be created.
+
+
+
+
+ The base name of the report associated resource bundle.
+
+
+
+
+ Allows customizing the way the engine deals with missing resources in the resource bundle.
+
+
+
+
+
+ Null is returned for the missing resource.
+
+
+
+
+ An empty string is returned for the missing resource.
+
+
+
+
+ The key is returned for the missing resources.
+
+
+
+
+ An exception is thrown when the resource with the specified key is missing.
+
+
+
+
+
+
+
+ Flag used to specify whether to use pagination.
+
+ This attribute can be overridden at fill time by the IS_IGNORE_PAGINATION parameter.
+
+
+
+
+
+ The report will be generated on one long page. The specified page height will still be used for report design.
+
+
+
+
+ The report will be paginated according to the pageHeight attribute.
+
+
+
+
+
+
+
+ Specifies the name of the class implementing the net.sf.jasperreports.engine.util.FormatFactory
interface to use with this report. If omitted, an instance of net.sf.jasperreports.engine.util.DefaultFormatFactory
will be created.
+
+
+
+
+ This attribute is auto-generated and is used to uniquely identify JRXMLs.
+
+
+
+
+
+
+
+ Allows the creation of a name-value pair property for a report object (e.g. the report itself, a field, a parameter, etc).
+
+
+
+
+ Name of the object property.
+
+
+
+
+ Value of the object property.
+
+
+
+
+
+
+
+
+ Name of the object property.
+
+
+
+
+
+
+ Allows the creation of a dynamic name-value pair property for a report element.
+ The contents of this element is interpreted as a java.lang.String
expression,
+ which will be evaluated at fill time, the result being used as property value.
+
+
+
+
+
+
+
+
+ Specifies when the default value expression of a parameter is evaluated.
+
+
+
+
+
+ Evaluate the property expression before parameter contributors.
+
+
+
+
+ Evaluate the property expression after parameter contributors.
+
+
+
+
+ Evaluate the property expression at the end of the report.
+
+
+
+
+
+
+
+
+
+
+
+ Translates into an import statement inside the expression class order to eliminate the need to use complete class names in the report expressions.
+
+
+
+
+ Class name or package to import.
+
+
+
+
+
+
+
+ A style template (*.jrtx file/JRTemplate instance) included in a report.
+ The contents of this element is interpreted as an expression which is resolved to a style template at fill time.
+
+
+
+
+
+ Class for the style template source expression.
+
+
+
+
+
+
+
+ Represents the definition of a report font. Report fonts are used as default or base font settings in other font definitions throughout the report.
+
+
+
+
+ Name of the report font definition.
+
+
+
+
+ The default report font is used as base font for all the font definitions that do not explicitly reference a report font definition.
+
+
+
+
+
+
+
+
+
+
+ Name of the font.
+
+
+
+
+ Size of the font.
+
+
+
+
+ Flag indicating if the font weight is bold
+
+
+
+
+
+
+
+
+
+
+ Flag indicating if the font is italic
+
+
+
+
+
+
+
+
+
+
+ Flag indicating if the font is underlined
+
+
+
+
+
+
+
+
+
+
+ Flag indicating if the font is strikethrough
+
+
+
+
+
+
+
+
+
+
+ Name of the PDF font.
+
+
+
+
+ Encoding type to use with the PDF font.
+
+
+
+
+ Specifies if the PDF font should be embedded in the document.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Definition of a report style.
+
+
+
+
+
+
+
+
+
+
+ Name of the report style definition.
+
+
+
+
+ The default report style is used as base style for all the elements that do not explicitly reference a report style definition.
+
+
+
+
+
+
+
+
+
+
+ Parent style reference.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag pen.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+ Deprecated. Replaced by tag box.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by attribute markup
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groups the properties of the pen used to draw lines or borders.
+
+
+
+
+ The line width of the pen.
+
+
+
+
+ The line style of the pen.
+
+
+
+
+
+ Solid line.
+
+
+
+
+ Dashed line.
+
+
+
+
+ Dotted line.
+
+
+
+
+ Double line.
+
+
+
+
+
+
+
+ The line color of the pen.
+
+
+
+
+
+
+
+ Paragraph properties for text elements.
+
+
+
+
+
+
+
+ Type of line spacing for the text object.
+
+
+
+
+
+ Normal line spacing
+
+
+
+
+ Medium line spacing.
+
+
+
+
+ Double line spacing
+
+
+
+
+ Line spacing is at least the amount specified by lineSpacingSize.
+
+
+
+
+ Line spacing is exactly as specified bye lineSpacingSize.
+
+
+
+
+ Line spacing is normal line spacing multiplied by lineSpacingSize.
+
+
+
+
+
+
+
+ The line spacing size to be used in combination with the line spacing type.
+
+
+
+
+ The indent of the first line of text.
+
+
+
+
+ The left indent of text.
+
+
+
+
+ The right indent of text.
+
+
+
+
+ The spacing before text.
+
+
+
+
+ The spacing after text.
+
+
+
+
+ The tab stop width of the text.
+
+
+
+
+
+
+
+ Custom tab stop definition.
+
+
+
+
+ The alignment of the custom tab stop.
+
+
+
+
+
+ Left aligned tab stop.
+
+
+
+
+ Center aligned tab stop.
+
+
+
+
+ Right aligned tab stop.
+
+
+
+
+
+
+
+ The position of the custom tab stop.
+
+
+
+
+
+
+
+ Used for adding conditions to a current style, to create dynamic styles.
+
+ Modifies the properties of the parent style, based on various conditions evaluated at fill time. It must be placed inside a top level style.
+
+
+
+
+
+
+
+
+
+
+
+
+ A boolean expression which indicates if the style properties associated with it should be applied to the parent style.
+
+
+
+
+
+
+
+ Definition of a dataset. A dataset can be used to feed data not present in the report to charts and crosstabs without using subreports.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the dataset.
+
+
+
+
+ Indicates which class implements the scriptlets functionality for this dataset. The specified class must be a subclass of JRAbstractScriptlet
class. If omitted, an instance of JRDefaultScriptlet
will be created.
+
+
+
+
+ The base name of the dataset associated resource bundle.
+
+
+
+
+ Allows customizing the way the engine deals with missing resources in the resource bundle.
+
+
+
+
+
+ Null is returned for the missing resource.
+
+
+
+
+ An empty string is returned for the missing resource.
+
+
+
+
+ The key is returned for the missing resources.
+
+
+
+
+ An exception is thrown when the resource with the specified key is missing.
+
+
+
+
+
+
+
+ This attribute is auto-generated and is used to uniquely identify subdatasets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents the definition of a report parameter. Parameters are very useful for passing data to the report engine and can be used in the expressions or in the query string of the report.
+
+
+
+
+
+
+
+
+
+ Name of the parameter.
+
+
+
+
+ Class of the parameter values.
+
+
+
+
+ Type of the nested elements, if the parameter's value is a collection
+
+
+
+
+ Optional flag that might be used by the parent application to prompt the user for the parameter value.
+
+
+
+
+
+
+
+
+
+
+ Specifies when the default value expression of a parameter is evaluated.
+
+
+
+
+
+ Evaluate the parameter default value expression before parameter contributors.
+
+
+
+
+ Evaluate the parameter default value expression after parameter contributors.
+
+
+
+
+
+
+
+
+
+
+ Can be used to specify a short text description for the parameter and is useful especially when prompting for the user to supply a value for this parameter at runtime.
+
+
+
+
+
+
+
+ Specifies the parameter default value to use when not supplied by the parent application at runtime.
+
+
+
+
+
+
+
+ Contains the SQL query that will be used to retrieve the data needed to fill the report.
+
+
+
+
+ Specifies the query language.
+
+ Based on the query language, a corresponding
+ net.sf.jasperreports.engine.query.QueryExecuterFactory
is used to create
+ net.sf.jasperreports.engine.query.JRQueryExecuter
instance.
+ The query executer is responsible for executing the query and creating a JRDataSource
from the result.
+
+ A executer for a query language is registered using a JR propery named
+ net.sf.jasperreports.query.executer.factory.<language>
+
+
+
+
+
+
+
+ Represents the definition of a data field that will store values retrieved from the data source of the report.
+
+
+
+
+
+
+
+
+
+ Name of the field.
+
+
+
+
+ Class of the field values.
+
+
+
+
+
+
+
+ Can be used to specify a short text description for the field and is useful especially when creating special designed data sources and an extra information is needed in order to extract the value of the field.
+
+
+
+
+
+
+
+ Introduces a field to use for sorting the data source.
+
+
+
+
+ Name of the report field to use for sorting.
+
+
+
+
+ The sort order for the field.
+
+
+
+
+
+
+
+
+
+
+ The type of the sort field.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents the definition of a report variable. Variables are objects that store the values of their associated expressions or perform various calculations on those expression values. Expressions are java expressions build on top of fields and variables declared in the report. They are evaluated at runtime, when filling the report.
+
+
+
+
+
+
+
+
+ Name of the variable.
+
+
+
+
+ Class of the variable values.
+
+
+
+
+ Reset level for variables that perform calculations.
+
+
+
+
+
+ Variable is never initialized using the initial value expression and only holds the values obtained by evaluating its main expression.
+
+
+
+
+ Variable is initialized only once, at the beginning of the report.
+
+
+
+
+ Variable is initialized at the beginning of each page.
+
+
+
+
+ Variable is initialized at the beginning of each column.
+
+
+
+
+ Variable is initialized when the group specified by the resetGroup
attribute changes.
+
+
+
+
+
+
+
+ Name of the group at which the variable is reinitialized, when resetType
is "Group".
+
+
+
+
+ Increment level for variables that perform calculations.
+
+
+
+
+
+ Variable is incremented with every record in the data source.
+
+
+
+
+ Variable is incremented only once, at the end of the report.
+
+
+
+
+ Variable is incremented at the end of each page.
+
+
+
+
+ Variable is incremented at the end of each column.
+
+
+
+
+ Variable is incremented when the group specified by the incrementGroup
attribute changes.
+
+
+
+
+
+
+
+ Name of the group at which the variable is incremented, when incrementType
is "Group".
+
+
+
+
+ Calculation to perform on the variable expression when filling the report.
+
+
+
+
+
+ No calculations are performed.
+
+
+
+
+ Variable stores the number of the not null values encountered for the variable expression.
+
+
+
+
+ Variable stores the number of distinct not null values encountered for the variable expression.
+
+
+
+
+ Variable stores the sum of the not null values encountered for the variable expression. Numeric variables only.
+
+
+
+
+ Variable stores the average of the not null values encountered for the variable expression. Numeric variables only.
+
+
+
+
+ Variable stores the lowest value encountered for the variable expression.
+
+
+
+
+ Variable stores the highest value encountered for the variable expression.
+
+
+
+
+ Variable stores the standard deviation of the not null values encountered for the variable expression. Numeric variables only.
+
+
+
+
+ Variable stores the variance of the not null values encountered for the variable expression. Numeric variables only.
+
+
+
+
+ Variable stores a system (custom) calculated value.
+
+
+
+
+ Variable stores the first value encountered and ignores subsequent values.
+
+
+
+
+
+
+
+ The name of a class that implements the net.sf.jasperreports.engine.fill.JRIncrementerFactory
interface to use when creating the incrementer instance for this variable. Incrementers are objects that implement the net.sf.jasperreports.engine.fill.JRIncrementer
interface and handle the incremental calculation performed on the variable's current value with every iteration in the data source.
+
+
+
+
+
+
+
+ Definition of the expression associated with the variable. The value of this expression will be calculated at runtime and will represent the value of the corresponding variable or it will be used in calculation to obtain the value of the calculated variable.
+
+
+
+
+
+
+
+ Definition of the expression that will be used to calculate the initial value of the variable, before any calculations are made.
+
+
+
+
+
+
+
+ Boolean expression used to filter the rows of a data source.
+
+ This expression is used to filter the rows of the data source that this dataset will iterate on.
+
+ Boolean.TRUE the row gets processed by the report filling engine.
+ When the result is null or Boolean.FALSE
, the current row will be skipped and the datasource will be asked for the next row.
+ ]]>
+
+
+
+
+
+
+
+ Definition of a group on the report.
+
+
+
+
+
+
+
+
+
+ Name of the group.
+
+
+
+
+ Flag that signals if the group header should be printed always on a new column.
+
+
+
+
+
+ Group header section is printed always on a new column.
+
+
+
+
+ Group header section is printed on the current column, if there is enough space.
+
+
+
+
+
+
+
+ Flag that signals if the group header should be printed always on a new page.
+
+
+
+
+
+ Group header section is printed always on a new page.
+
+
+
+
+ Group header section is printed on the current page, if there is enough space.
+
+
+
+
+
+
+
+ Flag that signals if the group header should be printed always on a new page, along with the re-initialization of the page number.
+
+
+
+
+
+ Group header section is printed always on a new page and the page number is reinitialized.
+
+
+
+
+ Group header section is printed accordingly with the isStartNewPage
attribute and the page number is not affected.
+
+
+
+
+
+
+
+ Flag that signals if the group header should be reprinted at the beginning of each page.
+
+
+
+
+
+ Group header section is reprinted always at the beginning of a new page.
+
+
+
+
+ Group header section is not reprinted at the beginning of a new page.
+
+
+
+
+
+
+
+ Minimum amount of vertically space needed at the bottom of the column in order to place the group header on the current column.
+
+
+
+
+ Specifies how the group footer section behaves with regards to its position on the current page.
+
+
+
+
+
+ The group footer section is rendered at normal position, just right after the last detail or right after the nested group footer section.
+
+
+
+
+ The group footer section is rendered at bottom of the current page, provided that an inner group having this value would force outer group footers to stack at the bottom of the current page, regardless of the outer group footer setting.
+
+
+
+
+ The group footer section is rendered at bottom of the current page, provided that an inner group having this value would render its footer right at the bottom of the page, forcing the outer group footers to render on the next page.
+
+
+
+
+ The group footer section is rendered at bottom of the current page, provided that the outer footers have a similar footer display option to render at the page bottom as well, because otherwise, they cannot be forced to change their behavior in any way.
+
+
+
+
+
+
+
+ Flag that prevents the group from splitting on two separate pages/columns, but only on the first break attempt.
+
+
+
+
+
+ Group can split across two separate pages/column at any moment.
+
+
+
+
+ Group is moved onto a new new page/column, before being split.
+
+
+
+
+
+
+
+
+
+
+ Specifies the expression that will be evaluated at runtime to determine the group ruptures.
+
+
+
+
+
+
+
+ Contains the definition of the header section for this group.
+
+
+
+
+
+
+
+
+
+
+
+ Contains the definition of the footer section for this group.
+
+
+
+
+
+
+
+
+
+
+
+ Definition of the page background section for this report. The background section is displayed on every page and cannot overflow to the next page. Elements placed on this section are evaluated at page initialization time and are displayed in the back. All other page elements are displayed on top of the background elements. This section allows creating watermark or other similar effects in documents.
+
+
+
+
+
+
+
+
+
+
+ Definition of the title section for this report. The title section appears only once at the beginning of the report.
+
+
+
+
+
+
+
+
+
+
+ Definition of the page header section for this report. The page header is printed at the beginning of each page on the report.
+
+
+
+
+
+
+
+
+
+
+ Definition of the column header section for this report. The column header is printed at the beginning of each column on the report. If the report's column count is 1, column header and footer sections are ignored.
+
+
+
+
+
+
+
+
+
+
+ Definition of a detail band for this report. A detail band is repeated for each line of data supplied by the report's data source. There can be multiple detail bands in a report.
+
+
+
+
+
+
+
+
+
+
+
+ Definition of the column footer section for this report. The column footer is printed at the bottom of each column on the report. If the report's column count is 1, column header and footer sections are ignored.
+
+
+
+
+
+
+
+
+
+
+ Definition of the page footer section for this report. The page footer is printed at the bottom of each page on the report.
+
+
+
+
+
+
+
+
+
+
+ The page footer section to use on the last page instead of the normal page footer. This might not be the very last page of the document in case the summary section is also present. This section is sometimes useful when summary information has to be displayed at the bottom of the last page.
+
+
+
+
+
+
+
+
+
+
+ Definition of the summary section for this report. The summary section is printed only once at the end of the report.
+
+
+
+
+
+
+
+
+
+
+ Definition of the noData section for this report. The noData section is printed only if whenNoDataType attribute is set to "NoDataSection".
+
+
+
+
+
+
+
+
+
+
+ Generic definition of a report section.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Height of the band.
+
+
+
+
+ Deprecated. Replaced by attribute splitType
. Flag that indicates if the band is allowed to split when it stretches.
+
+
+
+
+
+ Page breaks are accepted within this band.
+
+
+
+
+ When the band stretches and it does not fit on the current page, the content of the band will be transferred on the next new page. On this new page the flag will be ignored since the band has to be displayed even there is not enough space to acquire the stretch.
+
+
+
+
+
+
+
+ Specifies the band split behavior.
+
+
+
+
+
+ The band is allowed to split, but never within its declared height. This means the band splits only when its content stretches.
+
+
+
+
+ Prevents the band from splitting on first break attempt. On subsequent pages/columns, the band is allowed to split, to avoid infinite loops.
+
+
+
+
+ The band is allowed to split anywhere, as early as needed, but not before at least one element being printed on the current page/column.
+
+
+
+
+
+
+
+
+
+
+ Generic definition of a report part.
+
+
+
+
+
+
+
+
+
+
+ This attribute is auto-generated and is used to uniquely identify parts.
+
+
+
+
+ Determines the time at which the part is to be evaluated.
+
+
+
+
+
+ The part is to be evaluated immediately.
+
+
+
+
+ The part is to be evaluated when the report ends.
+
+
+
+
+ The part is to be evaluated when a group breaks.
+
+
+
+
+
+
+
+ Specifies the group at which to evaluate the part when evaluationTime
is Group.
+
+
+
+
+
+
+
+ An expression that will provide a name for a report part.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Introduces a page break or column break
+
+
+
+
+
+
+
+ Specifies the type of the break element.
+
+
+
+
+
+ Page break.
+
+
+
+
+ Column break.
+
+
+
+
+
+
+
+
+
+
+ Definition of a line object.
+
+
+
+
+
+
+
+
+ Lines are drawn as diagonals of the rectangle defined by the report element properties. This attribute specifies which of the two diagonals should be drawn.
+
+
+
+
+
+ The diagonal that starts in the top-left corner of the rectangle will be drawn.
+
+
+
+
+ The diagonal that starts in the bottom-left corner of the rectangle will be drawn.
+
+
+
+
+
+
+
+
+
+
+ Element used to specify the common properties of an object on the report.
+
+
+
+
+
+
+
+
+
+ This attribute is auto-generated and is used to uniquely identify elements across multiple report templates.
+
+
+
+
+ This attribute is used to identify band elements by their "key" when wanting to alter their settings at runtime. The key value must be unique for elements within report band.
+
+
+
+
+ Name of the report level style to use as base style (see style element).
+
+
+
+
+ Specifies the object position when the report section is affected by stretch.
+
+
+
+
+
+ The element moves relative to the size of the surrounding elements.
+
+
+
+
+ The element maintains its position relative to the top of the band.
+
+
+
+
+ The element maintains its position relative to the bottom of the band.
+
+
+
+
+
+
+
+ Specifies the element stretch behavior relative to its element group siblings or element container stretch.
+
+
+
+
+
+ The element won't stretch vertically beyond its natural stretch height, when the container stretches to display other elements.
+
+
+
+
+ Deprecated. Replaced by ElementGroupHeight value.
+
+
+
+
+ Deprecated. Replaced by ContainerHeight value.
+
+
+
+
+ The element will stretch to accommodate the overall natural growth of its group, but also taking into account the shifting Y position of the element within its group. See the elementGroup element, to see how to group elements.
+
+
+
+
+ The element will stretch to accommodate the overall natural growth of its group, without taking into account the shifting Y position of the element within its group. See the elementGroup element, to see how to group elements.
+
+
+
+
+ The element will stretch to fit the container height, while taking into account its new Y position. This results in the element preserving its distance to the container's bottom edge.
+
+
+
+
+ The element will stretch to fit the container height, but without taking into account its new Y position. This might results in the element being shifted up (due to collapsing elements above) or down (due to stretching elements above that push it downards) relative to the container bottom edge. In case the element its already pushed downwards, the additional stretch imposed by the container might actually throw it beyond the container's bottom edge, in which case the element will not render at all.
+
+
+
+
+
+
+
+ This flag allows suppressing the repeating values for the dynamic elements such as text fields and image fields and to fully customize the behavior of the static elements like rectangles, lines, ellipses and static texts.
+
+
+
+
+
+ Dynamic elements will print even if their values repeat. Static elements will appear every time the band that contains them is started.
+
+
+
+
+ Suppresses the repeated values for the dynamic elements. The static elements will print only according to the other 3 attributes: isPrintInFirstWholeBand
, isPrintWhenDetailOverflows
, printWhenGroupChanges
.
+
+
+
+
+
+
+
+ Specifies whether the background of an object is transparent or opaque.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the x coordinate for the object within the band.
+
+
+
+
+ Specifies the y coordinate for the object within the band.
+
+
+
+
+ Width of the object.
+
+
+
+
+ Height of the object.
+
+
+
+
+ Collapses the band if the element is not printing and no other element is occupying the same horizontal space.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The element gets printed in the first band of a new page or column that is not an overflow from a previous page or column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The element will be printed when the band overflows to a new page or a new column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The element will be printed when the specified group changes.
+
+
+
+
+ Fore color to use when drawing the object. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+ Back color to use when drawing the object. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+
+
+
+ Definition of a Boolean expression that will determine if the element or the band should be printed or not.
+
+
+
+
+
+
+
+ Element used to specify the common properties of a graphic object on the report (line, rectangle, ellipse or image).
+
+
+
+
+
+
+
+ Deprecated. Replaced by attribute with the same name in tag reportElement.
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag pen.
+
+
+
+
+
+ No line.
+
+
+
+
+ Thin line.
+
+
+
+
+ Normal line.
+
+
+
+
+ Medium line.
+
+
+
+
+ Thick line.
+
+
+
+
+ Dotted line.
+
+
+
+
+
+
+
+ Type of the fill pattern used to fill objects.
+
+
+
+
+
+ Solid fill.
+
+
+
+
+
+
+
+
+
+
+ Definition of a rectangle object.
+
+
+
+
+
+
+
+
+ The radius of the arc corner.
+
+
+
+
+
+
+
+ Definition of an ellipse object.
+
+
+
+
+
+
+
+
+
+
+
+ Definition of an image object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Image displaying type.
+
+
+
+
+
+ Only the portion of the image that fits the specified object width and height will be printed. Image is not stretched.
+
+
+
+
+ Image will be stretched to adapt to the specified object width and height.
+
+
+
+
+ Image will adapt to the specified object width or height keeping its original shape.
+
+
+
+
+ A scale image type that instructs the engine to stretch the image height to fit the actual height of the image.
+
+Several restrictions apply to the image stretching mechanism:
+
+ - It only works when the image renderer implements JRRenderable.getDimension().
+ - If the actual image width exceeds the declared image element width, the image is proportionally stretched to fit the declared width.
+ - Images with delayed evaluation (see the
evaluationTime
attribute) do not stretch and is proportionally shrunk to fit the declared height/width.
+ - An image overflows (to the next page/column) only once, after this the image gets rendered on the available space by proportionally shrinking its size.
+
+
+
+
+
+
+
+ A scale image type that stretches the images height in the same way as RealHeight
, and in addition it changes the image width to the actual with of the image.
+
+This can be useful when, for instance, a border has to be drawn around the image, respecting its actual size.
+
+
+
+
+
+
+
+
+ Horizontal image alignment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vertical image alignment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If true, tells the report engine to cache the images that are loaded from the same location.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gives control over when the images are retrieved from their specified location.
+
+
+
+
+
+ The image is loaded from the specified location only when the document is viewed or exported to other formats.
+
+
+
+
+ The image is loaded during the report filling process and stored in the resulting document.
+
+
+
+
+
+
+
+ Controls the behavior of the engine in case the image is not available.
+
+
+
+
+
+ An exception is raised when loading the image.
+
+
+
+
+ The exception is ignored and the image displays as blank.
+
+
+
+
+ The exception is ignored and an image replacement icon is displayed.
+
+
+
+
+
+
+
+ The image to be printed is supplied by the associated expression. This expression can be evaluated at a specified moment. This could be useful, for example, when we want to have on the first page a chart that will be generated only after fetching all the data source rows.
+
+
+
+
+ Used to specify the group at which to evaluate the image expression value, when evaluationTime
is "Group".
+
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+ The level of the bookmark corresponding to the anchor.
+
+ The PDF exporter can create a bookmark tree using anchors defined in the report.
+ This attribute specifies the level of the tree entry corresponding to this element's anchor.
+ If set to "0" (the default), no bookmark will be created for the anchor.
+
+
+
+
+
+
+
+
+ Definition of the expression that will be used to determine the image to be displayed.
+
+
+
+
+ Class of the image source.
+
+
+
+
+
+
+
+ Tag used to specify the border and padding properties of a report element.
+
+
+
+
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag pen
+
+
+
+
+
+ No border.
+
+
+
+
+ Thin border.
+
+
+
+
+ Normal border.
+
+
+
+
+ Medium border.
+
+
+
+
+ Thick border.
+
+
+
+
+ Dotted border.
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag pen
+
+
+
+
+ The amount of empty space between the border and the element's content.
+
+
+
+
+ Deprecated. Replaced by tag topPen
+
+
+
+
+
+ No top border.
+
+
+
+
+ Thin top border.
+
+
+
+
+ Normal top border.
+
+
+
+
+ Medium top border.
+
+
+
+
+ Thick top border.
+
+
+
+
+ Dotted top border.
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag topPen
+
+
+
+
+ The amount of empty space between the top border and the element's content.
+
+
+
+
+ Deprecated. Replaced by tag leftPen
+
+
+
+
+
+ No left border.
+
+
+
+
+ Thin left border.
+
+
+
+
+ Normal left border.
+
+
+
+
+ Medium left border.
+
+
+
+
+ Thick left border.
+
+
+
+
+ Dotted left border.
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag leftPen
+
+
+
+
+ The amount of empty space between the left border and the element's content.
+
+
+
+
+ Deprecated. Replaced by tag bottomPen
+
+
+
+
+
+ No bottom border.
+
+
+
+
+ Thin bottom border.
+
+
+
+
+ Normal bottom border.
+
+
+
+
+ Medium bottom border.
+
+
+
+
+ Thick bottom border.
+
+
+
+
+ Dotted bottom border.
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag bottomPen
+
+
+
+
+ The amount of empty space between the bottom border and the element's content.
+
+
+
+
+ Deprecated. Replaced by tag rightPen
+
+
+
+
+
+ No right border.
+
+
+
+
+ Thin right border.
+
+
+
+
+ Normal right border.
+
+
+
+
+ Medium right border.
+
+
+
+
+ Thick right border.
+
+
+
+
+ Dotted right border.
+
+
+
+
+
+
+
+ Deprecated. Replaced by tag rightPen
+
+
+
+
+ The amount of empty space between the right border and the element's content.
+
+
+
+
+
+
+
+ Groups the properties of the pen used to draw top lines or borders.
+
+
+
+
+ The line width of the pen.
+
+
+
+
+ The line style of the pen.
+
+
+
+
+
+ Solid line.
+
+
+
+
+ Dashed line.
+
+
+
+
+ Dotted line.
+
+
+
+
+ Double line.
+
+
+
+
+
+
+
+ Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+
+
+
+ Groups the properties of the pen used to draw left lines or borders.
+
+
+
+
+ The line width of the pen.
+
+
+
+
+ The line style of the pen.
+
+
+
+
+
+ Solid line.
+
+
+
+
+ Dashed line.
+
+
+
+
+ Dotted line.
+
+
+
+
+ Double line.
+
+
+
+
+
+
+
+ Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+
+
+
+ Groups the properties of the pen used to draw bottom lines or borders.
+
+
+
+
+ The line width of the pen.
+
+
+
+
+ The line style of the pen.
+
+
+
+
+
+ Solid line.
+
+
+
+
+ Dashed line.
+
+
+
+
+ Dotted line.
+
+
+
+
+ Double line.
+
+
+
+
+
+
+
+ Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+
+
+
+ Groups the properties of the pen used to draw right lines or borders.
+
+
+
+
+ The line width of the pen.
+
+
+
+
+ The line style of the pen.
+
+
+
+
+
+ Solid line.
+
+
+
+
+ Dashed line.
+
+
+
+
+ Dotted line.
+
+
+
+
+ Double line.
+
+
+
+
+
+
+
+ Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.
+
+
+
+
+
+
+
+ If specified, it will supply the name of the local anchor that will mark to the corresponding element.
+
+
+
+
+
+
+
+ Used in hyperlink elements to point to external documents and resources.
+
+
+
+
+
+
+
+ Used in hyperlink elements to specify whether the hyperlink is to be displayed or not.
+
+
+
+
+
+
+
+ Used in hyperlink elements to point to document anchors.
+
+
+
+
+
+
+
+ Used in hyperlink elements to point to document pages.
+
+
+
+
+
+
+
+ Used in hyperlink elements to generate a tooltip for the hyperlink. The type of the expression should be java.lang.String
.
+
+
+
+
+
+
+
+ Definition of a hyperlink parameter. Hyperlink parameters can be used to parametrize hyperlinks of custom types.
+
+
+
+
+
+
+
+ The name of the hyperlink parameter.
+
+
+
+
+
+
+
+ Expression that will produce the value for a hyperlink parameter.
+
+
+
+
+ Type of the parameter value.
+
+
+
+
+
+
+
+ Definition of a static text object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the text to print for a static text object.
+
+
+
+
+
+
+
+ Element used to specify the common properties of a text object on the report (staticText or textField).
+
+
+
+
+
+
+
+
+ Type of alignment for the text object.
+
+
+
+
+
+ Text is aligned to the left.
+
+
+
+
+ Text is centered.
+
+
+
+
+ Text is aligned to the right.
+
+
+
+
+ Text is justified.
+
+
+
+
+
+
+
+ Type of vertical alignment for the text object.
+
+
+
+
+
+ Text is aligned to the top.
+
+
+
+
+ Text is vertically centered.
+
+
+
+
+ Text is aligned to the bottom.
+
+
+
+
+ Text is justified.
+
+
+
+
+
+
+
+ Type of rotation for the text object.
+
+
+
+
+
+ Text runs horizontally from left to right and from top to bottom.
+
+
+
+
+ Text runs vertically from bottom to top and from left to right.
+
+
+
+
+ Text runs vertically from top to bottom and from right to left.
+
+
+
+
+ Text is rotated with 180 degrees.
+
+
+
+
+
+
+
+ Type of line spacing for the text object.
+
+
+
+
+
+ Normal line spacing
+
+
+
+
+ Medium line spacing.
+
+
+
+
+ Double line spacing
+
+
+
+
+
+
+
+ Deprecated. Replaced by attribute markup
.
+
+ When set to true
, this attribute signals to the rendering engine that the text element contains preformatted text. Style information can be introduced in the text content using nested <style>
tags that support the folowing attributes : fontName, size, isBold, isItalic, isUnderline, isStrikeThrough, pdfFontName, pdfEncoding, isPdfEmbedded, forecolor, backcolor
.
+
+
+
+
+
+
+ The text element contains text formatted using nested <style>
tags.
+
+
+
+
+ The text element has a pure text content, without style information.
+
+
+
+
+
+
+
+ Specifies the name of the markup language used to embed style information into the text content. Supported values are none
(plain text), styled
(styled text), rtf
(RTF format) and html
(HTML format), but any custom made markup language can be used as long as there is a net.sf.jasperreports.engine.util.MarkupProcessorFactory
implementation specified using a net.sf.jasperreports.markup.processor.factory.{markup}
configuration property.
+
+
+
+
+
+
+
+ Defines the font to use with the text element.
+
+
+
+
+ Name of the report level font to use as base font (see reportFont element).
+
+
+
+
+ Name of the font.
+
+
+
+
+ Size of the font.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the PDF font.
+
+
+
+
+ Encoding type to use with the PDF font.
+
+
+
+
+ Specifies if the PDF font should be embedded in the document.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Definition of a text field object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instructs the report engine to allow the text field to stretch downwards in order to display all its text when it doesn't fit in the defined text field height.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Text to be printed is supplied by the text field associated expression. This expression can be evaluated at a specified moment. This could be useful, for example, when we want to have on the first page the total number of pages. The total number of pages is known only after filling the entire report, so we can specify that the text filed that will represent the total number of pages placed at the beginning of the report should be evaluated only when reaching the end of the report.
+
+
+
+
+ Used to specify the group at which to evaluate the text field value, when evaluationTime
is "Group".
+
+
+
+
+ Pattern to use when formatting the output of the text field expression.
+
+
+
+
+ Specifies that the text field should display a blank character instead of "null" when the text field expression evaluates to null
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+ The level of the bookmark corresponding to the anchor.
+
+ The PDF exporter can create a bookmark tree using anchors defined in the report.
+ This attribute specifies the level of the tree entry corresponding to this element's anchor.
+ If set to "0" (the default), no bookmark will be created for the anchor.
+
+
+
+
+
+
+
+
+ Defines the expression to use for this textField.
+
+
+
+
+ Class for the text field values.
+
+
+
+
+
+
+
+ Defines the pattern expression to use for this textField.
+
+
+
+
+
+ Definition of a subreport object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If true, tells the report engine to cache the report definition objects that are loaded from the same location.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flag to specify if the subreport should consume all the available space on the current page. When this flag is set, the subreport would consume the entire vertical space available on the master page, and its column and page footers will be printed at the bottom of this space.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines what happens when the subreport contents overflows the element height. If not specified, the subreport will stretch to accomodate the contents.
+
+
+
+
+
+ The subreport stretches to to accomodate the overflown contents.
+
+
+
+
+ The contents do not stretch beyond the subreport element height. The band on which the subreport is placed overflows to a new page if allowed, and the subreport contents continues there.
+
+
+
+
+
+
+
+
+
+
+ Allows bulk passing the parameters to the subreport/subdataset into a java.lang.Map
object. There are cases when we want to pass to the subreport/subdataset the same parameters that the master report has received. This can be achieved by passing the system-defined parameter called REPORT_PARAMETERS_MAP and maybe adding to or overriding those parameters using additional subreportParameter elements.
+
+
+
+
+
+
+
+ Definition of a subreport parameter.
+
+
+
+
+
+
+
+ The name of the parameter that will be passed when filling the subreport.
+
+
+
+
+
+
+
+ Definition of the expression associated with the subreport parameter.
+
+
+
+
+
+
+
+ Maps a subreport variable to a master report variable in order to allow returning values from subreport to the master report.
+
+
+
+
+ Name of the subreport variable whose value will be returned to the master report.
+
+
+
+
+ Name of the master report variable to which the value is returned. This should be a variable with calculation="System"
+
+
+
+
+ Calculation to perform on the master report variable when returning the value from the subreport.
+
+
+
+
+
+ No calculations are performed.
+
+
+
+
+ Variable stores the number of the not null values returned from the subreport.
+
+
+
+
+ Variable stores the number of distinct not null values returned from the subreport.
+
+
+
+
+ Variable stores the sum of the not null values returned from the subreport. Numeric variables only.
+
+
+
+
+ Variable stores the average of the not null values returned from the subreport. Numeric variables only.
+
+
+
+
+ Variable stores the lowest value returned from the subreport.
+
+
+
+
+ Variable stores the highest value returned from the subreport.
+
+
+
+
+ Variable stores the standard deviation of the not null values returned from the subreport. Numeric variables only.
+
+
+
+
+ Variable stores the variance of the not null values returned from the subreport. Numeric variables only.
+
+
+
+
+ Variable stores the first value encountered and ignores subsequent values.
+
+
+
+
+
+
+
+ The name of a class that implements the net.sf.jasperreports.engine.fill.JRIncrementerFactory
interface to use when creating the incrementer instance to handle the value returned from the subreport.
+
+
+
+
+
+
+
+ If present, it is used to pass the java.sql.Connection
object to the subreport filling or subdataset iteration routines.
+
+
+
+
+
+
+
+ If present, it is used to pass the net.sf.jasperreports.engine.JRDataSource
object to the subreport filling or subdataset iteration routines.
+
+
+
+
+
+
+
+ Definition of the expression that will be used to determine the report object that will be loaded as a subreport.
+
+
+
+
+ Class of the image source.
+
+
+
+
+
+
+
+ Element for grouping objects on the report.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a chart report element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show legend flag
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The chart can be rendered at a specified moment. This could be useful, for example, when we want to have on the first page a chart that will be generated only after fetching all the data source rows.
+
+
+
+
+ Used to specify the group at which to render the chart, when evaluationTime
is "Group".
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+ The level of the bookmark corresponding to the anchor.
+
+ The PDF exporter can create a bookmark tree using anchors defined in the report.
+ This attribute specifies the level of the tree entry corresponding to this element's anchor.
+ If set to "0" (the default), no bookmark will be created for the anchor.
+
+
+
+
+
+ The name of the chart customizer class.
+
+ A chart can have an associated customizer class to perform customizations that are not directly supported by JRXML.
+ The customizer class should implement net.sf.jasperreports.engine.JRChartCustomizer
.
+ At fill time, the customize()
method of this class will be called before the chart is rendered.
+
+ If values of report parameters, variables or fields are needed in the customization, the customizer implementation
+should extend net.sf.jasperreports.engine.JRAbstractChartCustomizer
to gain access to such values.
+
+
+
+
+
+ Represents the specified format used to render the chart.
+
+
+
+
+ The chart theme used to draw the chart.
+
+
+
+
+
+
+
+ Title text of the chart.
+
+
+
+
+
+
+
+
+ Position of the title
+
+
+
+
+
+
+
+
+
+
+
+
+ Color of the title text
+
+
+
+
+
+
+
+ Title expression of the chart
+
+
+
+
+
+
+
+ Subtitle of the chart
+
+
+
+
+
+
+
+
+ Color of the subtitle text
+
+
+
+
+
+
+
+ Defines the expression for the chart subtitle
+
+
+
+
+
+
+
+ Specifies layout options for the legend of a chart.
+
+
+
+
+
+
+
+ The color of the text in the legend.
+
+
+
+
+ The color of the background of the legend.
+
+
+
+
+ Position of the legend.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures settings for item labels in a category plot.
+
+
+
+
+
+
+
+ The color of the label's text.
+
+
+
+
+ The background color of the label's text.
+
+
+
+
+
+
+
+
+ Defines a pie type chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a dataset to be used with pieChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a key in a pieDataset or pieSeries
+
+
+
+
+
+
+
+ Defines the expression for the value of a point in a chart.
+
+
+
+
+
+
+
+ Defines a label in a pieDataset or pieSeries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hyperlink specification for pie chart sections. This hyperlink definition will be evaluated for every chart section and a image map will be created for the chart.
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+
+
+
+ Plot options for a pieChart
+
+
+
+
+
+
+
+
+ Show labels flag.
+
+
+
+
+
+
+
+
+
+
+ Indicates whether the pie chart is circular, or stretched into an elliptical shape
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dataset definition for a chart or crosstab.
+
+
+
+
+
+
+
+
+ Reset type for the dataset
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reset group name
+
+
+
+
+ Increment type of the dataset.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Increment group of the dataset
+
+
+
+
+
+
+
+ Boolean expression that determines whether a chart or crosstab dataset will be incremented or not.
+ Boolean.TRUE; if the result is null
or Boolean.FALSE
, the dataset will not be incremented.
+ ]]>
+
+
+
+
+
+
+
+
+ Subdataset instantiation information for a chart/crosstab dataset.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The name of the subdataset to instantiate.
+
+
+
+
+ This attribute is auto-generated and is used to uniquely identify dataset runs.
+
+
+
+
+
+
+
+
+ Name of the variable to which the value is returned. This should be a variable withcalculation="System"
+
+
+
+
+ Calculation to perform on the destination variable when returning the value.
+
+
+
+
+
+ No calculations are performed.
+
+
+
+
+ Variable stores the number of the not null returned values.
+
+
+
+
+ Variable stores the number of distinct not null returned values.
+
+
+
+
+ Variable stores the sum of the not null returned values. Numeric variables only.
+
+
+
+
+ Variable stores the average of the not null returned values. Numeric variables only.
+
+
+
+
+ Variable stores the lowest returned value.
+
+
+
+
+ Variable stores the highest returned value.
+
+
+
+
+ Variable stores the standard deviation of the not null values. Numeric variables only.
+
+
+
+
+ Variable stores the variance of the not null values. Numeric variables only.
+
+
+
+
+ Variable stores the first value encountered and ignores subsequent values.
+
+
+
+
+
+
+
+ The name of a class that implements thenet.sf.jasperreports.engine.fill.JRIncrementerFactory
interface to use when creating the incrementer instance to handle the returned value.
+
+
+
+
+
+
+
+
+
+ Name of the source variable whose value will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows bulk passing the parameters to the subreport/subdataset into a java.lang.Map
object. There are cases when we want to pass to the subreport/subdataset the same parameters that the master report has received. This can be achieved by passing the system-defined parameter called REPORT_PARAMETERS_MAP and maybe adding to or overriding those parameters using additional subreportParameter elements.
+
+
+
+
+
+
+
+
+
+
+
+ Definition of a subdataset parameter.
+
+
+
+
+
+
+
+ The name of the parameter that will be passed when iterating the subdataset.
+
+
+
+
+
+
+
+ Definition of the expression associated with the subdataset parameter.
+
+
+
+
+
+
+
+ Defines generic plot options for charts
+
+
+
+
+
+
+
+ Background color of the chart
+
+
+
+
+ Orientation of the chart
+
+
+
+
+
+
+
+
+
+
+ Alpha (transparency) parameter for the background.
+
+
+
+
+ Alpha (transparency) parameter for the foreground.
+
+
+
+
+ Deprecated. Replaced by attribute labelRotation
of tag categoryAxisFormat. Degrees to rotate the text labels for the x axis of the chart. Positive
+ values rotate the text clockwise and negative values rotate it counterclockwise.
+ This attribute has no effect on charts where the x axis is either numeric or a
+ date.
+
+
+
+
+
+
+
+
+ Defines the color to use for a series in the report. If only one seriesColor
+ is specified it becomes the color of the first series. If more than one seriesColor is
+ specified the chart will cycle through the supplied colors. Meter and Thermometer charts
+ do not have series and
+ will ignore any seriesColor settings.
+
+ When used in a chart that part of a multi-axis chart series color is treated a bit
+ differently. The default color series to cycle through is defined in the plot of the
+ multi axis chart, and the color series for the nested charts define series colors
+ for that chart only. This is useful when a multiple axis chart contains several
+ line charts, each with one series. By default every line will be the first in its
+ plot and will have the first color defined in the multi axis plot, so every line will
+ be the same color. To solve this you can set a seriesColor for each nested chart to
+ override the default colors.
+
+
+
+
+
+ The relative order of this color. All seriesColors are sorted
+ by the value of this attribute, and appear in that order when coloring the
+ series.
+
+ When the chart is nested inside a multiple axis chart the seriesOrder is
+ the actual series number to apply the color to. Series use zero-based indexing.
+
+
+
+
+
+ The color to use for the series
+
+
+
+
+
+
+
+ Defines a pie chart with 3D effect
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines plot options for a pie3DChart
+
+
+
+
+
+
+
+
+ Show labels flag.
+
+
+
+
+
+
+
+
+
+
+ Depth factor for a pie chart plot.
+
+
+
+
+ Indicates whether the pie chart is circular, or stretched into an elliptical shape
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a bar chart. Dataset used with this chart is categoryDataset
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a dataset with one or more series and values associated with categories
+
+
+
+
+
+
+
+
+
+
+
+ Defines a series that will be mapped on the category axis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a series expression in a dataset
+
+
+
+
+
+
+
+ Defines a category expression in a dataset.
+
+
+
+
+
+
+
+ Hyperlink specification for chart items. This hyperlink definition will be evaluated for every chart item and an image map will be created for the chart.
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates the type of the hyperlink element.
+
+ The type can be:
+
+ -
+ One of the built-in types:
+
+ None
+ - The current element doesn't represent a hyperlink.
+ Reference
+ - The current hyperlink points to an external resource specified by the corresponding hyperlinkReferenceExpression element, usually an URL.
+ LocalAnchor
+ - The current hyperlink points to a local anchor specified by the corresponding hyperlinkAnchorExpression element.
+ LocalPage
+ - The current hyperlink points to a 1 based page index within the current document specified by the corresponding hyperlinkPageExpression element.
+ RemoteAnchor
+ - The current hyperlink points to an anchor specified by the hyperlinkAnchorExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+ RemotePage
+ - The current hyperlink points to a 1 based page index specified by the hyperlinkPageExpression element, within an external document indicated by the corresponding hyperlinkReferenceExpression element.
+
+
+ -
+ A custom (arbitrary) type.
+
+
+
+
+
+
+
+
+ Indicates the target of the hyperlink.
+
+
+
+
+
+
+
+ Plot options for a barChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show labels flag.
+
+
+
+
+
+
+
+
+
+
+ Show tick marks on the value axis
+
+
+
+
+
+
+
+
+
+
+ Show tick labels on the value axis
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Expression that will be displayed on category axis
+
+
+
+
+
+
+
+ Defines the expression for the value axis of the chart
+
+
+
+
+
+
+
+ Defines the expression for the minimum value on the domain axis.
+
+
+
+
+
+
+
+ Defines the expression for the maximum value on the domain axis.
+
+
+
+
+
+
+
+ Defines the expression for the minimum value on the range axis.
+
+
+
+
+
+
+
+ Defines the expression for the maximum value on the range axis.
+
+
+
+
+
+
+
+ Specifies the formatting of a category axis, including how to
+ draw the axis line, its label and tick mark labels. Any tick label mask
+ specified will be ignored.
+
+
+
+
+
+
+
+
+ Degrees to rotate the text labels for the category axis of the chart. Positive
+ values rotate the text clockwise and negative values rotate it counterclockwise.
+
+
+
+
+
+
+
+
+ Specifies the formatting of a value axis, including how to
+ draw the axis line, its label and tick mark labels. If a tick label mask
+ is specified it will be treated as a numeric mask.
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the general formatting settings for an axis.
+
+
+
+
+
+
+
+
+ The color to use for the caption of the axis.
+
+
+
+
+ The color to use for the label of each tick mark on the axis.
+
+
+
+
+ A formatting mask to use for the label of each tick mark on the
+ axis. Only used if the axis is time based or numeric based. For numeric
+ axes the format of the mask is described in documentation for
+ java.text.DecimalFormat
. For a date axis the
+ format used is described in java.text.SimpleDateFormat
.
+ Finally, for date axes the values "SHORT", "MEDIUM", "LONG" and
+ "FULL" can be used as described in java.text.DateFormat
.
+
+
+
+
+
+ Flag to force rendering the tick labels rotated 90 degrees.
+
+
+
+
+ The color to use when drawing the line showing the axis.
+
+
+
+
+
+
+
+ Specifies the font to use when drawing the label of an axis
+ in a chart. The label of an axis is the text that describes the axis.
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the font to use when drawing the label for each tick
+ mark on an axis in a chart.
+
+
+
+
+
+
+
+
+
+
+
+ Defines a bar chart with 3D effect
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines plot options for a bar chart with 3D effect
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show labels flag.
+
+
+
+
+
+
+
+
+
+
+ Offset on the x axis.
+
+
+
+
+ Offset on the y axis.
+
+
+
+
+
+
+
+ Defines a bar chart that uses an xyDataset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a time period dataset
+
+
+
+
+
+
+
+
+
+
+
+ Defines a time period series for a timePeriodDataset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a stacked bar chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a stacked area chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a stacked bar chart with 3D effect
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a line chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines plot options for a lineChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show lines flag.
+
+
+
+
+
+
+
+
+
+
+ Show shapes flag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a line chart that uses an xyzDataset
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines an XY type dataset
+
+
+
+
+
+
+
+
+
+
+
+ Defines a series used in an xyDataset
+
+
+
+
+
+
+
+
+
+
+
+ Auto sort values on x-axis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the expression for the value of the X axis of the chart.
+
+
+
+
+
+
+
+ Defines the value for the Y axis.
+
+
+
+
+
+
+
+ Defines an area chart.
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines rendering options for an areaChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a area chart that uses an xyDataset
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a scatter chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the plot options for a scatterChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show lines flag
+
+
+
+
+
+
+
+
+
+
+ Show shapes flag
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the expression for the label of the X axis of the chart
+
+
+
+
+
+
+
+ Defines the expression for the Y axis label of the chart
+
+
+
+
+
+
+
+ Specifies the formatting of an x axis, including how to
+ draw the axis line, its label and tick mark labels. If a tick label mask
+ is specified it will be treated as a numeric mask.
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the formatting of a y axis, including how to
+ draw the axis line, its label and tick mark labels. If a tick label mask
+ is specified it will be treated as a numeric mask.
+
+
+
+
+
+
+
+
+
+
+
+ Creates a bubble chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a dataaset used for bubbleChart
+
+
+
+
+
+
+
+
+
+
+
+ Defines a series in an xyzDataset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a bubbleChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scale options for the bubble chart items
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Expression that defines the value for the Z axis in an xyzSeries
+
+
+
+
+
+
+
+ Defines a time series dataset
+
+
+
+
+
+
+
+
+ Time period for the dataset.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a time series for timeSeriesDataset.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the expression used for a time period
+
+
+
+
+
+
+
+ Defines a time series chart.
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines plot options for a timeSeriesChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show lines flag.
+
+
+
+
+
+
+
+
+
+
+ Show shapes flag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the expression used for the time axis label
+
+
+
+
+
+
+
+ Specifies the formatting of a time axis, including how to
+ draw the axis line, its label and tick mark labels. If a tick label mask
+ is specified it will be treated as a date mask.
+
+
+
+
+
+
+
+
+
+
+
+ Defines a high-low type chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a dataset that can be used with a highLowChart.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a highLowChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show close tick flag.
+
+
+
+
+
+
+
+
+
+
+ Show open tick flag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a date expression used in timeSeriesChart
+
+
+
+
+
+
+
+ High expresion in a highLowchart.
+
+
+
+
+
+
+
+ Low expresion in a highLowchart.
+
+
+
+
+
+
+
+ Open expression for a candlestickChart
+
+
+
+
+
+
+
+ Expression for the close value for candlestickChart
+
+
+
+
+
+
+
+ Defines the volumeExpression for a highLowDataset
+
+
+
+
+
+
+
+ Creates a candlestick chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a candlestickChart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flag that enables showing volume values for a candlestickChart.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a meter chart. A meter chart plots a single value on a dial. In addition to the value being
+ plotted multiple ranges can be specified to help interpret the value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a dataset that contains a single value.
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a meterChart.
+
+
+
+
+
+
+
+
+
+
+
+ Defines the shape of the meter. The final appearance is determined by the combination of
+ this attribute and the angle
attribute. This attribute only matters when the meter
+ is using an angle over 180 degrees.
+
+ When a meter is over 180 degrees wide the space between the start and end of the meter can be filled
+ in several different ways. The best way to visualize this is to think of a twelve hour clock. If the angle of the meter is 240 degrees the
+ meter will start at 8, sweep up past 12 and down to 4. This attribute specifies how to fill the area
+ between 4 o'clock and 8 o'clock.
+
+
+
+
+
+
+
+ A straight line is drawn between the start point and the end point, and the area bounded by
+ the meter and this line is shaded with the background color.
+
+
+
+
+
+ The unused portion of the circle that describes the meter is shaded with the background color.
+
+
+
+
+ The unused portion of the circle that describes the meter is not shaded at all.
+
+
+
+
+ The unused portion of the circle that describes the meter is shaded with the background color and handled with specific dial objects.
+
+
+
+
+
+
+
+ The extent of the meter in degrees. Use 180 for a semicircle.
+
+
+
+
+ An optional string that describes the unit that the meter is displaying. This string will
+ be appended to the value.
+
+
+
+
+
+ The amount of space between values to mark as "ticks" on the face of the meter. If the meter has a data
+ range of 0-100 and the tick interval is 20, there will be 4 ticks at 20, 40, 60 and 80.
+
+
+
+
+
+ The color of meter. If meterIntervals are defined they may
+ mask this color.
+
+
+
+
+
+ The color used to draw the needle in the meter.
+
+
+
+
+ The color of the meter ticks, if any.
+
+
+
+
+ The number of major ticks on the meter scale.
+
+
+
+
+
+
+
+ Controls how the single data value is displayed in a meterChart or
+ thermometerChart.
+
+
+
+
+
+
+
+
+ The color to use when displaying the value.
+
+
+
+
+ The formatting mask to use to display the value. This mask must follow the rules
+ specified for a java.text.DecimalFormat
pattern.
+
+ This attribute is currently ignored for a meterChart.
+
+
+
+
+
+
+
+
+ Defines a numeric range, such as the bounds of chart or a section of a chart.
+
+
+
+
+
+
+
+
+
+
+
+ Describes a range of a meterChart to highlight. A typical use is to
+ divide a meter up into sections such as "normal", "warning" and "critical" and color code them.
+
+
+
+
+
+
+
+
+ The name of this region. The name will appear in the meter's legend if the legend
+ is being displayed.
+
+
+
+
+
+ The color used to shade the region in the meter. If not set the region will have no
+ visual indicator.
+
+
+
+
+
+ The alpha (transparency) of the shading for the region. The values range from 0.0
+ (completely transparent) to 1.0 (completely opaque).
+
+
+
+
+
+
+
+
+ Defines a thermometer chart. A thermometer chart plots a single value on a thermometer.
+ In addition to the value being plotted three ranges can be specified to help interpret the value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a thermometerChart.
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines where to display the textual representation of the value being displayed,
+ relative to the thermometer outline.
+
+
+
+
+
+
+ The textual value is not displayed.
+
+
+
+
+ The text value is displayed to the left of the thermometer outline.
+
+
+
+
+ The text value is displayed to the right of the thermometer outline.
+
+
+
+
+ The text value is displayed in the bulb at the bottom of the thermometer.
+
+
+
+
+
+
+
+ Deprecated. No longer used. Defines whether or not lines are drawn showing values on the thermometer.
+
+
+
+
+
+ Value lines are drawn.
+
+
+
+
+ Value lines are not drawn.
+
+
+
+
+
+
+
+ The color used to fill the thermometer.
+
+ If the value of the thermometer falls in one of the defined ranges the color specified in that range
+ will be used instead of this color.
+
+
+
+
+
+
+
+
+ Defines the low range in a thermometerChart.
+
+
+
+
+
+
+
+
+
+
+ Defines the medium range in a thermometerChart.
+
+
+
+
+
+
+
+
+
+
+ Defines the high range in a thermometerChart.
+
+
+
+
+
+
+
+
+
+
+ Definition of chart with multiple range axis, all sharing a common
+ domain axis. The domain is determined by the dataset of each nested report, and
+ they must all use the same type of dataset. The time period datasets (highLowDataset,
+ candlestickDataset and timeSeriesDataset) are considered the same and can be
+ mixed.
+
+ Each nested chart has its own range, so you can combine charts with significantly
+ different scales. Each chart will have its own axis showing its range, and it is
+ highly recommended to color the data series and the axis to match.
+
+ The plot options of the nested reports are ignored - the plot is configured via the
+ multiAxisPlot. The only exception to this is any seriesColors specified in the
+ plot of a nested report, which will be used to color a specific series in that
+ report. In this case the seriesOrder in the seriesColor is an absolute specification
+ of a series to color, not a relative ordering.
+
+
+
+
+
+
+
+
+
+
+
+
+ Plot options for a multiAxisChart.
+ The set plot options will be shared by all the charts inside this plot, and the
+ nested charts are specified via the axis tags.
+ All nested charts must share the same type of domain axis - a category, a numeric (xy)
+ or a time based axis.
+
+
+
+
+
+
+
+
+
+
+
+
+ Describes a range axis to use in a multiAxisChart. Each axis has its own range indicator and a data plot.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates where relative to the chart to display the range axis for this chart
+
+
+
+
+
+ Display the axis to the left (for charts with
+ a Vertical orientation) or top (for charts with a
+ Horizontal orientation.)
+
+
+
+
+
+ Display the axis to the right (for charts with
+ a Vertical orientation) or bottom (for charts with a
+ Horizontal orientation.)
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab definition.
+
+ To be noted that the crosstab will stretch downwards to fit the data but it will not exceed its report element width.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flag that indicates whether the column headers will be reprinted after a page break.
+
+
+
+
+
+ The column headers will be reprinted after a page break.
+
+
+
+
+ The column headers will be printed only on the page where the crosstab starts.
+
+
+
+
+
+
+
+ Flag that indicates whether the row headers will be reprinted after a crosstab column break.
+
+
+
+
+
+ The row headers will be reprinted after a crosstab column break.
+
+
+
+
+ The column headers will be printed for all rows only for the first set of columns and not after a column break.
+
+
+
+
+
+
+
+ Offset used when a column break occurs and the filling is continued on the same page.
+
+ When the crosstab columns do not fit the width, the crosstab breaks the columns and prints the ones that don't fit after printing the first set of columns for all rows.
+ This attribute is the offset to be used when continuing the printing after a column break.
+
+
+
+
+
+ The crosstab run direction.
+
+ Crosstabs can either be filled from left to right (the default) or from right to left (mainly for reports in RTL languages).
+
+ When a crosstab is filled from right to left, the crosstab contents will start from the right extremity of the crosstab element area and grow towards the left.
+
+
+
+
+
+
+ Left to right run direction.
+
+
+
+
+ Right to left run direction.
+
+
+
+
+
+
+
+
+This attribute determines whether the crosstab will break at the width set for
+the crosstab element, or whether the crosstab is to expand over this width
+(and over the page width as well).
+
+If this attribute is set to true
, the crosstab will expand towards
+the right (or towards the left if the crosstab direction is RTL) as long
+as it needs to. This would result in crosstab cells being rendered over
+the page boundary; such elements will be exported by certain grid-based
+exporters such as the HTML or XLS ones, but will not be visible in export
+formats that observe the page width, such as the PDF exporter.
+
+
+The default value of this flag is given by the
+net.sf.jasperreports.crosstab.ignore.width
+property.
+
+
+
+
+
+
+ The position of the crosstab within its element box.
+
+ By default LTR crosstabs are positions at the left of the element box, and RTL crosstabs at the right of the box.
+
+
+
+
+
+
+ The crosstab is positioned at the left of the element box.
+
+
+
+
+ The crosstab is positioned at the right of the element box.
+
+
+
+
+ The crosstab is centered withing the element box.
+
+
+
+
+
+
+
+
+
+
+ Crosstab parameter definition and value. Values from the report can only be accessed inside crosstab elements by passing them as parameters.
+
+
+
+
+
+
+
+ Name of the parameter.
+
+
+
+
+ Class of the parameter values.
+
+
+
+
+
+
+
+ Crosstab parameter value expression.
+
+
+
+
+
+
+
+ Crosstab dataset definition.
+
+
+
+
+
+
+
+ Flag that indicates whether the crosstab data is already sorted according to the row bucket expressions and group bucket expressions (in this order).
+
+ The crosstab calculation engine can optimize the calculations if the data is sorted by the row groups and column groups.
+ For example, if there are two row groups R1 and R2 (subgroup of R1) and three column groups C1, C2 and C3 the data should be sorted by R1, R2, C1, C2, C3.
+
+
+
+
+
+
+ The calculation engine will assume that the data is presorted. If the data is not presorted, the outcome is undefined.
+
+
+
+
+ The crosstab dataset data is not presorted.
+
+
+
+
+
+
+
+
+
+
+ Crosstab cell that will be rendered at the upper-left corner of the crosstab.
+
+ The cell size will be calculated based on the row/column header cell widths/heights.
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab row group definition.
+
+ Each group in the crosstab has a variable that can be used inside the group header or inside the crosstab cells as the current group value.
+ The variable has the same name as the group and the same type as the bucket expression of the group.
+
+
+
+
+
+
+
+
+
+ Group name.
+
+
+
+
+ The width of the row group header.
+
+
+
+
+ The position of the total row for this group.
+
+ A group can have a total row summing the values for all the entries in the group.
+ E.g. if there is a Year group having Month as a subgroup, the total row for the Year group would sum the values for all the years and the total row for the Month group would sum the values for all the months of an year.
+
+
+
+
+
+
+ The total row will be displayed before the group rows.
+
+
+
+
+ The total row will be displayed after the group rows.
+
+
+
+
+ The total row will not be displayed.
+
+
+
+
+
+
+
+ The position of the header contents on header span.
+
+ The row group headers stretch vertically by spanning when there are multiple sub group entries.
+ This attribute determines the way the header contents will be adjusted to the new height.
+
+
+
+
+
+ The contents will be rendered at the top of the header
+
+
+
+
+ The contents will be rendered on the center of the header
+
+
+
+
+ The contents will be rendered at the bottom of the header
+
+
+
+
+ The contents will be proportionally stretched to the new header height
+
+
+
+
+
+
+
+
+ Determines whether the header cell of this group spans across all rows in the group,
+ or whether the header cell repeats for each sub group entry.
+
+ If the header cell is set to repeat, the sub group should not have a total row.
+
+
+ By default the header cell spans across all rows that are part of the group.
+
+
+
+
+
+
+
+
+
+ Crosstab row header definition.
+
+ The size of the row header cell is computed based on the following rules:
+
+ - the width of the header is given by the width attribute of rowGroup
+ - the height of the last row group header is given by the height of the base cell
+ - the height of a non-last row group header is the sum of the next group header's height and
+ the next group total header's height (0 if the next group doesn't have a total header)
+
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab total row header definition.
+
+ The size of a row group total header is computed based on the following rules:
+
+ - the width is the sum the widths of this and subsequent row groups
+ - the height is the height of the base cell for this total row
+
+
+ The total row is only printed if the totalPosition attribute of the group is different than None.
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab column group definition.
+
+ Each group in the crosstab has a variable that can be used inside the group header or inside the crosstab cells as the current group value.
+ The variable has the same name as the group and the same type as the bucket expression of the group.
+
+
+
+
+
+
+
+
+
+
+
+ Group name.
+
+
+
+
+ The height of the column group header.
+
+
+
+
+ The position of the total column for this group.
+
+ A group can have a total column summing the values for all the entries in the group.
+ E.g. if there is a Year group having Month as a subgroup, the total column for the Year group would sum the values for all the years and the total column for the Month group would sum the values for all the months of an year.
+
+
+
+
+
+
+ The total column will be displayed before the group column.
+
+
+
+
+ The total column will be displayed after the group column.
+
+
+
+
+ The total column will not be displayed.
+
+
+
+
+
+
+
+ The position of the header contents on header span.
+
+ The column group headers stretch horizontally by spanning when there are multiple sub group entries.
+ This attribute determines the way the header contents will be adjusted to the new width.
+
+
+
+
+
+
+ The contents will be rendered on the left side of the header
+
+
+
+
+ The contents will be rendered on the center of the header
+
+
+
+
+ The contents will be rendered on the right side of the header
+
+
+
+
+ The contents will be proportionally stretched to the new header width
+
+
+
+
+
+
+
+
+ Determines whether the header cell of this group spans across all columns in the group,
+ or whether the header cell repeats for each sub group entry.
+
+ If the header cell is set to repeat, the sub group should not have a total column.
+
+
+ By default the header cell spans across all columns that are part of the group.
+
+
+
+
+
+
+
+
+
+ Crosstab column header definition.
+
+ The size of the column header cell is computed based on the following rules:
+
+ - the height of the header is given by the height attribute of columnGroup
+ - the width of the last column group header is given by the width of the base cell
+ - the width of a non-last column group header is the sum of the next group header's width and
+ the next group total header's width (0 if the next group doesn't have a total header)
+
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab total column header definition.
+
+ The size of a column group total header is computed based on the following rules:
+
+ - the height is the sum the heights of this and subsequent column groups
+ - the width is the width of the base cell for this total column
+
+
+ The total column is only printed if the totalPosition attribute of the group is different than None.
+
+
+
+
+
+
+
+
+
+
+
+ Per column group cell that will be rendered at the left of the corresponding row of column headers, potentially overlapping the crosstab header cell.
+
+ The width of the cell is the total width of row group headers, and the height is the height of the corresponding column header.
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab group bucketing information.
+
+
+
+
+
+
+
+
+
+ Class of the bucket values.
+
+
+
+
+ The bucket order type.
+
+
+
+
+
+ The buckets will be sorted in ascending order by using the specified comparator or by the natural order if no comparator specified.
+
+
+
+
+ The buckets will be sorted in descending order by using the specified comparator or by the natural order if no comparator specified.
+
+
+
+
+ The buckets will preserve the order in which the data is fed to the crosstab.
+
+
+
+
+
+
+
+
+
+
+ Crosstab group bucketing expression.
+
+
+
+
+
+
+
+
+
+ Expression that provides order by values for group buckets.
+ If not set, the bucket values as returned by bucketExpression are used to order the buckets.
+
+ The expression is evaluated in the context of the crosstab group and can reference measure variables, which evaluate to group totals.
+
+
+
+
+
+
+
+
+
+
+ Crosstab group bucket comparator expression.
+
+ The result of this expression is used to sort the buckets, in ascending or descending order.
+ If the bucket has an order by expression, the comparator will be used to compare values as produced by that expression.
+ If no comparator expression is specified, the natural order will be used.
+
+
+
+
+
+
+
+
+
+ Crosstab measure definition.
+
+ A measure is a value accumulated by the crosstab calculation engine and displayed in the crosstab data cells.
+
+ Each measure in the crosstab has a variable that can be used inside the data cells as the current measure value.
+ The variable has the same name and type as the measure.
+
+ Variables representing totals at different levels are also available. The names of these variables are:
+
+ - <Measure>_<Row/Column Group>_ALL - the total for the column/row group
+ - <Measure>_<Row Group>_<Column Group>_ALL - the combined total for the column and row groups
+
+
+ For instance, if one defines "Year" and "Month" column groups, a "City" row group and a "Sales" measure, then:
+
+ - Sales_Month_ALL will hold the total for all months (i.e. for one year)
+ - Sales_City_Month_ALL will hold the total for all months (one year) and all cities
+ - Sales_City_Year_ALL will hold the grand total
+
+
+
+
+
+
+
+
+
+ Measure name.
+
+
+
+
+ The measure values class.
+
+
+
+
+ The calculation type to be performed on the measure values.
+
+
+
+
+ The name of a class that implements the net.sf.jasperreports.engine.fill.JRIncrementerFactory
interface to use when creating the incrementer instance for this measure. Incrementers are objects that implement the net.sf.jasperreports.engine.fill.JRIncrementer
interface and handle the incremental calculation performed on the measure's current value with every entry in the crosstab dataset.
+
+
+
+
+ The percentage calculation type performed on this measure.
+
+ If percentage calculation is required, the value class should be one of the built-in supported percentage types or the percentage calculator class should be specified.
+ The classes with built-in support are java.lang.Float
, java.lang.Double
, java.lang.Byte
, java.lang.Short
, java.lang.Integer
, java.lang.Long
, java.math.BigDecimal
and java.math.BigInteger
.
+
+
+
+
+
+
+ The value will not be calculated as a percentage
+
+
+
+
+ The value will be calculated as percentage of the grand total value
+
+
+
+
+
+
+
+ The percentage calcualtor class name.
+
+ The class should implement the net.sf.jasperreports.crosstabs.fill.JRPercentageCalculator
interface.
+
+
+
+
+
+
+
+
+
+
+ No calculations are performed.
+
+
+
+
+ The measure stores the number of the not null
+ values.
+
+
+
+
+ The measure stores the number of distinct not null
+ values.
+
+
+
+
+ The measure stores the sum of the not null values.
+ Numeric measures only.
+
+
+
+
+ The measure stores the average of the not null
+ values. Numeric measures only.
+
+
+
+
+ The measure stores the lowest value.
+
+
+
+
+ The measure stores the highest value.
+
+
+
+
+
+ The measure stores the standard deviation of the not
+ null values. Numeric measures only.
+
+
+
+
+ The measure stores the variance of the not null
+ values. Numeric measures only.
+
+
+
+
+ The measure stores the first value encountered and
+ ignores subsequent values.
+
+
+
+
+
+
+
+ Crosstab measure expression.
+
+
+
+
+
+
+
+ Crosstab data cell definition.
+
+ A crosstab can have multiple data cells for row/groups totals. Attributes rowTotalGroup and columnTotalGroup are used to specify that the cell corresponds to a total row/column.
+
+ E.g. if the crosstab has Country and City (subgroup of Country) row groups and Year and Month column groups, one can specify the following cells:
+
+ - no rowTotalGroup and columnTotalGroup - the crosstab base cell (total for a city and a year)
+ - columnTotalGroup="Month" - total for a city and a year
+ - columnTotalGroup="Year" - total for a city and all years
+ - rowTotalGroup="City" - total for all cities of a country and a month
+ - rowTotalGroup="City" columnTotalGroup="Month" - total for all cities of a country and a year
+ - rowTotalGroup="City" columnTotalGroup="Year" - total for all cities of a country and all years
+ - rowTotalGroup="Country" - total for all countries and a month
+ - rowTotalGroup="Country" columnTotalGroup="Month" - total for all countries and a year
+ - rowTotalGroup="Country" columnTotalGroup="Year" - grand total
+
+
+ If the data cell for a total row/column is not specified, the cell will be inherited from lower level cells, if possible.
+ For example, if the "total for all countries and a year" cell is not specified, the "total for a country and a year" or "total for a city and a year" cell will be used (in this order).
+
+ The data cell sizes are calculated from the base data cell sizes, i.e. the height of all data cells for a row will be the height of the base cell of that row.
+ The base cell sizes are also inherited, e.g. if the height of a total row is not specified the height of the base row will be used.
+
+
+
+
+
+
+
+
+ Crosstab cell width.
+
+ The width should be specified only for the base cell of a column (the one with no rowTotalGroup).
+
+
+
+
+
+ Crosstab cell height.
+
+ The height should be specified only for the base cell of a row (the one with no columnTotalGroup).
+
+
+
+
+
+ If this cell corresponds to a total row, this attribute should specify the name of the corresponding row group.
+ The attribute should not be specified if the cell corresponds to a base (not total) row.
+
+
+
+
+
+ If this cell corresponds to a total column, this attribute should specify the name of the corresponding column group.
+ The attribute should not be specified if the cell corresponds to a base (not total) column.
+
+
+
+
+
+
+
+
+ Crosstab header or data cell contents.
+
+ There are some restrictions/rules regarding crosstab cells:
+
+ - Subreports, crosstabs and charts are not allowed.
+ - Delayed evaluation for text fields and images is not allowed.
+ - Cells cannot split on multiple pages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Crosstab cell background color.
+
+ The cell is filled with the background color only if the cell has opaque mode.
+
+
+
+
+
+ Crosstab cell transparency mode.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the report level style to use (see style element).
+
+ The style is only used for cell background and borders and is not inherited by elements inside the cell.
+
+
+
+
+
+
+
+
+ Crosstab cell that will be rendered when no data was fed to the crosstab.
+
+ If this cell is not specified for a crosstab, nothing will be rendered for an empty crosstab.
+
+ The cell size is the same as the crosstab element size.
+
+
+
+
+
+
+
+
+
+
+
+ A frame is a report element that contains sub elements. It has a backgroud, a border and it stretches to accommodate its content.
+
+ For the Graphics2D and PDF exporters, a frame is equivalent to a rectangle placed behind a group of elements.
+ The HTML exporter creates sub-tables for frames and the XLS exporter includes the frame sub elements into the grid.
+
+ For elements inside a frame, the coordinates, positionType and stretchType properties and relative to the frame instead of the band.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the way the frame border is to be drawn when the frame element splits.
+
+
+
+
+
+ When the frame splits, the bottom border of the first fragment and the top border of the second fragment are not drawn.
+
+
+
+
+ When the frame splits, both fragments are drawn will borders and paddings on all sides.
+
+
+
+
+
+
+
+
+
+
+ Defines a gantt chart
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines an gantt type dataset
+
+
+
+
+
+
+
+
+
+
+
+ Defines a gantt series for a ganttDataset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the expression used to determine tasks in a ganttSeries.
+
+
+
+
+
+
+
+ Specifies the expression used to determine subtasks in a ganttSeries.
+
+
+
+
+
+
+
+ Specifies the expression used to determine the percent in a ganttSeries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates the specific <valueExpression>
tag for generic element parameters. Unlike other <valueExpression>
elements, it contains a class
attribute.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class of the bucket values.
+
+
+
+
+ The bucket order type.
+
+
+
+
+
+ The buckets will be sorted in ascending order by using the specified comparator or by the natural order if no comparator specified.
+
+
+
+
+ The buckets will be sorted in descending order by using the specified comparator or by the natural order if no comparator specified.
+
+
+
+
+ No sorting of bucket values will be performed, the buckets will show in the order the values come from the dataset.
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the bucket property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nbproject/project.properties b/nbproject/project.properties
new file mode 100644
index 0000000..a81dcdf
--- /dev/null
+++ b/nbproject/project.properties
@@ -0,0 +1,127 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=DBD_LCD
+application.vendor=user
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.modulepath=\
+ ${run.modulepath}
+debug.test.classpath=\
+ ${run.test.classpath}
+debug.test.modulepath=\
+ ${run.test.modulepath}
+# Files in build.classes.dir which should be excluded from distribution jar
+dist.archive.excludes=
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/DBD_LCD.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+file.reference.commons-beanutils-1.9.0.jar=lib\\commons-beanutils-1.9.0.jar
+file.reference.commons-collections-3.2.1.jar=lib\\commons-collections-3.2.1.jar
+file.reference.commons-digester-2.1.jar=lib\\commons-digester-2.1.jar
+file.reference.commons-logging-1.1.1.jar=lib\\commons-logging-1.1.1.jar
+file.reference.groovy-all-2.0.1.jar=lib\\groovy-all-2.0.1.jar
+file.reference.itext-pdfa-5.5.0.jar=lib\\itext-pdfa-5.5.0.jar
+file.reference.itextpdf-5.5.0.jar=lib\\itextpdf-5.5.0.jar
+file.reference.jasperreports-6.6.0.jar=lib\\jasperreports-6.6.0.jar
+file.reference.mysql-connector-java-8.0.13.jar=lib\\mysql-connector-java-8.0.13.jar
+includes=**
+jar.archive.disabled=${jnlp.enabled}
+jar.compress=false
+jar.index=${jnlp.enabled}
+javac.classpath=\
+ ${libs.absolutelayout.classpath}:\
+ ${libs.beans-binding.classpath}:\
+ ${file.reference.mysql-connector-java-8.0.13.jar}:\
+ ${file.reference.jasperreports-6.6.0.jar}:\
+ ${file.reference.commons-beanutils-1.9.0.jar}:\
+ ${file.reference.commons-collections-3.2.1.jar}:\
+ ${file.reference.commons-digester-2.1.jar}:\
+ ${file.reference.commons-logging-1.1.1.jar}:\
+ ${file.reference.groovy-all-2.0.1.jar}:\
+ ${file.reference.itext-pdfa-5.5.0.jar}:\
+ ${file.reference.itextpdf-5.5.0.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.external.vm=true
+javac.modulepath=
+javac.processormodulepath=
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.8
+javac.target=1.8
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.modulepath=\
+ ${javac.modulepath}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+jnlp.codebase.type=no.codebase
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.mixed.code=default
+jnlp.offline-allowed=false
+jnlp.signed=false
+jnlp.signing=
+jnlp.signing.alias=
+jnlp.signing.keystore=
+main.class=dbd_lcd.Main
+# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
+manifest.custom.application.library.allowable.codebase=
+# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
+manifest.custom.caller.allowable.codebase=
+# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
+manifest.custom.codebase=
+# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
+manifest.custom.permissions=
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=
+run.modulepath=\
+ ${javac.modulepath}
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+run.test.modulepath=\
+ ${javac.test.modulepath}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100644
index 0000000..fd835c1
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,15 @@
+
+
+ org.netbeans.modules.java.j2seproject
+
+
+ DBD_LCD
+
+
+
+
+
+
+
+
+
diff --git a/run.bat b/run.bat
new file mode 100644
index 0000000..e011bcc
--- /dev/null
+++ b/run.bat
@@ -0,0 +1,2 @@
+java -jar dist/DBD_LCD.jar
+pause
\ No newline at end of file
diff --git a/src/dbd_lcd/Config.java b/src/dbd_lcd/Config.java
new file mode 100644
index 0000000..a81bb0d
--- /dev/null
+++ b/src/dbd_lcd/Config.java
@@ -0,0 +1,68 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd;
+
+import java.util.HashMap;
+import java.util.Properties;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ *
+ * @author user
+ */
+public class Config {
+ private static Properties config = new Properties();
+
+ private static final String CONFIG_FILE_PATH = "./config.properties";
+
+ public static void init(){
+ config.put("CONNECTION_STRING", "jdbc:mysql://%s/%s");
+ config.put("DATABASE_SERVER", "localhost");
+ config.put("DATABASE_NAME", "lcddbd");
+ config.put("DATABASE_USERNAME", "client");
+ config.put("DATABASE_PASSWORD", "asdfasdf");
+ config.put("TIME_FORMAT", "HH:mm");
+ config.put("DATE_FORMAT", "dd/MM/yyyy");
+ config.put("DATETIME_FORMAT", "dd/MM/yyyy HH:mm");
+ config.put("YES", "Ya");
+ config.put("NO", "Tidak");
+ config.put("FIRST_RUN", "0");
+ load();
+ }
+
+ public static String get(String property){
+ return (String)config.get(property);
+ }
+
+ public static void set(String property, String value){
+ config.put(property, value);
+ save();
+ }
+
+ public static void save(){
+ try{
+ config.store(new FileOutputStream(CONFIG_FILE_PATH), "Config Program Peminjaman LCD");
+ }catch(IOException ex){
+ Util.handleError(null, ex);
+ }
+ }
+
+ public static void load(){
+ try{
+ config.load(new FileInputStream(CONFIG_FILE_PATH));
+ System.out.println("Run dir: " + System.getProperty("user.dir"));
+ System.out.println(config);
+ }catch(IOException ex){
+ ex.printStackTrace();
+ Util.showNotification(null, "Not found", "Config file not found. Creating one...");
+ }finally{
+ save();
+ }
+ }
+}
diff --git a/src/dbd_lcd/Main.java b/src/dbd_lcd/Main.java
new file mode 100644
index 0000000..071a5d9
--- /dev/null
+++ b/src/dbd_lcd/Main.java
@@ -0,0 +1,60 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd;
+
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.gui.form.DialogKonfirmasi;
+import dbd_lcd.gui.form.TampilanUtama;
+import dbd_lcd.gui.form.install.SetupFrameExisting;
+import dbd_lcd.gui.form.install.SetupFrameNew;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.IdBarang;
+import java.sql.Timestamp;
+import java.util.HashSet;
+
+/**
+ *
+ * @author user
+ */
+public class Main {
+
+ public static void main(String args[]) {
+ Config.init();
+ if("0".equals(Config.get("FIRST_RUN"))){
+ DialogKonfirmasi dk = new DialogKonfirmasi();
+ dk.setTitle("First run");
+ dk.setQuestion("Program mendeteksi ini sebagai penggunaan pertama. Apa ini benar-benar penggunaan pertama, database belum dibuat, dan Anda ingin membuat database baru?");
+ dk.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ MyFrame popup = null;
+ if(success){
+ popup = new SetupFrameNew();
+ }else{
+ popup = new SetupFrameExisting();
+ }
+ popup.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ dk.setOnDispose(null);
+ dk.dispose();
+ main(args);
+ }
+ return true;
+ }
+ });
+ dk.setPopup(popup);
+ return false;
+ }
+ });
+ dk.setLocationRelativeTo(null);
+ dk.setVisible(true);
+ return;
+ }
+ TampilanUtama.main(args);
+ }
+}
diff --git a/src/dbd_lcd/PopupRunnable.java b/src/dbd_lcd/PopupRunnable.java
new file mode 100644
index 0000000..06bd71e
--- /dev/null
+++ b/src/dbd_lcd/PopupRunnable.java
@@ -0,0 +1,14 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd;
+
+/**
+ *
+ * @author user
+ */
+public interface PopupRunnable {
+ public boolean run(boolean success);
+}
diff --git a/src/dbd_lcd/RequireLoginRunnable.java b/src/dbd_lcd/RequireLoginRunnable.java
new file mode 100644
index 0000000..59e2267
--- /dev/null
+++ b/src/dbd_lcd/RequireLoginRunnable.java
@@ -0,0 +1,36 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd;
+
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.structs.Barang;
+
+/**
+ *
+ * @author user
+ */
+public abstract class RequireLoginRunnable implements PopupRunnable{
+
+ @Override
+ public final boolean run(boolean success){
+ if(success){
+ FormLogin.cekDanMintaSesi(MyFrame.top, new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ onLogin();
+ }
+ return true;
+ }
+ });
+ return false;
+ }
+ return true;
+ }
+
+ public abstract void onLogin();
+}
diff --git a/src/dbd_lcd/Util.java b/src/dbd_lcd/Util.java
new file mode 100644
index 0000000..230fb94
--- /dev/null
+++ b/src/dbd_lcd/Util.java
@@ -0,0 +1,321 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd;
+import dbd_lcd.database.Database;
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.report.MyJasperViewer;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.IdBarang;
+import java.awt.Component;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.math.BigInteger;
+import java.nio.charset.StandardCharsets;
+import javax.swing.JOptionPane;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import javax.swing.JTable;
+import net.sf.jasperreports.engine.JRException;
+import net.sf.jasperreports.engine.JasperCompileManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
+import net.sf.jasperreports.view.JasperViewer;
+/**
+ *
+ * @author Lenovo2
+ */
+public class Util {
+ public static String[] MONTH = new String[]{
+ "Januari",
+ "Februari",
+ "Maret",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Agustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+ };
+ public static class Color{
+ public static final java.awt.Color GREEN_LIGHT = new java.awt.Color (150, 255, 150);
+ public static final java.awt.Color RED_LIGHT = new java.awt.Color (255, 150, 150);
+ public static final java.awt.Color YELLOW_LIGHT = new java.awt.Color (255, 255, 150);
+ public static final java.awt.Color WHITE_LIGHT = new java.awt.Color (255, 255, 255);
+
+ public static final java.awt.Color GREEN_DARK = new java.awt.Color (100, 180, 100);
+ public static final java.awt.Color RED_DARK = new java.awt.Color (255, 100, 100);
+ public static final java.awt.Color YELLOW_DARK = new java.awt.Color (155, 155, 100);
+ public static final java.awt.Color WHITE_DARK = new java.awt.Color (100, 100, 100);
+ }
+ public static class ColorPack{
+ public static final ColorPack GREEN = new ColorPack(Color.GREEN_LIGHT, Color.GREEN_DARK);
+ public static final ColorPack RED = new ColorPack(Color.RED_LIGHT, Color.RED_DARK);
+ public static final ColorPack YELLOW = new ColorPack(Color.YELLOW_LIGHT, Color.YELLOW_DARK);
+ public static final ColorPack WHITE = new ColorPack(Color.WHITE_LIGHT, Color.WHITE_DARK);
+
+ public ColorPack(java.awt.Color light, java.awt.Color dark){
+ this.light = light;
+ this.dark = dark;
+ }
+
+ public java.awt.Color light;
+ public java.awt.Color dark;
+
+ public java.awt.Color get(boolean selected){
+ if(selected) return dark;
+ else return light;
+ }
+ }
+ public static SimpleDateFormat getTimeFormat(){
+ return new SimpleDateFormat(Config.get("TIME_FORMAT"));
+ }
+ public static SimpleDateFormat getDateFormat(){
+ return new SimpleDateFormat(Config.get("DATE_FORMAT"));
+ }
+ public static SimpleDateFormat getDateTimeFormat(){
+ return new SimpleDateFormat(Config.get("DATETIME_FORMAT"));
+ }
+ public static String[] getBooleanCBString(){
+ return new String[]{"", Config.get("YES"), Config.get("NO")};
+ }
+ public static void showError(MyFrame context, String title, String text){
+ JOptionPane.showMessageDialog(context, text, title, JOptionPane.ERROR_MESSAGE);
+ }
+ public static void showNotification(MyFrame context, String title, String text){
+ JOptionPane.showMessageDialog(context, text, title, JOptionPane.INFORMATION_MESSAGE);
+ }
+ public static String md5(String source){
+ try{
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(StandardCharsets.UTF_8.encode(source));
+ md.update(source.getBytes());
+ byte[] digest = md.digest();
+ String myHash = String.format("%032x", new BigInteger(1, digest));
+ return myHash;
+ }catch(NoSuchAlgorithmException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public static Timestamp now(){
+ Calendar calendar = Calendar.getInstance();
+ Timestamp currentTimestamp = new Timestamp(calendar.getTimeInMillis());
+ return currentTimestamp;
+ }
+ public static Timestamp addMinute(Timestamp time, int minute){
+ return new Timestamp(time.getTime() + (1000 * 60 * minute));
+ }
+ public static boolean isNullOrEmpty(String s){
+ return s == null || s.trim().isEmpty();
+ }
+ public static String preparePhoneNumber(String number){
+ if(isNullOrEmpty(number)) return null;
+ return number.replace("\\-", "").replace("\\+62", "").replace("\\)", "").replace("\\(", "").replace(" ", "").trim();
+ }
+ public static String prepareFilter(String s){
+ if(isNullOrEmpty(s)) return null;
+ return String.format("%%%s%%", s);
+ }
+ public static String nullify(String s){
+ if(isNullOrEmpty(s)) return null;
+ return s.trim();
+ }
+ public static void handleError(MyFrame context, Exception exception){
+ exception.printStackTrace();
+ showError(context, "Error", exception.getLocalizedMessage());
+ }
+ public static void handleException(MyFrame context, Exception exception){
+ handleError(context, exception);
+ }
+ public static String formatDate(Date datetime){
+ if(datetime == null) return "";
+ return new SimpleDateFormat("dd/MM/yyyy").format(datetime);
+ }
+ public static boolean contains (T[] arr, T val){
+ return Arrays.asList(arr).contains(val);
+ }
+ public static String formatTime(Date datetime){
+ if(datetime == null) return "";
+ return getTimeFormat().format(datetime);
+ }
+ public static String formatDateTime(Date datetime){
+ if(datetime == null) return "";
+ return getDateTimeFormat().format(datetime);
+ }
+ public static Timestamp parseDateTime(String datetime){
+ if(datetime == null) return null;
+ try{
+ Date parsedDateTime = getDateTimeFormat().parse(datetime.trim());
+ Timestamp timestamp = new java.sql.Timestamp(parsedDateTime.getTime());
+ return timestamp;
+ }catch(ParseException ex){
+ ex.printStackTrace();
+ throw new RuntimeException(ex);
+ }
+ }
+ public static Timestamp parseTime(String time){
+ if(time == null) return null;
+ try{
+ return Util.parseDateTime(time);
+ }catch(Exception ex){
+ return parseDateTime(formatDate(now()) + " " + time.trim());
+ }
+ }
+ public boolean inRange(int x, int min, int max){
+ return min <= x && x <= max;
+ }
+ public static boolean contains(final int[] arr, final int key) {
+ return Arrays.stream(arr).anyMatch(i -> i == key);
+ }
+ public static String stringify(String s){
+ if(s == null) return "";
+ return s.trim();
+ }
+ public static String stringify(Integer i){
+ if(i == null) return "";
+ return i.toString();
+ }
+ public static String stringify(Boolean b){
+ if(b == null) return "";
+ return b ? Config.get("YES") : Config.get("NO");
+ }
+ public static Boolean booleanify(String b){
+ if(isNullOrEmpty(b)) return null;
+ b = b.trim();
+ if(Config.get("YES").equalsIgnoreCase(b)) return true;
+ if(Config.get("NO").equalsIgnoreCase(b)) return false;
+ if(Boolean.TRUE.toString().equalsIgnoreCase(b)) return true;
+ if(Boolean.FALSE.toString().equalsIgnoreCase(b)) return false;
+ throw new RuntimeException("Invalid string");
+ }
+ public static Integer integerify(String s){
+ if(isNullOrEmpty(s)) return null;
+ return Integer.valueOf(s.trim());
+ }
+
+ public static Barang readBarang(JTable table, int i){
+ String tipeString = Util.nullify((String)table.getValueAt(i, 0));
+ String tipe = null;
+ try{
+ tipe = Barang.Tipe.FROM_STRING.get(tipeString);
+ }catch(Exception ex){
+ ex.printStackTrace();
+ throw new RuntimeException(String.format("Barang ke-%d tidak valid", i+1));
+ }
+ if(tipe == null) throw new RuntimeException(String.format("Barang ke-%d tidak valid", i+1));
+ int nomor = -1;
+ try{
+ nomor = (Integer)table.getValueAt(i, 1);
+ }catch(Exception ex){
+ ex.printStackTrace();
+ throw new RuntimeException(String.format("Barang ke-%d tidak valid", i+1));
+ }
+ IdBarang id = new IdBarang(nomor, tipe);
+ Barang b = new Barang(id, Barang.Status.DIPINJAM, null, null);
+ return b;
+ }
+ public static boolean equals(Object a, Object b){
+ return a == b || (a != null && a.equals(b));
+ }
+ public static Object determineReturnDateClass(Object value, boolean cellEditable){
+ if(cellEditable){
+ if(value instanceof Date){
+ return Boolean.TRUE;
+ }else if (value == null){
+ return Boolean.FALSE;
+ }
+ }else{
+ if(value instanceof Date){
+ return Util.formatDateTime((Date)value);
+ }
+ }
+ return (Boolean)value;
+ }
+ public static String readSQL(String name){
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(
+ Util.class.getResourceAsStream(
+ String.format("/dbd_lcd/database/sql/%s.sql", name)
+ )
+ )
+ );
+ StringBuffer fileData = new StringBuffer();
+ char[] buf = new char[1024];
+ int numRead=0;
+ try{
+ while((numRead=reader.read(buf)) != -1){
+ String readData = String.valueOf(buf, 0, numRead);
+ fileData.append(readData);
+ }
+ reader.close();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ throw new RuntimeException(ex.getMessage());
+ }
+ String file = fileData.toString();
+
+ return file;
+ }
+
+ public static String[] parseSQL(String name){
+ String file = readSQL(name);
+
+ String line;
+ StringBuffer fileData = new StringBuffer();
+ List statements = new LinkedList();
+ String[] byDelimiters = file.split("DELIMITER ");
+ boolean first = true;
+ String delimiter = ";";
+ for(String s : byDelimiters){
+ if(!first){
+ String[] s1 = s.split("\n", 1);
+ String del = s1[0].trim();
+ if(del.equals(";")){
+
+ }else{
+ s = s1[1];
+ }
+ }
+ }
+ return statements.toArray(new String[0]);
+ }
+
+ public static MyJasperViewer viewReport(String reportName, Map parameters){
+ try{
+ JasperReport jasperReport = JasperCompileManager.compileReport(
+ ClassLoader.class.getResourceAsStream(
+ String.format("/dbd_lcd/report/jrxml/%s.jrxml", reportName)
+ )
+ );
+
+ JasperPrint jasperPrint = JasperFillManager.fillReport(
+ jasperReport,
+ parameters,
+ Database.getConnection().getConnectionRaw()
+ );
+ return new MyJasperViewer(jasperPrint);
+ }catch(JRException ex){
+ ex.printStackTrace();
+
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+}
diff --git a/src/dbd_lcd/database/CallableStatement.java b/src/dbd_lcd/database/CallableStatement.java
new file mode 100644
index 0000000..3b13d9d
--- /dev/null
+++ b/src/dbd_lcd/database/CallableStatement.java
@@ -0,0 +1,200 @@
+/*
+ * To change this license header, choose License Headestatement in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.database;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class CallableStatement extends PreparedStatement{
+ Database parent;
+ java.sql.CallableStatement statement;
+
+ CallableStatement(Database parent, java.sql.CallableStatement statement){
+ super(parent, statement);
+ this.parent = parent;
+ this.statement = statement;
+ }
+
+ public void registerOutParameter(int index, java.sql.SQLType type){
+ try{
+ statement.registerOutParameter(index, type);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void registerOutParameter(int index, int type){
+ try{
+ statement.registerOutParameter(index, type);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void registerOutParameter(String name, java.sql.SQLType type){
+ try{
+ statement.registerOutParameter(name, type);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void registerOutParameter(String name, int type){
+ try{
+ statement.registerOutParameter(name, type);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void close() {
+ try{
+ statement.close();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }finally{
+ parent.close();
+ }
+ }
+
+ public boolean isNull(int index){
+ try{
+ return statement.getObject(index) == null;
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public boolean isNull(String name){
+ try{
+ return statement.getObject(name) == null;
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Integer getInt(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getInt(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Integer getInt(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getInt(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public Long getLong(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getLong(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public Long getLong(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getLong(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public String getString(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getString(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public String getString(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getString(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Boolean getBoolean(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getBoolean(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public Boolean getBoolean(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getBoolean(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Date getDate(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getDate(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Date getDate(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getDate(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Time getTime(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getTime(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Time getTime(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getTime(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Timestamp getDateTime(int index){
+ try{
+ if(isNull(index)) return null;
+ else return statement.getTimestamp(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Timestamp getDateTime(String name){
+ try{
+ if(isNull(name)) return null;
+ else return statement.getTimestamp(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+}
diff --git a/src/dbd_lcd/database/Database.java b/src/dbd_lcd/database/Database.java
new file mode 100644
index 0000000..69143c1
--- /dev/null
+++ b/src/dbd_lcd/database/Database.java
@@ -0,0 +1,92 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.database;
+
+import dbd_lcd.Config;
+import java.sql.SQLException;
+import dbd_lcd.Util;
+import java.util.Properties;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class Database implements AutoCloseable{
+
+ java.sql.Connection conn = null;
+
+ private static String getConnectionString(){
+ return String.format(Config.get("CONNECTION_STRING"), Config.get("DATABASE_SERVER"), Config.get("DATABASE_NAME"));
+ }
+
+ private static String getUsername(){
+ return Config.get("DATABASE_USERNAME");
+ }
+
+ private static String getPassword(){
+ return Config.get("DATABASE_PASSWORD");
+ }
+
+ public static Database getConnection(){
+ Database ret = new Database();
+ ret.open();
+ return ret;
+ }
+
+ public java.sql.Connection getConnectionRaw(){
+ return conn;
+ }
+
+
+ public static PreparedStatement prepareStatement(String sql){
+ try{
+ Database conn = getConnection();
+ return new PreparedStatement(conn, conn.conn.prepareStatement(sql));
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex);
+ }
+ }
+
+ public static CallableStatement prepareCall(String sql){
+ try{
+ Database conn = getConnection();
+ return new CallableStatement(conn, conn.conn.prepareCall(sql));
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex);
+ }
+ }
+
+ public void open() {
+ try{
+ Class.forName("com.mysql.jdbc.Driver");
+ Properties props = new Properties();
+ props.setProperty("user", getUsername());
+ props.setProperty("password", getPassword());
+ props.setProperty("noAccessToProcedureBodies", "true");
+ props.setProperty("allowMultiQueries", "true");
+ conn = java.sql.DriverManager.getConnection(getConnectionString(), props);
+ }catch(ClassNotFoundException | SQLException ex){
+ conn = null;
+ ex.printStackTrace();
+ Util.showError(null, "Fatal Error", "Tidak dapat menyambung ke database.\nDetail:\n" + ex.getMessage());
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void close(){
+ try{
+ if(conn != null){
+ conn.close();
+ }
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }finally{
+ conn = null;
+ }
+ }
+
+
+}
diff --git a/src/dbd_lcd/database/PreparedStatement.java b/src/dbd_lcd/database/PreparedStatement.java
new file mode 100644
index 0000000..c5601d7
--- /dev/null
+++ b/src/dbd_lcd/database/PreparedStatement.java
@@ -0,0 +1,196 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.database;
+
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class PreparedStatement implements AutoCloseable {
+
+ Database parent;
+ java.sql.PreparedStatement statement;
+
+ PreparedStatement(Database parent, java.sql.PreparedStatement statement){
+ this.statement = statement;
+ this.parent = parent;
+ }
+
+ public void setNull(int index, int type){
+ try{
+ statement.setNull(index, type);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public int getUpdateCount(){
+ try{
+ return statement.getUpdateCount();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public boolean execute(){
+ try{
+ return statement.execute();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public ResultSet getResultSet(){
+ try{
+ return new ResultSet(this, statement.getResultSet());
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public ResultSet getGeneratedKeys(){
+ try{
+ return new ResultSet(this, statement.getGeneratedKeys());
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void close() {
+ try{
+ statement.close();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }finally{
+ parent.close();
+ }
+ }
+
+ public void setString(int parameterIndex, String x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.VARCHAR);
+ else statement.setString(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void setBoolean(int parameterIndex, Boolean x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.BOOLEAN);
+ else statement.setBoolean(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setInt(int parameterIndex, Integer x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.INTEGER);
+ else statement.setInt(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setLong(int parameterIndex, Long x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.BIGINT);
+ else statement.setLong(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public void setFloat(int parameterIndex, Float x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.FLOAT);
+ else statement.setFloat(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setDouble(int parameterIndex, Double x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.DOUBLE);
+ else statement.setDouble(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setTime(int parameterIndex, java.sql.Time x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.TIME);
+ else statement.setTime(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.TIME);
+ else statement.setTime(parameterIndex, x, cal);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setDateTime(int parameterIndex, java.sql.Timestamp x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.TIMESTAMP);
+ else statement.setTimestamp(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void setDateTime(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.TIMESTAMP);
+ else statement.setTimestamp(parameterIndex, x, cal);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void setDate(int parameterIndex, java.sql.Date x){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.DATE);
+ else statement.setDate(parameterIndex, x);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar c){
+ try{
+ if(x == null) statement.setNull(parameterIndex, java.sql.Types.DATE);
+ else statement.setDate(parameterIndex, x, c);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public ResultSet executeQuery() {
+ try{
+ return new ResultSet(this, statement.executeQuery());
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public int executeUpdate() {
+ try{
+
+ return statement.executeUpdate();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+}
diff --git a/src/dbd_lcd/database/ResultSet.java b/src/dbd_lcd/database/ResultSet.java
new file mode 100644
index 0000000..57f614e
--- /dev/null
+++ b/src/dbd_lcd/database/ResultSet.java
@@ -0,0 +1,178 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.database;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class ResultSet implements AutoCloseable {
+ PreparedStatement parent;
+ java.sql.ResultSet rs;
+
+ ResultSet(PreparedStatement parent, java.sql.ResultSet rs){
+ this.parent = parent;
+ this.rs = rs;
+ }
+
+ public boolean next(){
+ try{
+ return rs.next();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public boolean isNull(int index){
+ try{
+ return rs.getObject(index) == null;
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public boolean isNull(String name){
+ try{
+ return rs.getObject(name) == null;
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Integer getInt(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getInt(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Integer getInt(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getInt(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public Long getLong(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getLong(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public Long getLong(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getLong(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+
+ public String getString(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getString(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public String getString(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getString(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public Boolean getBoolean(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getBoolean(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public Boolean getBoolean(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getBoolean(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Date getDate(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getDate(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Date getDate(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getDate(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Time getTime(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getTime(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Time getTime(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getTime(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public java.sql.Timestamp getDateTime(int index){
+ try{
+ if(isNull(index)) return null;
+ else return rs.getTimestamp(index);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+ public java.sql.Timestamp getDateTime(String name){
+ try{
+ if(isNull(name)) return null;
+ else return rs.getTimestamp(name);
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ public void close(){
+ try{
+ rs.close();
+ }catch(java.sql.SQLException ex){
+ throw new RuntimeException(ex.getMessage());
+ }finally{
+ //parent.close();
+ }
+ }
+}
diff --git a/src/dbd_lcd/database/sql/crebas.sql b/src/dbd_lcd/database/sql/crebas.sql
new file mode 100644
index 0000000..9ce5880
--- /dev/null
+++ b/src/dbd_lcd/database/sql/crebas.sql
@@ -0,0 +1,1079 @@
+/*==============================================================*/
+/* DBMS name: MySQL 5.0 */
+/* Created on: 04/01/2019 8:14:11 */
+/*==============================================================*/
+
+
+/*==============================================================*/
+/* Table: BARANG */
+/*==============================================================*/
+create table BARANG
+(
+ TIPE_BARANG char(1) not null comment '',
+ NOMOR_BARANG int not null comment '',
+ primary key (TIPE_BARANG, NOMOR_BARANG)
+);
+
+/*==============================================================*/
+/* Table: KEPERLUAN_PINJAM */
+/*==============================================================*/
+create table KEPERLUAN_PINJAM
+(
+ ID_KEPERLUAN_PINJAM int not null auto_increment comment '',
+ NOMOR_PEMINJAMAN int not null comment '',
+ KEPERLUAN_PINJAM varchar(64) not null comment '',
+ NAMA_PENANGGUNG_JAWAB varchar(64) not null comment '',
+ RUANG_PINJAM varchar(64) not null comment '',
+ WAKTU_MULAI datetime not null comment '',
+ WAKTU_SELESAI datetime not null comment '',
+ primary key (ID_KEPERLUAN_PINJAM)
+);
+
+/*==============================================================*/
+/* Table: PEMINJAM */
+/*==============================================================*/
+create table PEMINJAM
+(
+ IDENTITAS_PEMINJAM varchar(18) not null comment '',
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NAMA_PEMINJAM varchar(64) not null comment '',
+ ALAMAT_PEMINJAM varchar(256) not null comment '',
+ NOMOR_HP_PEMINJAM varchar(14) not null comment '',
+ KETERANGAN_BLACKLIST varchar(256) comment '',
+ WAKTU_ADMIN_PEMINJAM_TERAKHIR datetime not null comment '',
+ primary key (IDENTITAS_PEMINJAM)
+);
+
+/*==============================================================*/
+/* Table: PEMINJAMAN */
+/*==============================================================*/
+create table PEMINJAMAN
+(
+ NOMOR_PEMINJAMAN int not null auto_increment comment '',
+ USERNAME_PETUGAS varchar(64) comment '',
+ IDENTITAS_PEMINJAM varchar(18) not null comment '',
+ STATUS_PEMINJAMAN char(1) not null comment '',
+ KETERANGAN_PEMINJAMAN varchar(256) comment '',
+ WAKTU_PINJAM datetime not null comment '',
+ WAKTU_HARUS_KEMBALI datetime not null comment '',
+ WAKTU_KEMBALI datetime comment '',
+ WAKTU_ADMIN_PEMINJAMAN_TERAKHIR datetime not null comment '',
+ primary key (NOMOR_PEMINJAMAN)
+);
+
+/*==============================================================*/
+/* Table: PETUGAS */
+/*==============================================================*/
+create table PETUGAS
+(
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NAMA_PETUGAS varchar(64) not null comment '',
+ HASHPASS_PETUGAS varchar(64) not null comment '',
+ SESI_PETUGAS varchar(64) comment '',
+ TIMEOUT_SESI_PETUGAS datetime comment '',
+ primary key (USERNAME_PETUGAS)
+);
+
+/*==============================================================*/
+/* Table: RIWAYAT_BARANG */
+/*==============================================================*/
+create table RIWAYAT_BARANG
+(
+ ID_RIWAYAT_BARANG int not null auto_increment comment '',
+ TIPE_BARANG char(1) not null comment '',
+ NOMOR_BARANG int not null comment '',
+ USERNAME_PETUGAS varchar(64) not null comment '',
+ NOMOR_PEMINJAMAN int comment '',
+ STATUS_BARANG char(1) not null comment '',
+ KETERANGAN_BARANG varchar(256) comment '',
+ WAKTU_MULAI_RIWAYAT_BARANG datetime not null comment '',
+ WAKTU_BERAKHIR_RIWAYAT_BARANG datetime comment '',
+ primary key (ID_RIWAYAT_BARANG)
+);
+
+/*==============================================================*/
+/* Index: UNIQUE_START_TIMELINE */
+/*==============================================================*/
+create unique index UNIQUE_START_TIMELINE on RIWAYAT_BARANG
+(
+ TIPE_BARANG,
+ NOMOR_BARANG,
+ WAKTU_MULAI_RIWAYAT_BARANG
+);
+
+/*==============================================================*/
+/* Index: UNIQUE_END_TIMELINE */
+/*==============================================================*/
+create unique index UNIQUE_END_TIMELINE on RIWAYAT_BARANG
+(
+ TIPE_BARANG,
+ NOMOR_BARANG,
+ WAKTU_BERAKHIR_RIWAYAT_BARANG
+);
+
+/*==============================================================*/
+/* Table: STATUS_BARANG */
+/*==============================================================*/
+create table STATUS_BARANG
+(
+ STATUS_BARANG char(1) not null comment '',
+ TEKS_STATUS_BARANG varchar(16) comment '',
+ primary key (STATUS_BARANG)
+);
+
+/*==============================================================*/
+/* Table: STATUS_PEMINJAMAN */
+/*==============================================================*/
+create table STATUS_PEMINJAMAN
+(
+ STATUS_PEMINJAMAN char(1) not null comment '',
+ TEKS_STATUS_PEMINJAMAN varchar(16) comment '',
+ primary key (STATUS_PEMINJAMAN)
+);
+
+/*==============================================================*/
+/* Table: TIPE_BARANG */
+/*==============================================================*/
+create table TIPE_BARANG
+(
+ TIPE_BARANG char(1) not null comment '',
+ TEKS_TIPE_BARANG varchar(16) comment '',
+ primary key (TIPE_BARANG)
+);
+
+alter table BARANG add constraint FK_BARANG_BERTIPE_TIPE_BAR foreign key (TIPE_BARANG)
+ references TIPE_BARANG (TIPE_BARANG) on delete restrict on update cascade;
+
+alter table KEPERLUAN_PINJAM add constraint FK_KEPERLUA_PINJAM_UN_PEMINJAM foreign key (NOMOR_PEMINJAMAN)
+ references PEMINJAMAN (NOMOR_PEMINJAMAN) on delete restrict on update restrict;
+
+alter table PEMINJAM add constraint FK_PEMINJAM_ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAMAN_ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAM_MELAKUKAN_PEMINJAM foreign key (IDENTITAS_PEMINJAM)
+ references PEMINJAM (IDENTITAS_PEMINJAM) on delete restrict on update cascade;
+
+alter table PEMINJAMAN add constraint FK_PEMINJAM_PEMINJAMA_STATUS_P foreign key (STATUS_PEMINJAMAN)
+ references STATUS_PEMINJAMAN (STATUS_PEMINJAMAN) on delete restrict on update cascade;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__ADMINISTR_PETUGAS foreign key (USERNAME_PETUGAS)
+ references PETUGAS (USERNAME_PETUGAS) on delete restrict on update restrict;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__BARANG_BE_STATUS_B foreign key (STATUS_BARANG)
+ references STATUS_BARANG (STATUS_BARANG) on delete restrict on update cascade;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__BARANG_DI_PEMINJAM foreign key (NOMOR_PEMINJAMAN)
+ references PEMINJAMAN (NOMOR_PEMINJAMAN) on delete restrict on update restrict;
+
+alter table RIWAYAT_BARANG add constraint FK_RIWAYAT__MEMILIKI__BARANG foreign key (TIPE_BARANG, NOMOR_BARANG)
+ references BARANG (TIPE_BARANG, NOMOR_BARANG) on delete restrict on update cascade;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure PING_SESI(
+ IN Sesi CHAR(32),
+ OUT Username VARCHAR(16),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ SET datetime_now = NOW();
+ SELECT Username_Petugas INTO Username FROM Petugas WHERE Sesi_Petugas=Sesi AND Timeout_Sesi_Petugas > datetime_now;
+ IF (SELECT ROW_COUNT()) = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada atau sudah hangus';
+ END IF;
+
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+ UPDATE Petugas SET Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure DELETE_KEPERLUAN_PINJAM(
+ IN Id INTEGER,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ DELETE FROM Keperluan_Pinjam
+ WHERE Id_Keperluan_Pinjam=Id;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' function GET_NAMA_PETUGAS(Username VARCHAR(16))
+RETURNS VARCHAR(64)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE Nama VARCHAR(64);
+ SELECT P.Nama_Petugas INTO Nama FROM Petugas P WHERE P.Username_Petugas=Username;
+ RETURN Nama;
+END //
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure HITUNG_WAKTU_HARUS_KEMBALI(
+ IN Nomor_Peminjaman INTEGER
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE err VARCHAR(64);
+ DECLARE waktu_harus_kembali DATETIME;
+ DECLARE username VARCHAR(16);
+
+
+
+ SET waktu_harus_kembali=(
+ SELECT MAX(KP.Waktu_Selesai)+INTERVAL 30 MINUTE
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Nomor_Peminjaman=Nomor_Peminjaman
+ );
+
+
+
+ UPDATE Peminjaman P
+ SET
+ P.Waktu_Harus_Kembali=waktu_harus_kembali,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_BARANG(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF EXISTS (SELECT * FROM Barang B WHERE B.Nomor_Barang=Nomor_Barang AND B.Tipe_Barang=Tipe_Barang) THEN
+ IF EXISTS (SELECT * FROM Riwayat_Barang RB WHERE RB.Nomor_Barang=Nomor_Barang AND RB.Tipe_Barang=Tipe_Barang AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang sudah ada';
+ END IF;
+ ELSE
+ INSERT INTO Barang(Nomor_Barang, Tipe_Barang) VALUES(Nomor_Barang, Tipe_Barang);
+ END IF;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ 'A',
+ Keterangan_Barang,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_KEPERLUAN_PINJAM (
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Nomor_Peminjaman INTEGER,
+ IN Sesi CHAR(32),
+ OUT Id_Keperluan_Pinjam INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ INSERT INTO Keperluan_Pinjam(
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ ) VALUES (
+ Nomor_Peminjaman,
+ Keperluan_Pinjam,
+ Nama_Penanggung_Jawab,
+ Ruang_Pinjam,
+ Waktu_Mulai,
+ Waktu_Selesai
+ );
+ SET Id_Keperluan_Pinjam = LAST_INSERT_ID();
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_PEMINJAM(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ INSERT INTO Peminjam (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ Username_Petugas,
+ Waktu_Admin_Peminjam_Terakhir
+ ) VALUES (
+ Identitas_Peminjam,
+ Nama_Peminjam,
+ Alamat_Peminjam,
+ Nomor_HP_Peminjam,
+ username,
+ NOW()
+ );
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure INSERT_PEMINJAMAN(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Nomor_Peminjaman INTEGER,
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ SET waktu=NOW();
+
+ START TRANSACTION;
+
+
+ INSERT INTO Peminjaman(
+ Username_Petugas,
+ Identitas_Peminjam,
+ Status_Peminjaman,
+ Keterangan_Peminjaman,
+ Waktu_Pinjam,
+ Waktu_Harus_Kembali,
+ Waktu_Admin_Peminjaman_Terakhir
+ ) VALUES (
+ username,
+ Identitas_Peminjam,
+ 'A',
+ Keterangan_Peminjaman,
+ waktu,
+ Waktu_Harus_Kembali,
+ waktu
+ );
+ SET Nomor_Peminjaman = LAST_INSERT_ID();
+
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE INSERT_PETUGAS_UNSAFE (
+ IN Username VARCHAR(16),
+ IN Password VARCHAR(16),
+ IN Nama VARCHAR(64)
+)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+
+ INSERT INTO Petugas(
+ Username_Petugas,
+ Hashpass_Petugas,
+ Nama_Petugas
+ ) VALUES(
+ Username,
+ MD5(CONCAT(MD5(CONCAT(Password, 'Petugas')), 'Admin')),
+ Nama
+ );
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE LOGIN_PETUGAS (IN Username VARCHAR(16), IN Hashpass CHAR(32), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE datetime_now DATETIME;
+
+ IF Username IS NULL OR Username = ' ' OR CHAR_LENGTH(Username) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF Hashpass IS NULL OR Hashpass = ' ' OR CHAR_LENGTH(Hashpass) < 32 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Hashpass tidak valid';
+ END IF;
+ IF NOT EXISTS (SELECT * FROM Petugas WHERE Petugas.Username_Petugas = Username AND Petugas.Hashpass_Petugas = MD5(CONCAT(Hashpass, 'Admin'))) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username atau password salah';
+ END IF;
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ WHILE EXISTS (SELECT * FROM Petugas WHERE Sesi_Petugas=Sesi) DO
+ SET datetime_now = NOW();
+ SET Sesi = MD5(CONCAT(datetime_now, Username));
+ END WHILE;
+ SET Timeout = datetime_now + INTERVAL 5 MINUTE;
+
+ UPDATE Petugas SET Sesi_Petugas = Sesi, Timeout_Sesi_Petugas=Timeout WHERE Username_Petugas=Username;
+ SELECT Nama_Petugas INTO Nama FROM Petugas WHERE Sesi_Petugas=Sesi;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+CREATE DEFINER = 'root'@'localhost' PROCEDURE LOGIN_PETUGAS_UNSAFE (IN Username VARCHAR(16), IN Password VARCHAR(16), OUT Nama VARCHAR(64), OUT Sesi CHAR(32), OUT Timeout DATETIME)
+SQL SECURITY INVOKER
+BEGIN
+ IF Password IS NULL OR Password = ' ' OR CHAR_LENGTH(Password) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Password tidak valid';
+ END IF;
+ CALL Login_Petugas(Username, MD5(CONCAT(Password, 'Petugas')), Nama, Sesi, Timeout);
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure LOGOUT_PETUGAS(
+ IN Sesi_Petugas CHAR(32)
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ START TRANSACTION;
+
+ UPDATE Petugas P
+ SET P.Sesi_Petugas=NULL,
+ P.Timeout_Sesi_Petugas=NULL
+ WHERE P.Sesi_Petugas=Sesi;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Sesi tidak ada';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_DETAIL_BARANG(
+ IN Nomor_Barang INTEGER,
+ IN Tipe_Barang CHAR(1),
+ IN Status_Barang CHAR(1),
+ IN Nomor_Peminjaman INTEGER,
+ IN Keterangan_Barang VARCHAR(256),
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+proc_label: BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE id_riwayat_barang_lama INTEGER;
+ DECLARE nomor_peminjaman_lama INTEGER;
+ DECLARE status_barang_lama CHAR(1);
+ DECLARE keterangan_barang_lama VARCHAR(256);
+ DECLARE waktu DATETIME;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ SELECT
+ RB.Id_Riwayat_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+ INTO
+ id_riwayat_barang_lama,
+ status_barang_lama,
+ nomor_peminjaman_lama,
+ keterangan_barang_lama
+ FROM Riwayat_Barang RB
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ IF Status_Barang = status_barang_lama
+ AND Nomor_Peminjaman = nomor_peminjaman_lama
+ AND Keterangan_Barang = keterangan_barang_lama THEN
+
+ LEAVE proc_label;
+ END IF;
+
+ IF ROW_COUNT() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak ada';
+ END IF;
+
+ IF Status_Barang='P' AND Nomor_Peminjaman IS NULL THEN
+ SET Nomor_Peminjaman=nomor_peminjaman_lama;
+ IF Nomor_Peminjaman IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor peminjaman harus diisi untuk barang berstatus dipinjam';
+ END IF;
+ END IF;
+
+ IF Status_Barang='P' AND Status_Barang=status_barang_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam.';
+ END IF;
+
+ IF Status_Barang<>'P' AND Nomor_Peminjaman IS NOT NULL THEN
+ SET Nomor_Peminjaman=NULL;
+ END IF;
+
+ IF Keterangan_Barang IS NULL THEN
+ SET Keterangan_Barang=keterangan_barang_lama;
+ END IF;
+
+ SET waktu=NOW();
+
+
+
+
+ IF Status_Barang <> status_barang_lama THEN
+ IF Status_Barang = 'P' AND status_barang_lama <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang tidak bisa dipinjam';
+ END IF;
+ IF Status_Barang <> 'A' AND status_barang_lama = 'P' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ IF Status_Barang='P' THEN
+ IF (
+ SELECT P.Status_Peminjaman
+ FROM Peminjaman P
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman
+ ) <> 'A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak aktif';
+ END IF;
+ END IF;
+
+ ELSEIF Status_Barang='P' AND Nomor_Peminjaman<>nomor_peminjaman_lama THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Barang masih dipinjam';
+ END IF;
+
+ UPDATE Riwayat_Barang RB
+ SET RB.Waktu_Berakhir_Riwayat_Barang=waktu
+ WHERE RB.Nomor_Barang=Nomor_Barang
+ AND RB.Tipe_Barang=Tipe_Barang
+ AND RB.Waktu_Berakhir_Riwayat_Barang IS NULL;
+
+ INSERT INTO Riwayat_Barang(
+ Tipe_Barang,
+ Nomor_Barang,
+ Username_Petugas,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ Waktu_Mulai_Riwayat_Barang
+ ) VALUES (
+ Tipe_Barang,
+ Nomor_Barang,
+ username,
+ Nomor_Peminjaman,
+ Status_Barang,
+ Keterangan_Barang,
+ waktu
+ );
+
+ IF Status_Barang = 'A' AND status_barang_lama = 'P' THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+
+ IF nomor_peminjaman_lama IS NOT NULL AND NOT EXISTS (SELECT * FROM Barang_Terkini BT WHERE BT.Nomor_Peminjaman=nomor_peminjaman_lama) THEN
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW(),
+ P.Waktu_Kembali=NOW(),
+ P.Status_Peminjaman='S'
+ WHERE P.Nomor_Peminjaman=nomor_peminjaman_lama;
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_DETAIL_PEMINJAMAN(
+ IN Nomor_Peminjaman INTEGER,
+ IN Status_Peminjaman CHAR(1),
+ IN Waktu_Harus_Kembali DATETIME,
+ IN Keterangan_Peminjaman VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjaman P
+ SET
+ P.Status_Peminjaman=Status_Peminjaman,
+ P.Keterangan_Peminjaman=Keterangan_Peminjaman,
+ P.Waktu_Harus_Kembali=Waktu_Harus_Kembali,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=Nomor_Peminjaman;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_KEPERLUAN_PINJAM(
+ IN Id_Keperluan_Pinjam INTEGER,
+ IN Keperluan_Pinjam VARCHAR(64),
+ IN Nama_Penanggung_Jawab VARCHAR(64),
+ IN Ruang_Pinjam VARCHAR(16),
+ IN Waktu_Mulai DATETIME,
+ IN Waktu_Selesai DATETIME,
+ IN Sesi CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+ CALL Ping_Sesi(Sesi, username, Timeout);
+
+ START TRANSACTION;
+
+ IF NOT EXISTS(SELECT * FROM Peminjaman P WHERE P.Nomor_Peminjaman=Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjaman tidak ada';
+ END IF;
+
+ UPDATE Keperluan_Pinjam KP
+ SET KP.Keperluan_Pinjam = Keperluan_Pinjam,
+ KP.Nama_Penanggung_Jawab = Nama_Penanggung_Jawab,
+ KP.Ruang_Pinjam = Ruang_Pinjam,
+ KP.Waktu_Mulai = Waktu_Mulai,
+ KP.Waktu_Selesai = Waktu_Selesai
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam;
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan pinjam tidak ditemukan';
+ END IF;
+
+ UPDATE Peminjaman P
+ SET P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjaman_Terakhir=NOW()
+ WHERE P.Nomor_Peminjaman=(
+ SELECT KP.Nomor_Peminjaman
+ FROM Keperluan_Pinjam KP
+ WHERE KP.Id_Keperluan_Pinjam=Id_Keperluan_Pinjam
+ LIMIT 1
+ );
+
+ COMMIT;
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create DEFINER = 'root'@'localhost' procedure UPDATE_PEMINJAM(
+ IN Identitas_Peminjam VARCHAR(18),
+ IN Nama_Peminjam VARCHAR(64),
+ IN Alamat_Peminjam VARCHAR(256),
+ IN Nomor_HP_Peminjam VARCHAR(14),
+ IN Keterangan_Blacklist VARCHAR(256),
+ IN Sesi_Petugas CHAR(32),
+ OUT Timeout DATETIME
+)
+SQL SECURITY DEFINER
+BEGIN
+ DECLARE username VARCHAR(16);
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL PING_SESI(Sesi_Petugas, username, Timeout);
+
+ START TRANSACTION;
+
+ UPDATE Peminjam P
+ SET
+ P.Nama_Peminjam=Nama_Peminjam,
+ P.Alamat_Peminjam=Alamat_Peminjam,
+ P.Nomor_HP_Peminjam=Nomor_HP_Peminjam,
+ P.Keterangan_Blacklist=Keterangan_Blacklist,
+ P.Username_Petugas=username,
+ P.Waktu_Admin_Peminjam_Terakhir=NOW()
+ WHERE P.Identitas_Peminjam=Identitas_Peminjam;
+
+
+ IF Row_Count() = 0 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Peminjam tidak ditemukan';
+ END IF;
+ COMMIT;
+
+END//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_DELETE_KEPERLUAN_PINJAM after delete
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(OLD.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_INSERT_KEPERLUAN_PINJAM after insert
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger AFTER_UPDATE_KEPERLUAN_PINJAM after update
+on KEPERLUAN_PINJAM for each row
+begin
+ CALL HITUNG_WAKTU_HARUS_KEMBALI(NEW.Nomor_Peminjaman);
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_KEPERLUAN before insert
+on KEPERLUAN_PINJAM for each row
+begin
+
+ IF NEW.Keperluan_Pinjam IS NULL OR NEW.Keperluan_Pinjam = ' ' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Keperluan_Pinjam tidak valid';
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL OR NEW.Nama_Penanggung_Jawab = ' ' OR CHAR_LENGTH(NEW.Nama_Penanggung_Jawab) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama_Penanggung_Jawab tidak valid';
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL OR NEW.Ruang_Pinjam = ' ' OR CHAR_LENGTH(NEW.Ruang_Pinjam) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Ruang_Pinjam tidak valid';
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Mulai tidak boleh kosong';
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu_Selesai tidak boleh kosong';
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_KEPERLUAN before update
+on KEPERLUAN_PINJAM for each row
+begin
+ IF NEW.Nomor_Peminjaman IS NULL THEN
+ SET NEW.Nomor_Peminjaman = OLD.Nomor_Peminjaman;
+ END IF;
+ IF NEW.Keperluan_Pinjam IS NULL THEN
+ SET NEW.Keperluan_Pinjam = OLD.Keperluan_Pinjam;
+ END IF;
+ IF NEW.Nama_Penanggung_Jawab IS NULL THEN
+ SET NEW.Nama_Penanggung_Jawab = OLD.Nama_Penanggung_Jawab;
+ END IF;
+ IF NEW.Ruang_Pinjam IS NULL THEN
+ SET NEW.Ruang_Pinjam = OLD.Ruang_Pinjam;
+ END IF;
+ IF NEW.Waktu_Mulai IS NULL THEN
+ SET NEW.Waktu_Mulai = OLD.Waktu_Mulai;
+ END IF;
+ IF NEW.Waktu_Selesai IS NULL THEN
+ SET NEW.Waktu_Selesai = OLD.Waktu_Selesai;
+ END IF;
+
+ IF NEW.Waktu_Selesai <= NEW.Waktu_Mulai THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Waktu mulai dan selesai tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PEMINJAM before insert
+on PEMINJAM for each row
+begin
+
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_PEMINJAM before update
+on PEMINJAM for each row
+begin
+ IF NEW.Nama_Peminjam IS NULL THEN
+ SET NEW.Nama_Peminjam=OLD.Nama_Peminjam;
+ END IF;
+ IF NEW.Alamat_Peminjam IS NULL THEN
+ SET NEW.Alamat_Peminjam=OLD.Alamat_Peminjam;
+ END IF;
+ IF NEW.Identitas_Peminjam IS NULL THEN
+ SET NEW.Identitas_Peminjam=OLD.Identitas_Peminjam;
+ END IF;
+ IF NEW.Nomor_HP_Peminjam IS NULL THEN
+ SET NEW.Nomor_HP_Peminjam=OLD.Nomor_HP_Peminjam;
+ END IF;
+ IF NEW.Nama_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nama_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama peminjam tidak valid';
+ END IF;
+ IF NEW.Alamat_Peminjam = ' ' OR CHAR_LENGTH(NEW.Alamat_Peminjam) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Alamat peminjam tidak valid';
+ END IF;
+ IF NEW.Identitas_Peminjam = ' ' OR CHAR_LENGTH(NEW.Identitas_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Identitas peminjam tidak valid';
+ END IF;
+ IF NEW.Nomor_HP_Peminjam = ' ' OR CHAR_LENGTH(NEW.Nomor_HP_Peminjam) < 9 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nomor HP peminjam tidak valid';
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PEMINJAMAN before insert
+on PEMINJAMAN for each row
+begin
+ DECLARE keterangan_blacklist VARCHAR(320);
+
+
+ SELECT P.Keterangan_Blacklist
+ INTO keterangan_blacklist
+ FROM Peminjam P
+ WHERE P.Identitas_Peminjam=NEW.Identitas_Peminjam;
+
+ IF keterangan_blacklist IS NOT NULL THEN
+ SET keterangan_blacklist = CONCAT('Peminjam terblacklist. Keterangan: ', keterangan_blacklist);
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT=keterangan_blacklist;
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_UPDATE_PEMINJAMAN before update
+on PEMINJAMAN for each row
+begin
+ IF NEW.Status_Peminjaman IS NULL THEN
+ SET NEW.Status_Peminjaman = OLD.Status_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Pinjam IS NULL THEN
+ SET NEW.Waktu_Pinjam = OLD.Waktu_Pinjam;
+ END IF;
+ IF NEW.Keterangan_Peminjaman IS NULL THEN
+ SET NEW.Keterangan_Peminjaman = OLD.Keterangan_Peminjaman;
+ END IF;
+ IF NEW.Waktu_Harus_Kembali IS NULL THEN
+ SET NEW.Waktu_Harus_Kembali = OLD.Waktu_Harus_Kembali;
+ END IF;
+ IF NEW.Waktu_Kembali IS NULL AND NEW.Status_Peminjaman > 1 THEN
+ SET NEW.Waktu_Kembali = OLD.Waktu_Kembali;
+ END IF;
+
+ IF NEW.Username_Petugas IS NULL THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username petugas harus diisi';
+ END IF;
+
+
+ IF OLD.Status_Peminjaman <> NEW.Status_Peminjaman THEN
+ IF NEW.Status_Peminjaman='A' THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Anda tidak dapat membuka kembali peminjaman. Silahkan buat peminjaman baru.';
+ ELSE
+ IF EXISTS (SELECT * FROM Barang_Terkini BR WHERE BR.Nomor_Peminjaman=NEW.Nomor_Peminjaman) THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Masih ada barang yang belum dikembalikan';
+ END IF;
+ SET NEW.Waktu_Kembali=NOW();
+ END IF;
+ END IF;
+end//
+DELIMITER ;
+
+
+DELIMITER //
+create trigger BEFORE_INSERT_PETUGAS before insert
+on PETUGAS for each row
+begin
+ IF NEW.Username_Petugas IS NULL OR NEW.Username_Petugas = ' ' OR CHAR_LENGTH(NEW.Username_Petugas) < 4 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Username tidak valid';
+ END IF;
+ IF NEW.Nama_Petugas IS NULL OR NEW.Nama_Petugas = ' ' OR CHAR_LENGTH(NEW.Nama_Petugas) < 3 THEN
+ SIGNAL SQLSTATE '03000' SET MESSAGE_TEXT='Nama tidak valid';
+ END IF;
+
+end//
+DELIMITER ;
+
diff --git a/src/dbd_lcd/database/sql/init.sql b/src/dbd_lcd/database/sql/init.sql
new file mode 100644
index 0000000..9baf73f
--- /dev/null
+++ b/src/dbd_lcd/database/sql/init.sql
@@ -0,0 +1,68 @@
+
+CREATE USER 'client'@'%' IDENTIFIED BY 'client_password';
+
+GRANT USAGE ON `database_name`.* TO 'client'@'%';
+
+GRANT SELECT ON peminjam TO 'client'@'%';
+GRANT SELECT ON barang TO 'client'@'%';
+GRANT SELECT ON keperluan_pinjam TO 'client'@'%';
+GRANT SELECT ON riwayat_barang TO 'client'@'%';
+GRANT SELECT ON peminjaman TO 'client'@'%';
+GRANT SELECT ON status_peminjaman TO 'client'@'%';
+GRANT SELECT ON status_barang TO 'client'@'%';
+GRANT SELECT ON tipe_barang TO 'client'@'%';
+
+GRANT EXECUTE ON PROCEDURE DELETE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE INSERT_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGIN_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE LOGOUT_PETUGAS TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE PING_SESI TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_BARANG TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_DETAIL_PEMINJAMAN TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_KEPERLUAN_PINJAM TO 'client'@'%';
+GRANT EXECUTE ON PROCEDURE UPDATE_PEMINJAM TO 'client'@'%';
+GRANT EXECUTE ON FUNCTION GET_NAMA_PETUGAS TO 'client'@'%';
+
+CREATE VIEW Barang_Terkini AS SELECT
+ Nomor_Barang,
+ Tipe_Barang,
+ Status_Barang,
+ Nomor_Peminjaman,
+ Keterangan_Barang
+FROM Riwayat_Barang
+WHERE Waktu_Berakhir_Riwayat_Barang IS NULL;
+GRANT SELECT ON Barang_Terkini TO 'client'@'%';
+
+
+/*CREATE VIEW Peminjaman_Barang_Terakhir AS SELECT
+ RB.Nomor_Barang,
+ RB.Tipe_Barang,
+ RB.Status_Barang,
+ RB.Nomor_Peminjaman,
+ RB.Keterangan_Barang
+FROM (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB
+ LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Status_Peminjaman='P') RB2
+ ON RB.Nomor_Barang=RB2.Nomor_Barang
+ AND RB.Tipe_Barang=RB2.Tipe_Barang
+ AND RB.Waktu_Mulai_Riwayat_Barang < RB2.Waktu_Mulai_Riwayat_Barang
+WHERE RB2.Id_Riwayat_Barang IS NULL;
+
+GRANT SELECT ON Peminjaman_Barang_Terakhir TO 'client'@'%';
+*/
+
+
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('A', 'Ada');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('P', 'Dipinjam');
+INSERT INTO Status_Barang(Status_Barang, Teks_Status_Barang) VALUES('R', 'Rusak');
+
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('L', 'LCD');
+INSERT INTO Tipe_Barang(Tipe_Barang, Teks_Tipe_Barang) VALUES('K', 'Kabel');
+
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('A', 'Aktif');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('S', 'Selesai');
+INSERT INTO Status_Peminjaman(Status_Peminjaman, Teks_Status_Peminjaman) VALUES('B', 'Batal');
+
+CALL INSERT_PETUGAS_UNSAFE('admin', 'admin_password', 'Nama Admin');
\ No newline at end of file
diff --git a/src/dbd_lcd/gui/ImageLabel.java b/src/dbd_lcd/gui/ImageLabel.java
new file mode 100644
index 0000000..1d430a6
--- /dev/null
+++ b/src/dbd_lcd/gui/ImageLabel.java
@@ -0,0 +1,119 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Dimension;
+import java.awt.FontMetrics;
+import java.awt.Rectangle;
+import javax.accessibility.AccessibleContext;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.RepaintManager;
+import javax.swing.plaf.basic.BasicHTML;
+import javax.swing.plaf.basic.BasicLabelUI;
+import javax.swing.text.View;
+/**
+ *
+ * @author Wolf
+ https://stackoverflow.com/users/834010/wolf
+ https://stackoverflow.com/questions/10634417/imageIcon-resize-to-fit-on-jpanel
+ */
+public class ImageLabel extends JLabel{
+ private ImageIcon imageIcon;
+
+ public static final int FIT_BOTH = 0;
+ public static final int FIT_WIDTH = 1;
+
+ private int mode = FIT_BOTH;
+ public ImageLabel(){
+ this(FIT_BOTH);
+ }
+
+ public ImageLabel(int mode){
+ super();
+ //setBackground(new java.awt.Color(0,0,0,0));
+ setDoubleBuffered(true);
+ setMode(mode);
+ }
+
+ public void setMode(int mode){
+ this.mode = mode;
+ }
+
+ @Override
+ public void setIcon(Icon icon) {
+ if (icon instanceof ImageIcon)
+ {
+ ImageIcon oldValue = this.imageIcon;
+ imageIcon = ((ImageIcon) icon);
+ String text = getText();
+ if(text == null || text.trim().isEmpty()) fitWidth();
+
+ firePropertyChange("icon", oldValue, imageIcon);
+
+ if ((accessibleContext != null) && (oldValue != imageIcon)) {
+ accessibleContext.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY,
+ oldValue, imageIcon);
+ }
+
+ revalidate();
+ repaint();
+ }else{
+ super.setIcon(icon);
+ }
+
+
+ }
+
+ public void setWidth(int width){
+ int h = (int)(((double)width)/imageIcon.getIconWidth() * imageIcon.getIconHeight());
+ Dimension size = new Dimension(width, h);
+ //setMaximumSize(size);
+ setPreferredSize(size);
+ setSize(size);
+ }
+
+ public void fitWidth(){
+ setWidth(getWidth());
+ }
+
+ public boolean paintImage(Graphics g){
+ if(imageIcon == null) return false;
+ if(g == null) return false;
+ switch(mode){
+ case FIT_BOTH:{
+ g.drawImage(imageIcon.getImage(), 0, 0, this.getWidth(), this.getHeight(), null);
+ return true;
+ }
+ case FIT_WIDTH:{
+ int w = getWidth();
+ int h = w/imageIcon.getIconWidth() * imageIcon.getIconHeight();
+ setSize(w, h);
+ g.drawImage(imageIcon.getImage(), 0, 0, w, h, null);
+
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void paint(Graphics g){
+ if(imageIcon == null){
+ super.paint(g);
+ return;
+ }
+ paintImage(g);
+ paintChildren(g);
+ }
+
+}
diff --git a/src/dbd_lcd/gui/ImagePanel.java b/src/dbd_lcd/gui/ImagePanel.java
new file mode 100644
index 0000000..3964047
--- /dev/null
+++ b/src/dbd_lcd/gui/ImagePanel.java
@@ -0,0 +1,87 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import javax.swing.JPanel;
+
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Dimension;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+/**
+ *
+ * @author Lenovo2
+ */
+public class ImagePanel extends JPanel
+{
+ private static final long serialVersionUID = 1L;
+
+ private ImageIcon imageIcon = null;
+ private int iWidth2;
+ private int iHeight2;
+
+
+ public ImagePanel()
+ {
+ super();
+
+ setDoubleBuffered(true);
+ }
+
+ public void setImage(String iconName){
+ setImage(new javax.swing.ImageIcon(getClass().getResource("/lcdrpl/images/" + iconName)));
+ }
+
+
+ public void setImage(Icon icon) {
+ if (icon instanceof ImageIcon)
+ {
+ imageIcon = ((ImageIcon) icon);
+ //fitWidth();
+ }
+ }
+
+ public void setWidth(int width){
+ int h = (int)(((double)width)/imageIcon.getIconWidth() * imageIcon.getIconHeight());
+ Dimension size = new Dimension(width, h);
+ //setMaximumSize(size);
+ setPreferredSize(size);
+ setSize(size);
+ }
+
+ public void fitWidth(){
+ setWidth(getWidth());
+ }
+ /*
+ public void paintComponent(Graphics g)
+ {
+ super.paintComponent(g);
+ if (imageIcon != null)
+ {
+ int x = this.getParent().getWidth()/2 - iWidth2;
+ int y = this.getParent().getHeight()/2 - iHeight2;
+ g.drawImage(imageIcon.getImage(),x,y,this);
+ }
+ }*/
+
+ public boolean paintImage(Graphics g){
+ if(imageIcon == null) return false;
+ if(g == null) return false;
+ g.drawImage(imageIcon.getImage(), 0, 0, this.getWidth(), this.getHeight(), null);
+ return true;
+ }
+
+ @Override
+ public void paint(Graphics g){
+ if(imageIcon == null){
+ super.paint(g);
+ return;
+ }
+ paintImage(g);
+ paintChildren(g);
+ }
+}
diff --git a/src/dbd_lcd/gui/LimitDocumentFilter.java b/src/dbd_lcd/gui/LimitDocumentFilter.java
new file mode 100644
index 0000000..bf40cd6
--- /dev/null
+++ b/src/dbd_lcd/gui/LimitDocumentFilter.java
@@ -0,0 +1,46 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import javax.swing.text.AbstractDocument;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.DocumentFilter;
+import javax.swing.text.JTextComponent;
+
+/**
+ *
+ * @author
+ * https://stackoverflow.com/questions/10136794/limiting-the-number-of-characters-in-a-jtextfield
+ */
+
+ public class LimitDocumentFilter extends DocumentFilter {
+
+ private int limit;
+
+ public LimitDocumentFilter(int limit) {
+ if (limit <= 0) {
+ throw new IllegalArgumentException("Limit can not be <= 0");
+ }
+ this.limit = limit;
+ }
+
+ public void attach(JTextComponent comp){
+ ((AbstractDocument)comp.getDocument()).setDocumentFilter(this);
+ }
+
+ @Override
+ public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
+ int currentLength = fb.getDocument().getLength();
+ int overLimit = (currentLength + text.length()) - limit - length;
+ if (overLimit > 0) {
+ text = text.substring(0, text.length() - overLimit);
+ }
+ if (text.length() > 0) {
+ super.replace(fb, offset, length, text, attrs);
+ }
+ }
+ }
\ No newline at end of file
diff --git a/src/dbd_lcd/gui/MyFrame.java b/src/dbd_lcd/gui/MyFrame.java
new file mode 100644
index 0000000..8b3d973
--- /dev/null
+++ b/src/dbd_lcd/gui/MyFrame.java
@@ -0,0 +1,109 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.report.MyJasperViewer;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+
+
+/**
+ *
+ * @author user
+ */
+public class MyFrame extends javax.swing.JFrame {
+ public static MyFrame top;
+ public MyFrame parent;
+ private PopupRunnable onDispose;
+ public boolean changed;
+
+ protected JTabbedPane tabbedPane;
+
+ @Override
+ public void setVisible(boolean visible){
+ super.setVisible(visible);
+ if(parent != null){
+ parent.setEnabled(!visible);
+ if(!visible){
+ parent.requestFocus();
+ top = parent;
+ }
+ }
+ }
+
+ public void setPopup(MyFrame frame){
+ frame.parent = this;
+ frame.setLocationRelativeTo(this);
+ frame.setVisible(true);
+ top = frame;
+ }
+ public void setPopup(MyJasperViewer frame){
+ frame.parent = this;
+ frame.setLocationRelativeTo(this);
+ frame.setVisible(true);
+ }
+
+ public boolean hasOnDispose(){
+ return onDispose != null;
+ }
+
+ public boolean onDispose(boolean success){
+ if(onDispose != null) {
+ boolean ret = onDispose.run(success);
+ if(ret){
+ onDispose = null;
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return true;
+ }
+ }
+
+ public void setOnDispose(PopupRunnable onDispose){
+ this.onDispose = onDispose;
+ }
+
+ @Override
+ public void dispose(){
+ //setVisible(false);
+ dispose(changed);
+ }
+
+ public void dispose(boolean success){
+ if(!onDispose(success)) return;
+ top = parent;
+ if(parent != null) parent.setEnabled(true);
+ super.dispose();
+ }
+
+ public void setTabbedPane(JTabbedPane tabbedPane){
+ this.tabbedPane = tabbedPane;
+ }
+
+ private JPanel lockedTab;
+ public void lockTab(JPanel panel){
+ if(tabbedPane == null) return;
+ if(lockedTab == panel) return;
+ if(lockedTab!= null && panel != null && lockedTab != panel){
+ throw new RuntimeException("Tabbedpane already has other tab locked");
+ }
+ int tc = tabbedPane.getTabCount();
+ if(panel != null){
+ int i = tabbedPane.indexOfComponent(panel);
+ System.out.println("Disable except for tab: " + i);
+ for(int j = 0; j < tc; ++j){
+ tabbedPane.setEnabledAt(j, i == j);
+ }
+ }else{
+ for(int j = 0; j < tc; ++j){
+ tabbedPane.setEnabledAt(j, true);
+ }
+ }
+ }
+}
diff --git a/src/dbd_lcd/gui/MyPanel.java b/src/dbd_lcd/gui/MyPanel.java
new file mode 100644
index 0000000..c0fbdea
--- /dev/null
+++ b/src/dbd_lcd/gui/MyPanel.java
@@ -0,0 +1,31 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import javax.swing.SwingUtilities;
+
+/**
+ *
+ * @author user
+ */
+public class MyPanel extends javax.swing.JPanel{
+ public MyPanel(){
+ super();
+ getFrame();
+ }
+ public MyFrame getFrame(){
+ return (MyFrame) SwingUtilities.getWindowAncestor(this);
+ }
+ public void setPopup(MyFrame popup){
+ getFrame().setPopup(popup);
+ }
+ public void dispose(){
+ getFrame().dispose();
+ }
+ public void dispose(boolean x){
+ getFrame().dispose(x);
+ }
+}
diff --git a/src/dbd_lcd/gui/MyTableModel.java b/src/dbd_lcd/gui/MyTableModel.java
new file mode 100644
index 0000000..3a30990
--- /dev/null
+++ b/src/dbd_lcd/gui/MyTableModel.java
@@ -0,0 +1,26 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui;
+
+import javax.swing.table.DefaultTableModel;
+
+/**
+ *
+ * @author user
+ */
+public class MyTableModel extends DefaultTableModel{
+ protected boolean cellEditable = false;
+ @Override
+ public boolean isCellEditable(int row, int column){
+ return cellEditable;
+ }
+ public void setCellEditable(boolean cellEditable){
+ this.cellEditable = cellEditable;
+ }
+ public boolean isCellEditable(){
+ return cellEditable;
+ }
+}
diff --git a/src/dbd_lcd/gui/form/DialogKonfirmasi.form b/src/dbd_lcd/gui/form/DialogKonfirmasi.form
new file mode 100644
index 0000000..54a7e9a
--- /dev/null
+++ b/src/dbd_lcd/gui/form/DialogKonfirmasi.form
@@ -0,0 +1,183 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/DialogKonfirmasi.java b/src/dbd_lcd/gui/form/DialogKonfirmasi.java
new file mode 100644
index 0000000..07e64af
--- /dev/null
+++ b/src/dbd_lcd/gui/form/DialogKonfirmasi.java
@@ -0,0 +1,214 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form;
+
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.Util;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.PopupRunnable;
+import java.awt.Dimension;
+
+/**
+ *
+ * @author admin
+ */
+public class DialogKonfirmasi extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form FormLogin
+ */
+
+ public DialogKonfirmasi() {
+ initComponents();
+ }
+
+ public void setQuestion(String text){
+ questionTA.setText(text);
+ }
+
+ public static void mintaKonfimasi(MyFrame parent, String text, PopupRunnable onConfirm){
+ DialogKonfirmasi dk = new DialogKonfirmasi();
+ dk.setQuestion(text);
+ dk.setOnDispose(onConfirm);
+ parent.setPopup(dk);
+ dk.pack();
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ titleLabel = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ questionTA = new javax.swing.JTextArea(){
+ @Override
+ public Dimension getMinimumSize(){
+ return getPreferredSize();
+ }
+ };
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ confirmButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel1.setBackground(new java.awt.Color(255, 255, 255));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ titleLabel.setBackground(new java.awt.Color(0, 102, 102));
+ titleLabel.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
+ titleLabel.setForeground(new java.awt.Color(255, 255, 255));
+ titleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ titleLabel.setText("Konfirmasi");
+ titleLabel.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ jPanel1.add(titleLabel, gridBagConstraints);
+
+ jPanel3.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel3.setMinimumSize(new java.awt.Dimension(165, 0));
+ jPanel3.setPreferredSize(new java.awt.Dimension(253, 200));
+ jPanel3.setRequestFocusEnabled(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ questionTA.setEditable(false);
+ questionTA.setColumns(20);
+ questionTA.setFont(new java.awt.Font("Comic Sans MS", 0, 14)); // NOI18N
+ questionTA.setLineWrap(true);
+ questionTA.setRows(2);
+ questionTA.setTabSize(4);
+ questionTA.setText("Apa anda yakin ingin melakukan ini?");
+ questionTA.setToolTipText("");
+ questionTA.setWrapStyleWord(true);
+ questionTA.setMinimumSize(new java.awt.Dimension(0, 0));
+ questionTA.setOpaque(false);
+ questionTA.setLineWrap(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(15, 15, 5, 15);
+ jPanel3.add(questionTA, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.setMaximumSize(new java.awt.Dimension(46, 46));
+ cancelButton.setMinimumSize(new java.awt.Dimension(46, 46));
+ cancelButton.setPreferredSize(new java.awt.Dimension(46, 46));
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ confirmButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ confirmButton.setContentAreaFilled(false);
+ confirmButton.setMaximumSize(new java.awt.Dimension(46, 46));
+ confirmButton.setMinimumSize(new java.awt.Dimension(46, 46));
+ confirmButton.setPreferredSize(new java.awt.Dimension(46, 46));
+ confirmButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ confirmButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(confirmButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 15, 15, 15);
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 177, Short.MAX_VALUE)
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void confirmButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_confirmButtonActionPerformed
+ // TODO add your handling code here:
+ dispose(true);
+ }//GEN-LAST:event_confirmButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DialogKonfirmasi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DialogKonfirmasi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DialogKonfirmasi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DialogKonfirmasi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DialogKonfirmasi().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JButton confirmButton;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JTextArea questionTA;
+ private javax.swing.JLabel titleLabel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/FormLogin.form b/src/dbd_lcd/gui/form/FormLogin.form
new file mode 100644
index 0000000..451a622
--- /dev/null
+++ b/src/dbd_lcd/gui/form/FormLogin.form
@@ -0,0 +1,208 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/FormLogin.java b/src/dbd_lcd/gui/form/FormLogin.java
new file mode 100644
index 0000000..ee97721
--- /dev/null
+++ b/src/dbd_lcd/gui/form/FormLogin.java
@@ -0,0 +1,249 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form;
+
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.Util;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.PopupRunnable;
+
+/**
+ *
+ * @author admin
+ */
+public class FormLogin extends dbd_lcd.gui.MyFrame {
+
+ private static String lastUsername = "";
+ /**
+ * Creates new form FormLogin
+ */
+
+ public FormLogin() {
+ initComponents();
+ usernameField.setText(lastUsername);
+ }
+
+ public static boolean cekDanMintaSesi(MyFrame parent, PopupRunnable onLogin){
+ if(LoginModule.cekSesi()){
+ onLogin.run(true);
+ return true;
+ }
+ FormLogin fl = new FormLogin();
+ fl.setOnDispose(onLogin);
+ parent.setPopup(fl);
+ return false;
+ }
+
+ public void login(){
+ String username = usernameField.getText();
+ String password = passwordField.getText();
+
+ try{
+ LoginModule.login(username, password);
+ lastUsername = username;
+ onDispose(true);
+ dispose();
+ }catch(Exception ex){
+ Util.handleException(this, ex);
+ }
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ usernameField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ passwordField = new javax.swing.JPasswordField();
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ loginButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(255, 255, 255));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(0, 102, 102));
+ jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 24)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Login");
+ jLabel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jLabel1.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ jPanel3.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jPanel2.setOpaque(false);
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
+ jLabel2.setText("Username");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(jLabel2, gridBagConstraints);
+
+ usernameField.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(usernameField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(16).attach(usernameField);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
+ jLabel3.setText("Password");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(jLabel3, gridBagConstraints);
+
+ passwordField.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ passwordField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ passwordFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(passwordField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(16).attach(passwordField);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ jPanel3.add(jPanel2, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ loginButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ loginButton.setContentAreaFilled(false);
+ loginButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ loginButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(loginButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loginButtonActionPerformed
+ // TODO add your handling code here:
+ login();
+ }//GEN-LAST:event_loginButtonActionPerformed
+
+ private void passwordFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_passwordFieldActionPerformed
+ // TODO add your handling code here:
+ login();
+ }//GEN-LAST:event_passwordFieldActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(FormLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(FormLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(FormLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(FormLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new FormLogin().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JButton loginButton;
+ private javax.swing.JPasswordField passwordField;
+ private javax.swing.JTextField usernameField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/LaporanFrame.form b/src/dbd_lcd/gui/form/LaporanFrame.form
new file mode 100644
index 0000000..576579d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/LaporanFrame.form
@@ -0,0 +1,114 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/LaporanFrame.java b/src/dbd_lcd/gui/form/LaporanFrame.java
new file mode 100644
index 0000000..52db7de
--- /dev/null
+++ b/src/dbd_lcd/gui/form/LaporanFrame.java
@@ -0,0 +1,180 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.report.MyJasperViewer;
+import java.util.HashMap;
+
+/**
+ *
+ * @author user
+ */
+public class LaporanFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Laporan
+ */
+ public LaporanFrame() {
+ initComponents();
+ }
+
+ public void showReport(String reportName){
+
+ PeriodPicker pp = new PeriodPicker();
+ pp.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ MyJasperViewer report = Util.viewReport(reportName, new HashMap(){{
+ put("REPORT_YEAR", pp.readTahun());
+ put("REPORT_MONTH", pp.readBulan());
+ }});
+ pp.setPopup(report);
+ }
+ return true;
+ }
+ });
+ setPopup(pp);
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ peminjamanButton = new javax.swing.JButton();
+ peminjamButton = new javax.swing.JButton();
+ barangButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setFont(new java.awt.Font("Dialog", 1, 24)); // NOI18N
+ jLabel1.setText("Laporan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ peminjamanButton.setBackground(new java.awt.Color(255, 153, 0));
+ peminjamanButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ peminjamanButton.setText("Peminjaman");
+ peminjamanButton.setOpaque(false);
+ peminjamanButton.setSelected(true);
+ peminjamanButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ peminjamanButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(peminjamanButton, gridBagConstraints);
+
+ peminjamButton.setBackground(new java.awt.Color(255, 153, 0));
+ peminjamButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ peminjamButton.setText("Peminjam");
+ peminjamButton.setOpaque(false);
+ peminjamButton.setSelected(true);
+ peminjamButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ peminjamButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(peminjamButton, gridBagConstraints);
+
+ barangButton.setBackground(new java.awt.Color(255, 153, 0));
+ barangButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ barangButton.setText("Barang");
+ barangButton.setOpaque(false);
+ barangButton.setSelected(true);
+ barangButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ barangButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(barangButton, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void peminjamanButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_peminjamanButtonActionPerformed
+ // TODO add your handling code here:
+ showReport("Peminjaman");
+ }//GEN-LAST:event_peminjamanButtonActionPerformed
+
+ private void peminjamButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_peminjamButtonActionPerformed
+ // TODO add your handling code here:
+ showReport("Peminjam");
+ }//GEN-LAST:event_peminjamButtonActionPerformed
+
+ private void barangButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_barangButtonActionPerformed
+ // TODO add your handling code here:
+ showReport("Barang");
+ }//GEN-LAST:event_barangButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(LaporanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(LaporanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(LaporanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(LaporanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new LaporanFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton barangButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JButton peminjamButton;
+ private javax.swing.JButton peminjamanButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/PeriodPicker.form b/src/dbd_lcd/gui/form/PeriodPicker.form
new file mode 100644
index 0000000..9693d96
--- /dev/null
+++ b/src/dbd_lcd/gui/form/PeriodPicker.form
@@ -0,0 +1,128 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/PeriodPicker.java b/src/dbd_lcd/gui/form/PeriodPicker.java
new file mode 100644
index 0000000..021336c
--- /dev/null
+++ b/src/dbd_lcd/gui/form/PeriodPicker.java
@@ -0,0 +1,191 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form;
+
+import dbd_lcd.Util;
+
+/**
+ *
+ * @author user
+ */
+public class PeriodPicker extends dbd_lcd.gui.MyFrame {
+
+ public static Integer lastYear = null;
+ public static Integer lastMonth = 1;
+ /**
+ * Creates new form PeriodPicker
+ */
+ public PeriodPicker() {
+ initComponents();
+ tahunField.setText(Util.stringify(lastYear));
+ bulanCB.setSelectedIndex(lastMonth-1);
+ }
+
+ public int readTahun(){
+ int ret = Integer.parseInt(tahunField.getText());
+ if(ret < 0){
+ throw new RuntimeException("Tahun tidak valid");
+ }
+ lastYear = ret;
+ return ret;
+ }
+ public int readBulan(){
+ int ret = bulanCB.getSelectedIndex()+1;
+ if(ret <= 0){
+ throw new RuntimeException("Bulan tidak valid");
+ }
+ lastMonth = ret;
+ return ret;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ tahunField = new javax.swing.JFormattedTextField();
+ jLabel3 = new javax.swing.JLabel();
+ bulanCB = new javax.swing.JComboBox<>();
+ jPanel2 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ okButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setText("Pilih Periode");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ jLabel2.setText("Tahun");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel2, gridBagConstraints);
+
+ tahunField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
+ tahunField.setMinimumSize(new java.awt.Dimension(60, 20));
+ tahunField.setPreferredSize(new java.awt.Dimension(60, 20));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(tahunField, gridBagConstraints);
+
+ jLabel3.setText("Bulan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel3, gridBagConstraints);
+
+ bulanCB.setModel(new javax.swing.DefaultComboBoxModel(Util.MONTH));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(bulanCB, gridBagConstraints);
+
+ cancelButton.setText("Cancel");
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel2.add(cancelButton);
+
+ okButton.setText("OK");
+ okButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ okButtonActionPerformed(evt);
+ }
+ });
+ jPanel2.add(okButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel1.add(jPanel2, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
+ // TODO add your handling code here:
+ try{
+ readTahun();
+ readBulan();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ Util.handleException(this, new RuntimeException("Tahun atau bulan tidak valid"));
+ }
+ dispose(true);
+ }//GEN-LAST:event_okButtonActionPerformed
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(PeriodPicker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(PeriodPicker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(PeriodPicker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(PeriodPicker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new PeriodPicker().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JComboBox bulanCB;
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JButton okButton;
+ private javax.swing.JFormattedTextField tahunField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/TampilanUtama.form b/src/dbd_lcd/gui/form/TampilanUtama.form
new file mode 100644
index 0000000..0e3bb58
--- /dev/null
+++ b/src/dbd_lcd/gui/form/TampilanUtama.form
@@ -0,0 +1,146 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/TampilanUtama.java b/src/dbd_lcd/gui/form/TampilanUtama.java
new file mode 100644
index 0000000..72f7757
--- /dev/null
+++ b/src/dbd_lcd/gui/form/TampilanUtama.java
@@ -0,0 +1,193 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form;
+
+import dbd_lcd.gui.form.barang.DaftarBarangFrame;
+import dbd_lcd.gui.form.peminjaman.DaftarPeminjamanFrame;
+import dbd_lcd.gui.form.peminjam.DaftarPeminjamFrame;
+
+/**
+ *
+ * @author user
+ */
+public class TampilanUtama extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form TampilanUtama
+ */
+ public TampilanUtama() {
+ initComponents();
+ this.setLocationRelativeTo(null);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ peminjamanButton = new javax.swing.JButton();
+ barangButton = new javax.swing.JButton();
+ peminjamButton = new javax.swing.JButton();
+ laporanButton = new javax.swing.JButton();
+ backgroundLabel = new dbd_lcd.gui.ImageLabel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
+
+ jPanel1.setOpaque(false);
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ peminjamanButton.setBackground(new java.awt.Color(255, 0, 0));
+ peminjamanButton.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N
+ peminjamanButton.setText("Riwayat Peminjaman");
+ peminjamanButton.setSelected(true);
+ peminjamanButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ peminjamanButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(peminjamanButton, gridBagConstraints);
+
+ barangButton.setBackground(new java.awt.Color(255, 0, 0));
+ barangButton.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N
+ barangButton.setText("Barang");
+ barangButton.setSelected(true);
+ barangButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ barangButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(barangButton, gridBagConstraints);
+
+ peminjamButton.setBackground(new java.awt.Color(255, 0, 0));
+ peminjamButton.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N
+ peminjamButton.setText("Peminjam");
+ peminjamButton.setSelected(true);
+ peminjamButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ peminjamButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(peminjamButton, gridBagConstraints);
+
+ laporanButton.setBackground(new java.awt.Color(255, 0, 0));
+ laporanButton.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N
+ laporanButton.setText("Laporan");
+ laporanButton.setSelected(true);
+ laporanButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ laporanButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(laporanButton, gridBagConstraints);
+
+ jPanel2.add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 160, 280, 240));
+
+ backgroundLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/730 hu.jpg"))); // NOI18N
+ jPanel2.add(backgroundLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 730, 480));
+
+ getContentPane().add(jPanel2, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void peminjamanButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_peminjamanButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ DaftarPeminjamanFrame rp = new DaftarPeminjamanFrame();
+ rp.refresh();
+ setPopup(rp);
+ }//GEN-LAST:event_peminjamanButtonActionPerformed
+
+ private void barangButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_barangButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ DaftarBarangFrame b = new DaftarBarangFrame();
+ b.refresh();
+ setPopup(b);
+ }//GEN-LAST:event_barangButtonActionPerformed
+
+ private void peminjamButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_peminjamButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ DaftarPeminjamFrame p = new DaftarPeminjamFrame();
+ p.refresh();
+ setPopup(p);
+ }//GEN-LAST:event_peminjamButtonActionPerformed
+
+ private void laporanButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_laporanButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ LaporanFrame p = new LaporanFrame();
+ setPopup(p);
+ }//GEN-LAST:event_laporanButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(TampilanUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(TampilanUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(TampilanUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(TampilanUtama.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new TampilanUtama().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private dbd_lcd.gui.ImageLabel backgroundLabel;
+ private javax.swing.JButton barangButton;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JButton laporanButton;
+ private javax.swing.JButton peminjamButton;
+ private javax.swing.JButton peminjamanButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.form b/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.form
new file mode 100644
index 0000000..62db468
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.form
@@ -0,0 +1,37 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.java b/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.java
new file mode 100644
index 0000000..3433af3
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DaftarBarangFrame.java
@@ -0,0 +1,99 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import java.awt.Component;
+import javax.swing.JLabel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarBarangFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Barang
+ */
+
+ public DaftarBarangFrame() {
+ initComponents();
+ }
+
+ public void refresh(){
+ daftarBarangPanel.refresh();
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ daftarBarangPanel = new dbd_lcd.gui.form.barang.DaftarBarangPanel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+ getContentPane().setLayout(new java.awt.CardLayout());
+ getContentPane().add(daftarBarangPanel, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DaftarBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DaftarBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DaftarBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DaftarBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DaftarBarangFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private dbd_lcd.gui.form.barang.DaftarBarangPanel daftarBarangPanel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.form b/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.form
new file mode 100644
index 0000000..38540c2
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.form
@@ -0,0 +1,229 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.java b/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.java
new file mode 100644
index 0000000..34df5f0
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DaftarBarangPanel.java
@@ -0,0 +1,372 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import javax.swing.JLabel;
+import dbd_lcd.gui.MyPanel;
+import java.awt.Component;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarBarangPanel extends MyPanel {
+
+ /**
+ * Creates new form DaftarBarangPanel
+ */
+ FilterBarang filter = new FilterBarang();
+ Barang[] data = new Barang[0];
+ public DaftarBarangPanel() {
+ initComponents();
+ filter.tipe = Barang.Tipe.LCD;
+ }
+
+ public void determineCellColor(JLabel comp, int row, int col, boolean selected){
+ switch(col){
+ case 1:{
+ switch(data[row].getStatus()){
+ case Barang.Status.DIPINJAM:{
+ comp.setBackground(Util.ColorPack.YELLOW.get(selected));
+ break;
+ }
+ case Barang.Status.ADA:{
+ comp.setBackground(Util.ColorPack.GREEN.get(selected));
+ break;
+ }
+ case Barang.Status.RUSAK:{
+ comp.setBackground(Util.ColorPack.RED.get(selected));
+ break;
+ }
+ default:{
+ comp.setBackground(Util.ColorPack.WHITE.get(selected));
+ break;
+ }
+ }
+ break;
+ }
+ default:{
+ comp.setBackground(Util.ColorPack.WHITE.get(selected));
+ break;
+ }
+ }
+ if(col == 2){
+ comp.setToolTipText(data[row].getKeterangan());
+ }
+ if(col == 1 && data[row].getStatus().equals(Barang.Status.DIPINJAM)){
+ comp.setToolTipText(""+data[row].getNomorPeminjaman());
+ }
+ }
+
+
+ public void refresh(){
+ kabelButton.setEnabled(!Barang.Tipe.KABEL.equals(filter.tipe));
+ lcdButton.setEnabled(!Barang.Tipe.LCD.equals(filter.tipe));
+ if(filter.tipe.equals(Barang.Tipe.KABEL)) titleLabel.setText("Kabel");
+ if(filter.tipe.equals(Barang.Tipe.LCD)) titleLabel.setText("LCD Proyektor");
+ fetch();
+ }
+
+ public void fetch(){
+ Barang[] bs = Barang.fetch(filter);
+ MyTableModel dtm = new MyTableModel();
+ dtm.addColumn("Nomor");
+ dtm.addColumn("Status");
+ dtm.addColumn("Keterangan");
+
+ for(int i = 0; i < bs.length; ++i){
+ Barang b = bs[i];
+ dtm.addRow(new Object[]{
+ b.getNomor(),
+ b.getStatusString(),
+ b.getKeterangan()
+ });
+ }
+ data = bs;
+ barangTable.setModel(dtm);
+ }
+
+ public void lihatBarang(){
+
+ int row = barangTable.getSelectedRow();
+ if(row < 0) return;
+
+ lihatBarang(row);
+ }
+
+ public void lihatBarang(int index){
+ DetailBarangFrame db = new DetailBarangFrame();
+ db.load(data[index]);
+ db.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ refresh();
+ }
+ return true;
+ }
+ });
+
+ getFrame().setPopup(db);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ titleLabel = new javax.swing.JLabel();
+ jPanel6 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ lcdButton = new javax.swing.JButton();
+ kabelButton = new javax.swing.JButton();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ barangTable = new javax.swing.JTable(){
+ @Override
+ public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
+ JLabel comp = (JLabel)super.prepareRenderer(renderer, row, col);
+ determineCellColor(comp, convertRowIndexToModel(row), convertColumnIndexToModel(col), Util.contains(getSelectedRows(), row));
+ return comp;
+ }
+ };
+ jPanel3 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ filterButton = new javax.swing.JButton();
+ filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
+ jPanel5 = new javax.swing.JPanel();
+ viewButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setLayout(new java.awt.GridBagLayout());
+
+ titleLabel.setBackground(new java.awt.Color(255, 153, 0));
+ titleLabel.setFont(new java.awt.Font("Comic Sans MS", 1, 27)); // NOI18N
+ titleLabel.setForeground(new java.awt.Color(255, 255, 255));
+ titleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ titleLabel.setText("Barang");
+ titleLabel.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ add(titleLabel, gridBagConstraints);
+
+ jPanel6.setOpaque(false);
+ jPanel6.setLayout(new java.awt.GridBagLayout());
+
+ jPanel2.setOpaque(false);
+
+ lcdButton.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ lcdButton.setText("Proyektor");
+ lcdButton.setOpaque(false);
+ lcdButton.setSelected(true);
+ lcdButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ lcdButtonActionPerformed(evt);
+ }
+ });
+ jPanel2.add(lcdButton);
+
+ kabelButton.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ kabelButton.setText("Kabel");
+ kabelButton.setOpaque(false);
+ kabelButton.setSelected(true);
+ kabelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ kabelButtonActionPerformed(evt);
+ }
+ });
+ jPanel2.add(kabelButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ jPanel6.add(jPanel2, gridBagConstraints);
+
+ barangTable.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "Nomor", "Status", "Keterangan"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.Integer.class, java.lang.String.class, java.lang.String.class
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+ });
+ barangTable.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ barangTableMouseClicked(evt);
+ }
+ });
+ jScrollPane1.setViewportView(barangTable);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel6.add(jScrollPane1, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jPanel4.setOpaque(false);
+
+ filterButton.setBackground(new java.awt.Color(255, 153, 0));
+ filterButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ filterButton.setText("Filter");
+ filterButton.setOpaque(false);
+ filterButton.setSelected(true);
+ filterButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ filterButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(filterButton);
+
+ jPanel3.add(jPanel4, new java.awt.GridBagConstraints());
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ jPanel3.add(filler1, gridBagConstraints);
+
+ jPanel5.setOpaque(false);
+
+ viewButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/KC PMBESAR.png"))); // NOI18N
+ viewButton.setContentAreaFilled(false);
+ viewButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(viewButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(addButton);
+
+ jPanel3.add(jPanel5, new java.awt.GridBagConstraints());
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ gridBagConstraints.weightx = 1.0;
+ jPanel6.add(jPanel3, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ add(jPanel6, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void lcdButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lcdButtonActionPerformed
+ // TODO add your handling code here:
+ filter.tipe = Barang.Tipe.LCD;
+ refresh();
+ }//GEN-LAST:event_lcdButtonActionPerformed
+
+ private void kabelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_kabelButtonActionPerformed
+ // TODO add your handling code here:
+ filter.tipe = Barang.Tipe.KABEL;
+ refresh();
+ }//GEN-LAST:event_kabelButtonActionPerformed
+
+ private void barangTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_barangTableMouseClicked
+ // TODO add your handling code here:
+ if(evt.getClickCount() != 2) return;
+ lihatBarang();
+ }//GEN-LAST:event_barangTableMouseClicked
+
+ private void filterButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filterButtonActionPerformed
+ // TODO add your handling code here:
+ FilterBarangFrame fpf = new FilterBarangFrame();
+ fpf.load(filter);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filter = fpf.read();
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_filterButtonActionPerformed
+
+ private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewButtonActionPerformed
+ // TODO add your handling code here:
+ lihatBarang();
+ }//GEN-LAST:event_viewButtonActionPerformed
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ TambahBarang tb = new TambahBarang();
+ tb.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ Barang b = tb.read();
+ try{
+ b.insert();
+ tb.dispose();
+ refresh();
+ }catch(Exception ex){
+ Util.handleError(tb, ex);
+ }
+ }
+ });
+ setPopup(tb);
+ }//GEN-LAST:event_addButtonActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton addButton;
+ private javax.swing.JTable barangTable;
+ private javax.swing.Box.Filler filler1;
+ private javax.swing.JButton filterButton;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JButton kabelButton;
+ private javax.swing.JButton lcdButton;
+ private javax.swing.JLabel titleLabel;
+ private javax.swing.JButton viewButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/DetailBarangFrame.form b/src/dbd_lcd/gui/form/barang/DetailBarangFrame.form
new file mode 100644
index 0000000..283563d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DetailBarangFrame.form
@@ -0,0 +1,92 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/DetailBarangFrame.java b/src/dbd_lcd/gui/form/barang/DetailBarangFrame.java
new file mode 100644
index 0000000..5514e5a
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DetailBarangFrame.java
@@ -0,0 +1,153 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import javax.swing.DefaultComboBoxModel;
+
+/**
+ *
+ * @author user
+ */
+public class DetailBarangFrame extends dbd_lcd.gui.MyFrame {
+
+ public static class Mode{
+ public static final int LIHAT = 0;
+ public static final int EDIT = 1;
+ }
+
+ Barang barang;
+ /**
+ * Creates new form DetailBarang
+ */
+ public int mode = 0;
+
+ public DetailBarangFrame() {
+ initComponents();
+ setMode(Mode.LIHAT);
+ }
+
+ public void setMode(int mode){
+ switch(mode){
+
+ }
+ detailBarangPanel.setMode(mode);
+ }
+
+ public void load(Barang b){
+ this.barang = b;
+
+ detailBarangPanel.load(b);
+ setMode(Mode.LIHAT);
+
+
+ FilterPeminjaman fp = daftarPeminjamanPanel.getFilter();
+ FilterBarang filter = fp.barang;
+ if(filter == null){
+ filter = new FilterBarang();
+ }
+ filter.tipe = barang.getTipe();
+ filter.nomor = barang.getNomor();
+ fp.barang = filter;
+ daftarPeminjamanPanel.setFilter(fp);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ LJudul = new javax.swing.JLabel();
+ mainTabbedPane = new javax.swing.JTabbedPane();
+ detailBarangPanel = new dbd_lcd.gui.form.barang.DetailBarangPanel();
+ daftarPeminjamanPanel = new dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+ getContentPane().setLayout(new java.awt.GridBagLayout());
+
+ LJudul.setBackground(new java.awt.Color(255, 153, 0));
+ LJudul.setFont(new java.awt.Font("Comic Sans MS", 1, 26)); // NOI18N
+ LJudul.setForeground(new java.awt.Color(255, 255, 255));
+ LJudul.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ LJudul.setText("Detail Barang");
+ LJudul.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ getContentPane().add(LJudul, gridBagConstraints);
+
+ mainTabbedPane.setBackground(new java.awt.Color(0, 102, 102));
+ mainTabbedPane.setOpaque(true);
+ mainTabbedPane.addTab("Detail", detailBarangPanel);
+ mainTabbedPane.addTab("Peminjaman", daftarPeminjamanPanel);
+ daftarPeminjamanPanel.setMode(DaftarPeminjamanPanel.Mode.SUB);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ getContentPane().add(mainTabbedPane, gridBagConstraints);
+ setTabbedPane(mainTabbedPane);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DetailBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DetailBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DetailBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DetailBarangFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DetailBarangFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel LJudul;
+ private dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel daftarPeminjamanPanel;
+ private dbd_lcd.gui.form.barang.DetailBarangPanel detailBarangPanel;
+ private javax.swing.JTabbedPane mainTabbedPane;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/DetailBarangPanel.form b/src/dbd_lcd/gui/form/barang/DetailBarangPanel.form
new file mode 100644
index 0000000..e18f630
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DetailBarangPanel.form
@@ -0,0 +1,224 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/DetailBarangPanel.java b/src/dbd_lcd/gui/form/barang/DetailBarangPanel.java
new file mode 100644
index 0000000..5fb32a5
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/DetailBarangPanel.java
@@ -0,0 +1,330 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+import dbd_lcd.gui.MyPanel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.gui.form.barang.DetailBarangFrame.Mode;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import javax.swing.DefaultComboBoxModel;
+/**
+ *
+ * @author user
+ */
+public class DetailBarangPanel extends MyPanel {
+
+ /**
+ * Creates new form DetailBarangPanel
+ */
+ public int mode = 0;
+ public Barang barang;
+ public DetailBarangPanel() {
+ initComponents();
+ }
+
+ public void setReadOnly(boolean readOnly){
+
+ //jenisCB.setEnabled(false);
+ //nomorField.setEditable(false);
+
+ statusCB.setEnabled(!readOnly && !Barang.Status.DIPINJAM.equals(barang.getStatus()));
+ keteranganTA.setEditable(!readOnly);
+ }
+
+ public void setMode(int mode){
+ switch(mode){
+ case Mode.LIHAT:{
+ setReadOnly(true);
+
+ editButton.setVisible(true);
+ doneButton.setVisible(true);
+
+ getFrame().lockTab(null);
+
+ saveButton.setVisible(false);
+ cancelEditButton.setVisible(false);
+
+ if(barang != null && Barang.Status.DIPINJAM.equals(barang.getStatus())){
+ editButton.setVisible(false);
+ }
+ break;
+ }
+ case Mode.EDIT:{
+ setReadOnly(false);
+
+ saveButton.setVisible(true);
+ cancelEditButton.setVisible(true);
+
+ getFrame().lockTab(this);
+
+ editButton.setVisible(false);
+ doneButton.setVisible(false);
+ break;
+ }
+ }
+ }
+
+ public void load(Barang b){
+ this.barang = b;
+ setMode(Mode.LIHAT);
+
+ nomorField.setText(""+b.getNomor());
+ jenisCB.setSelectedItem(b.getTipeString());
+
+ if(b.getStatus().equals(Barang.Status.DIPINJAM)){
+ statusCB.setModel(new DefaultComboBoxModel(new String[]{
+ Barang.Status.TO_STRING.get(Barang.Status.DIPINJAM)
+ }));
+ statusCB.setSelectedIndex(0);
+ }else{
+ statusCB.setModel(new DefaultComboBoxModel(
+ Barang.Status.STRING_AVAILABLE
+ ));
+ statusCB.setSelectedItem(b.getStatusString());
+ }
+
+ statusCB.setBackground(Barang.Status.getColor((String)statusCB.getSelectedItem()).get(false));
+
+ keteranganTA.setText(Util.stringify(b.getKeterangan()));
+
+ }
+
+ public Barang read(){
+ Barang b = new Barang(barang);
+ //b.setNomor(Integer.parseInt(nomorField.getText()));
+ //b.setTipe(Barang.Tipe.FROM_STRING.get(jenisCB.getSelectedItem()));
+ b.setStatus(Barang.Status.FROM_STRING.get(statusCB.getSelectedItem()));
+ b.setKeterangan(keteranganTA.getText());
+ return b;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ LJenis = new javax.swing.JLabel();
+ jenisCB = new javax.swing.JComboBox<>();
+ LNomor = new javax.swing.JLabel();
+ nomorField = new javax.swing.JFormattedTextField();
+ LNomor1 = new javax.swing.JLabel();
+ statusCB = new javax.swing.JComboBox<>();
+ LNomor2 = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel3 = new javax.swing.JPanel();
+ cancelEditButton = new javax.swing.JButton();
+ editButton = new javax.swing.JButton();
+ doneButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setLayout(new java.awt.GridBagLayout());
+
+ LJenis.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LJenis.setForeground(new java.awt.Color(255, 255, 255));
+ LJenis.setText("Jenis");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(8, 5, 5, 5);
+ add(LJenis, gridBagConstraints);
+
+ jenisCB.setModel(new DefaultComboBoxModel<>(Barang.Tipe.STRING));
+ jenisCB.setEnabled(false);
+ jenisCB.setOpaque(false);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 0.75;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(jenisCB, gridBagConstraints);
+
+ LNomor.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LNomor.setForeground(new java.awt.Color(255, 255, 255));
+ LNomor.setText("Nomor");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(8, 5, 5, 5);
+ add(LNomor, gridBagConstraints);
+
+ nomorField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 3;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(nomorField, gridBagConstraints);
+
+ LNomor1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LNomor1.setForeground(new java.awt.Color(255, 255, 255));
+ LNomor1.setText("Status");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(8, 5, 5, 5);
+ add(LNomor1, gridBagConstraints);
+
+ statusCB.setModel(new DefaultComboBoxModel<>(Barang.Status.STRING_AVAILABLE));
+ statusCB.setOpaque(false);
+ statusCB.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ statusCBActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 0.75;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(statusCB, gridBagConstraints);
+
+ LNomor2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LNomor2.setForeground(new java.awt.Color(255, 255, 255));
+ LNomor2.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(8, 5, 5, 5);
+ add(LNomor2, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane2.setViewportView(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 0.4;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(jScrollPane2, gridBagConstraints);
+
+ jPanel3.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 10, 0, 10));
+ jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ cancelEditButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelEditButton.setContentAreaFilled(false);
+ cancelEditButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelEditButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(cancelEditButton);
+
+ editButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/PENGATURAN.png"))); // NOI18N
+ editButton.setContentAreaFilled(false);
+ editButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ editButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(editButton);
+
+ doneButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ doneButton.setContentAreaFilled(false);
+ doneButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ doneButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(doneButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ add(jPanel3, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void cancelEditButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelEditButtonActionPerformed
+ // TODO add your handling code here:
+ load(barang);
+ setMode(Mode.LIHAT);
+ }//GEN-LAST:event_cancelEditButtonActionPerformed
+
+ private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
+ // TODO add your handling code here:
+ setMode(Mode.EDIT);
+ }//GEN-LAST:event_editButtonActionPerformed
+
+ private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_doneButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+
+ final Barang b;
+ try{
+ b = read();
+ }catch(Exception ex){
+ Util.handleException(getFrame(), ex);
+ return;
+ }
+ if(b.equals(barang)){
+ setMode(Mode.LIHAT);
+ return;
+ }
+ FormLogin.cekDanMintaSesi(getFrame(), new PopupRunnable(){
+ public boolean run(boolean success){
+ if(success){
+ barang = b;
+ getFrame().changed = true;
+ b.update();
+ load(b);
+ setMode(Mode.LIHAT);
+ }
+ return true;
+ }
+ });
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void statusCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_statusCBActionPerformed
+ // TODO add your handling code here:
+ statusCB.setBackground(Barang.Status.getColor((String)statusCB.getSelectedItem()).get(false));
+ }//GEN-LAST:event_statusCBActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel LJenis;
+ private javax.swing.JLabel LNomor;
+ private javax.swing.JLabel LNomor1;
+ private javax.swing.JLabel LNomor2;
+ private javax.swing.JButton cancelEditButton;
+ private javax.swing.JButton doneButton;
+ private javax.swing.JButton editButton;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JComboBox jenisCB;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JFormattedTextField nomorField;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JComboBox statusCB;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/FilterBarangFrame.form b/src/dbd_lcd/gui/form/barang/FilterBarangFrame.form
new file mode 100644
index 0000000..906df11
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/FilterBarangFrame.form
@@ -0,0 +1,263 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/FilterBarangFrame.java b/src/dbd_lcd/gui/form/barang/FilterBarangFrame.java
new file mode 100644
index 0000000..b699ca1
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/FilterBarangFrame.java
@@ -0,0 +1,288 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+
+import dbd_lcd.gui.form.peminjam.*;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjaman.*;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+
+/**
+ *
+ * @author admin
+ */
+public class FilterBarangFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Filter
+ */
+ FilterBarang filter = new FilterBarang();
+ public FilterBarangFrame() {
+ initComponents();
+ setTipeCBVisible(false);
+ }
+
+ public void load(FilterBarang filter){
+ nomorField.setText(Util.stringify(filter.nomor));
+ tipeCB.setSelectedItem(Util.stringify(Barang.Tipe.TO_STRING.get(filter.tipe)));
+ statusCB.setSelectedItem(Util.stringify(Barang.Status.TO_STRING.get(filter.status)));
+ keteranganTA.setText(Util.stringify(filter.keterangan));
+ this.filter = filter;
+ }
+ public FilterBarang read(){
+ FilterBarang filter = new FilterBarang(this.filter);
+ filter.nomor = Util.integerify(nomorField.getText());
+ filter.tipe = Barang.Tipe.FROM_STRING.get(Util.nullify((String)tipeCB.getSelectedItem()));
+ filter.status = Barang.Status.FROM_STRING.get(Util.nullify((String)statusCB.getSelectedItem()));
+ filter.keterangan = Util.nullify(keteranganTA.getText());
+
+ return filter;
+ }
+
+ public void setTipeCBVisible(boolean visible){
+ tipeLabel.setVisible(visible);
+ tipeCB.setVisible(visible);
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel4 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel6 = new javax.swing.JLabel();
+ nomorField = new javax.swing.JFormattedTextField();
+ tipeLabel = new javax.swing.JLabel();
+ tipeCB = new javax.swing.JComboBox<>();
+ jLabel3 = new javax.swing.JLabel();
+ statusCB = new javax.swing.JComboBox<>();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(15, 0));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 15, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 278, Short.MAX_VALUE)
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel4.setText("Filter Barang");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel4, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel6.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel6.setText("Nomor");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel6, gridBagConstraints);
+
+ nomorField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(nomorField, gridBagConstraints);
+
+ tipeLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ tipeLabel.setForeground(new java.awt.Color(255, 255, 255));
+ tipeLabel.setText("Jenis");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(tipeLabel, gridBagConstraints);
+
+ tipeCB.setModel(new javax.swing.DefaultComboBoxModel(Barang.Tipe.FILTER_STRING));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(tipeCB, gridBagConstraints);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("Status");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel3, gridBagConstraints);
+
+ statusCB.setModel(new javax.swing.DefaultComboBoxModel(Barang.Status.FILTER_STRING));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(statusCB, gridBagConstraints);
+
+ jLabel2.setBackground(new java.awt.Color(255, 255, 255));
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel2, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane1.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jScrollPane1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ jPanel1.add(jPanel4, gridBagConstraints);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ load(filter);
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ load(read());
+ changed = true;
+ dispose(true);
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new FilterBarangFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JFormattedTextField nomorField;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JComboBox statusCB;
+ private javax.swing.JComboBox tipeCB;
+ private javax.swing.JLabel tipeLabel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/barang/TambahBarang.form b/src/dbd_lcd/gui/form/barang/TambahBarang.form
new file mode 100644
index 0000000..16f0293
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/TambahBarang.form
@@ -0,0 +1,242 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/barang/TambahBarang.java b/src/dbd_lcd/gui/form/barang/TambahBarang.java
new file mode 100644
index 0000000..2feddf7
--- /dev/null
+++ b/src/dbd_lcd/gui/form/barang/TambahBarang.java
@@ -0,0 +1,272 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.barang;
+
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.PopupRunnable;
+
+/**
+ *
+ * @author user
+ */
+public class TambahBarang extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form DetailBarang2
+ */
+ public TambahBarang() {
+ initComponents();
+ }
+
+ public Barang read(){
+
+ int nomor = -1;
+ String sNomor = nomorField.getText();
+ if(Util.isNullOrEmpty(sNomor)){
+ throw new RuntimeException("Nomor tidak boleh kosong");
+ }
+ nomor = Integer.parseInt(sNomor);
+ String keterangan = keteranganTA.getText();
+ String tipe = Barang.Tipe.FROM_STRING.get((String)tipeCB.getSelectedItem());
+
+
+ Barang b = new Barang(nomor, tipe, Barang.Status.ADA, null, Util.nullify(keterangan));
+ return b;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ titleLabel = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ LJenis = new javax.swing.JLabel();
+ tipeCB = new javax.swing.JComboBox<>();
+ LNomor = new javax.swing.JLabel();
+ nomorField = new javax.swing.JFormattedTextField();
+ LKeterangan = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel5 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ titleLabel.setBackground(new java.awt.Color(255, 153, 0));
+ titleLabel.setFont(new java.awt.Font("Comic Sans MS", 1, 26)); // NOI18N
+ titleLabel.setForeground(new java.awt.Color(255, 255, 255));
+ titleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ titleLabel.setText("Tambah Barang");
+ titleLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ titleLabel.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ jPanel1.add(titleLabel, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.GridBagLayout());
+
+ LJenis.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LJenis.setForeground(new java.awt.Color(255, 255, 255));
+ LJenis.setText("Jenis");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(LJenis, gridBagConstraints);
+
+ tipeCB.setModel(new javax.swing.DefaultComboBoxModel<>(Barang.Tipe.STRING));
+ tipeCB.setOpaque(false);
+ tipeCB.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ tipeCBActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(tipeCB, gridBagConstraints);
+
+ LNomor.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LNomor.setForeground(new java.awt.Color(255, 255, 255));
+ LNomor.setText("Nomor");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(LNomor, gridBagConstraints);
+
+ nomorField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(nomorField, gridBagConstraints);
+
+ LKeterangan.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ LKeterangan.setForeground(new java.awt.Color(255, 255, 255));
+ LKeterangan.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(LKeterangan, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane1.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jScrollPane1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ jPanel5.setOpaque(false);
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(cancelButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(addButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel3.add(jPanel5, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void tipeCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tipeCBActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_tipeCBActionPerformed
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ try{
+ read();
+ }catch(Exception ex){
+ Util.handleError(this, ex);
+ return;
+ }
+ dispose(true);
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(TambahBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(TambahBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(TambahBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(TambahBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new TambahBarang().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel LJenis;
+ private javax.swing.JLabel LKeterangan;
+ private javax.swing.JLabel LNomor;
+ private javax.swing.JButton addButton;
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JFormattedTextField nomorField;
+ private javax.swing.JComboBox tipeCB;
+ private javax.swing.JLabel titleLabel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/install/SetupFrameExisting.form b/src/dbd_lcd/gui/form/install/SetupFrameExisting.form
new file mode 100644
index 0000000..6f7517f
--- /dev/null
+++ b/src/dbd_lcd/gui/form/install/SetupFrameExisting.form
@@ -0,0 +1,263 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/install/SetupFrameExisting.java b/src/dbd_lcd/gui/form/install/SetupFrameExisting.java
new file mode 100644
index 0000000..ccc450a
--- /dev/null
+++ b/src/dbd_lcd/gui/form/install/SetupFrameExisting.java
@@ -0,0 +1,330 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.install;
+
+import dbd_lcd.Config;
+import dbd_lcd.Util;
+import dbd_lcd.database.Database;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.gui.form.TampilanUtama;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.Peminjaman;
+import dbd_lcd.system.structs.RiwayatPeminjaman;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import java.awt.CardLayout;
+
+/**
+ *
+ * @author user
+ */
+public class SetupFrameExisting extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form InstallFrame
+ */
+ public SetupFrameExisting() {
+ initComponents();
+ setCard("card1");
+ }
+
+ public void setCard(String card){
+ CardLayout layout = (CardLayout) mainPanel.getLayout();
+ layout.show(mainPanel, card);
+ }
+
+ public void install(){
+ String dbServer = serverField.getText();
+ String dbName = databaseNameField.getText();
+ String clientUsername = clientUsernameField.getText();
+ String clientPassword = clientPasswordField.getText();
+
+ Config.set("DATABASE_SERVER", dbServer);
+ Config.set("DATABASE_NAME", dbName);
+ Config.set("DATABASE_USERNAME", clientUsername);
+ Config.set("DATABASE_PASSWORD", clientPassword);
+
+ RiwayatPeminjaman.fetch(new FilterPeminjaman());
+ Peminjam.fetch(new FilterPeminjam());
+ Barang.fetch(new FilterBarang());
+
+ Config.set("FIRST_RUN", "1");
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jPanel2 = new javax.swing.JPanel();
+ mainPanel = new javax.swing.JPanel();
+ card2 = new javax.swing.JPanel();
+ jLabel8 = new javax.swing.JLabel();
+ jLabel9 = new javax.swing.JLabel();
+ jLabel3 = new javax.swing.JLabel();
+ jLabel10 = new javax.swing.JLabel();
+ jLabel11 = new javax.swing.JLabel();
+ jLabel12 = new javax.swing.JLabel();
+ serverField = new javax.swing.JTextField();
+ databaseNameField = new javax.swing.JTextField();
+ clientUsernameField = new javax.swing.JTextField();
+ clientPasswordField = new javax.swing.JPasswordField();
+ jPanel4 = new javax.swing.JPanel();
+ backButton = new javax.swing.JButton();
+ nextButton = new javax.swing.JButton();
+ filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(255, 153, 0));
+ jLabel1.setFont(new java.awt.Font("Dialog", 1, 24)); // NOI18N
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Install");
+ jLabel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jLabel1.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ jPanel2.setOpaque(false);
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ mainPanel.setOpaque(false);
+ mainPanel.setLayout(new java.awt.CardLayout());
+
+ card2.setOpaque(false);
+ card2.setLayout(new java.awt.GridBagLayout());
+
+ jLabel8.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jLabel8.setText("Database Aplikasi");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
+ card2.add(jLabel8, gridBagConstraints);
+
+ jLabel9.setText("Database yang akan digunakan aplikasi ini");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
+ card2.add(jLabel9, gridBagConstraints);
+
+ jLabel3.setText("Server Database");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel3, gridBagConstraints);
+
+ jLabel10.setText("Nama Database");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel10, gridBagConstraints);
+
+ jLabel11.setText("Username Client");
+ jLabel11.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel11, gridBagConstraints);
+
+ jLabel12.setText("Password Client");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel12, gridBagConstraints);
+
+ serverField.setText("localhost");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(serverField, gridBagConstraints);
+
+ databaseNameField.setText("lcddbd");
+ databaseNameField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ databaseNameFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(databaseNameField, gridBagConstraints);
+
+ clientUsernameField.setText("client");
+ clientUsernameField.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(clientUsernameField, gridBagConstraints);
+
+ clientPasswordField.setText("asdfasdf");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(clientPasswordField, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ backButton.setText("Cancel");
+ backButton.setOpaque(false);
+ backButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ backButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(backButton);
+
+ nextButton.setText("Install");
+ nextButton.setOpaque(false);
+ nextButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ nextButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(nextButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ card2.add(jPanel4, gridBagConstraints);
+
+ mainPanel.add(card2, "card2");
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel2.add(mainPanel, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(jPanel2, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
+ gridBagConstraints.weighty = 1.0;
+ jPanel1.add(filler1, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void databaseNameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_databaseNameFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_databaseNameFieldActionPerformed
+
+ private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_backButtonActionPerformed
+
+ private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButtonActionPerformed
+ // TODO add your handling code here:
+ try{
+ install();
+ dispose(true);
+ }catch(Exception ex){
+ Util.handleError(this, ex);
+ }
+ }//GEN-LAST:event_nextButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameExisting.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameExisting.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameExisting.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameExisting.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new SetupFrameExisting().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton backButton;
+ private javax.swing.JPanel card2;
+ private javax.swing.JPasswordField clientPasswordField;
+ private javax.swing.JTextField clientUsernameField;
+ private javax.swing.JTextField databaseNameField;
+ private javax.swing.Box.Filler filler1;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel11;
+ private javax.swing.JLabel jLabel12;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel mainPanel;
+ private javax.swing.JButton nextButton;
+ private javax.swing.JTextField serverField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/install/SetupFrameNew.form b/src/dbd_lcd/gui/form/install/SetupFrameNew.form
new file mode 100644
index 0000000..5a62e71
--- /dev/null
+++ b/src/dbd_lcd/gui/form/install/SetupFrameNew.form
@@ -0,0 +1,519 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/install/SetupFrameNew.java b/src/dbd_lcd/gui/form/install/SetupFrameNew.java
new file mode 100644
index 0000000..ccacdb8
--- /dev/null
+++ b/src/dbd_lcd/gui/form/install/SetupFrameNew.java
@@ -0,0 +1,604 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.install;
+
+import dbd_lcd.Config;
+import dbd_lcd.Util;
+import dbd_lcd.database.Database;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.gui.form.TampilanUtama;
+import dbd_lcd.system.LoginModule;
+import java.awt.CardLayout;
+
+/**
+ *
+ * @author user
+ */
+public class SetupFrameNew extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form InstallFrame
+ */
+ public SetupFrameNew() {
+ initComponents();
+ setCard("card1");
+ }
+
+ public void setCard(String card){
+ CardLayout layout = (CardLayout) mainPanel.getLayout();
+ layout.show(mainPanel, card);
+ }
+
+ public void install(){
+ String dbServer = serverField.getText();
+ String rootUsername = rootUsernameField.getText();
+ String rootPassword = rootPasswordField.getText();
+ String dbName = databaseNameField.getText();
+ String clientUsername = clientUsernameField.getText();
+ String clientPassword = clientPasswordField.getText();
+ String adminUsername = adminUsernameField.getText();
+ String adminPassword = adminPasswordField.getText();
+ String namaAdmin = namaAdminField.getText();
+
+ try{
+ Config.set("DATABASE_SERVER", dbServer);
+ Config.set("DATABASE_NAME", "");
+ Config.set("DATABASE_USERNAME", rootUsername);
+ Config.set("DATABASE_PASSWORD", rootPassword);
+
+ try(PreparedStatement stmt = Database.prepareStatement(
+ "CREATE DATABASE " + dbName
+ )){
+ stmt.executeUpdate();
+ }
+
+ Config.set("DATABASE_NAME", dbName);
+ try(PreparedStatement stmt = Database.prepareStatement(
+ Util.readSQL("crebas")
+ .replace("DELIMITER //", "")
+ .replace("DELIMITER ;", "")
+ .replace("//", ";")
+ .replace("'root'", "'" + rootUsername + "'")
+ .replace("'localhost'", "'" + dbServer + "'")
+ )){
+ stmt.executeUpdate();
+ }
+
+ String initQuery = Util.readSQL("init")
+ .replace("'client'", "'" + clientUsername + "'")
+ .replace("'client_password'", "'" + clientPassword + "'")
+ .replace("'admin'", "'" + adminUsername + "'")
+ //.replace("'admin_password'", "'" + LoginModule.saltPassword(adminPassword) + "'")
+ .replace("'admin_password'", "'" + adminPassword + "'")
+ .replace("'Nama Admin'", "'" + namaAdmin + "'")
+ .replace("`database_name`", "`" + dbName + "`")
+ ;
+
+ try(PreparedStatement stmt = Database.prepareStatement(
+ initQuery
+ )){
+ stmt.executeUpdate();
+ }
+
+ Config.set("DATABASE_NAME", dbName);
+ Config.set("DATABASE_USERNAME", clientUsername);
+ Config.set("DATABASE_PASSWORD", clientPassword);
+ Config.set("FIRST_RUN", "1");
+
+ dispose(true);
+ }catch(Exception ex){
+ Util.handleError(this, ex);
+ }
+
+
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jPanel2 = new javax.swing.JPanel();
+ mainPanel = new javax.swing.JPanel();
+ card1 = new javax.swing.JPanel();
+ jLabel6 = new javax.swing.JLabel();
+ jLabel7 = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ jLabel5 = new javax.swing.JLabel();
+ serverField = new javax.swing.JTextField();
+ rootUsernameField = new javax.swing.JTextField();
+ rootPasswordField = new javax.swing.JPasswordField();
+ jPanel6 = new javax.swing.JPanel();
+ nextButton1 = new javax.swing.JButton();
+ card2 = new javax.swing.JPanel();
+ jLabel8 = new javax.swing.JLabel();
+ jLabel9 = new javax.swing.JLabel();
+ jLabel10 = new javax.swing.JLabel();
+ jLabel11 = new javax.swing.JLabel();
+ jLabel12 = new javax.swing.JLabel();
+ databaseNameField = new javax.swing.JTextField();
+ clientUsernameField = new javax.swing.JTextField();
+ clientPasswordField = new javax.swing.JPasswordField();
+ jPanel4 = new javax.swing.JPanel();
+ backButton = new javax.swing.JButton();
+ nextButton = new javax.swing.JButton();
+ card3 = new javax.swing.JPanel();
+ jLabel13 = new javax.swing.JLabel();
+ jLabel14 = new javax.swing.JLabel();
+ jLabel18 = new javax.swing.JLabel();
+ jLabel16 = new javax.swing.JLabel();
+ jLabel17 = new javax.swing.JLabel();
+ namaAdminField = new javax.swing.JTextField();
+ adminUsernameField = new javax.swing.JTextField();
+ adminPasswordField = new javax.swing.JPasswordField();
+ filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+ jPanel7 = new javax.swing.JPanel();
+ backButton2 = new javax.swing.JButton();
+ nextButton2 = new javax.swing.JButton();
+ filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(255, 153, 0));
+ jLabel1.setFont(new java.awt.Font("Dialog", 1, 24)); // NOI18N
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Install");
+ jLabel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jLabel1.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ jPanel2.setOpaque(false);
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ mainPanel.setOpaque(false);
+ mainPanel.setLayout(new java.awt.CardLayout());
+
+ card1.setOpaque(false);
+ card1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel6.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jLabel6.setText("Server Database");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
+ card1.add(jLabel6, gridBagConstraints);
+
+ jLabel7.setText("Data database yang sudah ada");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
+ card1.add(jLabel7, gridBagConstraints);
+
+ jLabel2.setText("Server Database");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(jLabel2, gridBagConstraints);
+
+ jLabel4.setText("Username Root");
+ jLabel4.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(jLabel4, gridBagConstraints);
+
+ jLabel5.setText("Password Root");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(jLabel5, gridBagConstraints);
+
+ serverField.setText("localhost");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(serverField, gridBagConstraints);
+
+ rootUsernameField.setText("root");
+ rootUsernameField.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(rootUsernameField, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card1.add(rootPasswordField, gridBagConstraints);
+
+ jPanel6.setOpaque(false);
+
+ nextButton1.setText("Next");
+ nextButton1.setOpaque(false);
+ nextButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ nextButton1ActionPerformed(evt);
+ }
+ });
+ jPanel6.add(nextButton1);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ card1.add(jPanel6, gridBagConstraints);
+
+ mainPanel.add(card1, "card1");
+
+ card2.setOpaque(false);
+ card2.setLayout(new java.awt.GridBagLayout());
+
+ jLabel8.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jLabel8.setText("Database Aplikasi");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
+ card2.add(jLabel8, gridBagConstraints);
+
+ jLabel9.setText("Database yang akan digunakan aplikasi ini");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
+ card2.add(jLabel9, gridBagConstraints);
+
+ jLabel10.setText("Nama Database");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel10, gridBagConstraints);
+
+ jLabel11.setText("Username Client");
+ jLabel11.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel11, gridBagConstraints);
+
+ jLabel12.setText("Password Client");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(jLabel12, gridBagConstraints);
+
+ databaseNameField.setText("lcddbd");
+ databaseNameField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ databaseNameFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(databaseNameField, gridBagConstraints);
+
+ clientUsernameField.setText("client");
+ clientUsernameField.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(clientUsernameField, gridBagConstraints);
+
+ clientPasswordField.setText("asdfasdf");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card2.add(clientPasswordField, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ backButton.setText("Back");
+ backButton.setOpaque(false);
+ backButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ backButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(backButton);
+
+ nextButton.setText("Next");
+ nextButton.setOpaque(false);
+ nextButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ nextButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(nextButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ card2.add(jPanel4, gridBagConstraints);
+
+ mainPanel.add(card2, "card2");
+
+ card3.setOpaque(false);
+ card3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel13.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jLabel13.setText("Petugas");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
+ card3.add(jLabel13, gridBagConstraints);
+
+ jLabel14.setText("Keterangan login petugas");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
+ card3.add(jLabel14, gridBagConstraints);
+
+ jLabel18.setText("Nama");
+ jLabel18.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(jLabel18, gridBagConstraints);
+
+ jLabel16.setText("Username");
+ jLabel16.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(jLabel16, gridBagConstraints);
+
+ jLabel17.setText("Password");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(jLabel17, gridBagConstraints);
+
+ namaAdminField.setText("Nama Admin");
+ namaAdminField.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(namaAdminField, gridBagConstraints);
+
+ adminUsernameField.setText("admin");
+ adminUsernameField.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(adminUsernameField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(16).attach(adminUsernameField);
+
+ adminPasswordField.setText("admin");
+ adminPasswordField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ adminPasswordFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ card3.add(adminPasswordField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(16).attach(adminPasswordField);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.weighty = 1.0;
+ card3.add(filler2, gridBagConstraints);
+
+ jPanel7.setOpaque(false);
+
+ backButton2.setText("Back");
+ backButton2.setOpaque(false);
+ backButton2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ backButton2ActionPerformed(evt);
+ }
+ });
+ jPanel7.add(backButton2);
+
+ nextButton2.setText("Install");
+ nextButton2.setOpaque(false);
+ nextButton2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ nextButton2ActionPerformed(evt);
+ }
+ });
+ jPanel7.add(nextButton2);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ card3.add(jPanel7, gridBagConstraints);
+
+ mainPanel.add(card3, "card3");
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel2.add(mainPanel, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel1.add(jPanel2, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
+ gridBagConstraints.weighty = 1.0;
+ jPanel1.add(filler1, gridBagConstraints);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void databaseNameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_databaseNameFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_databaseNameFieldActionPerformed
+
+ private void nextButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButton1ActionPerformed
+ // TODO add your handling code here:
+ setCard("card2");
+ }//GEN-LAST:event_nextButton1ActionPerformed
+
+ private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backButtonActionPerformed
+ // TODO add your handling code here:
+ setCard("card1");
+ }//GEN-LAST:event_backButtonActionPerformed
+
+ private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButtonActionPerformed
+ // TODO add your handling code here:
+ setCard("card3");
+ }//GEN-LAST:event_nextButtonActionPerformed
+
+ private void backButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backButton2ActionPerformed
+ // TODO add your handling code here:
+ setCard("card2");
+ }//GEN-LAST:event_backButton2ActionPerformed
+
+ private void nextButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButton2ActionPerformed
+ // TODO add your handling code here:
+ install();
+ }//GEN-LAST:event_nextButton2ActionPerformed
+
+ private void adminPasswordFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_adminPasswordFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_adminPasswordFieldActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(SetupFrameNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new SetupFrameNew().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JPasswordField adminPasswordField;
+ private javax.swing.JTextField adminUsernameField;
+ private javax.swing.JButton backButton;
+ private javax.swing.JButton backButton2;
+ private javax.swing.JPanel card1;
+ private javax.swing.JPanel card2;
+ private javax.swing.JPanel card3;
+ private javax.swing.JPasswordField clientPasswordField;
+ private javax.swing.JTextField clientUsernameField;
+ private javax.swing.JTextField databaseNameField;
+ private javax.swing.Box.Filler filler1;
+ private javax.swing.Box.Filler filler2;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel11;
+ private javax.swing.JLabel jLabel12;
+ private javax.swing.JLabel jLabel13;
+ private javax.swing.JLabel jLabel14;
+ private javax.swing.JLabel jLabel16;
+ private javax.swing.JLabel jLabel17;
+ private javax.swing.JLabel jLabel18;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JPanel jPanel7;
+ private javax.swing.JPanel mainPanel;
+ private javax.swing.JTextField namaAdminField;
+ private javax.swing.JButton nextButton;
+ private javax.swing.JButton nextButton1;
+ private javax.swing.JButton nextButton2;
+ private javax.swing.JPasswordField rootPasswordField;
+ private javax.swing.JTextField rootUsernameField;
+ private javax.swing.JTextField serverField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.form b/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.form
new file mode 100644
index 0000000..26de9ea
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.form
@@ -0,0 +1,303 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.java b/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.java
new file mode 100644
index 0000000..249ef9d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/BlacklistPeminjam.java
@@ -0,0 +1,450 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.DialogKonfirmasi;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Peminjam;
+
+/**
+ *
+ * @author USER
+ */
+public class BlacklistPeminjam extends dbd_lcd.gui.MyFrame {
+ /**
+ * Creates new form No_HP
+ */
+ class Mode{
+ public static final int TAMBAH = 0;
+ public static final int EDIT = 1;
+ public static final int LIHAT = 2;
+ }
+ private int mode = 0;
+ Peminjam peminjam;
+
+ public void setMode(int mode){
+ this.mode = mode;
+ switch(mode){
+ case Mode.TAMBAH:{
+ keteranganTA.setEnabled(true);
+
+ closeButton.setVisible(true);
+ addButton.setVisible(true);
+
+ saveButton.setVisible(false);
+ okButton.setVisible(false);
+ removeButton.setVisible(false);
+ editButton.setVisible(false);
+ cancelEditButton.setVisible(false);
+ break;
+ }
+ case Mode.EDIT:{
+ keteranganTA.setEnabled(true);
+
+ cancelEditButton.setVisible(true);
+ saveButton.setVisible(true);
+
+ addButton.setVisible(false);
+ closeButton.setVisible(false);
+ okButton.setVisible(false);
+ removeButton.setVisible(false);
+ editButton.setVisible(false);
+ break;
+ }
+ case Mode.LIHAT:{
+ keteranganTA.setEnabled(false);
+
+ removeButton.setVisible(true);
+ okButton.setVisible(true);
+ editButton.setVisible(true);
+
+ addButton.setVisible(false);
+ cancelEditButton.setVisible(false);
+ saveButton.setVisible(false);
+ closeButton.setVisible(false);
+ break;
+ }
+ }
+ }
+
+ public void load(Peminjam pm){
+ this.peminjam = pm;//new Peminjam(pm);
+ if(pm.isPeminjamTerblacklist()) setMode(Mode.LIHAT);
+ else setMode(Mode.TAMBAH);
+ load();
+ }
+ public void load(){
+ idLabel.setText(peminjam.getIdPeminjam());
+ nameLabel.setText(peminjam.getNamaPeminjam());
+ String ket = peminjam.getKeteranganBlacklist();
+ if(!Util.isNullOrEmpty(ket)){
+ keteranganTA.setText(ket);
+ }
+ }
+ public Peminjam read(){
+ Peminjam pm = new Peminjam(peminjam);
+ pm.setKeteranganBlacklist(Util.nullify(keteranganTA.getText()));
+ return pm;
+ }
+ public BlacklistPeminjam() {
+ initComponents();
+ }
+
+ public void removeBlacklist(){
+ DialogKonfirmasi dk = new DialogKonfirmasi();
+ dk.setQuestion(String.format("Apa anda yakin ingin menghilangkan status blacklist %s?", peminjam.getNamaPeminjam()));
+ dk.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ Peminjam pm = read();
+ pm.setKeteranganBlacklist(null);
+ pm.update();
+ dk.dispose();
+ dispose(true);
+ }
+ });
+ setPopup(dk);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel3 = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ idLabel = new javax.swing.JLabel();
+ jLabel6 = new javax.swing.JLabel();
+ nameLabel = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ removeButton = new javax.swing.JButton();
+ closeButton = new javax.swing.JButton();
+ cancelEditButton = new javax.swing.JButton();
+ editButton = new javax.swing.JButton();
+ okButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(20, 375));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 20, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 359, Short.MAX_VALUE)
+ );
+
+ jPanel1.add(jPanel2, java.awt.BorderLayout.LINE_START);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel3.setFont(new java.awt.Font("Comic Sans MS", 1, 36)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel3.setText("Blacklist");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = 2;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel3.add(jLabel3, gridBagConstraints);
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel4.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel4.setText("No. Identitas");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 20, 10, 10);
+ jPanel3.add(jLabel4, gridBagConstraints);
+
+ idLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ idLabel.setForeground(new java.awt.Color(255, 255, 255));
+ idLabel.setText("H00000000");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 10, 10, 10);
+ jPanel3.add(idLabel, gridBagConstraints);
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel6.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel6.setText("Nama");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 20, 10, 10);
+ jPanel3.add(jLabel6, gridBagConstraints);
+
+ nameLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ nameLabel.setForeground(new java.awt.Color(255, 255, 255));
+ nameLabel.setText("John Doe");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 10, 10, 10);
+ jPanel3.add(nameLabel, gridBagConstraints);
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 20, 10, 10);
+ jPanel3.add(jLabel2, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane1.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(jScrollPane1, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ removeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ removeButton.setContentAreaFilled(false);
+ removeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ removeButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(removeButton);
+
+ closeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ closeButton.setContentAreaFilled(false);
+ closeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ closeButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(closeButton);
+
+ cancelEditButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelEditButton.setContentAreaFilled(false);
+ cancelEditButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelEditButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelEditButton);
+
+ editButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/PENGATURAN.png"))); // NOI18N
+ editButton.setContentAreaFilled(false);
+ editButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ editButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(editButton);
+
+ okButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ okButton.setContentAreaFilled(false);
+ okButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ okButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(okButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(addButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = 2;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 20, 10, 20);
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ jPanel1.add(jPanel3, java.awt.BorderLayout.CENTER);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed
+ // TODO add your handling code here:
+ removeBlacklist();
+ }//GEN-LAST:event_removeButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ final Peminjam pm = read();
+ if(Util.isNullOrEmpty(keteranganTA.getText())){
+ removeBlacklist();
+ return;
+ }
+ FormLogin.cekDanMintaSesi(this, new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ pm.update();
+ peminjam = pm;
+ changed = true;
+ setMode(Mode.LIHAT);
+ }
+ return true;
+ }
+ });
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
+ // TODO add your handling code here:
+ setMode(Mode.EDIT);
+ }//GEN-LAST:event_editButtonActionPerformed
+
+ private void cancelEditButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelEditButtonActionPerformed
+ // TODO add your handling code here:
+ load();
+ setMode(Mode.LIHAT);
+ }//GEN-LAST:event_cancelEditButtonActionPerformed
+
+ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
+ // TODO add your handling code here:
+ dispose(changed);
+ }//GEN-LAST:event_okButtonActionPerformed
+
+ private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_closeButtonActionPerformed
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ Peminjam pm = read();
+ if(!pm.isPeminjamTerblacklist()){
+ Util.handleError(this, new RuntimeException("Keterangan blacklist harus diisi"));
+ return;
+ }
+ FormLogin.cekDanMintaSesi(this, new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ pm.update();
+ dispose(true);
+ }
+ return true;
+ }
+ });
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(BlacklistPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(BlacklistPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(BlacklistPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(BlacklistPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new BlacklistPeminjam().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton addButton;
+ private javax.swing.JButton cancelEditButton;
+ private javax.swing.JButton closeButton;
+ private javax.swing.JButton editButton;
+ private javax.swing.JLabel idLabel;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JLabel nameLabel;
+ private javax.swing.JButton okButton;
+ private javax.swing.JButton removeButton;
+ private javax.swing.JButton saveButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.form b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.form
new file mode 100644
index 0000000..09ae1db
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.form
@@ -0,0 +1,34 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.java b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.java
new file mode 100644
index 0000000..0a22dd7
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamFrame.java
@@ -0,0 +1,106 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import java.awt.Component;
+import javax.swing.JLabel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author USER
+ */
+public class DaftarPeminjamFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Blacklist
+ */
+ public DaftarPeminjamFrame() {
+ initComponents();
+ }
+ public void refresh(){
+ daftarPeminjamPanel.refresh();
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ daftarPeminjamPanel = new dbd_lcd.gui.form.peminjam.DaftarPeminjamPanel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+ getContentPane().add(daftarPeminjamPanel, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DaftarPeminjamFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private dbd_lcd.gui.form.peminjam.DaftarPeminjamPanel daftarPeminjamPanel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.form b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.form
new file mode 100644
index 0000000..33624f4
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.form
@@ -0,0 +1,235 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.java b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.java
new file mode 100644
index 0000000..58eb3ca
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DaftarPeminjamPanel.java
@@ -0,0 +1,338 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.gui.form.PeriodPicker;
+import dbd_lcd.report.MyJasperViewer;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import java.awt.Component;
+import java.util.HashMap;
+import javax.swing.JLabel;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarPeminjamPanel extends dbd_lcd.gui.MyPanel {
+
+ /**
+ * Creates new form DaftarPeminjamPanel
+ */
+ FilterPeminjam filter = new FilterPeminjam();
+ Peminjam[] data = new Peminjam[0];
+ public DaftarPeminjamPanel() {
+ initComponents();
+ }
+
+ public void determineCellColor(JLabel comp, int row, int col, boolean selected){
+ switch(col){
+ case 0:{
+ comp.setBackground(data[row].getBlacklistColor().get(selected));
+ if(data[row].isPeminjamTerblacklist()){
+ comp.setToolTipText(data[row].getKeteranganBlacklist());
+ }
+ break;
+ }
+ default:{
+ comp.setBackground(Util.ColorPack.WHITE.get(selected));
+ break;
+ }
+ }
+
+ }
+
+ public void refresh(){
+ Peminjam[] pms = Peminjam.fetch(filter);
+
+ MyTableModel dtm = new MyTableModel();
+ dtm.addColumn("Nomor Identitas");
+ dtm.addColumn("Nama");
+ dtm.addColumn("Nomor HP");
+ for(int i = 0; i < pms.length; ++i){
+ Peminjam pm = pms[i];
+ dtm.addRow(new Object[]{
+ pm.getIdPeminjam(),
+ pm.getNamaPeminjam(),
+ pm.getNomorHpPeminjam()
+ });
+ }
+
+ data = pms;
+ TabelPeminjam.setModel(dtm);
+ }
+
+ public void lihatPeminjam(){
+ int row = TabelPeminjam.getSelectedRow();
+ if(row < 0) return;
+
+ lihatPeminjam(row);
+ }
+
+ public void lihatPeminjam(int index){
+ Peminjam pm = data[index];
+ DetailPeminjamFrame tup = new DetailPeminjamFrame();
+ tup.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ refresh();
+ }
+ return true;
+ }
+ });
+ tup.load(pm);
+ setPopup(tup);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jLabel1 = new javax.swing.JLabel();
+ jPanel1 = new javax.swing.JPanel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ TabelPeminjam = new javax.swing.JTable(){
+ @Override
+ public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
+ JLabel comp = (JLabel)super.prepareRenderer(renderer, row, col);
+ determineCellColor(comp, convertRowIndexToModel(row), convertColumnIndexToModel(col), Util.contains(getSelectedRows(), row));
+ return comp;
+ }
+ };
+ jPanel3 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ filterButton = new javax.swing.JButton();
+ filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
+ jPanel5 = new javax.swing.JPanel();
+ blacklistButton = new javax.swing.JButton();
+ viewButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(255, 153, 0));
+ jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 26)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Peminjam");
+ jLabel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jLabel1.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ add(jLabel1, gridBagConstraints);
+
+ jPanel1.setOpaque(false);
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ TabelPeminjam.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ TabelPeminjam.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "Id", "Nama", "No. HP"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.Object.class, java.lang.Object.class, java.lang.String.class
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+ });
+ TabelPeminjam.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ TabelPeminjamMouseClicked(evt);
+ }
+ });
+ jScrollPane1.setViewportView(TabelPeminjam);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = 5;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.ipadx = 515;
+ gridBagConstraints.ipady = 239;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(18, 9, 0, 0);
+ jPanel1.add(jScrollPane1, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jPanel4.setOpaque(false);
+
+ filterButton.setBackground(new java.awt.Color(255, 153, 0));
+ filterButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ filterButton.setText("Filter");
+ filterButton.setOpaque(false);
+ filterButton.setSelected(true);
+ filterButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ filterButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(filterButton);
+
+ jPanel3.add(jPanel4, new java.awt.GridBagConstraints());
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ jPanel3.add(filler1, gridBagConstraints);
+
+ jPanel5.setOpaque(false);
+
+ blacklistButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ blacklistButton.setContentAreaFilled(false);
+ blacklistButton.setMaximumSize(new java.awt.Dimension(46, 46));
+ blacklistButton.setMinimumSize(new java.awt.Dimension(46, 46));
+ blacklistButton.setPreferredSize(new java.awt.Dimension(46, 46));
+ blacklistButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ blacklistButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(blacklistButton);
+
+ viewButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/KC PMBESAR.png"))); // NOI18N
+ viewButton.setContentAreaFilled(false);
+ viewButton.setMaximumSize(new java.awt.Dimension(46, 46));
+ viewButton.setMinimumSize(new java.awt.Dimension(46, 46));
+ viewButton.setPreferredSize(new java.awt.Dimension(46, 46));
+ viewButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(viewButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.setMaximumSize(new java.awt.Dimension(46, 46));
+ addButton.setMinimumSize(new java.awt.Dimension(46, 46));
+ addButton.setPreferredSize(new java.awt.Dimension(46, 46));
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(addButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel3.add(jPanel5, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ add(jPanel1, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void blacklistButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_blacklistButtonActionPerformed
+ // TODO add your handling code here:
+ int row = TabelPeminjam.getSelectedRow();
+ if(row < 0) return;
+ Peminjam pm = data[row];
+ BlacklistPeminjam bp = new BlacklistPeminjam();
+ bp.load(pm);
+ bp.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(bp);
+ }//GEN-LAST:event_blacklistButtonActionPerformed
+
+ private void TabelPeminjamMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TabelPeminjamMouseClicked
+ // TODO add your handling code here:
+ if(evt.getClickCount() != 2) return;
+ lihatPeminjam();
+ }//GEN-LAST:event_TabelPeminjamMouseClicked
+
+ private void filterButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filterButtonActionPerformed
+ // TODO add your handling code here:
+ FilterPeminjamFrame fpf = new FilterPeminjamFrame();
+ fpf.load(filter);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filter = fpf.read();
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_filterButtonActionPerformed
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ DetailPeminjamFrame tp = new DetailPeminjamFrame();
+ tp.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(tp);
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewButtonActionPerformed
+ // TODO add your handling code here:
+ lihatPeminjam();
+ }//GEN-LAST:event_viewButtonActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JTable TabelPeminjam;
+ private javax.swing.JButton addButton;
+ private javax.swing.JButton blacklistButton;
+ private javax.swing.Box.Filler filler1;
+ private javax.swing.JButton filterButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JButton viewButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.form b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.form
new file mode 100644
index 0000000..52ff60e
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.form
@@ -0,0 +1,99 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.java b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.java
new file mode 100644
index 0000000..a447f71
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamFrame.java
@@ -0,0 +1,183 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.DialogKonfirmasi;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+
+/**
+ *
+ * @author USER
+ */
+public class DetailPeminjamFrame extends dbd_lcd.gui.MyFrame {
+ /**
+ * Creates new form No_HP
+ */
+
+ public class Mode{
+ public static final int TAMBAH = 0;
+ public static final int EDIT = 1;
+ public static final int LIHAT = 2;
+ }
+ public int mode;
+ Peminjam peminjam;
+
+ public DetailPeminjamFrame() {
+ initComponents();
+ setMode(Mode.TAMBAH);
+ }
+
+ public void setMode(int mode){
+ this.mode = mode;
+ switch(mode){
+ case Mode.TAMBAH:{
+ mainTabbedPane.remove(daftarPeminjamanPanel);
+ break;
+ }
+ case Mode.EDIT:{
+ mainTabbedPane.add(daftarPeminjamanPanel, "Peminjaman");
+ mainTabbedPane.setEnabledAt(1, false);
+ break;
+ }
+ case Mode.LIHAT:{
+ mainTabbedPane.add(daftarPeminjamanPanel, "Peminjaman");
+ mainTabbedPane.setEnabledAt(1, true);
+ break;
+ }
+ }
+ detailPeminjamPanel.setMode(mode);
+ }
+
+ public void load(Peminjam pm){
+ this.peminjam = pm;
+ detailPeminjamPanel.load(pm);
+
+ FilterPeminjaman fp = daftarPeminjamanPanel.getFilter();
+ FilterPeminjam filter = fp.peminjam;
+ if(filter == null){
+ filter = new FilterPeminjam();
+ }
+ filter.idPeminjam = peminjam.getIdPeminjam();
+ fp.peminjam = filter;
+ daftarPeminjamanPanel.setFilter(fp);
+ setMode(Mode.LIHAT);
+ }
+ public String getIdPeminjam(){
+ return detailPeminjamPanel.getIdPeminjam();
+ }
+ public void setIdPeminjam(String id){
+ detailPeminjamPanel.setIdPeminjam(id);
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel2 = new javax.swing.JPanel();
+ mainTabbedPane = new javax.swing.JTabbedPane();
+ detailPeminjamPanel = new dbd_lcd.gui.form.peminjam.DetailPeminjamPanel();
+ daftarPeminjamanPanel = new dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(20, 375));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 20, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 367, Short.MAX_VALUE)
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.LINE_START);
+
+ mainTabbedPane.setBackground(new java.awt.Color(0, 102, 102));
+ mainTabbedPane.setOpaque(true);
+ mainTabbedPane.addTab("Detail", detailPeminjamPanel);
+ mainTabbedPane.addTab("Peminjaman", daftarPeminjamanPanel);
+ daftarPeminjamanPanel.setMode(DaftarPeminjamanPanel.Mode.SUB);
+
+ getContentPane().add(mainTabbedPane, java.awt.BorderLayout.CENTER);
+ setTabbedPane(mainTabbedPane);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjamFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DetailPeminjamFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel daftarPeminjamanPanel;
+ private dbd_lcd.gui.form.peminjam.DetailPeminjamPanel detailPeminjamPanel;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JTabbedPane mainTabbedPane;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.form b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.form
new file mode 100644
index 0000000..09cac32
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.form
@@ -0,0 +1,306 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.java b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.java
new file mode 100644
index 0000000..4019f98
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/DetailPeminjamPanel.java
@@ -0,0 +1,474 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+import dbd_lcd.gui.MyPanel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.DialogKonfirmasi;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.gui.form.peminjam.DetailPeminjamFrame.Mode;
+import dbd_lcd.system.structs.Peminjam;
+
+/**
+ *
+ * @author user
+ */
+public class DetailPeminjamPanel extends MyPanel {
+ public int mode;
+ Peminjam peminjam;
+ /**
+ * Creates new form DetailPeminjamanPanel
+ */
+ public DetailPeminjamPanel() {
+ initComponents();
+ }
+
+ public void setMode(int mode){
+ switch(mode){
+ case Mode.TAMBAH:{
+ blacklistSP.setVisible(false);
+ blacklistLabel.setVisible(false);
+
+ setReadOnly(false);
+
+ closeButton.setVisible(true);
+ addButton.setVisible(true);
+
+ editButton.setVisible(false);
+ saveButton.setVisible(false);
+ doneButton.setVisible(false);
+ cancelEditButton.setVisible(false);
+ break;
+ }
+ case Mode.EDIT:{
+ setReadOnly(false);
+ idPeminjamField.setEditable(false);
+
+ cancelEditButton.setVisible(true);
+ saveButton.setVisible(true);
+
+ closeButton.setVisible(false);
+ addButton.setVisible(false);
+ doneButton.setVisible(false);
+ editButton.setVisible(false);
+
+ getFrame().lockTab(this);
+
+ break;
+ }
+ case Mode.LIHAT:{
+ setReadOnly(true);
+
+ editButton.setVisible(true);
+ doneButton.setVisible(true);
+
+ closeButton.setVisible(false);
+ addButton.setVisible(false);
+ saveButton.setVisible(false);
+ cancelEditButton.setVisible(false);
+
+ getFrame().lockTab(null);
+ break;
+ }
+ }
+ }
+ public Peminjam read(){
+ String id = getIdPeminjam();
+ String nama = Util.nullify(namaPeminjamField.getText().trim());
+ String noHp = Util.nullify(Util.preparePhoneNumber(nomorHpField.getText()));
+ String alamat = Util.nullify(alamatTA.getText().trim());
+ String ket = Util.nullify(blacklistTA.getText());
+ if(id == null || id.length() < 9) throw new RuntimeException("Nomor Identitas tidak valid");
+ if(nama == null || nama.length() < 3) throw new RuntimeException("Nama tidak valid");
+ if(noHp == null || noHp.length() < 10) throw new RuntimeException("Nomor HP tidak valid");
+ if (alamat == null || alamat.length() < 5) throw new RuntimeException("Alamat tidak valid");
+ Peminjam pm = new Peminjam(id, nama, alamat, noHp, ket);
+ return pm;
+ }
+
+ public void setReadOnly(boolean readOnly){
+ idPeminjamField.setEditable(!readOnly);
+ namaPeminjamField.setEditable(!readOnly);
+ nomorHpField.setEditable(!readOnly);
+ alamatTA.setEditable(!readOnly);
+ blacklistTA.setEditable(!readOnly);
+ }
+
+ public void setIdPeminjam(String nomorIdentitas){
+ this.idPeminjamField.setText(nomorIdentitas);
+ }
+
+
+ public String getIdPeminjam(){
+ return Util.nullify(Util.preparePhoneNumber(idPeminjamField.getText()));
+ }
+
+ public void load(Peminjam pm){
+ this.peminjam = pm;
+ setIdPeminjam(pm.getIdPeminjam());
+ namaPeminjamField.setText(pm.getNamaPeminjam());
+ nomorHpField.setText(pm.getNomorHpPeminjam());
+ alamatTA.setText(pm.getAlamatPeminjam());
+ if(pm.isPeminjamTerblacklist()){
+ blacklistTA.setText(pm.getKeteranganBlacklist());
+ blacklistSP.setVisible(true);
+ blacklistLabel.setVisible(true);
+ }else{
+ blacklistTA.setText("");
+ blacklistSP.setVisible(false);
+ blacklistLabel.setVisible(false);
+ }
+ setMode(Mode.LIHAT);
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel3 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ idPeminjamField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ namaPeminjamField = new javax.swing.JTextField();
+ jLabel4 = new javax.swing.JLabel();
+ nomorHpField = new javax.swing.JTextField();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ alamatTA = new javax.swing.JTextArea();
+ blacklistLabel = new javax.swing.JLabel();
+ blacklistSP = new javax.swing.JScrollPane();
+ blacklistTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ closeButton = new javax.swing.JButton();
+ cancelEditButton = new javax.swing.JButton();
+ editButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+ doneButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setLayout(new java.awt.GridBagLayout());
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setText("No. Identitas");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 20, 10, 10);
+ jPanel3.add(jLabel1, gridBagConstraints);
+
+ idPeminjamField.setEditable(false);
+ idPeminjamField.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ idPeminjamField.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
+ idPeminjamField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ idPeminjamFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(idPeminjamField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(18).attach(idPeminjamField);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("Nama");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 20, 10, 10);
+ jPanel3.add(jLabel3, gridBagConstraints);
+
+ namaPeminjamField.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ namaPeminjamField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ namaPeminjamFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(namaPeminjamField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(namaPeminjamField);
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel4.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel4.setText("No. HP");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 20, 10, 10);
+ jPanel3.add(jLabel4, gridBagConstraints);
+
+ nomorHpField.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ nomorHpField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ nomorHpFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(nomorHpField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(14).attach(nomorHpField);
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Alamat");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 20, 10, 10);
+ jPanel3.add(jLabel2, gridBagConstraints);
+
+ alamatTA.setColumns(20);
+ alamatTA.setRows(5);
+ jScrollPane1.setViewportView(alamatTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(alamatTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(jScrollPane1, gridBagConstraints);
+
+ blacklistLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ blacklistLabel.setForeground(new java.awt.Color(255, 0, 0));
+ blacklistLabel.setText("Terblacklist");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(13, 20, 10, 10);
+ jPanel3.add(blacklistLabel, gridBagConstraints);
+
+ blacklistTA.setColumns(20);
+ blacklistTA.setRows(5);
+ blacklistSP.setViewportView(blacklistTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(blacklistTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 20);
+ jPanel3.add(blacklistSP, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ add(jPanel3, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));
+
+ closeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ closeButton.setContentAreaFilled(false);
+ closeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ closeButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(closeButton);
+
+ cancelEditButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelEditButton.setContentAreaFilled(false);
+ cancelEditButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelEditButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelEditButton);
+
+ editButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/PENGATURAN.png"))); // NOI18N
+ editButton.setContentAreaFilled(false);
+ editButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ editButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(editButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(addButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ doneButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ doneButton.setContentAreaFilled(false);
+ doneButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ doneButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(doneButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridwidth = 2;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ gridBagConstraints.insets = new java.awt.Insets(10, 20, 10, 20);
+ add(jPanel4, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void idPeminjamFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_idPeminjamFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_idPeminjamFieldActionPerformed
+
+ private void namaPeminjamFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_namaPeminjamFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_namaPeminjamFieldActionPerformed
+
+ private void nomorHpFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nomorHpFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_nomorHpFieldActionPerformed
+
+ private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
+ // TODO add your handling code here:
+ getFrame().dispose();
+ }//GEN-LAST:event_closeButtonActionPerformed
+
+ private void cancelEditButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelEditButtonActionPerformed
+ // TODO add your handling code here:
+ load(peminjam);
+ }//GEN-LAST:event_cancelEditButtonActionPerformed
+
+ private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
+ // TODO add your handling code here:
+ setMode(Mode.EDIT);
+ }//GEN-LAST:event_editButtonActionPerformed
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ final Peminjam pm;
+ try{
+ pm = read();
+ }catch(Exception ex){
+ Util.handleError(getFrame(), ex);
+ return;
+ }
+ FormLogin.cekDanMintaSesi(getFrame(), new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ peminjam = pm;
+ try{
+ pm.insert();
+ getFrame().dispose(true);
+ }catch(Exception ex){
+ Util.handleException(getFrame(), ex);
+ }
+ }
+ return true;
+ }
+ });
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ final Peminjam pm;
+ try{
+ pm = read();
+ }catch(Exception ex){
+ Util.handleException(getFrame(), ex);
+ return;
+ }
+ if(pm.equals(peminjam)){
+ setMode(Mode.LIHAT);
+ return;
+ }
+ if(blacklistLabel.isVisible() && !pm.isPeminjamTerblacklist()){
+ DialogKonfirmasi dk = new DialogKonfirmasi();
+ dk.setQuestion(String.format("Apa anda yakin ingin menghilangkan status blacklist %s?", pm.getNamaPeminjam()));
+ dk.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ peminjam = pm;
+ getFrame().changed = true;
+ peminjam.update();
+ load(peminjam);
+ setMode(Mode.LIHAT);
+ dk.dispose();
+ }
+ });
+ setPopup(dk);
+ }else{
+ FormLogin.cekDanMintaSesi(getFrame(), new PopupRunnable(){
+ public boolean run(boolean success){
+ if(success){
+ peminjam = pm;
+ getFrame().changed = true;
+ peminjam.update();
+ setMode(Mode.LIHAT);
+ }
+ return true;
+ }
+ });
+ }
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_doneButtonActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton addButton;
+ private javax.swing.JTextArea alamatTA;
+ private javax.swing.JLabel blacklistLabel;
+ private javax.swing.JScrollPane blacklistSP;
+ private javax.swing.JTextArea blacklistTA;
+ private javax.swing.JButton cancelEditButton;
+ private javax.swing.JButton closeButton;
+ private javax.swing.JButton doneButton;
+ private javax.swing.JButton editButton;
+ private javax.swing.JTextField idPeminjamField;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextField namaPeminjamField;
+ private javax.swing.JTextField nomorHpField;
+ private javax.swing.JButton saveButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.form b/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.form
new file mode 100644
index 0000000..75696b1
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.form
@@ -0,0 +1,306 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.java b/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.java
new file mode 100644
index 0000000..cc2ac63
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjam/FilterPeminjamFrame.java
@@ -0,0 +1,335 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjam;
+
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjaman.*;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+
+/**
+ *
+ * @author admin
+ */
+public class FilterPeminjamFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Filter
+ */
+ FilterPeminjam filter = new FilterPeminjam();
+ public FilterPeminjamFrame() {
+ initComponents();
+ }
+
+ public void load(FilterPeminjam filter){
+ idField.setText(Util.stringify(filter.idPeminjam));
+ namaField.setText(Util.stringify(filter.namaPeminjam));
+ alamatTA.setText(Util.stringify(filter.alamatPeminjam));
+ noHpField.setText(Util.stringify(filter.nomorHpPeminjam));
+ int i = -1;
+ if(filter.peminjamTerblacklist == null) i = 0;
+ if(Boolean.TRUE.equals(filter.peminjamTerblacklist)) i = 1;
+ if(Boolean.FALSE.equals(filter.peminjamTerblacklist)) i = 2;
+ terblacklistCB.setSelectedIndex(i);
+ this.filter = filter;
+ }
+ public FilterPeminjam read(){
+ FilterPeminjam filter = new FilterPeminjam(this.filter);
+ filter.idPeminjam = Util.nullify(idField.getText());
+ filter.namaPeminjam = Util.nullify(namaField.getText());
+ filter.nomorHpPeminjam = Util.nullify(noHpField.getText());
+ filter.alamatPeminjam = Util.nullify(alamatTA.getText());
+ filter.peminjamTerblacklist = Util.booleanify((String)terblacklistCB.getSelectedItem());
+ return filter;
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel4 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel6 = new javax.swing.JLabel();
+ idField = new javax.swing.JTextField();
+ jLabel1 = new javax.swing.JLabel();
+ namaField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ noHpField = new javax.swing.JTextField();
+ jLabel5 = new javax.swing.JLabel();
+ terblacklistCB = new javax.swing.JComboBox<>();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ alamatTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(15, 0));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 15, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 278, Short.MAX_VALUE)
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel4.setText("Filter Peminjam");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel4, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel6.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel6.setText("No. ID");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel6, gridBagConstraints);
+
+ idField.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
+ idField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ idFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(idField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(18).attach(idField);
+
+ jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setText("Nama");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel1, gridBagConstraints);
+
+ namaField.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
+ namaField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ namaFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(namaField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(namaField);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("No. HP");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel3, gridBagConstraints);
+
+ noHpField.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
+ noHpField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ noHpFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(noHpField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(14).attach(noHpField);
+
+ jLabel5.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel5.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel5.setText("Terblacklist");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel5, gridBagConstraints);
+
+ terblacklistCB.setModel(new javax.swing.DefaultComboBoxModel(Util.getBooleanCBString()));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(terblacklistCB, gridBagConstraints);
+
+ jLabel2.setBackground(new java.awt.Color(255, 255, 255));
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Alamat");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel2, gridBagConstraints);
+
+ alamatTA.setColumns(20);
+ alamatTA.setRows(5);
+ jScrollPane1.setViewportView(alamatTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(alamatTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jScrollPane1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ jPanel1.add(jPanel4, gridBagConstraints);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void namaFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_namaFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_namaFieldActionPerformed
+
+ private void noHpFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_noHpFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_noHpFieldActionPerformed
+
+ private void idFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_idFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_idFieldActionPerformed
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ load(filter);
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ load(read());
+ changed = true;
+ dispose(true);
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new FilterPeminjamFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JTextArea alamatTA;
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JTextField idField;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextField namaField;
+ private javax.swing.JTextField noHpField;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JComboBox terblacklistCB;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/BarangComboBoxManager.java b/src/dbd_lcd/gui/form/peminjaman/BarangComboBoxManager.java
new file mode 100644
index 0000000..01480eb
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/BarangComboBoxManager.java
@@ -0,0 +1,97 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.Util;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.IdBarang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import javax.swing.table.DefaultTableModel;
+
+/**
+ *
+ * @author user
+ */
+public class BarangComboBoxManager {
+ HashMap source = new HashMap();
+
+ public BarangTableModel dtm;
+
+ public HashMap nomorPool = new HashMap();
+ public String[] tipePool = new String[0];
+
+ public BarangComboBoxManager(BarangTableModel dtm){
+ this.dtm = dtm;
+ fetch();
+ }
+
+ public void fetch(){
+ FilterBarang filter = new FilterBarang();
+ filter.status = Barang.Status.ADA;
+
+ for(int i = 0; i < Barang.Tipe.CODE.length; ++i){
+ filter.tipe = Barang.Tipe.CODE[i];
+ Barang[] bs = Barang.fetch(filter);
+ int[] ids = new int[bs.length];
+ for(int j = 0; j < bs.length; ++j){
+ ids[j] = bs[j].getNomor();
+ }
+ source.put(filter.tipe, ids);
+ if(!nomorPool.containsKey(filter.tipe)) nomorPool.put(filter.tipe, null);
+ }
+ refresh(-1);
+ }
+
+ public void refresh(int excludeRow){
+ int rc = dtm.getRowCount();
+ HashMap> used = new HashMap>();
+ for(int i = 0; i < Barang.Tipe.CODE.length; ++i){
+ used.put(Barang.Tipe.CODE[i], new HashSet());
+ }
+ for(int i = 0; i < rc; ++i){
+ if(i == excludeRow) continue;
+ String tipeString = (String)dtm.getValueAt(i, 0);
+ if(Util.isNullOrEmpty(tipeString)) continue;
+ String nomorString = (String)dtm.getValueAt(i, 1);
+ if(Util.isNullOrEmpty(nomorString)) continue;
+ String tipe;
+ int nomor;
+ try{
+ tipe = Barang.Tipe.FROM_STRING.get(tipeString);
+ nomor = Integer.parseInt(nomorString);
+ }catch(Exception ex){
+ continue;
+ }
+ used.get(tipe).add(nomor);
+ }
+
+ for(int i = 0; i < Barang.Tipe.CODE.length; ++i){
+ String tipe = Barang.Tipe.CODE[i];
+ List pooli = new ArrayList();
+ int[] sourcei = source.get(tipe);
+ HashSet usedi = used.get(tipe);
+ for(int j = 0; j < sourcei.length; ++j){
+ if(!usedi.contains(sourcei[j])){
+ pooli.add(sourcei[j]);
+ }
+ }
+ nomorPool.put(tipe, pooli.toArray(new Integer[0]));
+ }
+ List tipePool0 = new ArrayList();
+
+ for(int i = 0; i < Barang.Tipe.CODE.length; ++i){
+ String tipe = Barang.Tipe.CODE[i];
+ if(nomorPool.get(tipe).length > 0){
+ tipePool0.add(tipe);
+ }
+ }
+ this.tipePool = tipePool0.toArray(new String[0]);
+ }
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/BarangTableModel.java b/src/dbd_lcd/gui/form/peminjaman/BarangTableModel.java
new file mode 100644
index 0000000..1f0d2ce
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/BarangTableModel.java
@@ -0,0 +1,62 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.Util;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.Peminjaman;
+import java.sql.Timestamp;
+import java.util.Date;
+
+/**
+ *
+ * @author user
+ */
+public class BarangTableModel extends MyTableModel{
+ boolean[] borrowables = new boolean[0];
+ Barang[] source;
+
+ public void setSource(Barang[] source){
+ this.source = source;
+ }
+
+ public void setBorrowables(boolean[] borrowables){
+ this.borrowables = borrowables;
+ }
+
+ @Override
+ public boolean isCellEditable(int row, int column){
+ if(!cellEditable) return false;
+ if(column == 2){
+ if (row >= borrowables.length) return false;
+ return borrowables[row];
+ }
+ if(row < borrowables.length) return false;
+ if(column == 1){
+ String tipeString = (String)getValueAt(row, 0);
+ if(Util.isNullOrEmpty(tipeString)) return false;
+ try{
+ Barang.Tipe.FROM_STRING.get(tipeString);
+ return true;
+ }catch(Exception ex){
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void setValueAt(Object value, int row, int col){
+ if(col == 2 && row < source.length){
+ Object real = source[row].getEndTime();
+ if(value instanceof Boolean && real != null && Boolean.TRUE.equals(value)){
+ super.setValueAt(real, row, col);
+ }
+ }
+ super.setValueAt(value, row, col);
+ }
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.form b/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.form
new file mode 100644
index 0000000..afe188c
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.form
@@ -0,0 +1,112 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.java b/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.java
new file mode 100644
index 0000000..efc01f7
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarKeperluanPanel.java
@@ -0,0 +1,230 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.MyPanel;
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.system.structs.KeperluanPinjam;
+import dbd_lcd.system.structs.Peminjaman;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarKeperluanPanel extends MyPanel {
+
+ /**
+ * Creates new form KeperluanPinjamPanel
+ */
+ List keperluan = new ArrayList(4);
+ MyTableModel keperluanTableModel;
+ boolean readOnly = false;
+ public DaftarKeperluanPanel() {
+ initComponents();
+ prepareKeperluanTable();
+ }
+
+ public void setReadOnly(boolean readOnly){
+ this.readOnly = readOnly;
+ removeButton.setVisible(!readOnly);
+ addButton.setVisible(!readOnly);
+ }
+
+ public void load(Peminjaman peminjaman){
+ this.keperluan = new ArrayList();
+ int kl = peminjaman.getKeperluanPinjamCount();
+ for(int i = 0; i < kl; ++i){
+ KeperluanPinjam kp = peminjaman.getKeperluanPinjam(i);
+ addKeperluan(kp);
+ }
+ }
+
+ public KeperluanPinjam[] read(){
+ return keperluan.toArray(new KeperluanPinjam[0]);
+ }
+ public void prepareKeperluanTable(){
+ MyTableModel dtm = new MyTableModel();
+ dtm.addColumn("Keperluan");
+ dtm.addColumn("Jam Mulai");
+ dtm.addColumn("Jam Selesai");
+ keperluanTableModel = dtm;
+ TabelKeperluanFP.setModel(dtm);
+ }
+
+ public void addKeperluan(KeperluanPinjam kp){
+ keperluan.add(kp);
+ keperluanTableModel.addRow(new String[]{
+ kp.keperluanPinjam,
+ Util.formatDateTime(kp.durasi.awal),
+ Util.formatDateTime(kp.durasi.akhir)
+ });
+ }
+ public void saveKeperluan(KeperluanPinjam kp, int index){
+ keperluan.set(index, kp);
+ keperluanTableModel.setValueAt(kp.keperluanPinjam, index, 0);
+ keperluanTableModel.setValueAt(Util.formatTime(kp.durasi.awal), index, 1);
+ keperluanTableModel.setValueAt(Util.formatTime(kp.durasi.akhir), index, 2);
+ }
+ public void removeKeperluan(int index){
+ keperluanTableModel.removeRow(index);
+ if(keperluan.remove(index) != null) throw new RuntimeException("Keperluan tidak ada");
+ System.out.println("Jumlah keperluan: " + keperluan.size());
+ }
+ public void editKeperluan(){
+
+ int row = TabelKeperluanFP.getSelectedRow();
+ if(row < 0) return;
+ editKeperluan(row);
+ }
+ public void editKeperluan(int row){
+ KeperluanPinjam kp = keperluan.get(row);
+ getFrame().setEnabled(false);
+ DetailKeperluan tuk = new DetailKeperluan();
+ tuk.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success) saveKeperluan(tuk.read(), row);
+ return true;
+ }
+ });
+ tuk.load(kp);
+ tuk.setReadOnly(readOnly);
+ setPopup(tuk);
+ }
+
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jScrollPane2 = new javax.swing.JScrollPane();
+ TabelKeperluanFP = new javax.swing.JTable();
+ jPanel10 = new javax.swing.JPanel();
+ removeButton = new javax.swing.JButton();
+ viewButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setOpaque(false);
+ setLayout(new java.awt.GridBagLayout());
+
+ jScrollPane2.setBackground(new java.awt.Color(0, 102, 102));
+ jScrollPane2.setOpaque(false);
+
+ TabelKeperluanFP.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {null, null, null},
+ {null, null, null}
+ },
+ new String [] {
+ "Keperluan", "Jam Pinjam", "Jam Kembali"
+ }
+ ));
+ TabelKeperluanFP.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ TabelKeperluanFPMouseClicked(evt);
+ }
+ });
+ jScrollPane2.setViewportView(TabelKeperluanFP);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ add(jScrollPane2, gridBagConstraints);
+
+ jPanel10.setOpaque(false);
+ jPanel10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ removeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/MIN.png"))); // NOI18N
+ removeButton.setContentAreaFilled(false);
+ removeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ removeButtonActionPerformed(evt);
+ }
+ });
+ jPanel10.add(removeButton);
+
+ viewButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/KC PMBESAR.png"))); // NOI18N
+ viewButton.setContentAreaFilled(false);
+ viewButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewButtonActionPerformed(evt);
+ }
+ });
+ jPanel10.add(viewButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel10.add(addButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ add(jPanel10, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void TabelKeperluanFPMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TabelKeperluanFPMouseClicked
+ // TODO add your handling code here:
+ if(evt.getClickCount() != 2) return;
+ editKeperluan();
+ }//GEN-LAST:event_TabelKeperluanFPMouseClicked
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ setEnabled(false);
+ DetailKeperluan tuk = new DetailKeperluan();
+ tuk.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success) addKeperluan(tuk.read());
+ return true;
+ }
+ });
+ setPopup(tuk);
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewButtonActionPerformed
+ // TODO add your handling code here:
+ editKeperluan();
+ }//GEN-LAST:event_viewButtonActionPerformed
+
+ private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed
+ // TODO add your handling code here:
+
+ int[] rows = TabelKeperluanFP.getSelectedRows();
+ for(int i = rows.length-1; i >= 0; --i){
+ removeKeperluan(rows[i]);
+ }
+ }//GEN-LAST:event_removeButtonActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JTable TabelKeperluanFP;
+ private javax.swing.JButton addButton;
+ private javax.swing.JPanel jPanel10;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JButton removeButton;
+ private javax.swing.JButton viewButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.form b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.form
new file mode 100644
index 0000000..b132848
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.form
@@ -0,0 +1,58 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.java b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.java
new file mode 100644
index 0000000..80cfb76
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanFrame.java
@@ -0,0 +1,119 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.Peminjaman;
+import dbd_lcd.system.structs.RiwayatPeminjaman;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import java.awt.Color;
+import java.awt.Component;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarPeminjamanFrame extends dbd_lcd.gui.MyFrame {
+
+
+ /**
+ * Creates new form RiwayatPeminjaman
+ */
+ public DaftarPeminjamanFrame() {
+ initComponents();
+ }
+
+ public void refresh(){
+ daftarPeminjamanPanel.refresh();
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ LJudul = new javax.swing.JLabel();
+ daftarPeminjamanPanel = new dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+ getContentPane().setLayout(new java.awt.GridBagLayout());
+
+ LJudul.setBackground(new java.awt.Color(255, 153, 0));
+ LJudul.setFont(new java.awt.Font("Comic Sans MS", 1, 24)); // NOI18N
+ LJudul.setForeground(new java.awt.Color(255, 255, 255));
+ LJudul.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ LJudul.setText("Riwayat Peminjaman");
+ LJudul.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ getContentPane().add(LJudul, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ getContentPane().add(daftarPeminjamanPanel, gridBagConstraints);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DaftarPeminjamanFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DaftarPeminjamanFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel LJudul;
+ private dbd_lcd.gui.form.peminjaman.DaftarPeminjamanPanel daftarPeminjamanPanel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.form b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.form
new file mode 100644
index 0000000..e27a60f
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.form
@@ -0,0 +1,147 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.java b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.java
new file mode 100644
index 0000000..9d92920
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DaftarPeminjamanPanel.java
@@ -0,0 +1,334 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.gui.MyPanel;
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.PeriodPicker;
+import dbd_lcd.report.MyJasperViewer;
+import dbd_lcd.system.structs.Peminjaman;
+import dbd_lcd.system.structs.RiwayatPeminjaman;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import java.awt.Component;
+import java.util.HashMap;
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author user
+ */
+public class DaftarPeminjamanPanel extends MyPanel {
+ public static class Mode{
+ public static final int MAIN = 0;
+ public static final int SUB = 1;
+ }
+
+ public int mode = 0;
+ /**
+ * Creates new form DaftarPeminjamanPanel
+ */
+ FilterPeminjaman filter = new FilterPeminjaman();
+ RiwayatPeminjaman[] data;
+ public DaftarPeminjamanPanel() {
+ super();
+ initComponents();
+ setMode(Mode.MAIN);
+ }
+
+ public void setMode(int mode){
+ switch(mode){
+ case Mode.MAIN:{
+ addButton.setVisible(true);
+
+ doneButton.setVisible(false);
+ break;
+ }
+ case Mode.SUB:{
+ doneButton.setVisible(true);
+
+ addButton.setVisible(false);
+ break;
+ }
+ }
+ }
+
+ public void setFilter(FilterPeminjaman filter){
+ this.filter = filter;
+ refresh();
+ }
+
+ public FilterPeminjaman getFilter(){
+ return filter;
+ }
+
+ public void refresh(){
+ RiwayatPeminjaman[] rps = RiwayatPeminjaman.fetch(filter);
+
+
+ MyTableModel dtm = new MyTableModel();
+ dtm.addColumn("Tanggal");
+ dtm.addColumn("Peminjam");
+ dtm.addColumn("Status");
+ dtm.addColumn("Waktu Kembali");
+
+ for(int i = 0; i < rps.length; ++i){
+ RiwayatPeminjaman rp = rps[i];
+
+ dtm.addRow(new Object[]{
+ Util.formatDate(rp.getWaktuPinjam()),
+ rp.getNamaPeminjam(),
+ rp.getStatusString(),
+ Util.formatDateTime(rp.getShownWaktuKembali())
+ });
+ }
+
+ data = rps;
+ peminjamanTable.setModel(dtm);
+ }
+
+ public TambahPeminjaman tambahPeminjaman(){
+ TambahPeminjaman tp = new TambahPeminjaman();
+ tp.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ Peminjaman p = tp.read();
+ try{
+ p.simpan();
+ refresh();
+ tp.dispose();
+ }catch(Exception ex){
+ Util.handleException(tp, ex);
+ }
+ }
+ });
+ return tp;
+ }
+
+ public void determineCellColor(Component comp, int row, int col, boolean selected){
+ if(data == null) return;
+ switch(col){
+ case 1:{
+ comp.setBackground(data[row].getBlacklistColor().get(selected));
+ break;
+ }
+ case 2:{
+ comp.setBackground(Peminjaman.Status.getColor(data[row].getStatus()).get(selected));
+ break;
+ }
+ case 3:{
+ comp.setBackground(data[row].getShownWaktuKembaliColor().get(selected));
+ break;
+ }
+ default:{
+ comp.setBackground(Util.ColorPack.WHITE.get(selected));
+ break;
+ }
+ }
+ }
+
+ public void lihatPeminjaman(){
+
+ int row = peminjamanTable.getSelectedRow();
+ if(row < 0) return;
+
+ lihatPeminjaman(row);
+ }
+
+ public void lihatPeminjaman(int index){
+ DetailPeminjaman dp = new DetailPeminjaman();
+ dp.load(data[index].getPeminjaman());
+ dp.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(dp);
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jScrollPane1 = new javax.swing.JScrollPane();
+ peminjamanTable = new javax.swing.JTable(){
+ @Override
+ public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
+ Component comp = super.prepareRenderer(renderer, row, col);
+ determineCellColor(comp, convertRowIndexToModel(row), convertColumnIndexToModel(col), Util.contains(getSelectedRows(), row));
+ return comp;
+ }
+ };
+ jPanel2 = new javax.swing.JPanel();
+ filterButton = new javax.swing.JButton();
+ jPanel1 = new javax.swing.JPanel();
+ viewButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+ doneButton = new javax.swing.JButton();
+
+ setBackground(new java.awt.Color(0, 102, 102));
+ setLayout(new java.awt.GridBagLayout());
+
+ jScrollPane1.setBackground(new java.awt.Color(0, 102, 102));
+ jScrollPane1.setOpaque(false);
+
+ peminjamanTable.setAutoCreateRowSorter(true);
+ peminjamanTable.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ peminjamanTable.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "Tanggal", "Peminjam", "Status", "Waktu Kembali"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.Object.class
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+ });
+ peminjamanTable.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ peminjamanTableMouseClicked(evt);
+ }
+ });
+ jScrollPane1.setViewportView(peminjamanTable);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridwidth = 2;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(jScrollPane1, gridBagConstraints);
+
+ jPanel2.setOpaque(false);
+
+ filterButton.setBackground(new java.awt.Color(255, 153, 0));
+ filterButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ filterButton.setText("Filter");
+ filterButton.setOpaque(false);
+ filterButton.setSelected(true);
+ filterButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ filterButtonActionPerformed(evt);
+ }
+ });
+ jPanel2.add(filterButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ add(jPanel2, gridBagConstraints);
+
+ jPanel1.setOpaque(false);
+
+ viewButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/KC PMBESAR.png"))); // NOI18N
+ viewButton.setContentAreaFilled(false);
+ viewButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewButtonActionPerformed(evt);
+ }
+ });
+ jPanel1.add(viewButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel1.add(addButton);
+
+ doneButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ doneButton.setContentAreaFilled(false);
+ doneButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ doneButtonActionPerformed(evt);
+ }
+ });
+ jPanel1.add(doneButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ add(jPanel1, gridBagConstraints);
+ }// //GEN-END:initComponents
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ getFrame().setPopup(tambahPeminjaman());
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed
+ // TODO add your handling code here:
+ getFrame().dispose();
+ }//GEN-LAST:event_doneButtonActionPerformed
+
+ private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewButtonActionPerformed
+ // TODO add your handling code here:
+ lihatPeminjaman();
+ }//GEN-LAST:event_viewButtonActionPerformed
+
+ private void peminjamanTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_peminjamanTableMouseClicked
+ // TODO add your handling code here:
+ if(evt.getClickCount() != 2) return;
+
+ lihatPeminjaman();
+
+ }//GEN-LAST:event_peminjamanTableMouseClicked
+
+ private void filterButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filterButtonActionPerformed
+ // TODO add your handling code here:
+ FilterPeminjamanFrame fpf = new FilterPeminjamanFrame();
+ fpf.load(filter);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filter = fpf.read();
+ refresh();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_filterButtonActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton addButton;
+ private javax.swing.JButton doneButton;
+ private javax.swing.JButton filterButton;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTable peminjamanTable;
+ private javax.swing.JButton viewButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.form b/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.form
new file mode 100644
index 0000000..51c6748
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.form
@@ -0,0 +1,302 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.java b/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.java
new file mode 100644
index 0000000..f0bfb59
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DetailKeperluan.java
@@ -0,0 +1,394 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.Util;
+import dbd_lcd.system.structs.KeperluanPinjam;
+import dbd_lcd.system.structs.RangeWaktu;
+import java.sql.Timestamp;
+
+/**
+ *
+ * @author USER
+ */
+public class DetailKeperluan extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Keperluan_Peminjaman
+ */
+ KeperluanPinjam keperluan;
+ boolean readOnly = false;
+ public DetailKeperluan() {
+ initComponents();
+ setReadOnly(false);
+ }
+
+ public void setReadOnly(boolean readOnly){
+ this.readOnly = readOnly;
+ keperluanField.setEnabled(!readOnly);
+ tempatField.setEnabled(!readOnly);
+ pjField.setEnabled(!readOnly);
+ jamMulaiField.setEnabled(!readOnly);
+ jamSelesaiField.setEnabled(!readOnly);
+
+ cancelButton.setVisible(!readOnly);
+ saveButton.setVisible(!readOnly);
+
+ doneButton.setVisible(readOnly);
+ }
+
+ public void load(KeperluanPinjam kp){
+ keperluan = kp;
+ keperluanField.setText(kp.keperluanPinjam);
+ tempatField.setText(kp.ruangPinjam);
+ pjField.setText(kp.namaPenanggungJawab);
+ jamMulaiField.setText(Util.formatTime(kp.durasi.awal));
+ jamSelesaiField.setText(Util.formatTime(kp.durasi.akhir));
+ setReadOnly(true);
+ }
+ public KeperluanPinjam read(){
+ String keperluan = Util.nullify(keperluanField.getText());
+ String tempat = Util.nullify(tempatField.getText());
+ String pj = Util.nullify(pjField.getText());
+ String mulaiString = Util.nullify(jamMulaiField.getText());
+ String selesaiString = Util.nullify(jamSelesaiField.getText());
+
+ if(keperluan == null || keperluan.length() < 3) throw new RuntimeException("Keperluan tidak valid");
+ if(tempat == null || tempat.length() < 4) throw new RuntimeException("Tempat tidak valid");
+ if(pj == null || pj.length() < 3) throw new RuntimeException("Penanggung jawab tidak valid");
+ Timestamp mulai = null;
+ Timestamp selesai = null;
+ try{
+ mulai = Util.parseTime(mulaiString);
+ if(mulai == null) throw new RuntimeException();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ throw new RuntimeException("Waktu mulai tidak valid");
+ }
+ try{
+ selesai = Util.parseTime(selesaiString);
+ if(selesai == null) throw new RuntimeException();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ throw new RuntimeException("Waktu selesai tidak valid");
+ }
+ RangeWaktu rangeWaktu = new RangeWaktu(mulai, selesai);
+
+ KeperluanPinjam kp = new KeperluanPinjam(null, keperluan, pj, tempat, rangeWaktu);
+ return kp;
+ }
+
+ public void save(){
+
+ KeperluanPinjam kp = null;
+ try{
+ kp = read();
+ }catch(Exception ex){
+ Util.handleException(this, ex);
+ return;
+ }
+ if(!kp.equals(keperluan)){
+ onDispose(true);
+ }
+ dispose();
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ keperluanField = new javax.swing.JTextField();
+ jLabel2 = new javax.swing.JLabel();
+ tempatField = new javax.swing.JTextField();
+ jLabel5 = new javax.swing.JLabel();
+ pjField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ jamMulaiField = new javax.swing.JFormattedTextField();
+ jLabel4 = new javax.swing.JLabel();
+ jamSelesaiField = new javax.swing.JFormattedTextField();
+ jPanel5 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+ doneButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 30, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 236, Short.MAX_VALUE)
+ );
+
+ jPanel1.add(jPanel2, java.awt.BorderLayout.WEST);
+
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setText("Keperluan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel1, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(keperluanField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(keperluanField);
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Tempat");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel2, gridBagConstraints);
+
+ tempatField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ tempatFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(tempatField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(tempatField);
+
+ jLabel5.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel5.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel5.setText("PJ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel5, gridBagConstraints);
+
+ pjField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ pjFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(pjField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(pjField);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("Jam Mulai");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel3, gridBagConstraints);
+
+ jamMulaiField.setFormatterFactory(null);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jamMulaiField, gridBagConstraints);
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel4.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel4.setText("Jam Selesai");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel4, gridBagConstraints);
+
+ jamSelesaiField.setFormatterFactory(null);
+ jamSelesaiField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jamSelesaiFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jamSelesaiField, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ jPanel5.setOpaque(false);
+ jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT, 0, 0));
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(cancelButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(saveButton);
+
+ doneButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ doneButton.setContentAreaFilled(false);
+ doneButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ doneButtonActionPerformed(evt);
+ }
+ });
+ jPanel5.add(doneButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel3.add(jPanel5, gridBagConstraints);
+
+ jPanel1.add(jPanel3, java.awt.BorderLayout.CENTER);
+
+ getContentPane().add(jPanel1, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void tempatFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tempatFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_tempatFieldActionPerformed
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ save();
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void pjFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pjFieldActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_pjFieldActionPerformed
+
+ private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_doneButtonActionPerformed
+
+ private void jamSelesaiFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jamSelesaiFieldActionPerformed
+ // TODO add your handling code here:
+ save();
+ }//GEN-LAST:event_jamSelesaiFieldActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DetailKeperluan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DetailKeperluan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DetailKeperluan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DetailKeperluan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DetailKeperluan().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JButton doneButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JFormattedTextField jamMulaiField;
+ private javax.swing.JFormattedTextField jamSelesaiField;
+ private javax.swing.JTextField keperluanField;
+ private javax.swing.JTextField pjField;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JTextField tempatField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.form b/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.form
new file mode 100644
index 0000000..4e1322d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.form
@@ -0,0 +1,571 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.java b/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.java
new file mode 100644
index 0000000..170e17f
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DetailPeminjaman.java
@@ -0,0 +1,846 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.RequireLoginRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.DialogKonfirmasi;
+import dbd_lcd.gui.form.FormLogin;
+import dbd_lcd.gui.form.peminjam.DetailPeminjamFrame;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.IdBarang;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.Peminjaman;
+import java.awt.Color;
+import java.awt.Component;
+import java.util.Date;
+import javax.swing.JComponent;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+
+/**
+ *
+ * @author admin
+ */
+public class DetailPeminjaman extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form DetailPeminjaman
+ */
+ BarangTableModel barangTableModel;
+ boolean readOnly = false;
+ Peminjaman peminjaman;
+ Color fieldBackground;
+ public DetailPeminjaman() {
+ initComponents();
+ fieldBackground = idPeminjamField.getBackground();
+ }
+
+ public void load(Peminjaman peminjaman){
+ idPeminjamField.setText(peminjaman.peminjam.getIdPeminjam());
+ idPeminjamField.setBackground(peminjaman.getBlacklistColor().get(false));
+ if(peminjaman.peminjam.isPeminjamTerblacklist()){
+ idPeminjamField.setToolTipText(peminjaman.peminjam.getKeteranganBlacklist());
+ }else{
+ idPeminjamField.setToolTipText(null);
+ }
+ namaPeminjamLabel.setText(peminjaman.peminjam.getNamaPeminjam());
+ nomorHpLabel.setText(peminjaman.peminjam.getNomorHpPeminjam());
+ statusCB.setSelectedItem(peminjaman.getStatusString());
+ statusCB.setBackground(peminjaman.getStatusColor().get(false));
+ waktuPinjamField.setText(Util.formatDateTime(peminjaman.getWaktuPinjam()));
+ waktuKembaliField.setText(Util.formatDateTime(peminjaman.getShownWaktuKembali()));
+ waktuKembaliField.setBackground(peminjaman.getShownWaktuKembaliColor().get(false));
+ keteranganTA.setText(Util.stringify(peminjaman.keteranganPeminjaman));
+
+ loadBarang(peminjaman);
+
+ daftarKeperluanPanel.load(peminjaman);
+
+ this.peminjaman = peminjaman;
+
+ setReadOnly(true);
+
+ repaint();
+ }
+
+ public static JTable createBarangTable(DetailPeminjaman dp){
+ JTable ret = new JTable(){
+ //https://stackoverflow.com/questions/16970824/jtable-with-different-types-of-cells-depending-on-data-type
+ private Class editingClass;
+
+ @Override
+
+ public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
+
+ int modelColumn = convertColumnIndexToModel(column);
+ if(modelColumn != 2) return super.prepareRenderer(renderer, row, column);
+
+ Object value = getValueAt(row, column);
+
+ boolean isSelected = false;
+ boolean hasFocus = false;
+
+ // Only indicate the selection and focused cell if not printing
+ if (!isPaintingForPrint()) {
+ isSelected = isCellSelected(row, column);
+
+ boolean rowIsLead =
+ (selectionModel.getLeadSelectionIndex() == row);
+ boolean colIsLead =
+ (columnModel.getSelectionModel().getLeadSelectionIndex() == column);
+
+ hasFocus = (rowIsLead && colIsLead) && isFocusOwner();
+ }
+
+ value = Util.determineReturnDateClass(value, dp.getBarangTableModel().isCellEditable());
+ return renderer.getTableCellRendererComponent(this, value,
+ isSelected, hasFocus,
+ row, column);
+ }
+
+ @Override
+ public Component prepareEditor(TableCellEditor editor, int row, int column){
+ int modelColumn = convertColumnIndexToModel(column);
+ if(modelColumn != 2) return super.prepareEditor(editor, row, column);
+
+ Object value = getValueAt(row, column);
+
+ value = Util.determineReturnDateClass(value, dp.getBarangTableModel().isCellEditable());
+
+ boolean isSelected = isCellSelected(row, column);
+ Component comp = editor.getTableCellEditorComponent(this, value, isSelected,
+ row, column);
+ if (comp instanceof JComponent) {
+ JComponent jComp = (JComponent)comp;
+ if (jComp.getNextFocusableComponent() == null) {
+ jComp.setNextFocusableComponent(this);
+ }
+ }
+ return comp;
+ }
+
+
+ @Override
+ public TableCellRenderer getCellRenderer(int row, int column) {
+ editingClass = null;
+ int modelColumn = convertColumnIndexToModel(column);
+ if (modelColumn == 2) {
+ Object value = getModel().getValueAt(row, modelColumn);
+ value = Util.determineReturnDateClass(value, dp.getBarangTableModel().isCellEditable());
+ if(value == null) return super.getCellRenderer(row, column);
+ Class rowClass =value.getClass();
+
+ return getDefaultRenderer(rowClass);
+ } else {
+ return super.getCellRenderer(row, column);
+ }
+ }
+
+ @Override
+ public TableCellEditor getCellEditor(int row, int column) {
+ editingClass = null;
+ int modelColumn = convertColumnIndexToModel(column);
+ if (modelColumn == 2) {
+ Object value = getModel().getValueAt(row, modelColumn);
+ value = Util.determineReturnDateClass(value, dp.getBarangTableModel().isCellEditable());
+ if(value == null) return super.getCellEditor(row, column);
+ editingClass = value.getClass();
+ return getDefaultEditor(editingClass);
+ } else {
+ return super.getCellEditor(row, column);
+ }
+ }
+ // This method is also invoked by the editor when the value in the editor
+ // component is saved in the TableModel. The class was saved when the
+ // editor was invoked so the proper class can be created.
+
+ @Override
+ public Class getColumnClass(int column) {
+ if(convertColumnIndexToModel(column)==2){
+ return editingClass != null ? editingClass : super.getColumnClass(column);
+ }
+ return super.getColumnClass(column);
+ }
+ };
+ return ret;
+ }
+ public void loadBarang(Peminjaman peminjaman){
+ BarangTableModel dtm = new BarangTableModel();
+ dtm.addColumn("Barang");
+ dtm.addColumn("Nomor");
+ dtm.addColumn("Dikembalikan");
+ int bl = peminjaman.getBarangCount();
+ boolean[] borrowables = new boolean[bl];
+ for(int i = 0; i < bl; ++i){
+ Barang b = peminjaman.getBarang(i);
+ dtm.addRow(new Object[]{
+ b.getTipeString(),
+ b.getNomor(),
+ b.getEndTime()
+ });
+ borrowables[i] = b.getEndTime() == null || Barang.Status.ADA.equals(b.getCurrent().getStatus());
+ }
+ dtm.setBorrowables(borrowables);
+ dtm.setSource(peminjaman.getBarang());
+ this.barangTableModel = dtm;
+ barangTable.setModel(dtm);
+ }
+
+ public BarangTableModel getBarangTableModel(){
+ return barangTableModel;
+ }
+
+ public Peminjaman read(){
+ Peminjaman pm = new Peminjaman(peminjaman);
+ pm.setStatusPeminjaman(Peminjaman.Status.FROM_STRING.get(statusCB.getSelectedItem()));
+ pm.keteranganPeminjaman = Util.nullify(keteranganTA.getText());
+ pm.setBarang(readBarang());
+ pm.setKeperluanPinjam(daftarKeperluanPanel.read());
+ return pm;
+ }
+
+ public Barang[] readBarang(){
+ int rc = barangTable.getRowCount();
+ int bl = peminjaman.getBarangCount();
+ Barang[] ret = new Barang[rc];
+ for(int i = 0; i < bl; ++i){
+ Barang b = new Barang(peminjaman.getBarang(i));
+ Object value = barangTable.getValueAt(i, 2);
+ if(value != null && value instanceof Boolean){
+ if(Boolean.TRUE.equals(value)) b.kembalikan();
+ if(Boolean.FALSE.equals(value)) b.pinjam(peminjaman.getNomorPeminjaman());
+ }
+ ret[i] = b;
+ }
+ for(int i = bl; i < rc; ++i){
+ ret[i] = Util.readBarang(barangTable, i);
+ }
+ for(int i = 0; i < rc; ++i){
+ if(ret[i] == null) throw new RuntimeException("NULL AT " + i + " BL " + bl);
+ }
+ return ret;
+ }
+
+ public void setReadOnly(boolean readOnly){
+ this.readOnly = readOnly;
+ daftarKeperluanPanel.setReadOnly(readOnly);
+
+ barangButtonPanel.setVisible(!readOnly);
+ barangTableModel.setCellEditable(!readOnly);
+ barangTable.repaint();
+
+ keteranganTA.setEnabled(!readOnly);
+
+ closeButton.setVisible(readOnly);
+ cancelBorrowButton.setVisible(readOnly && !Peminjaman.Status.BATAL.equals(peminjaman.getStatus()));
+ completeButton.setVisible(readOnly && !Peminjaman.Status.SELESAI.equals(peminjaman.getStatus()));
+ editButton.setVisible(readOnly);
+
+ cancelEditButton.setVisible(!readOnly);
+ saveButton.setVisible(!readOnly);
+ }
+ public void ubahStatus(String status, String konfirmasi){
+ int cek = peminjaman.cekUbahStatus(status);
+ switch(cek){
+ case Peminjaman.Error.OK:{
+ break;
+ }
+ case Peminjaman.Error.BELUM_DIKEMBALIKAN:{
+ DialogKonfirmasi dk = new DialogKonfirmasi();
+ dk.setQuestion(
+ Peminjaman.Error.TO_STRING.get(cek)
+ + " Apa anda ingin menandai semua barang untuk peminjaman ini sebagai sudah dikembalikan?"
+ );
+ dk.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ peminjaman.kembalikan();
+ load(peminjaman);
+ ubahStatus(status, konfirmasi);
+ dk.dispose();
+ }
+ });
+ setPopup(dk);
+ return;
+ }
+ default:{
+ throw new RuntimeException(Peminjaman.Error.TO_STRING.get(cek));
+ }
+ }
+ DialogStatusPeminjaman dk = new DialogStatusPeminjaman();
+ dk.setQuestion(konfirmasi);
+ dk.setOnDispose(new RequireLoginRunnable(){
+ @Override
+ public void onLogin(){
+ peminjaman.ubahStatus(status, dk.getKeterangan());
+ changed = true;
+ load(peminjaman);
+ dk.dispose();
+ }
+ });
+ setPopup(dk);
+ }
+
+ public void lihatPeminjam(){
+ DetailPeminjamFrame tup = new DetailPeminjamFrame();
+ tup.load(peminjaman.peminjam);
+ setPopup(tup);
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel5 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jTabbedPane1 = new javax.swing.JTabbedPane();
+ jPanel4 = new javax.swing.JPanel();
+ jLabel4 = new javax.swing.JLabel();
+ idPeminjamField = new javax.swing.JTextField();
+ jLabel5 = new javax.swing.JLabel();
+ namaPeminjamLabel = new javax.swing.JLabel();
+ jLabel7 = new javax.swing.JLabel();
+ nomorHpLabel = new javax.swing.JLabel();
+ jLabel6 = new javax.swing.JLabel();
+ statusCB = new javax.swing.JComboBox<>();
+ jLabel2 = new javax.swing.JLabel();
+ waktuPinjamField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ waktuKembaliField = new javax.swing.JTextField();
+ jLabel8 = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ ButtonPlusPeminjam = new javax.swing.JButton();
+ jPanel6 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ barangTable = createBarangTable(this);
+ barangButtonPanel = new javax.swing.JPanel();
+ removeBarangButton = new javax.swing.JButton();
+ addBarangButton = new javax.swing.JButton();
+ jPanel1 = new javax.swing.JPanel();
+ daftarKeperluanPanel = new dbd_lcd.gui.form.peminjaman.DaftarKeperluanPanel();
+ jPanel3 = new javax.swing.JPanel();
+ closeButton = new javax.swing.JButton();
+ cancelBorrowButton = new javax.swing.JButton();
+ cancelEditButton = new javax.swing.JButton();
+ editButton = new javax.swing.JButton();
+ completeButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel5.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel5.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 21)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Detail Peminjaman");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel5.add(jLabel1, gridBagConstraints);
+
+ jTabbedPane1.setBackground(new java.awt.Color(0, 102, 102));
+
+ jPanel4.setBackground(new java.awt.Color(204, 204, 255));
+ jPanel4.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel4.setLayout(new java.awt.GridBagLayout());
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel4.setText("ID Peminjam ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel4, gridBagConstraints);
+
+ idPeminjamField.setEditable(false);
+ idPeminjamField.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ idPeminjamField.setOpaque(false);
+ idPeminjamField.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ idPeminjamFieldMouseClicked(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(idPeminjamField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(18).attach(idPeminjamField);
+
+ jLabel5.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel5.setText("Nama ");
+ jLabel5.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel5, gridBagConstraints);
+
+ namaPeminjamLabel.setText("John Doe");
+ namaPeminjamLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(3, 3, 3, 3));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(namaPeminjamLabel, gridBagConstraints);
+
+ jLabel7.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel7.setText("No HP ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel7, gridBagConstraints);
+
+ nomorHpLabel.setText("0808080808");
+ nomorHpLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(3, 3, 3, 3));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(nomorHpLabel, gridBagConstraints);
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel6.setText("Status ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel6, gridBagConstraints);
+
+ statusCB.setModel(new javax.swing.DefaultComboBoxModel(Peminjaman.Status.STRING));
+ statusCB.setEnabled(false);
+ statusCB.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ statusCBActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(statusCB, gridBagConstraints);
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel2.setText("Waktu Pinjam ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel2, gridBagConstraints);
+
+ waktuPinjamField.setEditable(false);
+ waktuPinjamField.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ waktuPinjamField.setOpaque(false);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(waktuPinjamField, gridBagConstraints);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel3.setText("Waktu Kembali ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel3, gridBagConstraints);
+
+ waktuKembaliField.setEditable(false);
+ waktuKembaliField.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ waktuKembaliField.setOpaque(false);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(waktuKembaliField, gridBagConstraints);
+
+ jLabel8.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ jLabel8.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel8, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane2.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jScrollPane2, gridBagConstraints);
+
+ ButtonPlusPeminjam.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/KC PMBESAR.png"))); // NOI18N
+ ButtonPlusPeminjam.setContentAreaFilled(false);
+ ButtonPlusPeminjam.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ButtonPlusPeminjamActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.ipadx = -24;
+ gridBagConstraints.ipady = -6;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(ButtonPlusPeminjam, gridBagConstraints);
+
+ jTabbedPane1.addTab("Peminjaman", jPanel4);
+
+ jPanel6.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel6.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel6.setLayout(new java.awt.GridBagLayout());
+
+ jPanel2.setOpaque(false);
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ barangTable.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N
+ barangTable.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "Barang", "Nomor", "Dikembalikan"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.String.class, java.lang.Integer.class, java.lang.Boolean.class
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+ });
+ jScrollPane1.setViewportView(barangTable);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel2.add(jScrollPane1, gridBagConstraints);
+
+ barangButtonPanel.setOpaque(false);
+ barangButtonPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ removeBarangButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/MIN.png"))); // NOI18N
+ removeBarangButton.setContentAreaFilled(false);
+ removeBarangButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ removeBarangButtonActionPerformed(evt);
+ }
+ });
+ barangButtonPanel.add(removeBarangButton);
+
+ addBarangButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ addBarangButton.setContentAreaFilled(false);
+ addBarangButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addBarangButtonActionPerformed(evt);
+ }
+ });
+ barangButtonPanel.add(addBarangButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel2.add(barangButtonPanel, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel6.add(jPanel2, gridBagConstraints);
+
+ jTabbedPane1.addTab("Barang", jPanel6);
+
+ jPanel1.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(daftarKeperluanPanel, gridBagConstraints);
+
+ jTabbedPane1.addTab("Keperluan", jPanel1);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel5.add(jTabbedPane1, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 20, 5));
+
+ closeButton.setBackground(new java.awt.Color(204, 255, 255));
+ closeButton.setText("CLOSE");
+ closeButton.setSelected(true);
+ closeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ closeButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(closeButton);
+
+ cancelBorrowButton.setBackground(new java.awt.Color(204, 255, 255));
+ cancelBorrowButton.setText("BATAL");
+ cancelBorrowButton.setSelected(true);
+ cancelBorrowButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelBorrowButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(cancelBorrowButton);
+
+ cancelEditButton.setBackground(new java.awt.Color(204, 255, 255));
+ cancelEditButton.setText("BATAL");
+ cancelEditButton.setSelected(true);
+ cancelEditButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelEditButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(cancelEditButton);
+
+ editButton.setBackground(new java.awt.Color(204, 255, 255));
+ editButton.setText("UBAH");
+ editButton.setSelected(true);
+ editButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ editButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(editButton);
+
+ completeButton.setBackground(new java.awt.Color(204, 255, 255));
+ completeButton.setText("SELESAI");
+ completeButton.setSelected(true);
+ completeButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ completeButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(completeButton);
+
+ saveButton.setBackground(new java.awt.Color(204, 255, 255));
+ saveButton.setText("SIMPAN");
+ saveButton.setSelected(true);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel3.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel5.add(jPanel3, gridBagConstraints);
+
+ getContentPane().add(jPanel5, "card3");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void removeBarangButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeBarangButtonActionPerformed
+ // TODO add your handling code here:
+
+ int[] rows = barangTable.getSelectedRows();
+ int bl = peminjaman.getBarangCount();
+ for(int i = rows.length-1; i >= 0; --i){
+ if(rows[i] < bl) continue;
+ barangTableModel.removeRow(rows[i]);
+ }
+ }//GEN-LAST:event_removeBarangButtonActionPerformed
+
+ private void addBarangButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addBarangButtonActionPerformed
+ // TODO add your handling code here:
+ barangTableModel.addRow(new Object[]{null, null, false});
+ }//GEN-LAST:event_addBarangButtonActionPerformed
+
+ private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_closeButtonActionPerformed
+
+ private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
+ // TODO add your handling code here:
+ setReadOnly(false);
+ }//GEN-LAST:event_editButtonActionPerformed
+
+ private void cancelBorrowButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelBorrowButtonActionPerformed
+ // TODO add your handling code here:
+
+ this.ubahStatus(Peminjaman.Status.BATAL, "Apa anda yakin ingin membatalkan peminjaman ini?");
+ }//GEN-LAST:event_cancelBorrowButtonActionPerformed
+
+ private void cancelEditButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelEditButtonActionPerformed
+ // TODO add your handling code here:
+ load(peminjaman);
+ }//GEN-LAST:event_cancelEditButtonActionPerformed
+
+ private void completeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_completeButtonActionPerformed
+ // TODO add your handling code here:
+ this.ubahStatus(Peminjaman.Status.SELESAI, "Apa anda yakin peminjaman ini sudah selesai?");
+ }//GEN-LAST:event_completeButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ final Peminjaman pm;
+ try{
+ pm = read();
+ }catch(Exception ex){
+ Util.handleError(this, ex);
+ return;
+ }
+ if(pm.equals(peminjaman)){
+ setReadOnly(true);
+ return;
+ }
+ FormLogin.cekDanMintaSesi(this, new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ pm.update();
+ load(pm);
+ changed = true;
+ setReadOnly(true);
+ }
+ return true;
+ }
+ });
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void statusCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_statusCBActionPerformed
+ // TODO add your handling code here:
+
+ statusCB.setBackground(Peminjaman.Status.getColor((String)statusCB.getSelectedItem()).get(false));
+ }//GEN-LAST:event_statusCBActionPerformed
+
+ private void ButtonPlusPeminjamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonPlusPeminjamActionPerformed
+ // TODO add your handling code here:
+ lihatPeminjam();
+ }//GEN-LAST:event_ButtonPlusPeminjamActionPerformed
+
+ private void idPeminjamFieldMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_idPeminjamFieldMouseClicked
+ // TODO add your handling code here:
+ if(evt.getClickCount() != 2) return;
+
+ lihatPeminjam();
+ }//GEN-LAST:event_idPeminjamFieldMouseClicked
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DetailPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DetailPeminjaman().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton ButtonPlusPeminjam;
+ private javax.swing.JButton addBarangButton;
+ private javax.swing.JPanel barangButtonPanel;
+ private javax.swing.JTable barangTable;
+ private javax.swing.JButton cancelBorrowButton;
+ private javax.swing.JButton cancelEditButton;
+ private javax.swing.JButton closeButton;
+ private javax.swing.JButton completeButton;
+ private dbd_lcd.gui.form.peminjaman.DaftarKeperluanPanel daftarKeperluanPanel;
+ private javax.swing.JButton editButton;
+ private javax.swing.JTextField idPeminjamField;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JTabbedPane jTabbedPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JLabel namaPeminjamLabel;
+ private javax.swing.JLabel nomorHpLabel;
+ private javax.swing.JButton removeBarangButton;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JComboBox statusCB;
+ private javax.swing.JTextField waktuKembaliField;
+ private javax.swing.JTextField waktuPinjamField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.form b/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.form
new file mode 100644
index 0000000..4fbe183
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.form
@@ -0,0 +1,217 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.java b/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.java
new file mode 100644
index 0000000..6207111
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/DialogStatusPeminjaman.java
@@ -0,0 +1,243 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.form.*;
+import dbd_lcd.gui.MyFrame;
+import dbd_lcd.Util;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.PopupRunnable;
+import java.awt.Dimension;
+
+/**
+ *
+ * @author admin
+ */
+public class DialogStatusPeminjaman extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form FormLogin
+ */
+
+ public DialogStatusPeminjaman() {
+ initComponents();
+ }
+
+ public void setQuestion(String text){
+ questionTA.setText(text);
+ }
+
+ public String getKeterangan(){
+ return keteranganTA.getText();
+ }
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ questionTA = new javax.swing.JTextArea(){
+ @Override
+ public Dimension getMinimumSize(){
+ return getPreferredSize();
+ }
+ };
+ jPanel2 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ buttonSilangLogin = new javax.swing.JButton();
+ buttonCentangLogin = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel1.setBackground(new java.awt.Color(255, 255, 255));
+ jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 51, 51), 3));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(0, 102, 102));
+ jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Konfirmasi");
+ jLabel1.setOpaque(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ jPanel3.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel3.setMinimumSize(new java.awt.Dimension(165, 0));
+ jPanel3.setPreferredSize(new java.awt.Dimension(253, 200));
+ jPanel3.setRequestFocusEnabled(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ questionTA.setEditable(false);
+ questionTA.setColumns(20);
+ questionTA.setFont(new java.awt.Font("Comic Sans MS", 0, 14)); // NOI18N
+ questionTA.setLineWrap(true);
+ questionTA.setRows(2);
+ questionTA.setTabSize(4);
+ questionTA.setText("Apa anda yakin ingin melakukan ini?");
+ questionTA.setToolTipText("");
+ questionTA.setWrapStyleWord(true);
+ questionTA.setMinimumSize(new java.awt.Dimension(0, 0));
+ questionTA.setOpaque(false);
+ questionTA.setLineWrap(true);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(questionTA, gridBagConstraints);
+
+ jPanel2.setOpaque(false);
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ jLabel2.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(jLabel2, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane1.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel2.add(jScrollPane1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel3.add(jPanel2, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+ jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ buttonSilangLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ buttonSilangLogin.setContentAreaFilled(false);
+ buttonSilangLogin.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonSilangLoginActionPerformed(evt);
+ }
+ });
+ jPanel4.add(buttonSilangLogin);
+
+ buttonCentangLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ buttonCentangLogin.setContentAreaFilled(false);
+ buttonCentangLogin.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonCentangLoginActionPerformed(evt);
+ }
+ });
+ jPanel4.add(buttonCentangLogin);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
+ jPanel3.add(jPanel4, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 347, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE)
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void buttonSilangLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonSilangLoginActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_buttonSilangLoginActionPerformed
+
+ private void buttonCentangLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCentangLoginActionPerformed
+ // TODO add your handling code here:
+ dispose(true);
+ }//GEN-LAST:event_buttonCentangLoginActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DialogStatusPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DialogStatusPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DialogStatusPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DialogStatusPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new DialogStatusPeminjaman().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton buttonCentangLogin;
+ private javax.swing.JButton buttonSilangLogin;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JTextArea questionTA;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.form b/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.form
new file mode 100644
index 0000000..faba461
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.form
@@ -0,0 +1,209 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.java b/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.java
new file mode 100644
index 0000000..9fab9cb
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/FilterKeperluanFrame.java
@@ -0,0 +1,250 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.form.barang.*;
+import dbd_lcd.gui.form.peminjam.*;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjaman.*;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterKeperluanPinjam;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+
+/**
+ *
+ * @author admin
+ */
+public class FilterKeperluanFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Filter
+ */
+ FilterKeperluanPinjam filter = new FilterKeperluanPinjam();
+ public FilterKeperluanFrame() {
+ initComponents();
+ }
+
+ public void load(FilterKeperluanPinjam filter){
+ keperluanField.setText(Util.stringify(filter.keperluanPinjam));
+ pjField.setText(Util.stringify(filter.namaPenanggungJawab));
+ ruangField.setText(Util.stringify(filter.ruangPinjam));
+ this.filter = filter;
+ }
+ public FilterKeperluanPinjam read(){
+ FilterKeperluanPinjam filter = new FilterKeperluanPinjam(this.filter);
+ filter.keperluanPinjam = Util.stringify(keperluanField.getText());
+ filter.namaPenanggungJawab = Util.stringify(pjField.getText());
+ filter.ruangPinjam = Util.stringify(ruangField.getText());
+ return filter;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel4 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel6 = new javax.swing.JLabel();
+ keperluanField = new javax.swing.JTextField();
+ tipeLabel = new javax.swing.JLabel();
+ pjField = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ ruangField = new javax.swing.JTextField();
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(15, 0));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 15, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 255, Short.MAX_VALUE)
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel4.setText("Filter Keperluan Pinjam");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel4, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel6.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel6.setText("Keperluan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel6, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(keperluanField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(keperluanField);
+
+ tipeLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ tipeLabel.setForeground(new java.awt.Color(255, 255, 255));
+ tipeLabel.setText("PJ");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(tipeLabel, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(pjField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(pjField);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("Tempat");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel3, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(ruangField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(64).attach(ruangField);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ jPanel1.add(jPanel4, gridBagConstraints);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ load(filter);
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ this.filter = read();
+ changed = true;
+ dispose(true);
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new FilterKeperluanFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JTextField keperluanField;
+ private javax.swing.JTextField pjField;
+ private javax.swing.JTextField ruangField;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JLabel tipeLabel;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.form b/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.form
new file mode 100644
index 0000000..e4e5655
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.form
@@ -0,0 +1,402 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.java b/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.java
new file mode 100644
index 0000000..ec9c49d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/FilterPeminjamanFrame.java
@@ -0,0 +1,480 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.gui.form.barang.*;
+import dbd_lcd.gui.form.peminjam.*;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjaman.*;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.Peminjaman;
+import dbd_lcd.system.structs.RangeWaktu;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import dbd_lcd.system.structs.filter.FilterKeperluanPinjam;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import java.sql.Timestamp;
+
+/**
+ *
+ * @author admin
+ */
+public class FilterPeminjamanFrame extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form Filter
+ */
+ FilterPeminjaman filter = new FilterPeminjaman();
+ FilterBarang filterBarang = new FilterBarang();
+ FilterPeminjam filterPeminjam = new FilterPeminjam();
+ FilterKeperluanPinjam filterKeperluan = new FilterKeperluanPinjam();
+ public FilterPeminjamanFrame() {
+ initComponents();
+ }
+
+ public void load(FilterPeminjaman filter){
+ statusCB.setSelectedItem(Util.stringify(Peminjaman.Status.TO_STRING.get(filter.status)));
+
+ if(filter.rangeWaktu != null){
+ waktuAwalField.setText(Util.stringify(Util.formatDateTime(filter.rangeWaktu.awal)));
+ waktuAkhirField.setText(Util.stringify(Util.formatDateTime(filter.rangeWaktu.akhir)));
+ }else{
+ waktuAwalField.setText("");
+ waktuAkhirField.setText("");
+ }
+ terlambatCB.setSelectedItem(Util.stringify(filter.terlambat));
+ keteranganTA.setText(Util.stringify(filter.keterangan));
+
+ this.filter = filter;
+ this.filterBarang = new FilterBarang(filter.barang);
+ this.filterPeminjam = new FilterPeminjam(filter.peminjam);
+ this.filterKeperluan = new FilterKeperluanPinjam(filter.keperluan);
+ }
+ public FilterPeminjaman read(){
+ FilterPeminjaman filter = new FilterPeminjaman(this.filter);
+ filter.status = Peminjaman.Status.FROM_STRING.get(Util.nullify((String)statusCB.getSelectedItem()));
+ Timestamp waktuAwal = Util.parseDateTime(Util.nullify(waktuAwalField.getText()));
+ Timestamp waktuAkhir = Util.parseDateTime(Util.nullify(waktuAkhirField.getText()));
+ RangeWaktu rangeWaktu = null;
+ if(waktuAwal != null || waktuAkhir != null){
+ rangeWaktu = new RangeWaktu(waktuAwal, waktuAkhir);
+ rangeWaktu.cekValid();
+ }
+ filter.rangeWaktu = rangeWaktu;
+ filter.terlambat = Util.booleanify((String)terlambatCB.getSelectedItem());
+ filter.keterangan = Util.nullify(keteranganTA.getText());
+
+ filter.barang = new FilterBarang(filterBarang);
+ filter.peminjam = new FilterPeminjam(filterPeminjam);
+ filter.keperluan = new FilterKeperluanPinjam(filterKeperluan);
+
+ return filter;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel4 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel3 = new javax.swing.JLabel();
+ statusCB = new javax.swing.JComboBox<>();
+ jLabel6 = new javax.swing.JLabel();
+ peminjamButton = new javax.swing.JButton();
+ jLabel9 = new javax.swing.JLabel();
+ barangButton = new javax.swing.JButton();
+ jLabel10 = new javax.swing.JLabel();
+ keperluanButton = new javax.swing.JButton();
+ jLabel8 = new javax.swing.JLabel();
+ waktuAwalField = new javax.swing.JFormattedTextField();
+ jLabel7 = new javax.swing.JLabel();
+ waktuAkhirField = new javax.swing.JFormattedTextField();
+ tipeLabel = new javax.swing.JLabel();
+ terlambatCB = new javax.swing.JComboBox<>();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ saveButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+ jPanel2.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel2.setPreferredSize(new java.awt.Dimension(15, 0));
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 15, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 415, Short.MAX_VALUE)
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
+
+ jPanel1.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel4.setText("Filter Peminjaman");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jLabel4, gridBagConstraints);
+
+ jPanel3.setOpaque(false);
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel3.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel3.setText("Status");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel3, gridBagConstraints);
+
+ statusCB.setModel(new javax.swing.DefaultComboBoxModel(Peminjaman.Status.FILTER_STRING));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(statusCB, gridBagConstraints);
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel6.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel6.setText("Peminjam");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel6, gridBagConstraints);
+
+ peminjamButton.setBackground(new java.awt.Color(255, 153, 0));
+ peminjamButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ peminjamButton.setText("Filter");
+ peminjamButton.setOpaque(false);
+ peminjamButton.setSelected(true);
+ peminjamButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ peminjamButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(peminjamButton, gridBagConstraints);
+
+ jLabel9.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel9.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel9.setText("Barang");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel9, gridBagConstraints);
+
+ barangButton.setBackground(new java.awt.Color(255, 153, 0));
+ barangButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ barangButton.setText("Filter");
+ barangButton.setOpaque(false);
+ barangButton.setSelected(true);
+ barangButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ barangButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(barangButton, gridBagConstraints);
+
+ jLabel10.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel10.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel10.setText("Keperluan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel10, gridBagConstraints);
+
+ keperluanButton.setBackground(new java.awt.Color(255, 153, 0));
+ keperluanButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ keperluanButton.setText("Filter");
+ keperluanButton.setOpaque(false);
+ keperluanButton.setSelected(true);
+ keperluanButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ keperluanButtonActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(keperluanButton, gridBagConstraints);
+
+ jLabel8.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel8.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel8.setText("Waktu Awal");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel8, gridBagConstraints);
+
+ waktuAwalField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm"))));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(waktuAwalField, gridBagConstraints);
+
+ jLabel7.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel7.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel7.setText("Waktu Akhir");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel7, gridBagConstraints);
+
+ waktuAkhirField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm"))));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(waktuAkhirField, gridBagConstraints);
+
+ tipeLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ tipeLabel.setForeground(new java.awt.Color(255, 255, 255));
+ tipeLabel.setText("Terlambat");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(tipeLabel, gridBagConstraints);
+
+ terlambatCB.setModel(new javax.swing.DefaultComboBoxModel(Util.getBooleanCBString()));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(terlambatCB, gridBagConstraints);
+
+ jLabel2.setBackground(new java.awt.Color(255, 255, 255));
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
+ jLabel2.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel2.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jLabel2, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane1.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel3.add(jScrollPane1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel1.add(jPanel3, gridBagConstraints);
+
+ jPanel4.setOpaque(false);
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(cancelButton);
+
+ saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ saveButton.setContentAreaFilled(false);
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+ jPanel4.add(saveButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
+ jPanel1.add(jPanel4, gridBagConstraints);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ load(filter);
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ // TODO add your handling code here:
+ try{
+ load(read());
+ }catch(RuntimeException ex){
+ Util.handleError(this, ex);
+ }
+ changed = true;
+ dispose(true);
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void peminjamButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_peminjamButtonActionPerformed
+ // TODO add your handling code here:
+ FilterPeminjamFrame fpf = new FilterPeminjamFrame();
+ fpf.load(filterPeminjam);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filterPeminjam = fpf.read();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_peminjamButtonActionPerformed
+
+ private void barangButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_barangButtonActionPerformed
+ // TODO add your handling code here:
+ FilterBarangFrame fpf = new FilterBarangFrame();
+ fpf.setTipeCBVisible(true);
+ fpf.load(filterBarang);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filterBarang = fpf.read();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_barangButtonActionPerformed
+
+ private void keperluanButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_keperluanButtonActionPerformed
+ // TODO add your handling code here:
+ FilterKeperluanFrame fpf = new FilterKeperluanFrame();
+ fpf.load(filterKeperluan);
+ fpf.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ filterKeperluan = fpf.read();
+ }
+ return true;
+ }
+ });
+ setPopup(fpf);
+ }//GEN-LAST:event_keperluanButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(FilterPeminjam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new FilterPeminjamanFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton barangButton;
+ private javax.swing.JButton cancelButton;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JButton keperluanButton;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JButton peminjamButton;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JComboBox statusCB;
+ private javax.swing.JComboBox terlambatCB;
+ private javax.swing.JLabel tipeLabel;
+ private javax.swing.JFormattedTextField waktuAkhirField;
+ private javax.swing.JFormattedTextField waktuAwalField;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/NomorBarangComboBoxModel.java b/src/dbd_lcd/gui/form/peminjaman/NomorBarangComboBoxModel.java
new file mode 100644
index 0000000..be023bd
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/NomorBarangComboBoxModel.java
@@ -0,0 +1,54 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.system.structs.Barang;
+import javax.swing.AbstractListModel;
+import javax.swing.ComboBoxModel;
+import javax.swing.JTable;
+
+/**
+ *
+ * @author user
+ */
+public class NomorBarangComboBoxModel extends AbstractListModel implements ComboBoxModel {
+ BarangComboBoxManager manager;
+ JTable table;
+ Integer selection = null;
+
+ public NomorBarangComboBoxModel(BarangComboBoxManager manager, JTable table){
+ this.manager = manager;
+ this.table =table;
+ }
+ public Object getElementAt(int index) {
+ String tipe = getTipe();
+ if(tipe == null) return null;
+ return manager.nomorPool.get(tipe)[index];
+ }
+
+ private String getTipe(){
+ int row = table.getEditingRow();
+ if(row < 0) return null;
+ String tipeString = (String)table.getValueAt(row, 0);
+ if(tipeString == null) return null;
+ return Barang.Tipe.FROM_STRING.get(tipeString);
+ }
+
+ public int getSize() {
+ String tipe = getTipe();
+ if(tipe == null) return 0;
+ return manager.nomorPool.get(tipe).length;
+ }
+
+ public void setSelectedItem(Object anItem) {
+ selection = (Integer) anItem; // to select and register an
+ } // item from the pull-down list
+
+ // Methods implemented from the interface ComboBoxModel
+ public Object getSelectedItem() {
+ return selection; // to add the selection to the combo box
+ }
+}
\ No newline at end of file
diff --git a/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.form b/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.form
new file mode 100644
index 0000000..7e61ed7
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.form
@@ -0,0 +1,474 @@
+
+
+
diff --git a/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.java b/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.java
new file mode 100644
index 0000000..eec967b
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/TambahPeminjaman.java
@@ -0,0 +1,593 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.gui.MyTableModel;
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.Util;
+import dbd_lcd.gui.form.peminjam.DetailPeminjamFrame;
+import dbd_lcd.system.structs.Barang;
+import dbd_lcd.system.structs.IdBarang;
+import dbd_lcd.system.structs.KeperluanPinjam;
+import dbd_lcd.system.structs.Peminjam;
+import dbd_lcd.system.structs.Peminjaman;
+import dbd_lcd.system.structs.filter.FilterPeminjam;
+import java.util.ArrayList;
+import java.util.List;
+import javax.swing.DefaultCellEditor;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellEditor;
+
+/**
+ *
+ * @author admin
+ */
+public class TambahPeminjaman extends dbd_lcd.gui.MyFrame {
+
+ /**
+ * Creates new form FormulirPeminjaman
+ */
+ BarangTableModel barangTableModel;
+ BarangComboBoxManager manager;
+ Peminjam peminjam;
+ public TambahPeminjaman() {
+ initComponents();
+ prepareBarangTable();
+ findPeminjam();
+ }
+
+ public void prepareBarangTable(){
+ BarangTableModel dtm = new BarangTableModel();
+ dtm.setCellEditable(true);
+ dtm.addColumn("Tipe Barang");
+ dtm.addColumn("Nomor Barang");
+ manager = new BarangComboBoxManager(dtm);
+ manager.fetch();
+ barangTableModel = dtm;
+ TabelDetailBarang.setModel(dtm);
+ tipeBarangCB.setModel(new TipeBarangComboBoxModel(manager, TabelDetailBarang));
+ nomorBarangCB.setModel(new NomorBarangComboBoxModel(manager, TabelDetailBarang));
+
+ TabelDetailBarang.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(tipeBarangCB));
+ TabelDetailBarang.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(nomorBarangCB));
+
+ }
+
+
+ public void setIdPeminjam(String idPeminjam){
+ idPeminjamField.setText(idPeminjam);
+ }
+
+ public String getIdPeminjam(){
+ String idPeminjam = Util.nullify(Util.preparePhoneNumber(idPeminjamField.getText()));
+ return idPeminjam;
+ }
+
+ public void findPeminjam(){
+ String idPeminjam = getIdPeminjam();
+ ButtonPlusPeminjam.setVisible(false);
+ idPeminjamField.setToolTipText(null);
+ try{
+ if(idPeminjam == null || idPeminjam.length() < 9){
+ throw new RuntimeException("Nomor identitas tidak valid");
+ }
+ FilterPeminjam filter = new FilterPeminjam();
+ filter.idPeminjam = idPeminjam;
+ Peminjam[] ps = Peminjam.fetch(filter);
+ if(ps.length == 0){
+ ButtonPlusPeminjam.setVisible(true);
+ throw new RuntimeException("Peminjam tidak ditemukan");
+ }
+ peminjam = ps[0];
+ namaPeminjamLabel.setText(peminjam.getNamaPeminjam());
+ idPeminjamField.setBackground(peminjam.getBlacklistColor().get(false));
+ if(peminjam.isPeminjamTerblacklist()){
+ Util.showError(
+ this,
+ "Anda Terblacklist",
+ String.format(
+ "Anda, %s, telah diblacklist dari layanan ini karena: %s",
+ peminjam.getNamaPeminjam(),
+ peminjam.getKeteranganBlacklist()
+ )
+ );
+ idPeminjamField.setToolTipText(peminjam.getKeteranganBlacklist());
+ }
+ }catch(Exception ex){
+ peminjam = null;
+ idPeminjamField.setBackground(Peminjam.getBlacklistColor(true).get(false));
+ namaPeminjamLabel.setText(ex.getMessage());
+ }
+ }
+
+ public void tambahPeminjam(){
+ setEnabled(false);
+ DetailPeminjamFrame tp = new DetailPeminjamFrame();
+ tp.setOnDispose(new PopupRunnable(){
+ @Override
+ public boolean run(boolean success){
+ if(success){
+ setIdPeminjam(tp.getIdPeminjam());
+ findPeminjam();
+ }
+ return true;
+ }
+ });
+ tp.setIdPeminjam(getIdPeminjam());
+ setPopup(tp);
+ }
+
+ public Barang[] readBarang(){
+ int rc = TabelDetailBarang.getRowCount();
+ Barang[] ret = new Barang[rc];
+ for(int i = 0; i < rc; ++i){
+ ret[i] = Util.readBarang(TabelDetailBarang, i);
+ }
+ return ret;
+ }
+
+ public Peminjaman read(){
+ Peminjaman p = new Peminjaman(
+ peminjam,
+ readBarang(),
+ daftarKeperluanPanel.read(),
+ Util.nullify(keteranganTA.getText())
+ );
+ return p;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ tipeBarangCB = new javax.swing.JComboBox<>();
+ nomorBarangCB = new javax.swing.JComboBox<>();
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jTabbedPane1 = new javax.swing.JTabbedPane();
+ jPanel4 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ idPeminjamField = new javax.swing.JTextField();
+ ButtonPlusPeminjam = new javax.swing.JButton();
+ jLabel3 = new javax.swing.JLabel();
+ namaPeminjamLabel = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ keteranganTA = new javax.swing.JTextArea();
+ jPanel5 = new javax.swing.JPanel();
+ jPanel7 = new javax.swing.JPanel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ TabelDetailBarang = new javax.swing.JTable();
+ jPanel6 = new javax.swing.JPanel();
+ ButtonMinFP = new javax.swing.JButton();
+ ButtonPlusFP = new javax.swing.JButton();
+ jPanel3 = new javax.swing.JPanel();
+ daftarKeperluanPanel = new dbd_lcd.gui.form.peminjaman.DaftarKeperluanPanel();
+ jPanel8 = new javax.swing.JPanel();
+ jPanel11 = new javax.swing.JPanel();
+ cancelButton = new javax.swing.JButton();
+ addButton = new javax.swing.JButton();
+
+ tipeBarangCB.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ tipeBarangCBActionPerformed(evt);
+ }
+ });
+
+ nomorBarangCB.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ nomorBarangCBFocusLost(evt);
+ }
+ });
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setBackground(new java.awt.Color(0, 102, 102));
+ getContentPane().setLayout(new java.awt.CardLayout());
+
+ jPanel2.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel2.setPreferredSize(new java.awt.Dimension(475, 300));
+ jPanel2.setLayout(new java.awt.GridBagLayout());
+
+ jPanel1.setBackground(new java.awt.Color(255, 153, 0));
+ jPanel1.setLayout(new java.awt.GridBagLayout());
+
+ jLabel1.setBackground(new java.awt.Color(255, 153, 0));
+ jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 21)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(255, 255, 255));
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ jLabel1.setText("Formulir Peminjaman");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ jPanel1.add(jLabel1, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
+ gridBagConstraints.weightx = 1.0;
+ jPanel2.add(jPanel1, gridBagConstraints);
+
+ jTabbedPane1.setBackground(new java.awt.Color(0, 102, 102));
+ jTabbedPane1.setPreferredSize(new java.awt.Dimension(475, 270));
+
+ jPanel4.setBackground(new java.awt.Color(204, 204, 255));
+ jPanel4.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 20, 10, 20));
+ jPanel4.setLayout(new java.awt.GridBagLayout());
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ jLabel2.setText("No. Identitas");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel2, gridBagConstraints);
+
+ idPeminjamField.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
+ idPeminjamField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ idPeminjamFieldFocusLost(evt);
+ }
+ });
+ idPeminjamField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ idPeminjamFieldActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.ipadx = 150;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(idPeminjamField, gridBagConstraints);
+ new dbd_lcd.gui.LimitDocumentFilter(18).attach(idPeminjamField);
+
+ ButtonPlusPeminjam.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ ButtonPlusPeminjam.setContentAreaFilled(false);
+ ButtonPlusPeminjam.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ButtonPlusPeminjamActionPerformed(evt);
+ }
+ });
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.ipadx = -24;
+ gridBagConstraints.ipady = -6;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(ButtonPlusPeminjam, gridBagConstraints);
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ jLabel3.setText("Nama");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel3, gridBagConstraints);
+
+ namaPeminjamLabel.setText("Tidak ditemukan");
+ namaPeminjamLabel.setToolTipText("");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.ipadx = 118;
+ gridBagConstraints.ipady = 7;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(namaPeminjamLabel, gridBagConstraints);
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+ jLabel4.setText("Keterangan");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jLabel4, gridBagConstraints);
+
+ keteranganTA.setColumns(20);
+ keteranganTA.setRows(5);
+ jScrollPane2.setViewportView(keteranganTA);
+ new dbd_lcd.gui.LimitDocumentFilter(256).attach(keteranganTA);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ jPanel4.add(jScrollPane2, gridBagConstraints);
+
+ jTabbedPane1.addTab("Peminjaman", jPanel4);
+
+ jPanel5.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel5.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel5.setPreferredSize(new java.awt.Dimension(473, 260));
+ jPanel5.setLayout(new java.awt.GridBagLayout());
+
+ jPanel7.setOpaque(false);
+ jPanel7.setLayout(new java.awt.GridBagLayout());
+
+ jScrollPane1.setBackground(new java.awt.Color(0, 102, 102));
+ jScrollPane1.setOpaque(false);
+
+ TabelDetailBarang.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {null, null},
+ {null, null}
+ },
+ new String [] {
+ "Barang", "Nomor"
+ }
+ ));
+ TabelDetailBarang.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+ public void propertyChange(java.beans.PropertyChangeEvent evt) {
+ TabelDetailBarangPropertyChange(evt);
+ }
+ });
+ jScrollPane1.setViewportView(TabelDetailBarang);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel7.add(jScrollPane1, gridBagConstraints);
+
+ jPanel6.setOpaque(false);
+ jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ ButtonMinFP.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/MIN.png"))); // NOI18N
+ ButtonMinFP.setContentAreaFilled(false);
+ ButtonMinFP.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ButtonMinFPActionPerformed(evt);
+ }
+ });
+ jPanel6.add(ButtonMinFP);
+
+ ButtonPlusFP.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/TAMBAH.png"))); // NOI18N
+ ButtonPlusFP.setContentAreaFilled(false);
+ ButtonPlusFP.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ButtonPlusFPActionPerformed(evt);
+ }
+ });
+ jPanel6.add(ButtonPlusFP);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ jPanel7.add(jPanel6, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel5.add(jPanel7, gridBagConstraints);
+
+ jTabbedPane1.addTab("Barang", jPanel5);
+
+ jPanel3.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ jPanel3.setPreferredSize(new java.awt.Dimension(473, 260));
+ jPanel3.setLayout(new java.awt.GridBagLayout());
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel3.add(daftarKeperluanPanel, gridBagConstraints);
+
+ jTabbedPane1.addTab("Keperluan", jPanel3);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ jPanel2.add(jTabbedPane1, gridBagConstraints);
+
+ jPanel8.setBackground(new java.awt.Color(0, 102, 102));
+ jPanel8.setOpaque(false);
+ jPanel8.setLayout(new java.awt.GridBagLayout());
+
+ jPanel11.setOpaque(false);
+ jPanel11.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
+
+ cancelButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/SILANG.png"))); // NOI18N
+ cancelButton.setContentAreaFilled(false);
+ cancelButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cancelButtonActionPerformed(evt);
+ }
+ });
+ jPanel11.add(cancelButton);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/dbd_lcd/gui/image/CENTANG.png"))); // NOI18N
+ addButton.setContentAreaFilled(false);
+ addButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addButtonActionPerformed(evt);
+ }
+ });
+ jPanel11.add(addButton);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+ gridBagConstraints.weightx = 1.0;
+ jPanel8.add(jPanel11, gridBagConstraints);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
+ jPanel2.add(jPanel8, gridBagConstraints);
+
+ getContentPane().add(jPanel2, "card2");
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
+ // TODO add your handling code here:
+ try{
+ read();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ Util.handleError(this, ex);
+ return;
+ }
+
+ dispose(true);
+ }//GEN-LAST:event_addButtonActionPerformed
+
+ private void idPeminjamFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_idPeminjamFieldFocusLost
+ // TODO add your handling code here:
+ findPeminjam();
+ }//GEN-LAST:event_idPeminjamFieldFocusLost
+
+ private void idPeminjamFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_idPeminjamFieldActionPerformed
+ // TODO add your handling code here:
+ findPeminjam();
+ }//GEN-LAST:event_idPeminjamFieldActionPerformed
+
+ private void ButtonPlusPeminjamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonPlusPeminjamActionPerformed
+ // TODO add your handling code here:
+ tambahPeminjam();
+ }//GEN-LAST:event_ButtonPlusPeminjamActionPerformed
+
+ private void ButtonPlusFPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonPlusFPActionPerformed
+ // TODO add your handling code here:
+ barangTableModel.addRow(new Object[]{null, null});
+ }//GEN-LAST:event_ButtonPlusFPActionPerformed
+
+ private void TabelDetailBarangPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_TabelDetailBarangPropertyChange
+ // TODO add your handling code here:
+ }//GEN-LAST:event_TabelDetailBarangPropertyChange
+
+ private void tipeBarangCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tipeBarangCBActionPerformed
+ // TODO add your handling code here:
+ int row = TabelDetailBarang.getSelectedRow();
+ if(row < 0) row = TabelDetailBarang.getEditingRow();
+ if(row < 0) return;
+ nomorBarangCB.setModel(nomorBarangCB.getModel());
+ String selection = (String)TabelDetailBarang.getValueAt(row, 0);
+ if(selection == null){
+ TabelDetailBarang.setValueAt(null, row, 1);
+ }else{
+ Integer old = (Integer) TabelDetailBarang.getValueAt(row, 1);
+ Integer[] pool = manager.nomorPool.get(Barang.Tipe.FROM_STRING.get(selection));
+ if(!Util.contains(pool, old)) TabelDetailBarang.setValueAt(pool[0], row, 1);
+ }
+ }//GEN-LAST:event_tipeBarangCBActionPerformed
+
+ private void ButtonMinFPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonMinFPActionPerformed
+ // TODO add your handling code here:
+ int[] rows = TabelDetailBarang.getSelectedRows();
+ for(int i = rows.length-1; i >= 0; --i){
+ barangTableModel.removeRow(rows[i]);
+ }
+ }//GEN-LAST:event_ButtonMinFPActionPerformed
+
+ private void nomorBarangCBFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_nomorBarangCBFocusLost
+ // TODO add your handling code here:
+ TableCellEditor editor = TabelDetailBarang.getCellEditor();
+ if(editor!=null) editor.stopCellEditing();
+ }//GEN-LAST:event_nomorBarangCBFocusLost
+
+ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_cancelButtonActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(TambahPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(TambahPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(TambahPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(TambahPeminjaman.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new TambahPeminjaman().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton ButtonMinFP;
+ private javax.swing.JButton ButtonPlusFP;
+ private javax.swing.JButton ButtonPlusPeminjam;
+ private javax.swing.JTable TabelDetailBarang;
+ private javax.swing.JButton addButton;
+ private javax.swing.JButton cancelButton;
+ private dbd_lcd.gui.form.peminjaman.DaftarKeperluanPanel daftarKeperluanPanel;
+ private javax.swing.JTextField idPeminjamField;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel11;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JPanel jPanel7;
+ private javax.swing.JPanel jPanel8;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JTabbedPane jTabbedPane1;
+ private javax.swing.JTextArea keteranganTA;
+ private javax.swing.JLabel namaPeminjamLabel;
+ private javax.swing.JComboBox nomorBarangCB;
+ private javax.swing.JComboBox tipeBarangCB;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/dbd_lcd/gui/form/peminjaman/TipeBarangComboBoxModel.java b/src/dbd_lcd/gui/form/peminjaman/TipeBarangComboBoxModel.java
new file mode 100644
index 0000000..be2896d
--- /dev/null
+++ b/src/dbd_lcd/gui/form/peminjaman/TipeBarangComboBoxModel.java
@@ -0,0 +1,48 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.gui.form.peminjaman;
+
+import dbd_lcd.Util;
+import dbd_lcd.system.structs.Barang;
+import javax.swing.AbstractListModel;
+import javax.swing.ComboBoxModel;
+import javax.swing.JTable;
+
+/**
+ *
+ * @author user
+ */
+public class TipeBarangComboBoxModel extends AbstractListModel implements ComboBoxModel {
+ BarangComboBoxManager manager;
+ JTable table;
+ String selection = null;
+
+ public TipeBarangComboBoxModel(BarangComboBoxManager manager, JTable table){
+ this.manager = manager;
+ this.table =table;
+ }
+
+ public Object getElementAt(int index) {
+ return Barang.Tipe.TO_STRING.get(manager.tipePool[index]);
+ }
+
+ public int getSize() {
+ return manager.tipePool.length;
+ }
+
+ public void setSelectedItem(Object anItem) {
+ selection = (String) anItem; // to select and register an
+ } // item from the pull-down list
+
+ // Methods implemented from the interface ComboBoxModel
+ public Object getSelectedItem() {
+ return selection; // to add the selection to the combo box
+ }
+
+ public String getSelectedCode(){
+ return Barang.Tipe.FROM_STRING.get((String)selection);
+ }
+}
diff --git a/src/dbd_lcd/gui/image/730 hu.jpg b/src/dbd_lcd/gui/image/730 hu.jpg
new file mode 100644
index 0000000..d596804
Binary files /dev/null and b/src/dbd_lcd/gui/image/730 hu.jpg differ
diff --git a/src/dbd_lcd/gui/image/CENTANG.png b/src/dbd_lcd/gui/image/CENTANG.png
new file mode 100644
index 0000000..a0e8a24
Binary files /dev/null and b/src/dbd_lcd/gui/image/CENTANG.png differ
diff --git a/src/dbd_lcd/gui/image/KC PMBESAR.png b/src/dbd_lcd/gui/image/KC PMBESAR.png
new file mode 100644
index 0000000..5d34153
Binary files /dev/null and b/src/dbd_lcd/gui/image/KC PMBESAR.png differ
diff --git a/src/dbd_lcd/gui/image/MIN.png b/src/dbd_lcd/gui/image/MIN.png
new file mode 100644
index 0000000..801cf7a
Binary files /dev/null and b/src/dbd_lcd/gui/image/MIN.png differ
diff --git a/src/dbd_lcd/gui/image/PENGATURAN.png b/src/dbd_lcd/gui/image/PENGATURAN.png
new file mode 100644
index 0000000..2077489
Binary files /dev/null and b/src/dbd_lcd/gui/image/PENGATURAN.png differ
diff --git a/src/dbd_lcd/gui/image/SILANG.png b/src/dbd_lcd/gui/image/SILANG.png
new file mode 100644
index 0000000..6bf55e0
Binary files /dev/null and b/src/dbd_lcd/gui/image/SILANG.png differ
diff --git a/src/dbd_lcd/gui/image/TAMBAH.png b/src/dbd_lcd/gui/image/TAMBAH.png
new file mode 100644
index 0000000..b346c24
Binary files /dev/null and b/src/dbd_lcd/gui/image/TAMBAH.png differ
diff --git a/src/dbd_lcd/report/MyJasperViewer.java b/src/dbd_lcd/report/MyJasperViewer.java
new file mode 100644
index 0000000..bb8f7e5
--- /dev/null
+++ b/src/dbd_lcd/report/MyJasperViewer.java
@@ -0,0 +1,71 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.report;
+
+import dbd_lcd.PopupRunnable;
+import dbd_lcd.gui.MyFrame;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.view.JasperViewer;
+
+/**
+ *
+ * @author user
+ */
+public class MyJasperViewer extends JasperViewer {
+
+ public MyFrame parent;
+ private PopupRunnable onDispose;
+ public MyJasperViewer(JasperPrint jasperPrint) {
+ super(jasperPrint, false);
+ }
+
+ @Override
+ public void setVisible(boolean visible){
+ super.setVisible(visible);
+ if(parent != null){
+ parent.setEnabled(!visible);
+ if(!visible){
+ parent.requestFocus();
+ }
+ }
+ }
+
+
+ public boolean hasOnDispose(){
+ return onDispose != null;
+ }
+
+ public boolean onDispose(boolean success){
+ if(onDispose != null) {
+ boolean ret = onDispose.run(success);
+ if(ret){
+ onDispose = null;
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return true;
+ }
+ }
+
+ public void setOnDispose(PopupRunnable onDispose){
+ this.onDispose = onDispose;
+ }
+
+ @Override
+ public void dispose(){
+ //setVisible(false);
+ dispose(false);
+ }
+
+ public void dispose(boolean success){
+ if(!onDispose(success)) return;
+ if(parent != null) parent.setEnabled(true);
+ super.dispose();
+ }
+
+}
diff --git a/src/dbd_lcd/report/jrxml/Barang.jrxml b/src/dbd_lcd/report/jrxml/Barang.jrxml
new file mode 100644
index 0000000..df45e56
--- /dev/null
+++ b/src/dbd_lcd/report/jrxml/Barang.jrxml
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/dbd_lcd/report/jrxml/Peminjam.jrxml b/src/dbd_lcd/report/jrxml/Peminjam.jrxml
new file mode 100644
index 0000000..f5706f6
--- /dev/null
+++ b/src/dbd_lcd/report/jrxml/Peminjam.jrxml
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(NOW(), P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ ),
+ IF(P.Waktu_Kembali > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ )
+ ) AS Keterlambatan,
+ GROUP_CONCAT(DISTINCT CONCAT(RB.Tipe_Barang, RB.Nomor_Barang), ", ") AS Barang_Dipinjam,
+ Get_Nama_Petugas(P.Username_Petugas) AS PJ
+FROM Peminjaman P, Peminjam PM, Riwayat_Barang RB, Status_Peminjaman SP, Tipe_Barang TP
+WHERE P.Identitas_Peminjam=PM.Identitas_Peminjam
+ AND P.Nomor_Peminjaman=RB.Nomor_Peminjaman
+ AND P.Status_Peminjaman=SP.Status_Peminjaman
+ AND YEAR(P.Waktu_Pinjam) = $P{REPORT_YEAR}
+ AND MONTH(P.Waktu_Pinjam) = $P{REPORT_MONTH}
+GROUP BY P.Identitas_Peminjam, PM.Nama_Peminjam, PM.Nomor_Hp_Peminjam, Blacklist, SP.Teks_Status_Peminjaman, P.Waktu_Pinjam, P.Waktu_Kembali
+ORDER BY P.Identitas_Peminjam, P.Waktu_Pinjam, P.Waktu_Kembali ASC;]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/dbd_lcd/report/jrxml/Peminjaman.jrxml b/src/dbd_lcd/report/jrxml/Peminjaman.jrxml
new file mode 100644
index 0000000..6b38a1a
--- /dev/null
+++ b/src/dbd_lcd/report/jrxml/Peminjaman.jrxml
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(NOW(), P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(NOW(), P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ ),
+ IF(P.Waktu_Kembali > P.Waktu_Harus_Kembali,
+ CONCAT(
+ DATEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali), "d ",
+ HOUR(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "h ",
+ MINUTE(TIMEDIFF(P.Waktu_Kembali, P.Waktu_Harus_Kembali)), "m "
+ ),
+ ""
+ )
+ ) AS Keterlambatan,
+ GROUP_CONCAT(DISTINCT CONCAT(RB.Tipe_Barang, RB.Nomor_Barang), ", ") AS Barang_Dipinjam,
+ Get_Nama_Petugas(P.Username_Petugas) AS PJ
+FROM Peminjaman P, Peminjam PM, Riwayat_Barang RB, Status_Peminjaman SP, Tipe_Barang TP
+WHERE P.Identitas_Peminjam=PM.Identitas_Peminjam
+ AND P.Nomor_Peminjaman=RB.Nomor_Peminjaman
+ AND P.Status_Peminjaman=SP.Status_Peminjaman
+ AND YEAR(P.Waktu_Pinjam) = $P{REPORT_YEAR}
+ AND MONTH(P.Waktu_Pinjam) = $P{REPORT_MONTH}
+GROUP BY P.Identitas_Peminjam, PM.Nama_Peminjam, SP.Teks_Status_Peminjaman, P.Waktu_Pinjam, P.Waktu_Kembali
+ORDER BY P.Waktu_Pinjam, P.Waktu_Kembali ASC;]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/dbd_lcd/report/jrxml/coffee.jpg b/src/dbd_lcd/report/jrxml/coffee.jpg
new file mode 100644
index 0000000..457d43b
Binary files /dev/null and b/src/dbd_lcd/report/jrxml/coffee.jpg differ
diff --git a/src/dbd_lcd/report/jrxml/coffee_stain.png b/src/dbd_lcd/report/jrxml/coffee_stain.png
new file mode 100644
index 0000000..19e0b73
Binary files /dev/null and b/src/dbd_lcd/report/jrxml/coffee_stain.png differ
diff --git a/src/dbd_lcd/system/LoginModule.java b/src/dbd_lcd/system/LoginModule.java
new file mode 100644
index 0000000..6b77dbe
--- /dev/null
+++ b/src/dbd_lcd/system/LoginModule.java
@@ -0,0 +1,77 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system;
+
+import dbd_lcd.PopupRunnable;
+import java.sql.Timestamp;
+import dbd_lcd.Util;
+import dbd_lcd.database.CallableStatement;
+import dbd_lcd.database.Database;
+import dbd_lcd.system.structs.SesiAdmin;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class LoginModule {
+ private static SesiAdmin sesiAdmin = null;
+
+ private static final String SALT = "Petugas";
+
+ public static boolean cekSesi(){
+ if(sesiAdmin == null) return false;
+ try{
+ return sesiAdmin.cekSesi() != null;
+ }catch(Exception ex){
+ return false;
+ }
+ }
+
+ public static String saltPassword(String password){
+ return Util.md5(password + SALT);
+ }
+
+ public static String login(String username, String password){
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL LOGIN_PETUGAS(?, ?, ?, ?, ?)"
+ )){
+ stmt.setString(1, username);
+ stmt.setString(2, saltPassword(password));
+
+ stmt.registerOutParameter(3, java.sql.Types.CHAR);
+ stmt.registerOutParameter(4, java.sql.Types.VARCHAR);
+ stmt.registerOutParameter(5, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ SesiAdmin sesi = new SesiAdmin(
+ stmt.getString(3),
+ stmt.getString(4),
+ stmt.getDateTime(5)
+ );
+
+ LoginModule.sesiAdmin = sesi;
+
+ return sesi.getNama();
+ }
+
+ }
+ public static void setTimeout(Timestamp timeout){
+ sesiAdmin.setTimeout(timeout);
+ }
+ public static String getSesi(){
+ if(sesiAdmin == null) return null;
+ return sesiAdmin.getSesi();
+ }
+ public static Timestamp getTimeout(){
+ if(sesiAdmin == null) return null;
+ return sesiAdmin.getTimeout();
+ }
+ public static String getNama(){
+ if(sesiAdmin == null) return null;
+ return sesiAdmin.getNama();
+ }
+}
diff --git a/src/dbd_lcd/system/structs/Barang.java b/src/dbd_lcd/system/structs/Barang.java
new file mode 100644
index 0000000..058fbeb
--- /dev/null
+++ b/src/dbd_lcd/system/structs/Barang.java
@@ -0,0 +1,377 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs;
+
+import dbd_lcd.Util;
+import dbd_lcd.Util.ColorPack;
+import dbd_lcd.database.CallableStatement;
+import dbd_lcd.database.Database;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.database.ResultSet;
+import dbd_lcd.system.LoginModule;
+import dbd_lcd.system.structs.filter.Filter;
+import dbd_lcd.system.structs.filter.FilterBarang;
+import java.sql.Timestamp;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class Barang {
+ public static class Status{
+ public static final String ADA = "A";
+ public static final String DIPINJAM = "P";
+ public static final String RUSAK = "R";
+
+ public static String[] CODE = new String[]{ADA, DIPINJAM, RUSAK};
+ public static String[] STRING = new String[]{"Ada", "Dipinjam", "Rusak"};
+
+ public static String[] FILTER_STRING = new String[]{"", STRING[0], STRING[1], STRING[2]};
+
+ public static HashMap TO_STRING = new HashMap(){{
+ put(CODE[0], STRING[0]);
+ put(CODE[1], STRING[1]);
+ put(CODE[2], STRING[2]);
+ }};
+ public static HashMap FROM_STRING = new HashMap(){{
+ put(STRING[0], CODE[0]);
+ put(STRING[1], CODE[1]);
+ put(STRING[2], CODE[2]);
+ }};
+
+ public static String[] STRING_AVAILABLE = new String[]{STRING[0], STRING[2]};
+
+ public static void cekKode(String kode){
+ if(!TO_STRING.containsKey(kode)) throw new RuntimeException("Kode status invalid");
+ }
+ public static void cekString(String str){
+ if(!FROM_STRING.containsKey(str)) throw new RuntimeException("String status invalid");
+ }
+
+ public static ColorPack getColor(String kode){
+
+ switch(kode){
+ case Barang.Status.DIPINJAM:{
+ return Util.ColorPack.YELLOW;
+ }
+ case Barang.Status.ADA:{
+ return Util.ColorPack.GREEN;
+ }
+ case Barang.Status.RUSAK:{
+ return Util.ColorPack.RED;
+ }
+ default:{
+ return Util.ColorPack.WHITE;
+ }
+ }
+ }
+ }
+ public static class Tipe{
+ public static final String LCD = "L";
+ public static final String KABEL = "K";
+
+ public static String[] CODE = new String[]{LCD, KABEL};
+ public static String[] STRING = new String[]{"Proyektor", "Kabel"};
+
+ public static String[] FILTER_STRING = new String[]{"", STRING[0], STRING[1]};
+
+ public static HashMap TO_STRING = new HashMap(){{
+ put(CODE[0], STRING[0]);
+ put(CODE[1], STRING[1]);
+ }};
+ public static HashMap FROM_STRING = new HashMap(){{
+ put(STRING[0], CODE[0]);
+ put(STRING[1], CODE[1]);
+ }};
+
+ public static void cekKode(String kode){
+ if(!TO_STRING.containsKey(kode)) throw new RuntimeException("Kode tipe barang invalid");
+ }
+ public static void cekString(String str){
+ if(!FROM_STRING.containsKey(str)) throw new RuntimeException("String tipe barang invalid");
+ }
+ }
+ private IdBarang id;
+ private String status;
+ private Integer nomorPeminjaman;
+ private String keterangan;
+ private Timestamp endTime;
+
+ public Barang(int nomor, String tipe, String status, Integer nomorPeminjaman, String keterangan, Timestamp endTime){
+ this(new IdBarang(nomor, tipe), status, nomorPeminjaman, keterangan, endTime);
+ }
+ public Barang(IdBarang id, String status, Integer nomorPeminjaman, String keterangan, Timestamp endTime){
+ setId(id);
+ this.status = status;
+ this.nomorPeminjaman = nomorPeminjaman;
+ this.keterangan = keterangan;
+ this.endTime = endTime;
+ }
+ public Barang(int nomor, String tipe, String status, Integer nomorPeminjaman, String keterangan){
+ this(new IdBarang(nomor, tipe), status, nomorPeminjaman, keterangan, null);
+ }
+ public Barang(IdBarang id, String status, Integer nomorPeminjaman, String keterangan){
+ this(id, status, nomorPeminjaman, keterangan, null);
+ }
+ public Barang(Barang b){
+ copyFrom(b);
+ }
+
+ public ColorPack getStatusColor(){
+ return Status.getColor(getStatus());
+ }
+
+ @Override
+ public boolean equals(Object o){
+ if(o == null) return false;
+ if(o == this) return true;
+ if(!(o instanceof Barang)) return false;
+ Barang b = (Barang)o;
+ System.out.println("Equality check, status: " + getStatusString() + " " + b.getStatusString());
+ return id.equals(b.id)
+ && status.equals(b.status)
+ && Util.equals(nomorPeminjaman, b.nomorPeminjaman)
+ && Util.equals(keterangan, b.keterangan)
+ && Util.equals(endTime, b.endTime);
+ }
+
+
+ public Timestamp getEndTime(){
+ return endTime;
+ }
+
+ public void setEndTime(Timestamp endTime){
+ this.endTime = endTime;
+ }
+
+ public void setStatus(String status){
+ Barang.Status.cekKode(status);
+ if(!Barang.Status.DIPINJAM.equals(status)) setNomorPeminjaman(null);
+ this.status = status;
+ }
+
+ public void setKeterangan(String keterangan){
+ this.keterangan = keterangan;
+ }
+
+ public void copyFrom(Barang b){
+ this.id = b.id;
+ this.status = b.status;
+ this.nomorPeminjaman = b.nomorPeminjaman;
+ this.keterangan = b.keterangan;
+ }
+
+ public void setNomor(int nomor){
+ this.id.setNomor(nomor);
+ }
+
+ public void setTipe(String tipe){
+ this.id.setTipe(tipe);
+ }
+
+ public void kembalikan(){
+ if(endTime == null){
+ if(Barang.Status.DIPINJAM.equals(status)){
+ setStatus(Barang.Status.ADA);
+ return;
+ }
+ }
+ throw new RuntimeException("Barang sudah dikembalikan");
+ }
+ public void pinjam(int nomorPmeinjaman){
+ if(endTime != null){
+ if(Barang.Status.ADA.equals(getCurrent().status)){
+ setNomorPeminjaman(nomorPmeinjaman);
+ return;
+ }
+ }
+ throw new RuntimeException("Barang tidak bisa dipinjam");
+ }
+
+
+ public void setId(IdBarang id){
+ if(id == null) throw new RuntimeException("Id tidak boleh null");
+ this.id = id;
+ }
+
+ public int getNomor(){
+ return id.nomor;
+ }
+
+ public String getTipe(){
+ return id.tipe;
+ }
+
+ public String getStatus(){
+ return status;
+ }
+
+ public String getKeterangan(){
+ return keterangan;
+ }
+
+ public IdBarang getId(){
+ return id;
+ }
+
+ public String getKode(){
+ return id.toString();
+ }
+
+ public String getStatusString(){
+ return Status.TO_STRING.get(status);
+ }
+
+ public String getTipeString(){
+ return id.getTipeString();
+ }
+
+ public void setNomorPeminjaman(Integer nomorPeminjaman){
+ this.nomorPeminjaman = nomorPeminjaman;
+ if(nomorPeminjaman != null) setStatus(Barang.Status.DIPINJAM);
+ }
+
+ public Integer getNomorPeminjaman(){
+ return nomorPeminjaman;
+ }
+
+ public void update(CallableStatement stmt2){
+ stmt2.setInt(1, getNomor());
+ stmt2.setString(2, getTipe());
+ stmt2.setString(3, getStatus());
+ stmt2.setInt(4, getNomorPeminjaman());
+ stmt2.setString(5, getKeterangan());
+
+ stmt2.executeUpdate();
+
+ LoginModule.setTimeout(stmt2.getDateTime(7));
+ }
+
+ public void insert(){
+
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL INSERT_Barang(?, ?, ?, ?, ?)"
+ )){
+ //stmt.setNull(1, java.sql.Types.INTEGER);
+ stmt.setInt(1, id.nomor);
+ stmt.setString(2, id.tipe);
+ stmt.setString(3, keterangan);
+ stmt.setString(4, LoginModule.getSesi());
+
+ stmt.registerOutParameter(5, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ Timestamp timeout = stmt.getDateTime(5);
+ LoginModule.setTimeout(timeout);
+ }
+
+ }
+
+ public void update(){
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL UPDATE_DETAIL_BARANG(?, ?, ?, ?, ?, ?, ?)"
+ )){
+ stmt.setString(6, LoginModule.getSesi());
+
+ stmt.registerOutParameter(7, java.sql.Types.TIMESTAMP);
+
+ update(stmt);
+
+ }
+ }
+
+ public Barang getCurrent(){
+ if(endTime == null) return this;
+ FilterBarang filter = new FilterBarang();
+ filter.nomor = this.id.nomor;
+ filter.tipe = this.id.tipe;
+ return fetch(filter)[0];
+ }
+
+ public static Barang[] fetch(FilterBarang filter){
+ Barang[] ret = null;
+ String query = "SELECT Nomor_Barang, Tipe_Barang, Status_Barang, Nomor_Peminjaman, Keterangan_Barang FROM Barang_Terkini ";
+
+ if(!Filter.isNullOrWhereEmpty(filter)){
+ List where = new LinkedList();
+
+ filter.addWhereClause(where);
+
+ if(where.size() > 0){
+ query += " WHERE " + String.join(" AND ", where);
+ }
+ }
+
+ query += " ORDER BY Nomor_Barang";
+
+ if(!Filter.isNullOrPagingEmpty(filter)){
+ query += filter.getLimitOffset();
+ }
+
+ List ret1 = new LinkedList();
+ try(PreparedStatement stmt = Database.prepareStatement(
+ query
+ )){
+ if(filter != null){
+ int i = 0;
+ filter.applyWhereClause(stmt, i);
+ }
+ try(ResultSet rs = stmt.executeQuery()){
+ while(rs.next()){
+ int nomor = rs.getInt("Nomor_Barang");
+ String tipe = rs.getString("Tipe_Barang");
+ String status = rs.getString("Status_Barang");
+ Integer nomorPeminjaman = rs.getInt("Nomor_Peminjaman");
+ String keterangan = rs.getString("Keterangan_Barang");
+ Barang b = new Barang(nomor, tipe, status, nomorPeminjaman, keterangan, null);
+ ret1.add(b);
+ }
+ }
+ }
+ ret = ret1.toArray(new Barang[0]);
+ return ret;
+ }
+
+ public static OverallStatusBarang getOverallStatusBarang(){
+ OverallStatusBarang ret = new OverallStatusBarang();
+ try(PreparedStatement stmt = Database.prepareStatement(
+ "SELECT COUNT(*) FROM Barang_Terkini WHERE Tipe_Barang=? AND Status_Barang=?"
+ )){
+ stmt.setString(1, Barang.Tipe.LCD);
+ stmt.setString(2, Barang.Status.ADA);
+ try(ResultSet rs = stmt.executeQuery()){
+ rs.next();
+ ret.availableCount = rs.getInt(1);
+ }
+ }
+ try(PreparedStatement stmt = Database.prepareStatement(
+ "SELECT COUNT(*) FROM Peminjaman P WHERE P.Status_Peminjaman=? AND P.Waktu_Harus_Kembali where = new LinkedList();
+
+ filter.addWhereClause(where);
+
+ if(where.size() > 0){
+ query += " WHERE " + String.join(" AND ", where);
+ }
+ }
+
+ query += " ORDER BY Nama_Peminjam";
+
+ if(!Filter.isNullOrPagingEmpty(filter)){
+ query += filter.getLimitOffset();
+ }
+
+ List ret1 = new LinkedList();
+ try(PreparedStatement stmt = Database.prepareStatement(
+ query
+ )){
+ if(filter != null){
+ int i = 0;
+ filter.applyWhereClause(stmt, i);
+ }
+ try(ResultSet rs = stmt.executeQuery()){
+ while(rs.next()){
+ String id = rs.getString("Identitas_Peminjam");
+ String nama = rs.getString("Nama_Peminjam");
+ String alamat = rs.getString("Alamat_Peminjam");
+ String nomorHp = rs.getString("Nomor_HP_Peminjam");
+ String keterangan = rs.getString("Keterangan_Blacklist");
+ Peminjam pm = new Peminjam(id, nama, alamat, nomorHp, keterangan);
+ ret1.add(pm);
+ }
+ }
+ }
+ ret = ret1.toArray(new Peminjam[0]);
+ return ret;
+ }
+
+ public void insert(){
+
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL INSERT_PEMINJAM(?, ?, ?, ?, ?, ?)"
+ )){
+ //stmt.setNull(1, java.sql.Types.INTEGER);
+ stmt.setString(1, idPeminjam);
+ stmt.setString(2, namaPeminjam);
+ stmt.setString(3, alamatPeminjam);
+ stmt.setString(4, nomorHpPeminjam);
+ stmt.setString(5, LoginModule.getSesi());
+
+ stmt.registerOutParameter(6, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ Timestamp timeout = stmt.getDateTime(6);
+ LoginModule.setTimeout(timeout);
+ }
+
+ }
+
+ public void update(){
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL UPDATE_PEMINJAM(?, ?, ?, ?, ?, ?, ?)"
+ )){
+ stmt.setString(1, idPeminjam);
+ stmt.setString(2, namaPeminjam);
+ stmt.setString(3, alamatPeminjam);
+ stmt.setString(4, nomorHpPeminjam);
+ stmt.setString(5, keteranganBlacklist);
+ stmt.setString(6, LoginModule.getSesi());
+
+ stmt.registerOutParameter(7, java.sql.Types.TIMESTAMP);
+
+
+ stmt.executeUpdate();
+
+ Timestamp timeout = stmt.getDateTime(7);
+ LoginModule.setTimeout(timeout);
+ }
+ }
+}
diff --git a/src/dbd_lcd/system/structs/Peminjaman.java b/src/dbd_lcd/system/structs/Peminjaman.java
new file mode 100644
index 0000000..8a40011
--- /dev/null
+++ b/src/dbd_lcd/system/structs/Peminjaman.java
@@ -0,0 +1,591 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.CallableStatement;
+import dbd_lcd.database.Database;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.database.ResultSet;
+import dbd_lcd.system.LoginModule;
+import java.awt.Color;
+import java.sql.Timestamp;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import dbd_lcd.Util.ColorPack;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class Peminjaman extends RiwayatPeminjaman{
+ public static class Status{
+ public static final String AKTIF = "A";
+ public static final String SELESAI = "S";
+ public static final String BATAL = "B";
+
+ public static String[] CODE = new String[]{AKTIF, SELESAI, BATAL};
+ public static String[] STRING = new String[]{"Aktif", "Selesai", "Batal"};
+
+ public static String[] FILTER_STRING = new String[]{"", STRING[0], STRING[1], STRING[2]};
+
+ public static HashMap TO_STRING = new HashMap(){{
+ put(CODE[0], STRING[0]);
+ put(CODE[1], STRING[1]);
+ put(CODE[2], STRING[2]);
+ }};
+ public static HashMap FROM_STRING = new HashMap(){{
+ put(STRING[0], CODE[0]);
+ put(STRING[1], CODE[1]);
+ put(STRING[2], CODE[2]);
+ }};
+
+ public static void cekKode(String kode){
+ if(!TO_STRING.containsKey(kode)) throw new RuntimeException("Kode status peminjaman invalid");
+ }
+ public static void cekString(String str){
+ if(!FROM_STRING.containsKey(str)) throw new RuntimeException("String status peminjaman invalid");
+ }
+ public static ColorPack getColor(String kode){
+
+ switch(kode){
+ case Peminjaman.Status.AKTIF:{
+ return Util.ColorPack.WHITE;
+ }
+ case Peminjaman.Status.SELESAI:{
+ return Util.ColorPack.GREEN;
+ }
+ case Peminjaman.Status.BATAL:{
+ return Util.ColorPack.RED;
+ }
+ default:{
+ return Util.ColorPack.YELLOW;
+ }
+ }
+ }
+ }
+
+ public static class Error{
+ public static final int OK = 0;
+ public static final int STATUS_SAMA = 1;
+ public static final int BUKA_KEMBALI = 2;
+ public static final int BELUM_DIKEMBALIKAN =3;
+
+ public static int[] CODE = new int[]{OK, STATUS_SAMA, BUKA_KEMBALI, BELUM_DIKEMBALIKAN};
+ public static String[] STRING = new String[]{
+ "OK",
+ "Status sama dengan sebelumnya.",
+ "Dilarang membuka kembali peminjaman.",
+ "Ada barang yang belum dikembalikan."
+ };
+
+ public static HashMap TO_STRING = new HashMap(){{
+ put(CODE[0], STRING[0]);
+ put(CODE[1], STRING[1]);
+ put(CODE[2], STRING[2]);
+ put(CODE[3], STRING[3]);
+ }};
+ public static HashMap FROM_STRING = new HashMap(){{
+ put(STRING[0], CODE[0]);
+ put(STRING[1], CODE[1]);
+ put(STRING[2], CODE[2]);
+ put(STRING[3], CODE[3]);
+ }};
+
+ }
+
+ public Peminjam peminjam;
+ private Barang[] barang;
+ private KeperluanPinjam[] keperluanPinjam;
+ public String keteranganPeminjaman;
+
+ public Peminjaman(
+ Integer nomor,
+ String status,
+ Peminjam peminjam,
+ Barang[] barang,
+ KeperluanPinjam[] keperluanPinjam,
+ String keteranganPeminjaman,
+ Timestamp waktuPinjam,
+ Timestamp waktuHarusKembali,
+ Timestamp waktuKembali
+ ){
+ super(nomor, status, waktuPinjam, waktuHarusKembali, waktuKembali);
+ if(peminjam == null) throw new RuntimeException("Peminjam tidak valid");
+ this.peminjam = peminjam;
+ this.barang = barang;
+ this.keperluanPinjam = keperluanPinjam;
+ this.keteranganPeminjaman = keteranganPeminjaman;
+ }
+ public Peminjaman(
+ Peminjam peminjam,
+ Barang[] barang,
+ KeperluanPinjam[] keperluanPinjam,
+ String keteranganPeminjaman
+ ){
+ if(peminjam == null) throw new RuntimeException("Peminjam tidak valid");
+ if(peminjam.isPeminjamTerblacklist()) throw new RuntimeException("Peminjam terblacklist");
+ this.peminjam = peminjam;
+ this.statusPeminjaman = Peminjaman.Status.AKTIF;
+ setBarang(barang);
+ setKeperluanPinjam(keperluanPinjam);
+ this.keteranganPeminjaman = keteranganPeminjaman;
+ Timestamp ts = keperluanPinjam[0].durasi.akhir;
+ for(int i = 1; i < keperluanPinjam.length; ++i){
+ Timestamp tsi = keperluanPinjam[i].durasi.akhir;
+ if(tsi.after(ts)) ts = tsi;
+ }
+ ts = Util.addMinute(ts, 30);
+ this.waktuHarusKembali = ts;
+ }
+ @Override
+ public String getNamaPeminjam(){
+ return peminjam.getNamaPeminjam();
+ }
+ @Override
+ public boolean isPeminjamTerblacklist(){
+ return peminjam.isPeminjamTerblacklist();
+ }
+ public void setStatusPeminjaman(String status){
+ Peminjaman.Status.cekKode(status);
+ this.statusPeminjaman = status;
+ }
+ public Peminjaman(Peminjaman p){
+ copyFrom(p);
+ }
+ public Barang getBarang(int i){
+ return barang[i];
+ }
+ public Barang[] getBarang(){
+ return barang;
+ }
+ public int getBarangCount(){
+ return barang.length;
+ }
+ public KeperluanPinjam getKeperluanPinjam(int i){
+ return keperluanPinjam[i];
+ }
+ public int getKeperluanPinjamCount(){
+ return keperluanPinjam.length;
+ }
+ public void setBarang(Barang[] barang){
+ this.barang = initBarang(barang);
+ }
+ public void setKeperluanPinjam(KeperluanPinjam[] keperluan){
+ this.keperluanPinjam = initKeperluanPinjam(keperluan);
+ }
+
+ public void kembalikan(){
+ for(int i = 0; i < barang.length; ++i){
+ try{
+ barang[i].kembalikan();
+ }catch(RuntimeException ex){
+
+ }
+ }
+ }
+ public void pinjam(){
+ for(int i = 0; i < barang.length; ++i){
+ try{
+ barang[i].pinjam(nomorPeminjaman);
+ }catch(RuntimeException ex){
+
+ }
+ }
+ }
+
+ public ColorPack getStatusColor(){
+ return Status.getColor(statusPeminjaman);
+ }
+ public ColorPack getShownWaktuKembaliColor(){
+
+ if(isTerlambatKembali()){
+ return Util.ColorPack.RED;
+ }else if (getStatus().equals(Peminjaman.Status.AKTIF)){
+ if(Util.addMinute(Util.now(), 30).after(getShownWaktuKembali())){
+ return Util.ColorPack.YELLOW;
+ }else{
+ return Util.ColorPack.WHITE;
+ }
+ }else{
+ return Util.ColorPack.GREEN;
+ }
+ }
+ public static Barang[] initBarang(Barang[] barang){
+ if(barang == null || barang.length < 1) throw new RuntimeException("Barang tidak valid");
+ HashSet ids = new HashSet<>();
+ for(int i = 0; i < barang.length; ++i){
+ Barang b = barang[i];
+ if(b == null) throw new RuntimeException("Barang null");
+ if(!ids.add(b.getId())) throw new RuntimeException("Barang terduplikat");
+ }
+ return barang;
+ }
+
+ public static KeperluanPinjam[] initKeperluanPinjam(KeperluanPinjam[] kps){
+ if(kps == null || kps.length < 1) throw new RuntimeException("Keperluan harus diisi");
+ Arrays.sort(kps, new Comparator() {
+ public int compare(KeperluanPinjam kp1, KeperluanPinjam kp2) {
+ int ret = Long.compare(kp1.durasi.awal.getTime(), kp2.durasi.awal.getTime());
+ if(ret != 0) return ret;
+ return Long.compare(kp1.durasi.akhir.getTime(), kp2.durasi.akhir.getTime());
+ }
+ });
+ for(int i = 1; i < kps.length; ++i){
+ Timestamp first = kps[i-1].durasi.akhir;
+ Timestamp next = kps[i].durasi.awal;
+
+ if((next.getTime() - first.getTime()) > 30* 1000 * 60){
+ throw new RuntimeException("Ada keperluan yang terpaut terlalu jauh");
+ }
+ }
+ return kps;
+ }
+
+ public void copyFrom(Peminjaman pm){
+ this.nomorPeminjaman = pm.nomorPeminjaman;
+ this.statusPeminjaman = pm.statusPeminjaman;
+ this.peminjam = new Peminjam(pm.peminjam);
+ Barang[] bs = new Barang[pm.barang.length];
+ for(int i = 0; i < bs.length; ++i){
+ bs[i] = new Barang(pm.barang[i]);
+ }
+ this.barang = bs;
+ KeperluanPinjam[] kps = new KeperluanPinjam[pm.keperluanPinjam.length];
+ for(int i = 0; i < kps.length; ++i){
+ kps[i] = new KeperluanPinjam(pm.keperluanPinjam[i]);
+ }
+ this.keperluanPinjam = kps;
+ this.keteranganPeminjaman = pm.keteranganPeminjaman;
+ this.waktuPinjam = pm.waktuPinjam;
+ this.waktuHarusKembali = pm.waktuHarusKembali;
+ this.waktuKembali = pm.waktuKembali;
+ }
+
+ @Override
+ public boolean equals(Object o){
+ if(this == o) return true;
+ if(o == null) return false;
+ if(!(o instanceof Peminjaman)) return false;
+
+ Peminjaman pm = (Peminjaman) o;
+
+ if(barang.length != pm.barang.length) return false;
+ if(keperluanPinjam.length != pm.keperluanPinjam.length) return false;
+
+ for(int i = 0; i < barang.length; ++i){
+ if(!Util.equals(barang[i], pm.barang[i])) return false;
+ }
+ for(int i = 0; i < keperluanPinjam.length; ++i){
+ if(!Util.equals(keperluanPinjam[i], pm.keperluanPinjam[i])) return false;
+ }
+ return Util.equals(nomorPeminjaman, pm.nomorPeminjaman)
+ && Util.equals(statusPeminjaman, pm.statusPeminjaman)
+ && Util.equals(peminjam, pm.peminjam)
+ && Util.equals(keteranganPeminjaman, pm.keteranganPeminjaman)
+ && Util.equals(waktuPinjam, pm.waktuPinjam)
+ && Util.equals(waktuHarusKembali, pm.waktuHarusKembali)
+ && Util.equals(waktuKembali, pm.waktuKembali);
+ }
+
+
+
+ public int insert(){
+ if(nomorPeminjaman != null) throw new RuntimeException("Peminjaman sudah ada");
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL INSERT_PEMINJAMAN(?, ?, ?, ?, ?, ?)"
+ )){
+ //stmt.setNull(1, java.sql.Types.INTEGER);
+ stmt.setString(1, peminjam.getIdPeminjam());
+ stmt.setDateTime(2, waktuHarusKembali);
+ stmt.setString(3, keteranganPeminjaman);
+ stmt.setString(4, LoginModule.getSesi());
+
+ stmt.registerOutParameter(5, java.sql.Types.INTEGER);
+ stmt.registerOutParameter(6, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ this.nomorPeminjaman = stmt.getInt(5);
+ LoginModule.setTimeout(stmt.getDateTime(6));
+
+ //barang
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL UPDATE_DETAIL_BARANG(?, ?, ?, ?, ?, ?, ?)"
+ )){
+
+ stmt2.setString(6, LoginModule.getSesi());
+
+ stmt2.registerOutParameter(7, java.sql.Types.TIMESTAMP);
+
+ for(int i = 0; i < barang.length; ++i){
+ Barang b = barang[i];
+ b.setNomorPeminjaman(nomorPeminjaman);
+ b.update(stmt2);
+ }
+ }
+
+ //keperluan
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL INSERT_KEPERLUAN_PINJAM(?, ?, ?, ?, ?, ?, ?, ?, ?)"
+ )){
+ stmt2.setInt(6, nomorPeminjaman);
+ stmt2.registerOutParameter(8, java.sql.Types.INTEGER);
+ stmt2.registerOutParameter(9, java.sql.Types.TIMESTAMP);
+ for(int i = 0; i < keperluanPinjam.length; ++i){
+ keperluanPinjam[i].insert(stmt2);
+ }
+ }
+ refresh();
+ }
+ return nomorPeminjaman;
+ }
+
+ public void refresh(){
+ Peminjaman hasil = get(nomorPeminjaman);
+ copyFrom(hasil);
+ }
+ public void updateBarang(){
+
+ if(nomorPeminjaman == null) throw new RuntimeException("Peminjaman belum ada");
+ Peminjaman lama = get(nomorPeminjaman);
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL UPDATE_DETAIL_BARANG(?, ?, ?, ?, ?, ?, ?)"
+ )){
+
+ stmt2.setString(6, LoginModule.getSesi());
+
+ stmt2.registerOutParameter(7, java.sql.Types.TIMESTAMP);
+
+ for(int i = 0; i < lama.barang.length; ++i){
+ Barang b = barang[i];
+ if(Barang.Status.DIPINJAM.equals(b.getStatus())) b.setNomorPeminjaman(nomorPeminjaman);
+ if(!b.equals(lama.barang[i])){
+ System.out.println("Update barang");
+ b.update(stmt2);
+ }
+ }
+ for(int i = lama.barang.length; i < barang.length; ++i){
+ Barang b = barang[i];
+ b.setNomorPeminjaman(nomorPeminjaman);
+ b.update(stmt2);
+ }
+ }
+ refresh();
+ }
+ public void update(){
+ if(nomorPeminjaman == null) throw new RuntimeException("Peminjaman belum ada");
+ updateBarang();
+ Peminjaman lama = get(nomorPeminjaman);
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL UPDATE_DETAIL_PEMINJAMAN(?, ?, ?, ?, ?, ?)"
+ )){
+
+
+ stmt.setInt(1, nomorPeminjaman);
+ stmt.setString(2, statusPeminjaman);
+ stmt.setDateTime(3, waktuHarusKembali);
+ stmt.setString(4, keteranganPeminjaman);
+ stmt.setString(5, LoginModule.getSesi());
+
+ stmt.registerOutParameter(6, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ LoginModule.setTimeout(stmt.getDateTime(6));
+
+ //keperluan
+ if(hasKeperluanPinjamBerubah(lama)){
+ int min = Math.min(keperluanPinjam.length, lama.keperluanPinjam.length);
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL UPDATE_KEPERLUAN_PINJAM(?, ?, ?, ?, ?, ?, ?, ?)"
+ )){
+ stmt2.setString(7, LoginModule.getSesi());
+ stmt2.registerOutParameter(8, java.sql.Types.TIMESTAMP);
+ for(int i = 0; i < min; ++i){
+ KeperluanPinjam kp = keperluanPinjam[i];
+ kp.id = lama.keperluanPinjam[i].id;
+ kp.update(stmt2);
+ }
+ }
+ if(keperluanPinjam.length < lama.keperluanPinjam.length){
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL DELETE_KEPERLUAN_PINJAM(?, ?, ?)"
+ )){
+ stmt2.setString(2, LoginModule.getSesi());
+
+ stmt2.registerOutParameter(3, java.sql.Types.TIMESTAMP);
+
+ for(int i = min; i < lama.keperluanPinjam.length; ++i){
+ stmt2.setInt(1, lama.keperluanPinjam[i].id);
+ stmt2.executeUpdate();
+ LoginModule.setTimeout(stmt2.getDateTime(3));
+ }
+ }
+ }else if (keperluanPinjam.length > lama.keperluanPinjam.length){
+ try(CallableStatement stmt2 = Database.prepareCall(
+ "CALL INSERT_KEPERLUAN_PINJAM(?, ?, ?, ?, ?, ?, ?, ?, ?)"
+ )){
+ stmt2.setInt(6, nomorPeminjaman);
+ stmt2.registerOutParameter(8, java.sql.Types.INTEGER);
+ stmt2.registerOutParameter(9, java.sql.Types.TIMESTAMP);
+ for(int i = min; i < keperluanPinjam.length; ++i){
+ keperluanPinjam[i].insert(stmt2);
+ }
+ }
+ }
+ }
+ refresh();
+ }
+ }
+ public int cekUbahStatus(String status){
+ if(statusPeminjaman.equals(status)){
+ return Error.STATUS_SAMA;
+ }
+ if(Status.AKTIF.equals(status)){
+ return Error.BUKA_KEMBALI;
+ }else{
+ for(int i = 0; i < barang.length;++i){
+ if(barang[i].getEndTime() == null && Barang.Status.DIPINJAM.equals(barang[i].getStatus())){
+ return Error.BELUM_DIKEMBALIKAN;
+ }
+ }
+ }
+ return Error.OK;
+ }
+ public void ubahStatus(String status, String keterangan){
+ cekUbahStatus(status);
+ setStatusPeminjaman(status);
+ if(!Util.isNullOrEmpty(keterangan)) this.keteranganPeminjaman = keterangan;
+ update();
+ }
+
+ public int simpan(){
+ if(nomorPeminjaman == null) return insert();
+ update();
+ return nomorPeminjaman;
+ }
+
+ public boolean hasKeperluanPinjamBerubah(Peminjaman lama){
+ if(keperluanPinjam.length != lama.keperluanPinjam.length) return true;
+ for(int i = 0; i < keperluanPinjam.length; ++i){
+ if(!keperluanPinjam[i].equals(lama.keperluanPinjam[i])){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static Peminjaman get(int nomorPeminjaman){
+ try(PreparedStatement stmt = Database.prepareStatement(
+ "SELECT "
+ + String.join(", ",
+ new String[]{
+ "P.Status_Peminjaman",
+ "PM.Identitas_Peminjam",
+ "PM.Nama_Peminjam",
+ "PM.Alamat_Peminjam",
+ "PM.Nomor_HP_Peminjam",
+ "PM.Keterangan_Blacklist",
+ "P.Keterangan_Peminjaman",
+ "P.Waktu_Pinjam",
+ "P.Waktu_Harus_Kembali",
+ "P.Waktu_Kembali",
+ }
+ )
+ + " FROM Peminjaman P, Peminjam PM"
+ + " WHERE P.Nomor_Peminjaman=? AND P.Identitas_Peminjam=PM.Identitas_Peminjam"
+ )){
+ stmt.setInt(1, nomorPeminjaman);
+ try(ResultSet rs = stmt.executeQuery()){
+ if(rs.next()){
+ String status = rs.getString("Status_Peminjaman");
+ String identitasPeminjam = rs.getString("Identitas_Peminjam");
+ String namaPeminjam = rs.getString("Nama_Peminjam");
+ String alamatPeminjam = rs.getString("Alamat_Peminjam");
+ String nomorHpPeminjam = rs.getString("Nomor_HP_Peminjam");
+ String keteranganBlacklist = rs.getString("Keterangan_Blacklist");
+ String keteranganPeminjaman = rs.getString("Keterangan_Peminjaman");
+ Timestamp waktuPinjam = rs.getDateTime("Waktu_Pinjam");
+ Timestamp waktuHarusKembali = rs.getDateTime("Waktu_Harus_Kembali");
+ Timestamp waktuKembali = rs.getDateTime("Waktu_Kembali");
+
+ Peminjam peminjam = new Peminjam(identitasPeminjam, namaPeminjam, alamatPeminjam, nomorHpPeminjam, keteranganBlacklist);
+
+ //barang
+ List bs = new LinkedList();
+ try(PreparedStatement stmt2 = Database.prepareStatement(
+ //https://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group-mysql
+ "SELECT RB.Nomor_Barang, RB.Tipe_Barang, RB.Status_Barang, RB.Keterangan_Barang, RB.Waktu_Berakhir_Riwayat_Barang "
+ + "FROM (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Nomor_Peminjaman=?) RB "
+ + "LEFT JOIN (SELECT * FROM Riwayat_Barang RB0 WHERE RB0.Nomor_Peminjaman=?) RB2 "
+ + "ON RB.Nomor_Barang=RB2.Nomor_Barang "
+ + "AND RB.Tipe_Barang=RB2.Tipe_Barang "
+ + "AND RB.Waktu_Mulai_Riwayat_Barang kps = new LinkedList();
+ try(PreparedStatement stmt2 = Database.prepareStatement(
+ "SELECT * FROM Keperluan_Pinjam KP WHERE KP.Nomor_Peminjaman=? ORDER BY KP.Waktu_Mulai"
+ )){
+ stmt2.setInt(1, nomorPeminjaman);
+ try(ResultSet rs2 = stmt2.executeQuery()){
+ while(rs2.next()){
+ int idKeperluanPinjam = rs2.getInt("Id_Keperluan_Pinjam");
+ String keperluanPinjam = rs2.getString("Keperluan_Pinjam");
+ String namaPenanggungJawab = rs2.getString("Nama_Penanggung_Jawab");
+ String ruangPinjam = rs2.getString("Ruang_Pinjam");
+ RangeWaktu durasi = new RangeWaktu(
+ rs2.getDateTime("Waktu_Mulai"),
+ rs2.getDateTime("Waktu_Selesai")
+ );
+ KeperluanPinjam kp = new KeperluanPinjam(idKeperluanPinjam, keperluanPinjam, namaPenanggungJawab, ruangPinjam, durasi);
+ kps.add(kp);
+ }
+ }
+ }
+
+ Peminjaman p = new Peminjaman(
+ nomorPeminjaman,
+ status,
+ peminjam,
+ bs.toArray(new Barang[0]),
+ kps.toArray(new KeperluanPinjam[0]),
+ keteranganPeminjaman,
+ waktuPinjam,
+ waktuHarusKembali,
+ waktuKembali
+ );
+
+ return p;
+ }
+ }
+ }
+ throw new RuntimeException("Peminjaman tidak ditemukan");
+ }
+}
diff --git a/src/dbd_lcd/system/structs/RangeWaktu.java b/src/dbd_lcd/system/structs/RangeWaktu.java
new file mode 100644
index 0000000..632ee43
--- /dev/null
+++ b/src/dbd_lcd/system/structs/RangeWaktu.java
@@ -0,0 +1,67 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs;
+
+import dbd_lcd.Util;
+import java.sql.Timestamp;
+
+/**
+ *
+ * @author user
+ */
+public class RangeWaktu {
+ public Timestamp awal;
+ public Timestamp akhir;
+
+ public RangeWaktu(){}
+ public RangeWaktu(Timestamp awal, Timestamp akhir){
+ this.awal = awal;
+ this.akhir = akhir;
+
+ }
+
+ public boolean isEmpty(){
+ return awal == null && akhir == null;
+ }
+ public static boolean isNullOrEmpty(RangeWaktu rw){
+ return rw == null || rw.isEmpty();
+ }
+ public boolean isValid(){
+ return !isEmpty() && (awal == null || akhir == null || awal.before(akhir));
+ }
+
+ public void cekValid(){
+ if(!isValid()){
+ throw new RuntimeException("Range waktu tidak valid");
+ }
+ }
+
+ public static RangeWaktu createIfNotNull(Timestamp awal, Timestamp akhir){
+ if(awal == null && akhir == null) return null;
+ return new RangeWaktu(awal, akhir);
+ }
+
+ public static boolean isValid(RangeWaktu rw){
+ return rw != null && rw.isValid();
+ }
+
+ @Override
+ public boolean equals(Object o){
+ if(this == o) return true;
+ if(o == null) return false;
+ if(!(o instanceof RangeWaktu)) return false;
+ RangeWaktu rhs = (RangeWaktu)o;
+ return Util.equals(awal, rhs.awal)
+ && Util.equals(akhir, rhs.akhir);
+ }
+
+ public String getAwalTimeString(){
+ return Util.formatTime(awal);
+ }
+ public String getAkhirTimeString(){
+ return Util.formatTime(akhir);
+ }
+}
diff --git a/src/dbd_lcd/system/structs/RiwayatPeminjaman.java b/src/dbd_lcd/system/structs/RiwayatPeminjaman.java
new file mode 100644
index 0000000..d55bb75
--- /dev/null
+++ b/src/dbd_lcd/system/structs/RiwayatPeminjaman.java
@@ -0,0 +1,182 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs;
+
+import dbd_lcd.Util;
+import dbd_lcd.Util.ColorPack;
+import dbd_lcd.database.Database;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.database.ResultSet;
+import dbd_lcd.system.structs.filter.Filter;
+import dbd_lcd.system.structs.filter.FilterPeminjaman;
+import java.sql.Timestamp;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class RiwayatPeminjaman {
+ protected Integer nomorPeminjaman;
+ protected String statusPeminjaman;
+ protected String namaPeminjam;
+ protected boolean peminjamTerblacklist;
+ protected Timestamp waktuPinjam;
+ protected Timestamp waktuHarusKembali;
+ protected Timestamp waktuKembali;
+
+ protected RiwayatPeminjaman(){}
+
+ protected RiwayatPeminjaman(Integer nomor, String status, Timestamp waktuPinjam, Timestamp waktuHarusKembali, Timestamp waktuKembali){
+ this.nomorPeminjaman = nomor;
+ this.statusPeminjaman = status;
+ this.waktuPinjam = waktuPinjam;
+ this.waktuPinjam = waktuPinjam;
+ this.waktuHarusKembali = waktuHarusKembali;
+ this.waktuKembali = waktuKembali;
+ }
+ public RiwayatPeminjaman(int nomor, String status, String namaPeminjam, boolean peminjamTerblacklist, Timestamp waktuPinjam, Timestamp waktuHarusKembali, Timestamp waktuKembali){
+ this.nomorPeminjaman = nomor;
+ this.statusPeminjaman = status;
+ this.waktuPinjam = waktuPinjam;
+ this.namaPeminjam = namaPeminjam;
+ this.peminjamTerblacklist = peminjamTerblacklist;
+ this.waktuPinjam = waktuPinjam;
+ this.waktuHarusKembali = waktuHarusKembali;
+ this.waktuKembali = waktuKembali;
+ }
+
+
+ public Integer getNomorPeminjaman(){
+ return nomorPeminjaman;
+ }
+
+ public Peminjaman getPeminjaman(){
+ return Peminjaman.get(nomorPeminjaman);
+ }
+
+ public String getStatus(){
+ return statusPeminjaman;
+ }
+
+ public String getNamaPeminjam(){
+ return namaPeminjam;
+ }
+
+ public boolean isPeminjamTerblacklist(){
+ return peminjamTerblacklist;
+ }
+
+ public Timestamp getWaktuPinjam(){
+ return waktuPinjam;
+ }
+
+ public Timestamp getWaktuHarusKembali(){
+ return waktuHarusKembali;
+ }
+
+ public Timestamp getWaktuKembali(){
+ return waktuKembali;
+ }
+
+ public Timestamp getShownWaktuKembali(){
+ if(waktuKembali == null) return waktuHarusKembali;
+ return waktuKembali;
+ }
+ public String getStatusString(){
+ return Peminjaman.Status.TO_STRING.get(statusPeminjaman);
+ }
+
+ public boolean isTerlambatKembali(){
+ if(waktuKembali == null) return Util.now().after(waktuHarusKembali);
+ return waktuKembali.after(waktuHarusKembali);
+ }
+
+ public ColorPack getShownWaktuKembaliColor(){
+
+ if(isTerlambatKembali()){
+ return Util.ColorPack.RED;
+ }else if (getStatus().equals(Peminjaman.Status.AKTIF)){
+ if(Util.addMinute(Util.now(), 30).after(getShownWaktuKembali())){
+ return Util.ColorPack.YELLOW;
+ }else{
+ return Util.ColorPack.WHITE;
+ }
+ }else{
+ return Util.ColorPack.GREEN;
+ }
+ }
+
+ public ColorPack getBlacklistColor(){
+ return Peminjam.getBlacklistColor(isPeminjamTerblacklist());
+ }
+
+ public static RiwayatPeminjaman[] fetch(FilterPeminjaman filter){
+ RiwayatPeminjaman[] ret = null;
+ String query = "SELECT "
+ + String.join(", ",
+ new String[]{
+ "P.Nomor_Peminjaman",
+ "P.Status_Peminjaman",
+ "PM.Nama_Peminjam",
+ "(PM.Keterangan_Blacklist IS NOT NULL) AS Peminjam_Terblacklist",
+ "P.Waktu_Pinjam",
+ "P.Waktu_Harus_Kembali",
+ "P.Waktu_Kembali",
+ }
+ )
+ + " FROM Peminjaman P, Peminjam PM ";
+
+ List where = new LinkedList();
+ where.add("P.Identitas_Peminjam = PM.Identitas_Peminjam");
+ if(!Filter.isNullOrWhereEmpty(filter)){
+
+ filter.addWhereClause(where);
+
+
+ }
+ if(where.size() > 0){
+ query += " WHERE " + String.join(" AND ", where);
+ }
+
+ query += " ORDER BY P.Waktu_Pinjam DESC ";
+
+ if(!Filter.isNullOrPagingEmpty(filter)){
+ query += filter.getLimitOffset();
+ }
+
+ System.out.println("Query: " + query);
+
+ List ret1 = new LinkedList();
+ try(PreparedStatement stmt = Database.prepareStatement(
+ query
+ )){
+
+ if(!Filter.isNullOrWhereEmpty(filter)){
+ int i = 0;
+
+ filter.applyWhereClause(stmt, i);
+ }
+ try(ResultSet rs = stmt.executeQuery()){
+ while(rs.next()){
+ RiwayatPeminjaman rp = new RiwayatPeminjaman(
+ rs.getInt("Nomor_Peminjaman"),
+ rs.getString("Status_Peminjaman"),
+ rs.getString("Nama_Peminjam"),
+ rs.getBoolean("Peminjam_Terblacklist"),
+ rs.getDateTime("Waktu_Pinjam"),
+ rs.getDateTime("Waktu_Harus_Kembali"),
+ rs.getDateTime("Waktu_Kembali")
+ );
+ ret1.add(rp);
+ }
+ }
+ }
+ ret = ret1.toArray(new RiwayatPeminjaman[0]);
+ return ret;
+ }
+}
diff --git a/src/dbd_lcd/system/structs/SesiAdmin.java b/src/dbd_lcd/system/structs/SesiAdmin.java
new file mode 100644
index 0000000..5aab61b
--- /dev/null
+++ b/src/dbd_lcd/system/structs/SesiAdmin.java
@@ -0,0 +1,66 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.CallableStatement;
+import dbd_lcd.database.Database;
+import java.sql.Timestamp;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class SesiAdmin {
+ private String nama;
+ private String sesi;
+ private Timestamp timeout;
+
+ public SesiAdmin(String nama, String sesi, Timestamp timeout){
+ this.nama = nama;
+ this.sesi = sesi;
+ this.timeout=timeout;
+
+ pingSesi();
+ }
+
+ private Timestamp pingSesi(){
+ try(CallableStatement stmt = Database.prepareCall(
+ "CALL PING_SESI(?, ?, ?)"
+ )){
+
+ stmt.setString(1, sesi);
+
+ stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
+ stmt.registerOutParameter(3, java.sql.Types.TIMESTAMP);
+
+ stmt.executeUpdate();
+
+ setTimeout(stmt.getDateTime(3));
+ }
+ return timeout;
+ }
+ public Timestamp cekSesi(){
+ if(timeout.before(Util.now())) return null;
+ try{
+ return pingSesi();
+ }catch(RuntimeException ex){
+ return null;
+ }
+ }
+ public String getSesi(){
+ return sesi;
+ }
+ public Timestamp getTimeout(){
+ return timeout;
+ }
+ public void setTimeout(Timestamp timeout){
+ this.timeout = timeout;
+ }
+ public String getNama(){
+ return nama;
+ }
+}
diff --git a/src/dbd_lcd/system/structs/filter/Filter.java b/src/dbd_lcd/system/structs/filter/Filter.java
new file mode 100644
index 0000000..d97ff06
--- /dev/null
+++ b/src/dbd_lcd/system/structs/filter/Filter.java
@@ -0,0 +1,53 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs.filter;
+
+import dbd_lcd.database.PreparedStatement;
+import java.util.List;
+
+/**
+ *
+ * @author user
+ */
+public abstract class Filter {
+ public Integer limit;
+ public Integer offset;
+
+ public Filter(){}
+ public Filter(Filter f){
+ copyFrom(f);
+ }
+
+ public String getLimitOffset(){
+ String ret = "";
+ if(limit != null) ret += String.format(" LIMIT %d ", limit);
+ if(offset != null) ret += String.format(" OFFSET %d ", offset);
+ return ret;
+ }
+
+ public void copyFrom(Filter f){
+ this.limit = f.limit;
+ this.offset = f.offset;
+ }
+
+ public abstract boolean isWhereEmpty();
+ public abstract void addWhereClause(List where);
+ public abstract int applyWhereClause(PreparedStatement stmt, int i);
+
+ public boolean isPagingEmpty(){
+ return limit == null && offset == null;
+ }
+
+ public static boolean isNullOrWhereEmpty(Filter f){
+ return f == null || f.isWhereEmpty();
+ }
+ public static boolean isNullOrEmpty(Filter f){
+ return f == null || (f.isWhereEmpty() && f.isPagingEmpty());
+ }
+ public static boolean isNullOrPagingEmpty(Filter f){
+ return f == null || f.isPagingEmpty();
+ }
+}
diff --git a/src/dbd_lcd/system/structs/filter/FilterBarang.java b/src/dbd_lcd/system/structs/filter/FilterBarang.java
new file mode 100644
index 0000000..94edada
--- /dev/null
+++ b/src/dbd_lcd/system/structs/filter/FilterBarang.java
@@ -0,0 +1,81 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs.filter;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.PreparedStatement;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class FilterBarang extends Filter {
+
+ public Integer nomor;
+ public String tipe;
+ public String status;
+ public String keterangan;
+
+ public FilterBarang(){}
+ public FilterBarang(FilterBarang filter){
+ super(filter);
+ copyFrom(filter);
+ }
+
+ public void copyFrom(Filter f){
+ if(f instanceof FilterBarang){
+ copyFrom((FilterBarang)f);
+ }else{
+ super.copyFrom(f);
+ }
+ }
+
+ public void copyFrom(FilterBarang f){
+ super.copyFrom(f);
+ this.nomor = f.nomor;
+ this.tipe = f.tipe;
+ this.status = f.status;
+ this.keterangan = f.keterangan;
+ }
+
+ @Override
+ public boolean isWhereEmpty(){
+ return nomor == null && tipe == null && status == null && Util.isNullOrEmpty(keterangan);
+ }
+ public String getSubquery(){
+ if(isWhereEmpty()) return " TRUE ";
+
+ List where = new ArrayList();
+ where.add("Nomor_Peminjaman=P.Nomor_Peminjaman");
+ addWhereClause(where);
+
+ int c = where.size();
+ for(int i = 0; i < c; ++i){
+ where.set(i, "RB." + where.get(i));
+ }
+
+ return ("EXISTS (SELECT * FROM Riwayat_Barang RB WHERE " + String.join (" AND ", where) + ")");
+ }
+
+ @Override
+ public void addWhereClause(List where){
+ if(nomor != null) where.add("Nomor_Barang=?");
+ if(tipe != null) where.add("Tipe_Barang=?");
+ if(status != null) where.add("Status_Barang=?");
+ if(!Util.isNullOrEmpty(keterangan)) where.add("Keterangan_Barang LIKE ?");
+ }
+
+ @Override
+ public int applyWhereClause(PreparedStatement stmt, int i) {
+ if(nomor != null) stmt.setInt(++i, nomor);
+ if(tipe != null) stmt.setString(++i, ""+tipe);
+ if(status != null) stmt.setString(++i, ""+status);
+ if(!Util.isNullOrEmpty(keterangan)) stmt.setString(++i, Util.prepareFilter(keterangan));
+ return i;
+ }
+}
diff --git a/src/dbd_lcd/system/structs/filter/FilterKeperluanPinjam.java b/src/dbd_lcd/system/structs/filter/FilterKeperluanPinjam.java
new file mode 100644
index 0000000..17023f7
--- /dev/null
+++ b/src/dbd_lcd/system/structs/filter/FilterKeperluanPinjam.java
@@ -0,0 +1,79 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs.filter;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.PreparedStatement;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ *
+ * @author user
+ */
+public class FilterKeperluanPinjam extends Filter{
+
+ public String keperluanPinjam;
+ public String namaPenanggungJawab;
+ public String ruangPinjam;
+
+ public FilterKeperluanPinjam(){}
+ public FilterKeperluanPinjam(FilterKeperluanPinjam filter){
+ super(filter);
+ copyFrom(filter);
+ }
+
+ public void copyFrom(Filter f){
+ if(f instanceof FilterKeperluanPinjam){
+ copyFrom((FilterKeperluanPinjam)f);
+ }else{
+ super.copyFrom(f);
+ }
+ }
+
+ public void copyFrom(FilterKeperluanPinjam f){
+ super.copyFrom(f);
+ this.keperluanPinjam = f.keperluanPinjam;
+ this.namaPenanggungJawab = f.namaPenanggungJawab;
+ this.ruangPinjam = f.ruangPinjam;
+ }
+
+ @Override
+ public boolean isWhereEmpty(){
+ return Util.isNullOrEmpty(keperluanPinjam)
+ && Util.isNullOrEmpty(namaPenanggungJawab)
+ && Util.isNullOrEmpty(ruangPinjam);
+ }
+
+ public String getSubquery(){
+ if(isWhereEmpty()) return " TRUE ";
+
+ List where = new ArrayList();
+ where.add("Nomor_Peminjaman=P.Nomor_Peminjaman");
+ addWhereClause(where);
+
+ int c = where.size();
+ for(int i = 0; i < c; ++i){
+ where.set(i, "KP." + where.get(i));
+ }
+
+ return ("EXISTS (SELECT * FROM Kelas_Pinjam KP WHERE " + String.join (" AND ", where) + ")");
+ }
+
+ public void addWhereClause(List where){
+ if(!Util.isNullOrEmpty(keperluanPinjam)) where.add("Keperluan_Pinjam LIKE ?");
+ if(!Util.isNullOrEmpty(namaPenanggungJawab)) where.add("Nama_Penanggung_Jawab LIKE ?");
+ if(!Util.isNullOrEmpty(ruangPinjam)) where.add("Ruang_Pinjam lIKE ?");
+ }
+
+ public int applyWhereClause(PreparedStatement stmt, int i) {
+ if(!Util.isNullOrEmpty(keperluanPinjam)) stmt.setString(++i, Util.prepareFilter(keperluanPinjam));
+ if(!Util.isNullOrEmpty(namaPenanggungJawab)) stmt.setString(++i, Util.prepareFilter(namaPenanggungJawab));
+ if(!Util.isNullOrEmpty(ruangPinjam)) stmt.setString(++i, Util.prepareFilter(ruangPinjam));
+ return i;
+ }
+}
diff --git a/src/dbd_lcd/system/structs/filter/FilterPeminjam.java b/src/dbd_lcd/system/structs/filter/FilterPeminjam.java
new file mode 100644
index 0000000..3b1ab06
--- /dev/null
+++ b/src/dbd_lcd/system/structs/filter/FilterPeminjam.java
@@ -0,0 +1,94 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs.filter;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.PreparedStatement;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class FilterPeminjam extends Filter{
+ public String idPeminjam;
+ public String namaPeminjam;
+ public String alamatPeminjam;
+ public String nomorHpPeminjam;
+ public Boolean peminjamTerblacklist;
+
+ public FilterPeminjam(){}
+ public FilterPeminjam(FilterPeminjam filter){
+ super(filter);
+ copyFrom(filter);
+ }
+
+ public void copyFrom(Filter f){
+ if(f instanceof FilterPeminjam){
+ copyFrom((FilterPeminjam)f);
+ }else{
+ super.copyFrom(f);
+ }
+ }
+
+
+ public void copyFrom(FilterPeminjam f){
+ super.copyFrom(f);
+ this.idPeminjam = f.idPeminjam;
+ this.namaPeminjam = f.namaPeminjam;
+ this.alamatPeminjam = f.alamatPeminjam;
+ this.nomorHpPeminjam = f.nomorHpPeminjam;
+ this.peminjamTerblacklist = f.peminjamTerblacklist;
+ }
+
+ @Override
+ public boolean isWhereEmpty(){
+ return Util.isNullOrEmpty(idPeminjam)
+ && Util.isNullOrEmpty(namaPeminjam)
+ && Util.isNullOrEmpty(alamatPeminjam)
+ && Util.isNullOrEmpty(nomorHpPeminjam)
+ && peminjamTerblacklist == null;
+ }
+ public String getSubquery(){
+ if(isWhereEmpty()) return " TRUE ";
+
+ List where = new ArrayList();
+ where.add("Identitas_Peminjam=P.Identitas_Peminjam");
+ addWhereClause(where);
+
+ int c = where.size();
+ for(int i = 0; i < c; ++i){
+ where.set(i, "PM." + where.get(i));
+ }
+
+ return ("EXISTS (SELECT * FROM Peminjam PM WHERE " + String.join (" AND ", where) + ")");
+ }
+
+ public void addWhereClause(List where){
+ if(!Util.isNullOrEmpty(idPeminjam)) where.add("Identitas_Peminjam=?");
+ if(!Util.isNullOrEmpty(namaPeminjam)) where.add("Nama_Peminjam LIKE ?");
+ if(!Util.isNullOrEmpty(alamatPeminjam)) where.add("Alamat_Peminjam LIKE ?");
+ if(!Util.isNullOrEmpty(nomorHpPeminjam)) where.add("Nomor_Hp_Peminjam LIKE ?");
+ if(peminjamTerblacklist != null){
+ if(peminjamTerblacklist == true) where.add("Keterangan_Blacklist IS NOT NULL");
+ else where.add("Keterangan_Blacklist IS NULL");
+ }
+ }
+
+ public int applyWhereClause(PreparedStatement stmt, int i) {
+ if(!Util.isNullOrEmpty(idPeminjam)){
+ stmt.setString(++i, idPeminjam);
+ //stmt.setString(++i, Util.prepareFilter(idPeminjam));
+ //System.out.println("Applied idpeminjam '" + Util.prepareFilter(idPeminjam) + "' at i=" + i);
+ }
+ if(!Util.isNullOrEmpty(namaPeminjam)) stmt.setString(++i, Util.prepareFilter(namaPeminjam));
+ if(!Util.isNullOrEmpty(alamatPeminjam)) stmt.setString(++i, Util.prepareFilter(alamatPeminjam));
+ if(!Util.isNullOrEmpty(nomorHpPeminjam)) stmt.setString(++i, Util.prepareFilter(nomorHpPeminjam));
+ return i;
+ }
+}
diff --git a/src/dbd_lcd/system/structs/filter/FilterPeminjaman.java b/src/dbd_lcd/system/structs/filter/FilterPeminjaman.java
new file mode 100644
index 0000000..0335a44
--- /dev/null
+++ b/src/dbd_lcd/system/structs/filter/FilterPeminjaman.java
@@ -0,0 +1,120 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package dbd_lcd.system.structs.filter;
+
+import dbd_lcd.Util;
+import dbd_lcd.database.PreparedStatement;
+import dbd_lcd.system.structs.RangeWaktu;
+import java.sql.Timestamp;
+import java.util.List;
+
+/**
+ *
+ * @author Lenovo2
+ */
+public class FilterPeminjaman extends Filter {
+
+ public String status;
+ public FilterPeminjam peminjam = new FilterPeminjam();
+ public FilterBarang barang = new FilterBarang();
+ public FilterKeperluanPinjam keperluan = new FilterKeperluanPinjam();
+ public String keterangan;
+ public RangeWaktu rangeWaktu;
+ public Boolean terlambat;
+
+ public FilterPeminjaman(){}
+ public FilterPeminjaman(FilterPeminjaman filter){
+ super(filter);
+ copyFrom(filter);
+ }
+
+ public void copyFrom(Filter f){
+ if(f instanceof FilterPeminjaman){
+ copyFrom((FilterPeminjaman)f);
+ }else{
+ super.copyFrom(f);
+ }
+ }
+
+ public void copyFrom(FilterPeminjaman f){
+ super.copyFrom(f);
+ this.status = f.status;
+ this.barang = new FilterBarang(f.barang);
+ this.peminjam = new FilterPeminjam(f.peminjam);
+ this.keperluan = new FilterKeperluanPinjam(f.keperluan);
+ this.keterangan = f.keterangan;
+ this.rangeWaktu = f.rangeWaktu;
+ this.terlambat = f.terlambat;
+ }
+
+
+ @Override
+ public void addWhereClause(List where){
+ if(!Util.isNullOrEmpty(status)) where.add("Status_Peminjaman=?");
+ if(!Filter.isNullOrWhereEmpty(barang)) where.add(barang.getSubquery());
+ if(!Filter.isNullOrWhereEmpty(peminjam)) where.add(peminjam.getSubquery());
+ if(!Filter.isNullOrWhereEmpty(keperluan)) where.add(keperluan.getSubquery());
+ if(!Util.isNullOrEmpty(keterangan)) where.add("Keterangan_Peminjaman LIKE ?");
+ if(!RangeWaktu.isNullOrEmpty(rangeWaktu)){
+ rangeWaktu.cekValid();
+ if(rangeWaktu.awal != null){
+ where.add(
+ "(P.Waktu_Pinjam > ? "
+ + " OR (P.Waktu_Kembali IS NULL AND P.Waktu_Harus_Kembali > ?) "
+ + " OR (P.Waktu_Kembali IS NOT NULL AND P.Waktu_Kembali > ?) "
+ );
+ }
+ if(rangeWaktu.akhir != null){
+ where.add(
+ "(P.Waktu_Pinjam < ? "
+ + " OR (P.Waktu_Kembali IS NULL AND P.Waktu_Harus_Kembali < ?) "
+ + " OR (P.Waktu_Kembali IS NOT NULL AND P.Waktu_Kembali < ?) "
+ );
+ }
+
+ }
+ if(terlambat != null){
+ String s = "((Waktu_Kembali IS NULL AND Waktu_Harus_Kembali < NOW()) OR (Waktu_Kembali IS NOT NULL AND Waktu_Harus_Kembali < Waktu_Kembali))";
+ if(terlambat == true){
+ where.add(s);
+ }else{
+ where.add("NOT " + s);
+ }
+ }
+
+ }
+
+ @Override
+ public int applyWhereClause(PreparedStatement stmt, int i) {
+ if(!Util.isNullOrEmpty(status)) stmt.setString(++i, status);
+ if(!Filter.isNullOrWhereEmpty(barang)) i = barang.applyWhereClause(stmt, i);
+ if(!Filter.isNullOrWhereEmpty(peminjam)) i = peminjam.applyWhereClause(stmt, i);
+ if(!Filter.isNullOrWhereEmpty(keperluan)) i = keperluan.applyWhereClause(stmt, i);
+ if(!Util.isNullOrEmpty(keterangan)) stmt.setString(++i, Util.prepareFilter(keterangan));
+ if(!RangeWaktu.isNullOrEmpty(rangeWaktu)){
+ if(!rangeWaktu.isValid()){
+ throw new RuntimeException("Range waktu tidak valid");
+ }
+ for(int j = 0; j < 3; ++j){
+ stmt.setDateTime(++i, rangeWaktu.awal);
+ }
+ for(int j = 0; j < 3; ++j){
+ stmt.setDateTime(++i, rangeWaktu.akhir);
+ }
+ }
+ return i;
+ }
+
+ @Override
+ public boolean isWhereEmpty() {
+ return Util.isNullOrEmpty(status)
+ && Filter.isNullOrWhereEmpty(barang)
+ && Filter.isNullOrWhereEmpty(peminjam)
+ && Filter.isNullOrWhereEmpty(keperluan)
+ && RangeWaktu.isNullOrEmpty(rangeWaktu)
+ && terlambat == null;
+ }
+}