public function saveValues() { //if(count(WorkflowRecord::finder()->find("wfl_modul='idtm_struktur' AND wfl_id=? AND wfl_status=?",$this->STRcurrentID,$this->wfl_status->Text))==0){ $WFRecord = new WorkflowRecord(); $WFRecord->wfl_modul = "idtm_struktur"; $WFRecord->wfl_id = $this->STRcurrentID; $WFRecord->wfl_status = $this->wfl_status->Text; $WFRecord->idtm_user = $this->User->GetUserId($this->User->Name); $WFRecord->idta_variante = $this->GLOBALVARIANTE; $WFRecord->idta_periode = $this->Periode; $WFRecord->save(); //} $myDimKey = $this->build_DIMKEY($this->STRcurrentID); if ($this->SinglePeriode == 0 and count($this->Perioden) > 1) { $this->SaveButton->Text = "saved"; $jahr = 0; $monat = 0; //hier werden jetzt die einzelnen Werte geladen foreach ($this->Perioden as $key => $value) { if (preg_match('/^\\d\\d\\d\\d/', $value)) { $jahr = $key; $monat = $key; } else { $jahr = $this->getYearByMonth($key); $monat = $key; } //jetzt laden wir die einzelnen Werte foreach ($this->FunktionsFelder as $funkID) { $myUniquID = "RLIQ" . 'XXX' . $jahr . 'XXX' . $monat . 'XXX' . $this->piq_idta_struktur_type . 'XXX' . $funkID . 'XXX' . $this->STRcurrentID; $NEWWerteRecord = WerteRecord::finder()->findBySql("SELECT * FROM tt_werte WHERE idtm_struktur = '" . $this->STRcurrentID . "' AND idta_feldfunktion = '" . $funkID . "' AND w_jahr = '" . $jahr . "' AND w_monat = '" . $monat . "' AND w_id_variante = '" . $this->GLOBALVARIANTE . "' LIMIT 1"); $NEWWerteRecord->w_wert = $this->page->ACTPanel->FindControl($myUniquID)->Text; $NEWWerteRecord->w_id_variante = $this->GLOBALVARIANTE; $NEWWerteRecord->w_dimkey = $myDimKey; $NEWWerteRecord->save(); } } foreach ($this->Perioden as $key => $value) { if (preg_match('/^\\d\\d\\d\\d/', $value)) { //echo "Hier startet der Backcalculator"; $myRunner = new PFBackCalculator(); $myRunner->setVariante($this->GLOBALVARIANTE); $myRunner->runStructureCollector($this->STRcurrentID, $key, $this->GLOBALVARIANTE); } } } else { foreach ($this->Perioden as $key => $value) { //hier laden wir die variablen, die wir benoetigen um die letzten Werte auszulesen if (preg_match('/^\\d\\d\\d\\d/', $value)) { $jahr = $key; $monat = $key; } else { $jahr = $this->getYearByMonth($key); $monat = $key; } //hier startet jetzt der Part, wo ich nur eine Periode habe -> entweder SubJahr oder Jahr... $PFBackCalculator = new PFBackCalculator(); /* 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($monat); $PFBackCalculator->setStartNode($this->STRcurrentID); //vorbereiten des Wertearrays, damit die bestehenden Werte in der Datenbank, mit den neuen Uerberschrieben werden koennen //jetzt laden wir die einzelnen Werte foreach ($this->FunktionsFelder as $funkID) { $myUniquID = "RLIQ" . 'XXX' . $jahr . 'XXX' . $monat . 'XXX' . $this->piq_idta_struktur_type . 'XXX' . $funkID . 'XXX' . $this->STRcurrentID; $NEWWerteRecord = WerteRecord::finder()->findBySql("SELECT * FROM tt_werte WHERE idtm_struktur = '" . $this->STRcurrentID . "' AND idta_feldfunktion = '" . $funkID . "' AND w_jahr = '" . $jahr . "' AND w_monat = '" . $monat . "' AND w_id_variante = '" . $this->GLOBALVARIANTE . "' LIMIT 1"); if ($NEWWerteRecord->w_wert != $this->page->ACTPanel->FindControl($myUniquID)->Text) { $w_wert[$funkID] = $this->page->ACTPanel->FindControl($myUniquID)->Text; } } $PFBackCalculator->setNewValues($w_wert); $PFBackCalculator->setVariante($this->GLOBALVARIANTE); $PFBackCalculator->run(); $this->SaveButton->Text = "saved"; } } }
private function saveValues($options = "ALL") { $myDimKey = $this->build_DIMKEY($this->StartNode); $jahr = 0; $monat = 0; //hier werden jetzt die einzelnen Werte geladen foreach ($this->Perioden as $tmpPerioden) { if (preg_match('/^\\d\\d\\d\\d/', $tmpPerioden[1])) { $jahr = $tmpPerioden[0]; $monat = $jahr; } else { $jahr = $this->getYearByMonth($tmpPerioden[0]); $monat = $tmpPerioden[0]; } //jetzt laden wir die einzelnen Werte foreach ($this->FunktionsFelder as $funkID) { $myUniquID = $jahr . 'xxx' . $monat . 'xxx' . $funkID . 'xxx' . $this->StartNode; $NEWWerteRecord = WerteRecord::finder()->findBySql("SELECT * FROM tt_werte WHERE idtm_struktur = '" . $this->StartNode . "' AND idta_feldfunktion = '" . $funkID . "' AND w_jahr = '" . $jahr . "' AND w_monat = '" . $monat . "' AND w_id_variante = '" . $this->GLOBALVARIANTE . "' LIMIT 1"); if (count($NEWWerteRecord) == 1) { $NEWWerteRecord->w_wert = isset($this->TTWERTE[$myUniquID]) ? $this->TTWERTE[$myUniquID] : 0; $NEWWerteRecord->w_id_variante = $this->GLOBALVARIANTE; $NEWWerteRecord->w_dimkey = $myDimKey; $NEWWerteRecord->save(); } else { $this->init_tt_werte($this->StartNode, $funkID, $jahr, $monat); $NEWWerteRecord = WerteRecord::finder()->findBySql("SELECT * FROM tt_werte WHERE idtm_struktur = '" . $this->StartNode . "' AND idta_feldfunktion = '" . $funkID . "' AND w_jahr = '" . $jahr . "' AND w_monat = '" . $monat . "' AND w_id_variante = '" . $this->GLOBALVARIANTE . "' LIMIT 1"); $NEWWerteRecord->w_wert = isset($this->TTWERTE[$myUniquID]) ? $this->TTWERTE[$myUniquID] : 0; $NEWWerteRecord->w_id_variante = $this->GLOBALVARIANTE; $NEWWerteRecord->w_dimkey = $myDimKey; $NEWWerteRecord->save(); } } //echo "SAVER"; } if ($options == "ALL") { foreach ($this->Perioden as $tmpPeriode) { if (preg_match('/^\\d\\d\\d\\d/', $tmpPeriode[0])) { $myRunner = new PFBackCalculator(); $myRunner->GLOBALVARIANTE = $this->GLOBALVARIANTE; $myRunner->runStructureCollector($this->StartNode, $tmpPeriode[0], $this->GLOBALVARIANTE); } } } }