Ejemplo n.º 1
0
 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;
 }