public function SSSavedButtonClicked($sender, $param)
 {
     $tempus = 'SSed' . $this->SSprimarykey;
     if ($this->SSedstrukturstruktur_edit_status->Text == '1') {
         $SSeditRecord = StrukturStrukturRecord::finder()->findByPK($this->{$tempus}->Text);
     } else {
         $SSeditRecord = new StrukturStrukturRecord();
     }
     //HIDDEN
     foreach ($this->SShiddenfields as $recordfield) {
         $edrecordfield = 'SSed' . $recordfield;
         $SSeditRecord->{$recordfield} = $this->{$edrecordfield}->Value;
     }
     //DATUM
     foreach ($this->SSdatfields as $recordfield) {
         $edrecordfield = 'SSed' . $recordfield;
         $SSeditRecord->{$recordfield} = date('Y-m-d', $this->{$edrecordfield}->TimeStamp);
     }
     //BOOL
     foreach ($this->SSboolfields as $recordfield) {
         $edrecordfield = 'SSed' . $recordfield;
         $SSeditRecord->{$recordfield} = $this->{$edrecordfield}->Checked ? 1 : 0;
     }
     foreach ($this->SSfields as $recordfield) {
         $edrecordfield = 'SSed' . $recordfield;
         $SSeditRecord->{$recordfield} = $this->{$edrecordfield}->Text;
     }
     $SSeditRecord->save();
     $this->bindListStrukturStrukturValue();
 }
Exemplo n.º 2
0
 public static function initStrukturLink()
 {
     //als erstes holen wir uns die Definitionen aus ta_stammdaten_link
     $StammdatenLinks = StammdatenLinkRecord::finder()->findAll();
     foreach ($StammdatenLinks as $StammdatenLink) {
         //als nächstes hole ich mit die Werte der Dimensionsgruppe in der gesucht werden soll, diese gilt dann als suchkriterium...
         $StammdatenGroups = StammdatenRecord::finder()->findAllByidta_stammdaten_group($StammdatenLink->idta_stammdaten_group);
         foreach ($StammdatenGroups as $StammdatenGroup) {
             //als nächstes muss ich in der Struktur suchen, welcher Bereich für die jeweiligen Kennungen gilt...
             $StrukturWechselKnoten = StrukturRecord::finder()->findByidtm_stammdaten($StammdatenGroup->idtm_stammdaten);
             if (is_object($StrukturWechselKnoten)) {
                 //da lft und rgt jetzt bekannt sind, kann ich mit dem folgenden SQL die entsprechenden Elemente fuer idtm_str_from und idtm_str_to finden
                 $SQL = "SELECT idtm_struktur FROM tm_struktur WHERE (struktur_lft BETWEEN " . $StrukturWechselKnoten->struktur_lft . " AND " . $StrukturWechselKnoten->struktur_rgt . ") AND idtm_stammdaten='" . $StammdatenLink->idtm_stammdaten_from . "'";
                 $idtm_struktur_from = StrukturRecord::finder()->findBySql($SQL)->idtm_struktur;
                 $SQL = "SELECT idtm_struktur FROM tm_struktur WHERE (struktur_lft BETWEEN " . $StrukturWechselKnoten->struktur_lft . " AND " . $StrukturWechselKnoten->struktur_rgt . ") AND idtm_stammdaten='" . $StammdatenLink->idtm_stammdaten_to . "'";
                 $idtm_struktur_to = StrukturRecord::finder()->findBySql($SQL)->idtm_struktur;
                 //jetzt haben wir alle informationen um den Datensatz zu schreiben
                 $TestRecord = StrukturStrukturRecord::finder()->count("idtm_struktur_from = ? AND idtm_struktur_to = ? AND idta_feldfunktion = ?", $idtm_struktur_from, $idtm_struktur_to, $StammdatenLink->idta_feldfunktion_from);
                 if ($TestRecord == 1) {
                     $ChangeRecord = StrukturStrukturRecord::finder()->find("idtm_struktur_from = ? AND idtm_struktur_to = ? AND idta_feldfunktion = ?", $idtm_struktur_from, $idtm_struktur_to, $StammdatenLink->idta_feldfunktion_from);
                 } else {
                     $ChangeRecord = new StrukturStrukturRecord();
                 }
                 $ChangeRecord->idtm_struktur_from = $idtm_struktur_from;
                 $ChangeRecord->idtm_struktur_to = $idtm_struktur_to;
                 $ChangeRecord->idta_feldfunktion = $StammdatenLink->idta_feldfunktion_from;
                 $ChangeRecord->save();
                 unset($TestRecord);
                 unset($ChangeRecord);
             }
         }
         unset($StammdatenGroups);
     }
 }
Exemplo n.º 3
0
 public function runStructureCollector($idtm_struktur, $periode = '10001', $variante = '1')
 {
     //diese info benoetige ich, damit keine doppelten felder geladen werden
     $existingFieldfunktionen = array();
     $existingFieldfunktionen = $this->FunktionsFelder;
     $Records = StrukturStrukturRecord::finder()->findAllBySQL("SELECT idtm_struktur_to FROM tm_struktur_tm_struktur WHERE idtm_struktur_from = '" . $idtm_struktur . "' GROUP BY idtm_struktur_to");
     $counter = 0;
     foreach ($Records as $Record) {
         //leeren der bestehenden Funktionsfelder
         $this->FunktionsFelder = array();
         $counter++;
         $this->TTWERTE = array();
         $this->WerteListe = array();
         //hier leere ich das Array, sonst klappt das nicht
         $Company = $this->findFirstCompany($Record->idtm_struktur_to);
         $counter == 1 ? $this->setStartNode($Company) : '';
         $counter == 1 ? $this->setStartPeriod($periode) : '';
         //hier muss ich checken, ob aus einer struktur 2 werte auf den gleichen Punkt verweisen...
         foreach (StrukturStrukturRecord::finder()->findAllByidtm_struktur_to($Record->idtm_struktur_to) as $temp) {
             array_push($this->FunktionsFelder, $temp->idta_feldfunktion);
         }
         //here we run the SQL-Statement
         $this->buildStructureCollectorSQL($Record->idtm_struktur_to);
         $this->setStartNode($Record->idtm_struktur_to);
         //diese info benoetige ich, damit keine doppelten felder geladen werden
         $this->FunktionsFelder = $existingFieldfunktionen;
         $command = $this->DBConnection->createCommand($this->mySQL);
         $dataReader = $command->query();
         $this->WerteListe = $dataReader->readAll();
         //hier befuellen wir den ram record
         $this->TTWERTE = array();
         //DB: leeres array print_r($this->TTWERTE);
         $this->initTTWerte($Record->idtm_struktur_to, StrukturRecord::finder()->findByPK($Record->idtm_struktur_to)->idta_struktur_type);
         $Result = StrukturRecord::finder()->findByPK($Record->idtm_struktur_to);
         $SQL = "SELECT * FROM ta_feldfunktion WHERE idta_struktur_type = '" . $Result->idta_struktur_type . "' AND ff_type='3'";
         $FieldToChange = FeldfunktionRecord::finder()->findBySQL($SQL);
         foreach ($this->Perioden as $tmpPeriode) {
             if ($tmpPeriode[0] > 10000) {
                 $jahr = $tmpPeriode[0];
                 $monat = $tmpPeriode[0];
             } else {
                 $jahr = $this->getYearByMonth($tmpPeriode[0]);
                 $monat = $tmpPeriode[0];
             }
             //$this->valueChanged($jahr,$monat,$Result->idta_struktur_type,$FieldToChange->idta_feldfunktion,$Record->idtm_struktur_to,$this->WerteListe[0][$monat]);
             $this->update_w_wert($jahr, $monat, $FieldToChange->idta_feldfunktion, $Record->idtm_struktur_to, $this->WerteListe[0][$monat]);
         }
         $this->mySQL = '';
         //former saveValues()
         $this->valueChanged($jahr, $jahr, $Result->idta_struktur_type, $FieldToChange->idta_feldfunktion, $Record->idtm_struktur_to, $this->WerteListe[0][$jahr]);
         $this->check_collector($FieldToChange->idta_feldfunktion, $jahr, $jahr, $Record->idtm_struktur_to);
         $this->saveValues("NOSC");
     }
 }