#!/bin/bash

# mLohn update script 4 -> 5
# Table mitarbeiter: gebdat, soz_ver_num, steuerid, besch_beg

# check parameter
usage="upgrade"

# check version
if mysql -umlohn -pmlohn -N mlohn <<<"select * from version" >/dev/null 2>&1
then
	echo "version info available."
else
	echo "no version info available."
	exit 1
fi

version=$(mysql -umlohn -pmlohn -N mlohn <<<"select * from version")
echo "mLohn version $version found."
if [ $version -lt 4 ]
then
	echo "Main version ${version%%.*} found. Upgrade not supported."
	exit 1
fi

if [ $version -eq 5 ]
then
	echo "Main version ${version%%.*} found. No upgrade necessary."
	exit 0
fi


echo "Dump database"
mysqldump --default-character-set=utf8 mlohn -umlohn -pmlohn >mlohn.dump || exit 1

echo "Rename tables in current database"
mysql -umlohn -pmlohn mlohn <<END1 || exit 1
ALTER TABLE lohnabrechnung DROP FOREIGN KEY lohnabrechnung_FK_1;
ALTER TABLE lohnabrechnung DROP FOREIGN KEY lohnabrechnung_FK_2;
ALTER TABLE mitarbeiter DROP FOREIGN KEY mitarbeiter_FK_1;
RENAME TABLE 
	lohnabrechnung TO lohnabrechnung_old,
	lohnprofil     TO lohnprofil_old,
	mitarbeiter    TO mitarbeiter_old,
	arbeitgeberbtr TO arbeitgeberbtr_old;
END1

echo "Create new schema"
mysql -umlohn -pmlohn mlohn </usr/share/php/mLohn/Lohn/etc/schema.sql || exit 1

echo "Upgrade data"
mysql -umlohn -pmlohn mlohn <<'END2' || exit 1
	START TRANSACTION;
	
	INSERT INTO lohnprofil
	SELECT * FROM lohnprofil_old;
	
	INSERT INTO mitarbeiter
	SELECT `id`, `mod`, nachname, vorname, anrede, "1900-01-01", "SOZ0815", "ST0815", "2009-05-01", 
	strasse, plz, ort, iban, bank, email, basis_betrag, steuermerkmal, aktiv, lp_id FROM mitarbeiter_old; 
	
	INSERT INTO lohnabrechnung
	SELECT * from lohnabrechnung_old;

	INSERT INTO arbeitgeberbtr
	SELECT * FROM arbeitgeberbtr_old; 
	
	drop table lohnabrechnung_old;
	drop table lohnprofil_old;
	drop table mitarbeiter_old;
	drop table arbeitgeberbtr_old;
	
	UPDATE version set db_version = 5;
	
	COMMIT;
END2