diff --git a/install/exportDatabase.sh b/install/exportDatabase.sh index 7e8b761a24ef1085c6bbfed932af24cde65d7226..83f3665e561413047b035033d07b27ec8e57f123 100755 --- a/install/exportDatabase.sh +++ b/install/exportDatabase.sh @@ -20,4 +20,4 @@ if test -z $ok; then ok="n"; fi if test "$ok" != "y"; then exit 0; fi - /usr/bin/mysqldump -p --events --skip-extended-insert --skip-comments --databases $db > $PWD/$db.sql + /usr/bin/mysqldump -p --events --routines --skip-extended-insert --skip-comments --databases $db > $PWD/$db.sql diff --git a/install/mpidb_mpg_licman.sql b/install/mpidb_mpg_licman.sql index db09620541c496ac53d4b9732bef251fe6929703..a78d90446f36894ec6339b3ef50a843f48dbbb85 100644 --- a/install/mpidb_mpg_licman.sql +++ b/install/mpidb_mpg_licman.sql @@ -1830,6 +1830,68 @@ SET character_set_client = utf8; `anzVertrag` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; +/*!50003 DROP PROCEDURE IF EXISTS `proc_version` */; +/*!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 = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_version`( IN iVerID SMALLINT(6) ) +proc_label:BEGIN + DECLARE Vt, Ot, Rt, Lt, It, St, Pt, Dt, Nt, Mt, Tt, Pg SMALLINT(6) DEFAULT '0'; + DECLARE endRow TINYINT DEFAULT '0'; + DECLARE forSoft1 CURSOR FOR + SELECT verID, orderID, IFNULL(anzLizenz,'0'), IFNULL(useLizenz,'0') FROM view_version WHERE softID = St ORDER BY orderID ASC; + DECLARE forSoft2 CURSOR FOR + SELECT ver.verID, diffVersion, IFNULL(shw.restVersion,'0') FROM show_version AS shw LEFT JOIN mpi_version AS ver ON ver.verID = shw.verID WHERE ver.softID = St ORDER BY ver.orderID DESC; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET endRow = 1; + IF iVerID IS NULL THEN LEAVE proc_label; END IF; + SELECT softID INTO St FROM mpi_version WHERE verID = iVerID; + IF St IS NULL THEN LEAVE proc_label; END IF; + SELECT MAX(orderID) INTO Mt FROM mpi_version WHERE softID = St; + + OPEN forSoft1; + getSoft: LOOP + FETCH forSoft1 INTO Vt, Ot, Lt, It; + IF endRow = 1 THEN LEAVE getSoft; END IF; + SET Dt = (Lt - It + Nt); + IF Dt < '0' AND Mt != Ot THEN + SET Pt = '0'; + SET Nt = Dt; + ELSE + SET Pt = Dt; + SET Nt = '0'; + END IF; + IF Dt < '0' THEN SET Rt = Lt; ELSE SET Rt = Lt - Dt; END IF; + UPDATE show_version SET diffVersion = Dt, verbVersion = Rt, restVersion = Pt WHERE verID = Vt; + END LOOP getSoft; + CLOSE forSoft1; + + SET endRow = '0'; + OPEN forSoft2; + getSoft: LOOP + FETCH forSoft2 INTO Vt, Dt, Pt; + IF endRow = 1 THEN LEAVE getSoft; END IF; + IF Pg < 0 AND Dt < 0 THEN + SET Tt = Pg; + ELSE + SET Pg = (Pg + Pt); + SET Tt = Pg; + END IF; + UPDATE show_version SET freeVersion = Tt WHERE verID = Vt; + + END LOOP getSoft; + CLOSE forSoft2; +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 */ ; USE `mpidb_mpg_licman`; /*!50001 DROP TABLE IF EXISTS `sort_inventar`*/;