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(); }
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); } }
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"); } }