function save($data) { $this->convertTimeFormat($data['event']['timeformat'], $data['event']['dtstarttime']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['dtendtime']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['latefeetime']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['bird_discount_time']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['starttime']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['cut_off_time']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['change_time']); $this->convertTimeFormat($data['event']['timeformat'], $data['event']['cancel_time']); static $secondpass = 0; $create_new_repeats = true; $repeat_changed = true; if ($data['event']['slabId'] != "") { $this->load($data['event']['slabId']); if (isset($this->repetition) && count($this->repetition) && $this->repetition !== false && !intval($this->parent_id)) { if (!$this->validDateChange($data)) { $error = JText::_("DT_REPTITIONS_NOT_VALID"); $error = JText::_('DT_REGISTRATION_EXISTS'); $create_new_repeats = true; //pr($create_new_repeats); } else { } $repeat_changed = true; pr($this->comparerepeat($data)); if ($this->comparerepeat($data)) { $repeat_changed = false; } else { } } $created = false; } else { $my =& JFactory::getUser(); $data['event']['ordering'] = $this->getNextOrder(); //$data['event']['user_id'] = $my->id; $created = true; } //echo "<pre>"; //var_export($_POST); //$this->bind($data['event']); //prd($data['event']); unset($this->repetition); unset($this->error); parent::save($data['event']); if (isset($error)) { $this->error = $error; } $this->TablePrerequisitecategory->event_id = $this->slabId; $this->removeprequisitecategory(); if (isset($data['prerequisite_category'])) { $this->TablePrerequisitecategory->saveAll($data['prerequisite_category']); } $this->TablePrerequisite->event_id = $this->slabId; $this->removeprequisite(); if (isset($data['prerequisite'])) { $this->TablePrerequisite->saveAll($data['prerequisite']); } $this->TableGroup->slabId = $this->slabId; $this->removegroups(); $this->TableGroup->saveAll($data['group']); $this->TableEventdiscountcode->event_id = $this->slabId; if (isset($data['discountcode'])) { $this->removediscountcode(); $this->TableEventdiscountcode->saveAll($data['discountcode']); } $this->TableEventfield->event_id = $this->slabId; $this->removefields(); $this->TableEventfield->saveAll($data['field']); $this->TableEventfile->event_id = $this->slabId; $this->save_files(); $this->copy_files(); $this->TableEventfeeorder->eventId = $this->slabId; $this->TableEventfeeorder->savebasictypes(); if (!isset($this->parent_slabId)) { $this->parent_slabId = $this->slabId; } // create repeats if (!$create_new_repeats) { $secondpass = 1; } pr($data['event']['repeatType']); pr($secondpass); pr($create_new_repeats); pr($repeat_changed); if (isset($data['event']['repeatType']) && $data['event']['repeatType'] != 'norepeat' && $secondpass === 0 && $create_new_repeats && $repeat_changed && !intval($this->parent_id)) { $data['event']['slabId'] = ""; if (!isset($this->parent_dtstart)) { $this->parent_dtstart = $this->dtstart; } $secondpass = 1; $repetitions = $this->createRepetitions($data); pr($this->slabId); $data['event']['parent_id'] = $this->slabId; $repetitionGroup[] = $this->slabId; $this->removeRepetitions(); //prd($data); $this->slabId = ""; foreach ($repetitions as $repetition) { $repeatevent = new TableEvent($this->_db); $data['event']['dtstart'] = $repetition['dtstart']; $repeatdata = $data; $this->shiftDates($repeatdata['event']); $repeatdata['event']['repeatType'] = 'norepeat'; $repeatevent->save($repeatdata); $repetitionGroup[] = $repeatevent->slabId; unset($repeatdata); unset($repeatevent); } $this->grouprepetitions($repetitionGroup, $data['event']); } if (!$created) { $this->slabId = $this->parent_slabId; $this->setChilds(); if (is_array($this->childs) && count($this->childs) && !intval($this->parent_id)) { foreach ($this->childs as $child) { $repeatupdate = new TableEvent($this->_db); $repeatupdate->slabId = $child->slabId; foreach ($this->repeatFields as $field) { $data['event'][$field] = $child->{$field}; } $repeatupdate->save($data); $arr[] = $repeatupdate->slabId; unset($repeatupdate); } } } return true; }