# Dies ist das beruehmte Skript fuer Bruus Willes-in-Excel fuer Oracle
# Aufruf mit Personalnummer und Monat in der Form mm.yyyy
# Status: not tested
PERSNR=$1
MONAT=01.$2
CSV_FILE=monatsabrechnung.csv
DB=ox_entw
if [ "$DEBUGSQL" = -e ]
then
SET_DEBUGSQL="set echo on"
DEBUGSQLFILE=/tmp/debug_monatsabrechnung_sql.out
else
SET_DEBUGSQL=""
DEBUGSQLFILE=/dev/null
DEBUGSQL=""
fi
DBMONEY=, export DBMONEY
DBDATE=DMY4. export DBDATE
sqlplus $DB - <$DEBUGSQLFILE
-- Hier das SQL Statement, um die Stundendaten zu entladen
spool $CSV_FILE
set colsep ";"
set heading off
set feedback off
set pagesize 0
set linesize 2048
set trimspool on
$SET_DEBUGSQL
select
projektnummer, bemerkungstext, datumstart,
TO_CHAR(zeitstart, 'HH24:MI'),
datumende, TO_CHAR(zeitende, 'HH24:MI'), aufwand_in_std,
CAST(datumende as timestamp) - CAST(datumstart as timestamp) +
CAST(zeitende as timestamp) - cast(zeitstart as timestamp) dauer,
stundentyp
from
zeiterfassung
where
-- datumstart between '$MONAT' and TO_DATE('$MONAT', '%d.%m.%Y') + 1 UNITS MONTH - 1 UNITS DAY and
datumstart between to_date( '$MONAT', 'DD.MM.YYYY' ) AND
add_months( to_date( '$MONAT', 'DD.MM.YYYY' ), 1 ) - 1 AND
personalnummer = $PERSNR
order by datumstart, zeitstart, zeitende, stundentyp;
EOF
MONAT=$2
# Jetzt noch ein netter Text fuer Bruus
{ date; cat; } <<EOF >textfile
Sehr geehrter Herr Bruus
hier ist meine Stundenabrechnung für Monat $MONAT.
Mit freundlichen Grüßen
Ihre Personalnummer $PERSNR
EOF
# Verschicken ...
mpack -s "Stundenabrechnung fuer Personalnummer: $PERSNR" \
-d textfile $CSV_FILE chef@firma.de
# ... und aufraeumen (bloss keine Spuren hinterlassen ;-) )
rm -f textfile $CSV_FILE