public function onPreInit($param)
 {
     //error_reporting(E_ALL ^ E_NOTICE);
     $request_user = $_GET['user'];
     $request_password = $_GET['pass'];
     $date_from = $_GET['date_from'];
     $date_to = $_GET['date_to'];
     $authManager = $this->Application->getModule('auth');
     if (!$authManager->login($request_user, $request_password)) {
         exit;
     }
     $this->getResponse()->appendHeader("Content-Type:" . $this->header);
     echo '<?xml version="1.0" ?><tm_zeiterfassung>';
     $SQL = "SELECT * FROM tm_zeiterfassung WHERE zeit_date >= '" . $date_from . "' AND zeit_date <= '" . $date_to . "'";
     $Results = ZeiterfassungRecord::finder()->findAllBySQL($SQL);
     foreach ($Results as $Result) {
         echo "<row idtm_zeiterfassung='0" . $Result->idtm_zeiterfassung . "'>";
         echo "<idtm_activity>" . $Result->idtm_activity . "</idtm_activity>";
         echo "<idtm_organisation>" . $Result->idtm_organisation . "</idtm_organisation>";
         echo "<zeit_date>" . $Result->zeit_date . "</zeit_date>";
         echo "<zeit_starttime>" . $Result->zeit_starttime . "</zeit_starttime>";
         echo "<zeit_endtime>" . $Result->zeit_endtime . "</zeit_endtime>";
         echo "<zeit_break>" . $Result->zeit_break . "</zeit_break>";
         echo "<zeit_dauer>" . str_replace('.', ',', $Result->zeit_dauer) . "</zeit_dauer>";
         echo "<idta_kosten_status>" . $Result->idta_kosten_status . "</idta_kosten_status>";
         echo "<zeit_descr><![CDATA[" . $Result->zeit_descr . "]]></zeit_descr>";
         echo "<zeit_abgerechnet>" . $Result->zeit_abgerechnet . "</zeit_abgerechnet>";
         echo "<zeit_checked>" . $Result->zeit_checked . "</zeit_checked>";
         echo "<idtm_prozess>" . $Result->idtm_prozess . "</idtm_prozess>";
         echo "</row>";
     }
     echo '</tm_zeiterfassung>';
     exit;
 }
 public function updateStatusAbgerechnet($sender, $param)
 {
     $ChangeRecord = ZeiterfassungRecord::finder()->findByidtm_zeiterfassung($param->CallbackParameter);
     $ChangeRecord->zeit_abgerechnet = $sender->Checked ? 1 : 0;
     $ChangeRecord->save();
 }
 public function RCSavedButtonClicked($sender, $param)
 {
     $this->calcDauer();
     $tempus = 'RCed' . $this->RCprimarykey;
     if ($this->RCedzeiterfassung_edit_status->Text == '1') {
         $RCEditRecord = ZeiterfassungRecord::finder()->findByPK($this->{$tempus}->Text);
     } else {
         $RCEditRecord = new ZeiterfassungRecord();
     }
     //HIDDEN
     foreach ($this->RChiddenfields as $recordfield) {
         $edrecordfield = 'RCed' . $recordfield;
         $RCEditRecord->{$recordfield} = $this->{$edrecordfield}->Value;
     }
     //DATUM
     foreach ($this->RCdatfields as $recordfield) {
         $edrecordfield = 'RCed' . $recordfield;
         $RCEditRecord->{$recordfield} = date('Y-m-d', $this->{$edrecordfield}->TimeStamp);
     }
     //BOOL
     foreach ($this->RCboolfields as $recordfield) {
         $edrecordfield = 'RCed' . $recordfield;
         $RCEditRecord->{$recordfield} = $this->{$edrecordfield}->Checked ? 1 : 0;
     }
     foreach ($this->RCtimefields as $recordfield) {
         $edrecordfield = 'RCed' . $recordfield;
         $RCEditRecord->{$recordfield} = $this->{$edrecordfield}->Text;
     }
     foreach ($this->RCfields as $recordfield) {
         $edrecordfield = 'RCed' . $recordfield;
         $RCEditRecord->{$recordfield} = $this->{$edrecordfield}->Text;
     }
     $RCEditRecord->save();
     //das fahrtenbuch
     if (count(FahrtenbuchRecord::finder()->findByidtm_zeiterfassung($this->{$tempus}->Text)) > 0) {
         $FahrtenRecord = FahrtenbuchRecord::finder()->findByidtm_zeiterfassung($this->{$tempus}->Text);
         $FahrtenRecord->fahrt_von = $this->fahrt_von->Text;
         $FahrtenRecord->fahrt_nach = $this->fahrt_nach->Text;
         $FahrtenRecord->fahrt_km = $this->fahrt_km->Text;
         $FahrtenRecord->fahrt_status = $this->fahrt_status->Text;
         $FahrtenRecord->save();
     } else {
         $FahrtenRecord = new FahrtenbuchRecord();
         $FahrtenRecord->idtm_zeiterfassung = $RCEditRecord->idtm_zeiterfassung;
         $FahrtenRecord->fahrt_von = $this->fahrt_von->Text;
         $FahrtenRecord->fahrt_nach = $this->fahrt_nach->Text;
         $FahrtenRecord->fahrt_km = $this->fahrt_km->Text;
         $FahrtenRecord->fahrt_status = $this->fahrt_status->Text;
         $FahrtenRecord->save();
     }
     $this->Teddeb_id->Text = $RCEditRecord->idtm_zeiterfassung;
     $this->Teddeb_tabelle->Text = 'tm_zeiterfassung';
     $this->DetailBelegContainer->initParameters();
     $this->DetailBelegContainer->bindDetailBelegListe();
     $this->bindListRCValue();
 }
Ejemplo n.º 4
0
 private function generateZeitVerlaufImage($idtm_activity = 0)
 {
     if ($idtm_activity > 0) {
         $myActInSQL = "(act_lft BETWEEN " . ActivityRecord::finder()->findByPK($idtm_activity)->act_lft . " AND " . ActivityRecord::finder()->findByPK($idtm_activity)->act_rgt . ")";
         $xdata1 = array();
         $xdata2 = array();
         $ytitle = array("Stunden");
         $title = array("Monat");
         $legend = array("verbar", "nicht verbar");
         $ii = 0;
         $sql = "SELECT DATE_FORMAT(zeit_date,'%Y%m') AS zeit_date, SUM(CASE WHEN idta_kosten_status='1' THEN zeit_dauer ELSE 0 END) AS zeit_dauer, SUM(CASE WHEN idta_kosten_status='2' OR idta_kosten_status='3' THEN zeit_dauer ELSE 0 END) AS zeit_break FROM tm_zeiterfassung INNER JOIN tm_activity ON tm_zeiterfassung.idtm_activity = tm_activity.idtm_activity WHERE " . $myActInSQL . " AND YEAR(zeit_date) = YEAR(NOW()) GROUP BY DATE_FORMAT(zeit_date,'%Y-%m') LIMIT 0, 15 ";
         $ActiveRecord = ZeiterfassungRecord::finder()->findAllBySQL($sql);
         if (is_array($ActiveRecord)) {
             foreach ($ActiveRecord as $DetailRecord) {
                 $xdata1[] = "[" . $DetailRecord->zeit_date . "," . $DetailRecord->zeit_dauer . "]";
                 $xdata2[] = "[" . $DetailRecord->zeit_date . "," . $DetailRecord->zeit_break . "]";
                 $ii++;
                 if ($ii > 12) {
                     break;
                 }
             }
             unset($ActiveRecord);
             if (count($xdata1) > 1) {
                 $xdata1 = implode(',', $xdata1);
                 $xdata2 = implode(',', $xdata2);
             }
         }
         if (count($xdata1) >= 1) {
             $this->getPage()->getClientScript()->registerEndScript('xzvi', "drawPFMultiChart('ZeitVerlaufImage',new Array({$xdata1}),new Array({$xdata2}),'line')");
         } else {
             $xdata1[] = "[0,'no Data']";
             $xdata2[] = "[0,'no Data']";
             $this->getPage()->getClientScript()->registerEndScript('xzvi', "drawPFMultiChart('ZeitVerlaufImage',new Array({$xdata1}),new Array({$xdata2}),'line')");
         }
         unset($xdata1, $xdata2);
         $this->generateActivityCookieImage($idtm_activity, $myActInSQL);
         $this->generateActivityTypeCookieImage($idtm_activity, $myActInSQL);
         $this->generateActivityVerlaufImage($idtm_activity, $myActInSQL);
     }
 }