/**
  * function createNewEntry
  * <pre>
  * Creates a new table entry in the DB for this object to manage.
  * </pre>
  * @param $doAllowPrimaryKeyUpdate [BOOL] allow insertion of primary key 
  * value if present.
  * @return [void]
  */
 function createNewEntry($doAllowPrimaryKeyUpdate = false)
 {
     parent::createNewEntry($doAllowPrimaryKeyUpdate);
     if ($this->isVolumePriceRule() == true) {
         // create a record for tracking whether a volume rule is active
         $activeRule = new RowManager_ActiveRuleManager($this->getID());
         $setRecord = array();
         $setRecord['pricerules_id'] = $this->getID();
         $setRecord['is_active'] = RowManager_ActiveRuleManager::IS_FALSE;
         // default value
         $setRecord['is_recalculated'] = RowManager_ActiveRuleManager::IS_TRUE;
         // default value
         $activeRule->loadFromArray($setRecord);
         $activeRule->createNewEntry(true);
     }
 }
 /**
  * function createNewEntry
  * <pre>
  * Creates a new table entry in the DB for this object to manage.
  * </pre>
  * @param $doAllowPrimaryKeyUpdate [BOOL] allow insertion of primary key 
  * value if present.
  * @return [void]
  */
 function createNewEntry($doAllowPrimaryKeyUpdate = false)
 {
     parent::createNewEntry($doAllowPrimaryKeyUpdate);
     //$ccTransID = $this->getID();
     $values = $this->getArrayOfValues();
     // 	    echo "<pre>".print_r($values,true)."</pre>";
     if (isset($values['reg_id'])) {
         // update balance owing column in cim_reg_registration table
         $singleReg = new RowManager_RegistrationManager($values['reg_id']);
         // 		    $singleReg_list = $singleReg->getListIterator();
         // 		    $singleReg_array = $singleReg_list->getDataList();
         //
         // 		    reset($singleReg_array);
         // 		    $record = current($singleReg_array);
         // 		    $oldBalance = $record['registration_balance'];
         $balanceGetter = new FinancialTools();
         $balance = array();
         // 			 $balance['registration_balance'] = $oldBalance - $record['cctransaction_amount'];
         $balance['registration_balance'] = $balanceGetter->simpleCalcBalanceOwing($values['reg_id']);
         $singleReg->loadFromArray($balance);
         $singleReg->updateDBTable();
     }
 }
Esempio n. 3
0
 /**
  * function createNewEntry
  * <pre>
  * Creates a new row entry in the DB table for this object to manage. It 
  * also updates the Xlation tabel to mark the new entry as needing 
  * translation.
  * </pre>
  * @param $doAllowPrimaryKeyUpdate [BOOL] allow insertion of primary key 
  * @param $shouldIgnoreXlation [BOOL] allow insertion of primary key 
  * value if present.
  * @return [void]
  */
 function createNewEntry($doAllowPrimaryKeyUpdate = false, $shouldIgnoreXlation = false)
 {
     // make sure label is translated into UnicodeEntities
     $data = $this->getLabel();
     $newData = Unicode_utf8ToUnicodeEntities($data);
     $this->setLabel($newData);
     parent::createNewEntry($doAllowPrimaryKeyUpdate);
     if (!$shouldIgnoreXlation) {
         $currentPageID = $this->getPageID();
         $currentKey = $this->getKey();
         $currentLanguageID = $this->getLanguageID();
         $xlationManager = new RowManager_XLationManager();
         // If there are no other pageID + labelKey entries like this one
         // then we need to add xlation entries for all other languages.
         $condition = 'page_id=' . $currentPageID;
         if ($this->isUniqueFieldValue($currentKey, 'label_key', $condition)) {
             $xlationManager->setLabelID($this->getID());
             // for each other language in site
             $languageManager = new RowManager_LanguageManager();
             $languageList = $languageManager->getListIterator();
             $languageList->setFirst();
             while ($language = $languageList->getNext()) {
                 $newLanguageID = $language->getID();
                 if ($newLanguageID != $currentLanguageID) {
                     // Add Xlation Entry
                     $xlationManager->setLanguageID($newLanguageID);
                     $xlationManager->createNewEntry();
                 }
             }
             // next language
         } else {
             // Since there are other label id's, then look to see
             // if the current entry can substitute for an xlation request
             // for each label with matching PageID & Key
             $labelManager = new RowManager_MultilingualLabelManager();
             $labelManager->setPageID($currentPageID);
             $labelManager->setKey($currentKey);
             $labelList = $labelManager->getListIterator();
             $labelList->setFirst();
             while ($label = $labelList->getNext()) {
                 // delete any xlation entry with current language_id &
                 // matching label_id
                 if ($xlationManager->loadByLabelAndLanguage($label->getID(), $currentLanguageID)) {
                     $xlationManager->deleteEntry();
                 }
             }
             // next label
         }
         // end if isUnique
     }
     // end if !shouldIgnoreXlation
 }