public function updateDBValue($sender, $param) { $MaskField = CustomMaskFieldRecord::finder()->find("cuf_maskenname = ? AND cuf_maskenid = ?", $this->cuf_maskenname->Text, $sender->parent->Id); //als erstes lese ich die Periode aus $Periode = PeriodenRecord::finder()->findByidta_perioden($MaskField->idta_perioden); $w_monat = $Periode->per_intern; $w_jahr = $this->getYearByMonth($w_monat); //auslesen des roots, damit ich den linken und den rechten wert habe... $parent_idtm_struktur = StrukturRecord::finder()->findByidtm_struktur($this->idtm_struktur->Text); //jetzt suche ich die entsprechende dimension innerhalb der selektion $idtm_struktur = StrukturRecord::finder()->find('(struktur_lft BETWEEN ? AND ?) AND idtm_stammdaten = ?', $parent_idtm_struktur->struktur_lft, $parent_idtm_struktur->struktur_rgt, $MaskField->idtm_stammdaten)->idtm_struktur; //hier startet jetzt der Part, wo ich nur eine Periode habe -> entweder SubJahr oder Jahr... $PFBackCalculator = new PFBackCalculator(); $PFBackCalculator->setVariante($MaskField->idta_variante); /* Folgende Parameter sind zur Berechnung der Werte notwendig... * @param idta_periode -> die interne Periodenbezeichnung -> 10001 für 1. Jahr oder 1 für 1 Monat (Bsp) * @param idtm_struktur -> die Struktur ID, auf der die Werte nachher gespreichert werden sollen * @param w_dimkey -> der Schlüssel, der angehängt werden soll... * @param assoc_array(feldbezug=>wert) -> array mit den Werten, die als "neu" betrachtet werden sollen... */ $PFBackCalculator->setStartPeriod($w_monat); $PFBackCalculator->setStartNode($idtm_struktur); //vorbereiten des Wertearrays, damit die bestehenden Werte in der Datenbank, mit den neuen Uerberschrieben werden koennen //jetzt laden wir die einzelnen Werte $NEWWerteRecord = WerteRecord::finder()->findBySql("SELECT w_wert FROM tt_werte WHERE idtm_struktur = '" . $idtm_struktur . "' AND idta_feldfunktion = '" . $MaskField->idta_feldfunktion . "' AND w_jahr = '" . $w_jahr . "' AND w_monat = '" . $w_monat . "' AND w_id_variante = '" . $MaskField->idta_variante . "' LIMIT 1"); $w_wert[$MaskField->idta_feldfunktion] = $this->cleanInputValue($sender->Text, $MaskField, 1); $PFBackCalculator->setNewValues($w_wert); $PFBackCalculator->run(); }
public function pageAction($sender, $param) { $CMFRecord = CustomMaskFieldRecord::finder()->find("cuf_maskenname = ? AND cuf_maskenid = ?", $this->page->cuf_maskenname->Text, $this->Id); $CMFRecord->idta_variante = $this->idta_variante->Text; $CMFRecord->idta_feldfunktion = $this->idta_feldfunktion->Text; $CMFRecord->idta_perioden = $this->idta_perioden->Text; $CMFRecord->idtm_stammdaten = $this->idtm_stammdaten->Text; $CMFRecord->cuf_numberformat = $this->cuf_numberformat->Text; $CMFRecord->save(); }