<?php
// TODO: wenn im Case-Task eine Rolle vorkommt wird sie Übersprungen (nicht als userzugehörig erkannt)
//       Aufgaben, die als 'vorige Aufgaben mÃ¼ssen erledigt sein' gekennzeichnet sind, werden zur Erledigung angezeigt, obwohl noch nicht an der Reihe
/* benötigte Variablen:
=======================
CA_OID ........ Case Oid
US_OID ........ User-Oid
HRES_OID ...... Human Resources Oid
AKTION ........ E(rfasse), A(nzeigen)

/*
    URL muss so aussehen: case.php?sid&md5
    z.B.    case.php?entw&e53bb9793ca3e997d2f61d562809ab64
*/

ini_set("max_execution_time","false");
include_once('../system/all.php');

include_once('../system/db_open.php');
include_once('../system/set_vars.php');
// Textdatei für Sprachen importieren (LANG_CODE) wird abhängig von der Browsersprache ermittelt (welche Sprachen möglich sind ist in db_open.php definiert
include_once('../system/case.'.LANG_CODE.'.txt');
// Testumgebung

/*
$caOid = 65853776;
$usOid = 656;
$hresOid = 63113477; //756942941;//55543002; // oder 56942941
$aktion = 'E';      // E...Erledigen, A...Anzeigen
*/

$editNavigation = '';
$errorHint = '';
if (isset($allParameters)) {
    $errorHint = '<br>('.$allParameters.')';    
}
function nvl($value, $nvl) {
    if ($value == "" || !isset($value)) {
        return $nvl;
    } else {
        return $value;
    }
}

$hresIsHipo = 'N';  // Ob der User(Hres) zu der Stelle oder darunter gehï¿½rt

if (isset($caOids)) {
    foreach($caOids as $caOid) {
        if (isset($_POST['dutyOid'.$caOid])) {
            $dutyOid = htmlentities(strip_tags(trim($_POST["dutyOid".$caOid])));
        } else {
            $dutyOid = '';
        }
        $dutyOids[$caOid] = $dutyOid;
        if (isset($_POST['info'.$caOid])) {
            $info = htmlentities(strip_tags(trim($_POST["info".$caOid])));
        } else {
            $info = '';
        }
        $infos[$caOid] = $info;
        if (isset($_POST['caDutyOid'.$caOid])) {
            $caDutyOid = htmlentities(strip_tags(trim($_POST["caDutyOid".$caOid])));
        } else {
            $caDutyOid = '';
        }
        $caDutyOids[$caOid] = $caDutyOid;
    }
}

$finishCTButton = false;
$finishCAButton = false;
$empty = true;
if (isset($caOids)) {
    foreach($caOids as $caOid) {
        if (isset($_POST['finishCA'.$caOid])) {
            $finishCAButton = true;
            $editNavigation = "#ca".$caOid;
        }
        if (isset($_POST['finishCT'.$caOid])) {
            $finishCTButton = true;
            $editNavigation = "#ca".$caOid;
        }
    }
    $empty = false;
}

if ($finishCTButton) {
    foreach($caOids as $caOid) {
        if (isset($_POST['ctOid'.$caOid])) {
            $ctOid = htmlentities(strip_tags(trim($_POST["ctOid".$caOid])));
        } else {
            unset($ctOid);
        }
        // WB 23.02.12: auch wenn der HR kein user ist, soll die Aufgabe zu erledigen sein.
        if (!isset($usOid)) {
            $usOid = '';
        }
        if (isset($ctOid) && isset($usOid)) {
            if ($dutyOids[$caOid] == '') {
                $dutyOid = 'null';
            } else {
                $dutyOid = $dutyOids[$caOid];
            }
            if ($usOid == '') {
                $usOid = 'null';
            }
            if ($ctOid == '') {
                $ctOid = 'null';
            }
            if ($infos[$caOid] == '') {
                $info = '';
            } else {
                $info = $infos[$caOid];
            }
            // WB 26.05.2014: Fileupload
            // Einstellungswerte aus DB holen
            $sql = 'select rworld_pack_settings.get(\'LINKPATHDB\', null, null, null, null, null) val from dual';
            $tabLinkPathDB = getQuery($sql);
            if (isset($tabLinkPathDB)) {
                foreach($tabLinkPathDB as $v) {
                    $linkPathDB = $v['VAL'];
                }
            }
            if (!isset($linkPathDB)) {
                $linkPathDB = 'd:\\e-pilot\\';
            }
            $sql = 'select rworld_pack_settings.get(\'TEMP_PATH\', null, null, null, null, null) val from dual';
            $tabTempPath = getQuery($sql);
            if (isset($tabTempPath)) {
                foreach($tabTempPath as $v) {
                    $tempPath = $v['VAL'];
                }
            }
            if (!isset($tempPath)) {
                $tempPath = 'tempdata\\';
            }
            
            if (isset($_FILES)) {
                for($i=0; $i<count($_FILES['uploadCt'.$caOid]['name']); $i++) {
                    // temp file pfad holen
                    $tmpFilePath = $_FILES['uploadCt'.$caOid]['tmp_name'][$i];
    
                    //Check, ob FilePath != null
                    if ($tmpFilePath != ""){
                        // Zielpfad setzen
                        $newFilePath = $linkPathDB.$tempPath.$_FILES['uploadCt'.$caOid]['name'][$i];
                        
                        // Verschieben + Hochladen
                        if (move_uploaded_file($tmpFilePath, $newFilePath)) {
                            $execute = 'rworld_pack_html.upload_file('.$caOid.','.$ctOid.','.$usOid.','.$caOid.',\''.$_FILES['uploadCt'.$caOid]['name'][$i].'\')';
                            executeStmnt($execute);
                        }
                    }
                }
            }
            // Aufgabe nur erledigen, wenn eine Erledigungsart ausgewÃ¤hlt wurde, oder das Kommentar ausgefÃ¼llt wurde
            if ($dutyOid != 'null' || $info != '') {
                $execute = 'rworld_pack_ct.finish_ct('.$ctOid.','.$usOid.','.$dutyOid.',\''.html_entity_decode($info).'\',\'J\''.')';
                $dutyOids[$caOid] = '';
                $infos[$caOid] = '';
                executeStmnt($execute);
            }
        }
    }
}

if ($finishCAButton) {
    foreach($caOids as $caOid) {
        if (isset($_POST['caOid'.$caOid])) {
            $caOid = htmlentities(strip_tags(trim($_POST["caOid".$caOid])));
        } else {
            unset($caOid);
        }
        // WB 23.02.12: auch wenn der HR kein user ist, soll die Aufgabe zu erledigen sein.
        if (!isset($usOid)) {
            $usOid = '';
        }
        if (isset($caOid) && isset($usOid)) {
            if ($caDutyOids[$caOid] == '') {
                $caDutyOid = 'null';
            } else {
                $caDutyOid = $caDutyOids[$caOid];
            }
            if ($usOid == '') {
                $usOid = 'null';
            }
            if ($caOid == '') {
                $caOid = 'null';
            }
            $execute = 'rworld_pack_case.finish_ca('.$caOid.','.$caDutyOid.','.$usOid.')';
            $caDutyOids[$caOid] = '';
            executeStmnt($execute);
        }
    }
}

if (isset($caOids)) {
    foreach($caOids as $caOid) {
        if (isset($_POST['getCata'.$caOid])) {
            if (isset($_POST['ctOid'.$caOid])) {
                $ctOid = htmlentities(strip_tags(trim($_POST["ctOid".$caOid])));
            } else {
                unset($ctOid);
            }
            if (isset($ctOid) && isset($hresOid)) {
                $editNavigation = "#ca".$caOid;
                if ($ctOid == '') {
                    $ctOid = 'null';
                }
                if ($hresOid == '') {
                    $hresOid = 'null';
                }
                $execute = 'rworld_pack_ct.get_ct('.$ctOid.','.$hresOid.')';
                executeStmnt($execute);
            }
        }
    }
}

// Ermitteln des Cases
/*if (!isset($caOid)) {
    echo "exit cases";
    exit;
}*/
if (isset($caOid)) {
    $sql = 'select oid,hier_oid,to_char(cre_date,\'YYYY-MM-DD HH24:MI:SS\') cre_date, us_oid, apex_escape.HTML_ATTRIBUTE(us_sf_name) us_sf_name, person, per_oid, per_art, per_salu_oid, per_salu_name, apex_escape.HTML_ATTRIBUTE(hier_name) HIER_NAME'
          .',PER_SALU_NOMINATIV, PER_SALU_DATIV, PER_SALU_AKKUSATIV, PER_PTIT_CODA_OID, PER_PTIT_NAME, PER_TIT_CODA_OID
            ,PER_TIT_NAME, PER_CTIT_CODA_OID, PER_CTIT_NAME, PER_FIRST_NAME, PER_SURNAME, PER_ZTIT_CODA_OID, PER_ZTIT_NAME
            ,PER_ADDR_OID, PER_ADDR_POSTCODE, PER_ADDR_PLACE, PER_ADDR_STREET, PER_ADDR_HOUSE_NUMBER, PER_ADDR_COUN_OID
            ,PER_ADDR_FED_OID, PER_ADDR_PO_BOX, PER_ADDR_PO_BOX_POSTCODE, PER_ADDR_BLOCK, PER_ADDR_STAIR, PER_ADDR_FLEVEL
            ,PER_ADDR_FLOOR, PER_ADDR_APARTNR, PER_ADDR_DOOR, PER_ADDR_SCTO_OID, PER_ADDR_SCTO_ID, PER_ADDR_SCTO_NAME
            ,PER_ADDR_ADDT_CODA_OID, PER_ADDR_COUN_NAME, PER_ADDR_FLAG_PRINT_NAME, apex_escape.HTML_ATTRIBUTE(per_place) PER_PLACE, apex_escape.HTML_ATTRIBUTE(per_street) PER_STREET, PER_ADDRESS
            ,apex_escape.HTML_ATTRIBUTE(per_sf_name) PER_SF_NAME, PER_FS_NAME, PER_BIRTH_DATE, PER_COUN_OID, PER_COUN_NAME, PER_BRA_CODA_OID, PER_BRA_NAME
            ,PER_INFO, PER_SVNR, PER_INST_OID, PER_LETTER_SALUTATION, PER_ADDITION_1, PER_JK_NR
            ,apex_escape.HTML_ATTRIBUTE(sety_name) SETY_NAME
            , to_char(CASE_DATETIME,\'YYYY-MM-DD HH24:MI:SS\') case_datetime, ID
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,   1,500)), chr(38)||\'#xA;\',\'<br>\') TEXT1
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text, 501,500)), chr(38)||\'#xA;\',\'<br>\') TEXT2
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,1001,500)), chr(38)||\'#xA;\',\'<br>\') TEXT3
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,1501,500)), chr(38)||\'#xA;\',\'<br>\') TEXT4
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,2001,500)), chr(38)||\'#xA;\',\'<br>\') TEXT5
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,2501,500)), chr(38)||\'#xA;\',\'<br>\') TEXT6
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,3001,500)), chr(38)||\'#xA;\',\'<br>\') TEXT7
			, replace(apex_escape.HTML_ATTRIBUTE(substr(text,3501,500)), chr(38)||\'#xA;\',\'<br>\') TEXT8
			, SETS_OID, apex_escape.HTML_ATTRIBUTE(sets_name) SETS_NAME, CA_OID
            , to_char(DEADLINE,\'YYYY-MM-DD HH24:MI:SS\') deadline, FLAG_OK, SERU_OID, FINISH_US_OID, apex_escape.HTML_ATTRIBUTE(FINISH_US_SF_NAME) FINISH_US_SF_NAME
            , to_char(FINISH_DATE,\'YYYY-MM-DD HH24:MI:SS\') finish_date, MAIL_TEXT 
            , to_char(MAIL_DATE,\'YYYY-MM-DD HH24:MI:SS\') mail_date, MAIL_US_OID, MAIL_COMT_CODA_OID, ESC_PHASE, CAST_TEXT
            , IMPORTANT, CT_CAST_CODA_OID, CT_CAST_NAME, CT_CAST_TEXT, apex_escape.HTML_ATTRIBUTE(case_status) CASE_STATUS, CT_MAIL_TEXT, CT_INFO, DUTY_CODA_OID
            , apex_escape.HTML_ATTRIBUTE(duty_name) DUTY_NAME, CATA_CODA_OID, CATA_NAME, SPEZIFIKATION'
          .' from rworld_ca_v where oid in (';
          $i = 0;
          foreach ($caOids as $cOid) {
              $i++;
              switch ($i) {
                  case 1: $sql .= $cOid;
                          break;
                  default: $sql .= ','.$cOid;
                           break;
              }
          }
          $sql .= ')';
}
$tabCa = getQuery($sql);

if (isset($tabCa)) {
    foreach($tabCa as $recCa) {
        // Ermitteln des Communications
        $sql = 'select apex_escape.HTML_ATTRIBUTE(DIALLING_CODE) DIALLING_CODE, apex_escape.HTML_ATTRIBUTE(COMM_CODE) COMM_CODE, apex_escape.HTML_ATTRIBUTE(DIRECT_CODE) DIRECT_CODE, apex_escape.HTML_ATTRIBUTE(COMT_NAME) COMT_NAME from  rworld_communications_v where per_oid=to_number(\''.$recCa['PER_OID'].'\') order by seq, comt_name, oid';
        $tabComm[$recCa['OID']] = getQuery($sql);
        // ermitteln der CaseItems
        $sql = 'select SEQ, apex_escape.HTML_ATTRIBUTE(item_name) ITEM_NAME, apex_escape.HTML_ATTRIBUTE(value) VALUE, apex_escape.HTML_ATTRIBUTE(tooltip) TOOLTIP from  rworld_cait_v where ca_oid='.$recCa['OID'].'and item_flag_show=\'J\' order by seq, item_name, item_oid';
        $tabCait[$recCa['OID']] = getQuery($sql);
        // ermitteln der CaseTasks
        $sql = 'select FLAG_OK, CATA_CODA_OID, apex_escape.HTML_ATTRIBUTE(cata_name) CATA_NAME, HRES_OID, HIPO_OID, ROLE_OID,DUTY_FLAG_SUCCESS, to_char(finish_date,\'YYYY-MM-DD HH24:MI:SS\') FINISH_DATE, apex_escape.HTML_ATTRIBUTE(duty_name) DUTY_NAME, apex_escape.HTML_ATTRIBUTE(name) NAME, apex_escape.HTML_ATTRIBUTE(cast_name) CAST_NAME, apex_escape.HTML_ATTRIBUTE(info) INFO, OID from  rworld_ct_v where ca_oid='.$recCa['OID'].' order by flag_ok, seq, cre_date, oid';
        $tabCt[$recCa['OID']] = getQuery($sql);
        // ermitteln der Case-Erledigungsarten
        $sql = 'select hier_oid,sets_oid,oid,apex_escape.HTML_ATTRIBUTE(name) name,flag_type,flag_success,cata_coda_oid  from rworld_duty_lov duty where hier_oid='.$recCa['HIER_OID'].' and flag_type in (\'B\', \'C\') and sets_oid='.$recCa['SETS_OID'].'and cata_coda_oid is null order by upper(name)';
        $tabCaDuty[$recCa['OID']] = getQuery($sql);
		$sql = 'select  letr.oid,letr.seq, apex_escape.HTML_ATTRIBUTE(art.id) art_id,apex_escape.HTML_ATTRIBUTE(letr.add_text) add_text, apex_escape.HTML_ATTRIBUTE(stun.name) stun_name'
			  .', decode(busi.curr_oid, nvl(curr.oid, busi.curr_oid), decode(nvl(letr.quantity,0), 0, round(letr.price,2), round(letr.price/letr.quantity,2)), round(rworld_pack_curr.get_fw_betrag(curr.oid, busi.curr_oid, decode(nvl(letr.quantity,0), 0, letr.price, letr.price/letr.quantity), nvl(ca.case_date,ca.cre_date),2))) price_per_unit'
			  .', letr.quantity'
			  .', decode(busi.curr_oid, nvl(curr.oid, busi.curr_oid), decode(nvl(letr.quantity,0), 0, round(letr.price,2), round(letr.price/letr.quantity,2) * letr.quantity), round(decode(nvl(letr.quantity,0),0, rworld_pack_curr.get_fw_betrag(curr.oid, busi.curr_oid, letr.price, nvl(ca.case_date,ca.cre_date),2),rworld_pack_curr.get_fw_betrag(curr.oid, busi.curr_oid, letr.price/letr.quantity, nvl(ca.case_date,ca.cre_date),2) * letr.quantity)))  price'
			  .', apex_escape.HTML_ATTRIBUTE(curr.id) curr_id, curr.oid curr_oid'
			  .', apex_escape.HTML_ATTRIBUTE(busi_curr.id) busi_curr_id, busi_curr.oid busi_curr_oid'
			  .', apex_escape.HTML_ATTRIBUTE(rwwws_pack_trla.get_ladi_ids(letr.oid)) ladis'
			  .', decode(busi.curr_oid, nvl(curr.oid, busi.curr_oid), 0, round(rworld_pack_curr.get_fw_betrag(curr.oid, busi.curr_oid, 1, nvl(ca.case_date,ca.cre_date),6))) kurs'
			  .' from rworld_currencies busi_curr, rwwws_standard_units stun, rwwws_articles art, rwwws_ledger_trades letr, rworld_business_years busi, rworld_currencies curr, rwwws_trade_headers trhe, rworld_cases ca, rworld_ca_trhe catr'
			  .' where catr.ca_oid = '.$recCa['OID'].' and ca.oid = catr.ca_oid and trhe.oid = catr.trhe_oid and busi.oid = trhe.by_oid and curr.oid(+) = trhe.curr_oid and letr.trhe_oid = trhe.oid and art.oid = letr.art_oid and stun.oid = art.stun_oid and busi_curr.oid = busi.curr_oid'
			  .' and not exists (select 1 from rwwws_trhe_order_details trod where trod.trhe_oid = trhe.oid)'
			  .' order by trhe.id, trhe.oid, letr.seq,letr.oid,art.seq,art.id';
        $tabLetr[$recCa['OID']] = getQuery($sql);
    }
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Case Anzeige</title>
<meta charset="ISO-8859-1">
<link rel="shortcut icon" href="case.ico" />
<meta name="keywords" lang="de" content="abc" />
<meta name="description" content="abc" />
<meta name="robots" content="index, follow" />
<link rel="stylesheet" type="text/css" href="case.css" />
</head>
<body>
<div id="case">
<?php
if ($aktion == 'E') {
    echo '<form id="formCa" enctype="multipart/form-data" name="formCa" method="post" action="case.php?'.str_replace('&','&amp;',$_SERVER['QUERY_STRING']).'">';
}
if (isset($tabCa) && count($tabCa) > 0)  {
    $anzCases = 0;
    foreach($tabCa as $recCa) {
        $anzCases++;
        switch ($anzCases) {
            case 1: break;
            default: echo '<hr />';
                     break;
        }
        /* ***************************************************************************************
         *   Caseinitiator
         ****************************************************************************************/
        echo '<div id="initiator">';
        echo '<p style="padding-left:2px;"><span>'.trim(($recCa['HIER_NAME'])).'</span></p>';
		echo '<table width="100%"><tr><td width="50%">';
        echo '<p><span>'.trim(htmlentities(_INITIATOR)).'</span></p>';
        echo '<p>'.trim(($recCa['PER_SF_NAME'])).'</p>';
        echo '<p>'.trim(($recCa['PER_STREET'])).'</p>';
        echo '<p>'.trim(($recCa['PER_PLACE'])).'</p>';
        //echo '</div>';
        echo '<br>';
        //echo '<div id="comm">';

        /* ***************************************************************************************
         *   Kommunikationen
         ****************************************************************************************/
        if (isset($tabComm[$recCa['OID']])) {
            if (count($tabComm[$recCa['OID']] > 0)) {
                echo '<p><span>'.trim(htmlentities(_KOMMUNICATION)).'</span></p>';
                echo '<table>';
                foreach($tabComm[$recCa['OID']] as $recComm) {
                    // <a href="mailto:xxx">xxx</a>
                    if (strpos($recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE'],'@') !== FALSE) {
                        // email-adresse
                        $comm = '<a href="mailto:'.$recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE'].'">'.trim(($recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE'])).'</a>';
                    } elseif (strpos(strtolower($recComm['COMT_NAME']), 'tel') !== FALSE) {
                        // telefonnummer
                        $comm = $recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE'];
                        $comm = '<a href="tel:'.str_replace('-','',str_replace('/','',str_replace(' ','',$comm))).'" >'.trim(($comm)).'</a>';
                    } elseif (strpos(strtolower($recComm['COMT_NAME']), 'fax') !== FALSE) {
                        // faxnummer
                        $comm = $recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE'];
                        $comm = '<a href="tel:'.str_replace('-','',str_replace('/','',str_replace(' ','',$comm))).'" >'.trim(($comm)).'</a>';
                    } else {
                        // andere
                        $comm = trim(($recComm['DIALLING_CODE'].$recComm['COMM_CODE'].$recComm['DIRECT_CODE']));
                    }
                    echo '<tr><td>'.$recComm['COMT_NAME'].':</td><td>'.$comm.'</td></tr>';
                }
                echo '</table>';
                echo '<br>';
            }
        }
		echo '</td>';
        if ($recCa['DEADLINE'] == '' ) {
            $deadline = '';
            $deadlineTxt = '';
        } else {
			if (date('H:i',strtotime($recCa['DEADLINE'])) == '00:00') {
				$deadline = date('d.m.Y',strtotime($recCa['DEADLINE']));
			} else {
				$deadline = date('d.m.Y H:i',strtotime($recCa['DEADLINE']));
			}
            $deadlineTxt = _FRIST;
        }
        if ($recCa['FLAG_OK'] == 'J') {
            $img = '<img style="padding-left:10px" src="Check-16_green.png" alt="OK" />';
        } else {
            $img = '';
        }
		echo '<td width="50%" align="right">';
		echo '<table>';
		echo '<tr><td align="right" colspan="2"><span>'.trim(($recCa['SETY_NAME'])).'</span></td></tr>';
		echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_CASE_ID)).'</span></td><td>'.$recCa['ID'].'</td></tr>';
		echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_ERFASST_DURCH)).'</span></td><td>'.trim(($recCa['US_SF_NAME'])).'</td></tr>';
		echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_ERFASST_AM)).'</span></td><td>'.date('d.m.Y H:i',strtotime($recCa['CRE_DATE'])).'</td></tr>';
		if ($deadline != '') {
			echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_FRIST)).'</span></td><td>'.$deadline.'</td></tr>';
		}
		if ($recCa['FLAG_OK'] == 'J') {
			echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_ABGESCHLOSSEN_VON)).'</span></td><td>'.trim(($recCa['FINISH_US_SF_NAME'])).'</td></tr>';
			echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_ABGESCHLOSSEN_AM)).'</span></td><td>'.date('d.m.Y H:i',strtotime($recCa['FINISH_DATE'])).'</td></tr>';
			echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_CASE_ERL_ART)).'</span></td><td>'.trim(($recCa['DUTY_NAME'])).'</td></tr>';
		}
		if ($recCa['CASE_STATUS'] != '') {
			echo '<tr><td style="padding-right:7px" align="right"><span>'.trim(htmlentities(_STATUS)).'</span></td><td>'.trim(($recCa['CASE_STATUS'])).'</td></tr>';
		}
		echo '</table>';
		echo '</td></tr></table>';
        echo '</div>';

        /* ***************************************************************************************
         *   Casedetail
         ****************************************************************************************/
        echo '<div id="caseDetail">';
        echo '<span id="ca'.$recCa['OID'].'"></span>';
        echo '<h2 align="center">'.trim(($recCa['SETS_NAME'])).$img.'</h2>';
        echo '<br>';
        echo '<div id="caseItems">';

        /* ***************************************************************************************
         *   Items
         ****************************************************************************************/
        if (isset($tabCait[$recCa['OID']]) && count($tabCait[$recCa['OID']]) > 0) {
            $x = 0;
            $openTab = false;
            echo '<table width="100%">';
            foreach($tabCait[$recCa['OID']] as $recCait) {
                if ($recCait['SEQ']%2 == 0) {
                    // links
                    $lItem = $recCait['ITEM_NAME'];
                    $lValue = $recCait['VALUE'];
                    if ($recCait['TOOLTIP'] != '') {
                        $lTooltip = ' title="'.trim(($recCait['TOOLTIP'])).'"';
                    } else {
                        $lTooltip = '';
                    }
                    $rItem = '';
                    $rValue = '';
                    $rTooltip = '';
                } else {
                    // rechts
                    $lItem = '';
                    $lValue = '';
                    $lTooltip = '';
                    $rItem = $recCait['ITEM_NAME'];
                    $rValue = $recCait['VALUE'];
                    if ($recCait['TOOLTIP'] != '') {
                        $rTooltip = ' title="'.trim(($recCait['TOOLTIP'])).'"';
                    } else {
                        $rTooltip = '';
                    }
                }
                if ($x == 0) {
                    if ($recCait['SEQ']%2 == 0) {
                        echo '<tr>';
                        echo '<td align="right" width="15%"><span>'.trim(($lItem)).'</span></td>'.'<td width="35%" class="gray"'.$lTooltip.'>'.trim(($lValue)).'</td>';
                        $x = 1;
                        $openTab = true;
                    } else {
                        if ($openTab) {
                            echo '<td align="right" width="15%"></td>'.'<td width="35%"></td></tr>';
                            $openTab = false;
                        }
                        echo '<tr><td align="right" width="15%"></td>'.'<td width="35%"></td>';
                        echo '<td align="right" width="15%"><span>'.trim(($rItem)).'</span></td>'.'<td width="35%" class="gray"'.$rTooltip.'>'.trim(($rValue)).'</td></tr>';
                        $x = 0;
                        $openTab = false;
                    }
                } else {
                    if ($recCait['SEQ']%2 == 0) {
                        echo '<td align="right" width="15%"></td>'.'<td width="35%"></td></tr>';
                        echo '<tr><td align="right" width="15%"><span>'.trim(($lItem)).'</span></td>'.'<td width="35%" class="gray"'.$lTooltip.'>'.trim(($lValue)).'</td>';
                        $openTab = true;
                        $x = 1;
                    } else {
                        echo '<td align="right" width="15%"><span>'.trim(($rItem)).'</span></td>'.'<td width="35%" class="gray"'.$rTooltip.'>'.trim(($rValue)).'</td></tr>';
                        $openTab = false;
                        $x = 0;
                    }
                }
                //echo '<tr><td align="right" width="25%">'.$lItem.'</td>'.'<td width="25%" class="gray">'.$lValue.'</td>';
                //echo '<td align="right" width="25%">'.$rItem.'</td>'.'<td width="35%" class="gray">'.$rValue.'</td></tr>';
            }
            if ($openTab) {
                echo '<td align="right" width="15%"></td>'.'<td width="35%"></td></tr>';
                $openTab = false;
            }
            echo '</table>';
        }
        echo '</div>';
        echo '<br>';
		if (trim(($recCa['TEXT1'])) != '') {
			echo '<p>'.trim(htmlentities(_TEXT)).'<br><span>'.str_replace(chr(13),'',str_replace(chr(10),'<br>',trim(($recCa['TEXT1'].$recCa['TEXT2'].$recCa['TEXT3'].$recCa['TEXT4'].$recCa['TEXT5'].$recCa['TEXT6'].$recCa['TEXT7'].$recCa['TEXT8'])))).'</span></p>';
		}
        echo '</div>';
        echo '<br>';
        /* ***************************************************************************************
         *   Warenwirtschaftzeilen
         ****************************************************************************************/
        if (isset($tabLetr[$recCa['OID']]) && count($tabLetr[$recCa['OID']]) > 0) {
			echo '<div id="caseLetr">';
			echo '<table width="100%">';
			$letrSum = 0;
			$anzLetr = 0;
			foreach($tabLetr[$recCa['OID']] as $recLetr) {
				if ($anzLetr == 0) {
					$currencySymbol = ' ('.$recLetr['BUSI_CURR_ID'].')';
					if ($recLetr['CURR_OID'] == '' || $recLetr['CURR_OID'] == $recLetr['BUSI_CURR_OID']) {
						$showCurrRate = 'N';
						$trheCurrID = '';
						$busiCurrID = '';
						$currKurs = '';
					} else {
						$showCurrRate = 'J';
						$trheCurrID = $recLetr['CURR_ID'];
						$busiCurrID = $recLetr['BUSI_CURR_ID'];
						$currKurs = $recLetr['KURS'];
					}
					echo '<tr><td align="right"><span class="grau">#</span></td><td class="umbruch"><span class="grau">'.trim(htmlentities(_ARTIKEL)).'</span></td><td><span class="grau">'.trim(htmlentities(_EINHEIT)).'</span></td><td align="right"><span class="grau">'.trim(htmlentities(_PREIS_PRO_EINHEIT)).$currencySymbol.'</span></td><td align="right"><span class="grau">'.trim(htmlentities(_ANZAHL)).'</span></td><td align="right"><span class="grau">'.trim(htmlentities(_PREIS)).$currencySymbol.'</span></td><td><span class="grau">'.trim(htmlentities(_DIMENSIONEN)).'</span></td></tr>';
				}
				$anzLetr++;
				echo '<tr><td align="right">'.$recLetr['SEQ'].'</td><td class="umbruch">'.trim(($recLetr['ADD_TEXT'])).'</td><td>'.trim(($recLetr['STUN_NAME'])).'</td><td align="right">'.number_format($recLetr['PRICE_PER_UNIT'],2,DECI,TSD).'</td><td align="right">'.number_format($recLetr['QUANTITY'],2,DECI,TSD).'</td><td align="right">'.number_format($recLetr['PRICE'],2,DECI,TSD).'</td><td>'.trim(($recLetr['LADIS'])).'</td></tr>';
				$letrSum += $recLetr['PRICE'];
			}
			echo '<tr><td align="right"><span class="grau"></span></td><td class="umbruch"><span class="grau"></span></td><td><span class="grau"></span></td><td align="right"><span class="grau"></span></td><td align="right"><span class="grau">'._SUMME.$currencySymbol.'</span></td><td align="right"><span class="grau">'.number_format($letrSum,2,DECI,TSD).'</span></td><td><span class="grau"></span></td></tr>';
			echo '</table>';
			if ($showCurrRate == 'J') {
				echo '<p align="center">'.trim(htmlentities(_WAE_DES_VERTRAGES)).' '.$trheCurrID.' '.trim(htmlentities(_WECHSELKURS_ZU)).' '.$busiCurrID.':'.number_format($currKurs,6,DECI,TSD).'</p>';
			}
			echo '</div>';
            echo '<br>';
		}		
        /* ***************************************************************************************
         *   Lobs
         ****************************************************************************************/
        $lobs = getLobs($recCa['OID'], '', ''.$usOid.'');
        if (isset($lobs) && count($lobs) > 0) {
            echo '<div id="lobs">';
            foreach($lobs as $lob) {
                echo '<a href="'.$lob['url'].'" target="_blank"><img src="disk.png" alt="'.trim(($lob['file_name'])).'" title="'.trim(($lob['info'])).'" border="0" /></a> ';
                /* WB 02.12.19: Umlauteproblem
                echo '<a href="'.$lob['url'].'" target="_blank">'.trim(($lob['file_name'])).'</a> ';
                */
                echo '<a href="'.$lob['url'].'" target="_blank">'.trim($lob['file_name']).'</a> ';
            }
            echo '</div>';
            echo '<br>';
        }
        /* ***************************************************************************************
         *   Aufgaben
         ****************************************************************************************/
        echo '<div id="caseTasks">';
        if (isset($tabCt[$recCa['OID']]) && count($tabCt[$recCa['OID']]) > 0) {
            echo '<p><u>'.trim(htmlentities(_AUFGABEN)).'</u></p>';
            echo '<table width="100%">';
			echo '<tr><td width="16"><span class="grau">'.trim(htmlentities(_CT_ERLEDIGT)).'</span></td><td><span class="grau">'.trim(htmlentities(_CT_CATA_NAME)).'</span></td>'.'<td><span class="grau">'.trim(htmlentities(_CT_DUTY_NAME)).'</span></td>'.'<td class="nostretch"><span class="grau">'.trim(htmlentities(_CT_FINISH_DATE)).'</span></td>'.'<td><span class="grau">'.trim(htmlentities(_CT_NAME)).'</span></td>'.'<td><span class="grau">'.trim(htmlentities(_CT_CAST_NAME)).'</span></td>'.'<td><span class="grau">'.trim(htmlentities(_CT_INFO)).'</span></td></tr>';
            $allCataErledigt = 'J';
            foreach($tabCt[$recCa['OID']] as $recCt) {
                if ($recCt['FLAG_OK'] == 'N') {
                    $allCataErledigt = 'N';
                }
                // ermitteln der Casetasks-Erledigungsarten
                if ($recCt['CATA_CODA_OID'] == '') {
                    $cataCodaOid = -1;
                } else {
                    $cataCodaOid = $recCt['CATA_CODA_OID'];
                }
                
                $sql = 'select hier_oid,sets_oid,oid,apex_escape.HTML_ATTRIBUTE(name) name,flag_type,flag_success,cata_coda_oid from rworld_duty_lov duty where hier_oid='.$recCa['HIER_OID'].' and flag_type in (\'B\', \'T\') and sets_oid='.$recCa['SETS_OID'].' and nvl(cata_coda_oid,-1)='.$cataCodaOid.' order by upper(name)';
                $tabDuty[$recCa['OID']] = getQuery($sql);
                $hresIsHipo = 'N';
                if ($recCt['HRES_OID'] == '' && ($recCt['HIPO_OID'] != '' || $recCt['ROLE_OID'] != '') && $recCt['FLAG_OK'] == 'N' && $hresOid != '') {
                    // ermitteln, ob der User zu der Stelle gehört
                    $sql = 'select  \'J\' FLAG_EXISTS
                            from dual
                            where '.$hresOid.' in 
                                      (   select  hphr.hres_oid
                                          from    rwh_hipo_hres hphr
                                          ,       rwh_hier_positions hipo
                                          where   hphr.hipo_oid(+) = hipo.oid
                                          and     trunc(sysdate) between nvl(hphr.start_date, trunc(sysdate)) and nvl(hphr.end_date, trunc(sysdate))
                                          group by hphr.hres_oid
                                          connect by prior hipo.oid = hipo.hipo_oid
                                          start with hipo.oid = '.nvl($recCt['HIPO_OID'],-1).'
                                          UNION
                                          select roru.hres_oid oid
                                          from   rwf_ladi_dimensions ladi
                                          ,      rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    ladi.oid      = roru.ladi_oid
                                          and    ladi.per_oid  = '.nvl($recCa['PER_OID'],-1).'
                                          and    roru.hres_oid is not null
                                          and    sysdate between nvl(roru.start_date,sysdate) and nvl(roru.end_date,sysdate)
                                          UNION
                                          select roru.hres_oid oid
                                          from   rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    roru.hier_oid = '.nvl($recCa['HIER_OID'],-1).'
                                          and    roru.ladi_oid is null
                                          and    roru.hres_oid is not null
                                          and    not exists ( select 1
                                                              from   rwf_ladi_dimensions ladi
                                                              ,      rworld_role_rules rr
                                                              where  rr.role_oid  = roru.role_oid
                                                              and    ladi.oid     = rr.ladi_oid
                                                              and    ladi.per_oid = '.nvl($recCa['PER_OID'],-1).'
                                                            )
                                          UNION
                                          select roru.hres_oid oid
                                          from   rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    roru.hier_oid is null
                                          and    roru.ladi_oid is null
                                          and    roru.hres_oid is not null
                                          and    not exists ( select 1
                                                              from   rwf_ladi_dimensions ladi
                                                              ,      rworld_role_rules rr
                                                              where  rr.role_oid = roru.role_oid
                                                              and    ladi.oid    = rr.ladi_oid
                                                              and    ladi.per_oid= '.nvl($recCa['PER_OID'],-1).'
                                                             )
                                          and    not exists ( select 1
                                                              from   rworld_role_rules rr
                                                              where  rr.role_oid = roru.role_oid
                                                              and    rr.hier_oid = '.nvl($recCa['HIER_OID'],-1).'
                                                             )
                                          UNION
                                          select hphr.hres_oid    oid
                                          from   rwh_hipo_hres hphr
                                          ,      rwf_ladi_dimensions ladi
                                          ,      rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    ladi.oid      = roru.ladi_oid
                                          and    ladi.per_oid  = '.nvl($recCa['PER_OID'],-1).'
                                          and    roru.hipo_oid is not null
                                          and    sysdate between nvl(roru.start_date, sysdate) and nvl(roru.end_date, sysdate)
                                          and    hphr.hipo_oid in ( select  hipo.oid
                                                                    from    rwh_hier_positions hipo
                                                                    connect by prior hipo.oid = hipo.hipo_oid
                                                                    start with oid = roru.hipo_oid
                                                                  )
                                          and    trunc(sysdate) between nvl(hphr.start_date, trunc(sysdate)) and nvl(hphr.end_date, trunc(sysdate))
                                          group by hphr.hres_oid
                                          UNION
                                          select hphr.hres_oid    oid
                                          from   rwh_hipo_hres hphr
                                          ,      rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    roru.hier_oid = '.nvl($recCa['HIER_OID'],-1).'
                                          and    roru.ladi_oid is null
                                          and    roru.hipo_oid is not null
                                          and    hphr.hipo_oid in ( select  hipo.oid
                                                                    from    rwh_hier_positions hipo
                                                                    connect by prior hipo.oid = hipo.hipo_oid
                                                                    start with oid = roru.hipo_oid
                                                                  )
                                          and    trunc(sysdate)  between nvl(hphr.start_date, trunc(sysdate)) and nvl(hphr.end_date, trunc(sysdate))
                                          and    not exists ( select 1
                                                              from   rwf_ladi_dimensions ladi
                                                              ,      rworld_role_rules rr
                                                              where  rr.role_oid =roru.role_oid
                                                              and    ladi.oid    =rr.ladi_oid
                                                              and    ladi.per_oid='.nvl($recCa['PER_OID'],-1).'
                                                             )
                                          group by hphr.hres_oid
                                          UNION
                                          select hphr.hres_oid    oid
                                          from   rwh_hipo_hres hphr
                                          ,      rworld_role_rules roru
                                          where  roru.role_oid = '.nvl($recCt['ROLE_OID'],-1).'
                                          and    roru.hier_oid is null
                                          and    roru.ladi_oid is null
                                          and    roru.hipo_oid is not null
                                          and    hphr.hipo_oid in  ( select  hipo.oid
                                                                     from    rwh_hier_positions hipo
                                                                     connect by prior hipo.oid = hipo.hipo_oid
                                                                     start with oid = roru.hipo_oid
                                                                   )
                                          and    trunc(sysdate) between nvl(hphr.start_date, trunc(sysdate)) and nvl(hphr.end_date, trunc(sysdate))
                                          and    not exists ( select 1
                                                              from   rwf_ladi_dimensions ladi
                                                              ,      rworld_role_rules rr
                                                              where  rr.role_oid = roru.role_oid
                                                              and    ladi.oid    = rr.ladi_oid
                                                              and    ladi.per_oid= '.nvl($recCa['PER_OID'],-1).'
                                                             )
                                          and    not exists ( select 1
                                                              from   rworld_role_rules rr
                                                              where  rr.role_oid = roru.role_oid
                                                              and    rr.hier_oid = '.nvl($recCa['HIER_OID'],-1).'
                                                             )
                                          group by hphr.hres_oid
                                      )';
                                      
                    $tabUs = getQuery($sql);
                    if (isset($tabUs) && count($tabUs)>0) {
                        foreach($tabUs as $recUs) {
                            if ($recUs['FLAG_EXISTS'] == 'J') {
                                $hresIsHipo = 'J';
                            }
                        }
                    }
                }
                
                if (($recCt['HRES_OID'] == $hresOid || $hresIsHipo == 'J') && $recCt['FLAG_OK'] == 'N') {
                    $class = ' class="aktCT"';
                } else {
                    $class = '';
                }
                if ($recCt['FLAG_OK'] == 'J') {
                    if ($recCt['DUTY_FLAG_SUCCESS'] == 'N') {
                        $img = '<img src="Check-16_red.png" alt="OK" />';
                    } else {
                        $img = '<img src="Check-16_green.png" alt="OK" />';
                    }
                } else {
                    $img = '';
                }
                if (nvl($recCt['FINISH_DATE'],"") == "") {
                	$ctFinishDate = "";
                } else {
                	$ctFinishDate = date('d.m.Y H:i',strtotime($recCt['FINISH_DATE']));
                	if ($ctFinishDate == date('d.m.Y H:i',strtotime(date('d.m.Y',strtotime($recCt['FINISH_DATE']))))) {
                		$ctFinishDate = date('d.m.Y',strtotime($recCt['FINISH_DATE']));
                	}
                }
                echo '<tr'.$class.'><td width="16">'.$img.'</td><td>'.trim(($recCt['CATA_NAME'])).'</td>'.'<td>'.trim(($recCt['DUTY_NAME'])).'</td>'.'<td class="nostretch">'.$ctFinishDate.'</td>'.'<td>'.trim(($recCt['NAME'])).'</td>'.'<td>'.trim(($recCt['CAST_NAME'])).'</td>'.'<td>'.trim(($recCt['INFO']));
                
                if (($class != '' || $hresIsHipo == 'J') && $aktion == 'E') {
                    // abbruch, wenn die Aufgabe, die erledigt werden soll erreicht wurde. Die Aufgaben danach brauchen nicht angezeigt werden
                    echo '<input type="hidden" name="ctOid'.$recCa['OID'].'" value="'.$recCt['OID'].'" />';
                }
                echo '</td></tr>';
                if ($class != '' && $aktion == 'E') {
                    // abbruch, wenn die Aufgabe, die erledigt werden soll erreicht wurde. Die Aufgaben danach brauchen nicht angezeigt werden
                    break 1;
                }
            }
            echo '</table>';
            
            if ($class != '' && $hresIsHipo == 'N' && $recCt['HRES_OID'] != '') {
                //Erledigungsart und Erledigunsbutton anzeigen
				echo '<table class="caseTasksAktCT" width="100%">';
                echo '<tr><td class="shrink">'.trim(htmlentities(_ERLEDIGUNGSART)).'</td><td class="expand"><select name="dutyOid'.$recCa['OID'].'" id="dutyOid">';
                echo '<option value=""></option>';
                if (isset($tabDuty[$recCa['OID']]) && count($tabDuty[$recCa['OID']]) > 0) {
                    foreach ($tabDuty[$recCa['OID']] as $recDuty) {
                        if ($recDuty['OID'] == $dutyOids[$recCa['OID']]) {
                            echo '<option value="'.$recDuty['OID'].'" selected="selected">'.trim(($recDuty['NAME'])).'</option>';
                        } else {
                            echo '<option value="'.$recDuty['OID'].'">'.trim(($recDuty['NAME'])).'</option>';
                        }
                    }
                }
                echo '</select></td></tr>';
                echo '<tr><td class="shrink">'.trim(htmlentities(_KOMMENTAR)).'</td><td class="expand"><textarea style="width:100%" rows="3" name="info'.$recCa['OID'].'" id="info'.$recCa['OID'].'" type="text" value="'.trim(htmlentities($infos[$recCa['OID']])).'" title="'.trim(htmlentities(_ANMERKUNG)).'" maxlength="4000"></textarea></td></tr>';
                //echo ' <input name="uploadCt'.$recCa['OID'].'[]" type="file" multiple="multiple" />';
                echo '<tr><td class="shrink">'.trim(htmlentities(_DATEIEN)).'</td><td class="expand"><input name="uploadCt'.$recCa['OID'].'[]" type="file" multiple="multiple" /></td></tr>';
                echo '<tr><td class="shrink"></td><td class="expand"><input type="submit" name="finishCT'.$recCa['OID'].'" value="'.trim(htmlentities(_AUFGABE_ERLEDIGEN)).'" id="finishCT'.$recCa['OID'].'" /></td></tr>';
				echo '</table>';
            } elseif ($hresIsHipo == 'J' && $aktion == 'E') {
                echo '<p>';
                echo ' <input type="submit" name="getCata'.$recCa['OID'].'" value="'.trim(htmlentities(_AUFGABE_UEBERNEHMEN)).'" id="getCata" />';
                echo '</p>';
            }
            
            // wenn alle Aufgaben erledigt, dann Case erledigen anzeigen
            if ($allCataErledigt == 'J' && $aktion == 'E' && $recCa['FLAG_OK'] == 'N') {
				echo '<table class="caseTasksAktCT" width="100%">';
                echo '<tr><td class="shrink">'.trim(htmlentities(_ERLEDIGUNGSART)).'</td><td class="expand"><select name="caDutyOid'.$recCa['OID'].'" id="caDutyOid">';
                echo '<option value=""></option>';
                if (isset($tabCaDuty[$recCa['OID']]) && count($tabCaDuty[$recCa['OID']]) > 0) {
                    foreach ($tabCaDuty[$recCa['OID']] as $recCaDuty) {
                        if ($recCaDuty['OID'] == $caDutyOids[$recCa['OID']]) {
                            echo '<option value="'.$recCaDuty['OID'].'" selected="selected">'.trim(($recCaDuty['NAME'])).'</option>';
                        } else {
                            echo '<option value="'.$recCaDuty['OID'].'">'.trim(($recCaDuty['NAME'])).'</option>';
                        }
                    }
                }
                echo '</select></td></tr>';
                echo '<tr><td class="shrink"></td><td class="expand"><input type="submit" name="finishCA'.$recCa['OID'].'" value="'.trim(htmlentities(_CASE_ABSCHLIESSEN)).'" id="finishCA'.$recCa['OID'].'" /></td></tr>';
                echo '<input type="hidden" name="caOid'.$recCa['OID'].'" value="'.$recCa['OID'].'" />';
                echo '</table>';
            }
        }
        echo '</div>';

        echo '<br>';
    }
} else {
    echo '<br><p style="border:solid thick black;font-weight:bold;font-size:20px;padding:10px" align="center">'.trim(htmlentities(_KEINE_DATEN_VORHANDEN)).$errorHint.'</p>';
}
if ($aktion == 'E') {
    echo '</form>';
}
if ($editNavigation != '') {
    echo '<script language="Javascript">location.href = "'.$editNavigation.'";</script>';
};
?>
</div>
</body>
</html>
<?php
include_once('../system/db_close.php');
?>
