function endItem()
 {
     if ($this->_is_item_finished !== TRUE) {
         if ($this->_item_obj != NULL) {
             // instance was not closed, close it now!
             if ($this->_is_item_instance) {
                 $this->_is_item_instance = FALSE;
             }
             // if not item instance, create one
             if (is_empty_array($this->_instance_item_obj_rs)) {
                 $this->startItemInstance();
                 $this->endItemInstance();
             }
             // The item is finished, no more additions are allowed, until the
             // startItem method is called again.
             $this->_is_item_finished = TRUE;
             $item_vars = $this->__getItemHTTPVars($this->_item_obj);
             $item_vars['trial_run'] = $this->_cfg_is_trial_run ? 'true' : 'false';
             $item_vars['confirmed'] = $this->_cfg_ignore_duplicate_title ? 'true' : 'false';
             $item_r = array(s_item_type => $this->_item_obj->getItemType(), owner_id => $this->getOwner(), title => $this->_item_obj->getTitle());
             $instance_valid = FALSE;
             $errors = array();
             $return_val = handle_item_insert($item_r, $item_vars, $errors);
             if ($return_val === TRUE) {
                 // store item id for later use
                 if ($this->_cfg_is_trial_run !== TRUE && is_numeric($item_r['item_id'])) {
                     $this->_item_id_list_r[] = $item_r['item_id'];
                 }
                 for ($i = 0; $i < count($this->_instance_item_obj_rs); $i++) {
                     $instanceObj = $this->_instance_item_obj_rs[$i];
                     // if status type is to be overriden, do it here!
                     if ($this->_cfg_override_status_type) {
                         $status_type_r = $this->_cfg_default_status_type_r;
                     } else {
                         $status_type_r = fetch_status_type_r($instanceObj->getStatusType());
                         // if illegal type, then override by default.
                         if ($status_type_r['closed_ind'] == 'Y') {
                             $status_type_r = $this->_cfg_default_status_type_r;
                         }
                     }
                     $item_r['owner_id'] = $instanceObj->getOwnerID();
                     $item_r['s_status_type'] = $status_type_r['s_status_type'];
                     $instance_vars = $this->__getItemHTTPVars($instanceObj);
                     // we are missing instance attributes if already set in item
                     $instance_vars = array_merge($instance_vars, $item_vars);
                     $return_val = handle_item_instance_insert($item_r, $status_type_r, $item_vars, $errors);
                     if ($return_val !== FALSE) {
                         $item_r['instance_no'] = $this->_cfg_is_trial_run ? $i + 1 : $item_r['instance_no'];
                         //$instanceObj->setInstanceNo($this->_cfg_is_trial_run?$i+1:$item_r['instance_no']);
                         $this->__listing_item_import_result_row($item_r, $status_type_r, $instance_vars, NULL);
                         // indicates at least one instance inserted.
                         $instance_valid = TRUE;
                     } else {
                         $item_r['instance_no'] = $this->_cfg_is_trial_run ? $i + 1 : $item_r['instance_no'];
                         //$instanceObj->setInstanceNo($this->_cfg_is_trial_run?$i+1:$item_r['instance_no']);
                         $this->__listing_item_import_result_row($item_r, $status_type_r, $instance_vars, $errors);
                     }
                 }
             } else {
                 $this->__listing_item_import_result_row($item_r, NULL, $item_vars, $errors);
             }
             $this->_item_obj = NULL;
             // end of parent item.
             return TRUE;
         } else {
             $this->_item_obj = NULL;
             $this->addError('endItem', get_opendb_lang_var('undefined_error'));
             return FALSE;
         }
     } else {
         // if($this->_is_item_finished !== TRUE)
         return FALSE;
     }
 }
Example #2
0
 /**
  * A simple field mask parser, which only supports 'if' and 'switch' and config_var_key(...)
  * config_var_value(...)
  */
 function _expand_field_mask(&$values_rs, $mask, &$mask_element_rs, $config_var_rs = NULL)
 {
     // If no parsed mask elements, then return $mask.
     if (is_empty_array($mask_element_rs)) {
         // Only return mask if there is something to return.
         if (strlen($mask) > 0) {
             return $mask;
         } else {
             return NULL;
         }
     }
     for ($i = 0; $i < count($mask_element_rs); $i++) {
         // no array set, or simple attribute variable 's_attribute_type.option' not set.
         if (is_not_empty_array($mask_element_rs[$i]) && !isset($mask_element_rs[$i]['s_attribute_type']) && !isset($mask_element_rs[$i]['option'])) {
             // Replace the array index.
             switch ($mask_element_rs[$i]['type']) {
                 case 'ifdef':
                     // ifdef(s_attribute_type, "if_mask"[, "else_mask"])
                     if (isset($values_rs[$mask_element_rs[$i]['varname']])) {
                         $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['if_mask'], $mask_element_rs[$i]['if_mask_elements'], $config_var_rs);
                     } else {
                         if (strlen($mask_element_rs[$i]['else_mask']) > 0) {
                             $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['else_mask'], $mask_element_rs[$i]['else_mask_elements'], $config_var_rs);
                         } else {
                             $value = NULL;
                         }
                     }
                     break;
                 case 'if':
                     // if(varname[<|<=|>=|>|==|!=]value, "if_mask"[, "else_mask"])
                     $value = $values_rs[$mask_element_rs[$i]['varname']];
                     // The attribute is defined, so now lets do the comparison.
                     if (!empty($value)) {
                         if ($this->_test_if_condition($value, $mask_element_rs[$i]['op'], $mask_element_rs[$i]['value'])) {
                             $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['if_mask'], $mask_element_rs[$i]['if_mask_elements'], $config_var_rs);
                         } else {
                             if (strlen($mask_element_rs[$i]['else_mask']) > 0) {
                                 $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['else_mask'], $mask_element_rs[$i]['else_mask_elements'], $config_var_rs);
                             } else {
                                 $value = NULL;
                             }
                         }
                     } else {
                         $value = NULL;
                     }
                     break;
                 case 'switch':
                     $value = $values_rs[$mask_element_rs[$i]['varname']];
                     // The attribute is defined, so now lets do the comparison.
                     if (!empty($value)) {
                         if (is_not_empty_array($mask_element_rs[$i]['cases'])) {
                             for ($j = 0; $j < count($mask_element_rs[$i]['cases']); $j++) {
                                 // if a match.
                                 if (strcmp($value, $mask_element_rs[$i]['cases'][$j]['case']) === 0) {
                                     $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['cases'][$j]['result']['mask'], $mask_element_rs[$i]['cases'][$j]['result']['mask_elements'], $config_var_rs);
                                     break 2;
                                     // break out of switch
                                 }
                             }
                         }
                         if (is_not_empty_array($mask_element_rs[$i]['default_case'])) {
                             $value = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['default_case']['mask'], $mask_element_rs[$i]['cases']['default_case']['mask_elements'], $config_var_rs);
                         }
                     } else {
                         $value = NULL;
                     }
                     break;
                 case 'config_var_key':
                     // config_var_key(name, value)
                     if (is_not_empty_array($config_var_rs) && is_array($config_var_rs[$mask_element_rs[$i]['name']])) {
                         if (is_array($mask_element_rs[$i]['value'])) {
                             $srchValue = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['value']['mask'], $mask_element_rs[$i]['value']['elements'], $config_var_rs);
                         } else {
                             $srchValue = $mask_element_rs[$i]['value'];
                         }
                         $tmpValue = array_search2($srchValue, $config_var_rs[$mask_element_rs[$i]['name']]);
                         if ($tmpValue !== FALSE) {
                             $value = $tmpValue;
                         } else {
                             $value = '';
                         }
                     } else {
                         $value = '';
                     }
                     break;
                 case 'config_var_value':
                     // config_var_value(name, keyid)
                     if (is_not_empty_array($config_var_rs) && is_array($config_var_rs[$mask_element_rs[$i]['name']])) {
                         if (is_array($mask_element_rs[$i]['key'])) {
                             $srchKey = $this->_expand_field_mask($values_rs, $mask_element_rs[$i]['key']['mask'], $mask_element_rs[$i]['key']['elements'], $config_var_rs);
                         } else {
                             $srchKey = $mask_element_rs[$i]['key'];
                         }
                         if (isset($config_var_rs[$mask_element_rs[$i]['name']][$srchKey])) {
                             $value = $config_var_rs[$mask_element_rs[$i]['name']][$srchKey];
                         } else {
                             $value = '';
                         }
                     } else {
                         $value = '';
                     }
                     break;
                 default:
                     // No valid function specified, so set to empty.
                     $value = '';
             }
         } else {
             // in the case of this function, all {variables} are not actually s_attribute_type references, but
             // references to key's in the $values_rs array, thus we ignore the 'option' and assume 'value' in
             // every case.
             if (is_array($mask_element_rs[$i]) && isset($mask_element_rs[$i]['s_attribute_type']) && isset($mask_element_rs[$i]['option'])) {
                 $value = ifempty($values_rs[$mask_element_rs[$i]['s_attribute_type']], $values_rs[strtolower($mask_element_rs[$i]['s_attribute_type'])]);
             } else {
                 $value = $values_rs[$mask_element_rs[$i]];
             }
         }
         // Replace the array index.
         $mask = str_replace('{' . $i . '}', $value, $mask);
     }
     // Now return expanded subject.
     return $mask;
 }
Example #3
0
     } else {
         $page_title = get_opendb_lang_var('my_history');
         if (is_numeric($listingObject->getItemsPerPage())) {
             $listingObject->setTotalItems(fetch_my_history_item_cnt(get_opendb_session_var('user_id')));
             if ($listingObject->getTotalItemCount() > 0) {
                 $result = fetch_my_history_item_rs(get_opendb_session_var('user_id'), $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder(), $listingObject->getStartIndex(), $listingObject->getItemsPerPage());
             }
         } else {
             $result = fetch_my_history_item_rs(get_opendb_session_var('user_id'), $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder());
         }
     }
 } else {
     if (get_opendb_config_var('borrow', 'reserve_basket') !== FALSE && ($HTTP_VARS['op'] == 'my_reserve_basket' || $HTTP_VARS['op'] == 'update_my_reserve_basket' || $HTTP_VARS['op'] == 'delete_from_my_reserve_basket')) {
         if ($HTTP_VARS['op'] == 'update_my_reserve_basket' || $HTTP_VARS['op'] == 'delete_from_my_reserve_basket') {
             // We might be reserving a single item only - item_display.php would initiate this operation
             if (is_empty_array($HTTP_VARS['item_id_instance_no']) && is_numeric($HTTP_VARS['item_id']) && is_numeric($HTTP_VARS['instance_no'])) {
                 // Set it up so it looks as if an item was previously checked, but has now been unchecked! - called from item_display.php
                 if ($HTTP_VARS['op'] == 'delete_from_my_reserve_basket') {
                     $sequence_number = fetch_borrowed_item_seq_no($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], 'T', get_opendb_session_var('user_id'));
                     if ($sequence_number !== FALSE) {
                         delete_cart_item($sequence_number);
                     }
                 } else {
                     if (!is_item_in_reserve_basket($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], get_opendb_session_var('user_id'))) {
                         // else add item to session array.
                         insert_cart_item($HTTP_VARS['item_id'], $HTTP_VARS['instance_no'], get_opendb_session_var('user_id'));
                     }
                 }
             } else {
                 if ($HTTP_VARS['op'] == 'update_my_reserve_basket' && is_not_empty_array($HTTP_VARS['item_id_instance_no'])) {
                     // initiated from listings.php page!
Example #4
0
 if (strlen($HTTP_VARS['s_field_type']['TITLE']) == 0 || !is_exists_attribute_type($HTTP_VARS['s_field_type']['TITLE'])) {
     $missing_s_field_types[] = 'TITLE';
 }
 if (strlen($HTTP_VARS['s_field_type']['STATUSCMNT']) == 0 || !is_exists_attribute_type($HTTP_VARS['s_field_type']['STATUSCMNT'])) {
     $missing_s_field_types[] = 'STATUSCMNT';
 }
 if (strlen($HTTP_VARS['s_field_type']['STATUSTYPE']) == 0 || !is_exists_attribute_type($HTTP_VARS['s_field_type']['STATUSTYPE'])) {
     $missing_s_field_types[] = 'STATUSTYPE';
 }
 if (strlen($HTTP_VARS['s_field_type']['CATEGORY']) == 0 || !is_exists_attribute_type($HTTP_VARS['s_field_type']['CATEGORY'])) {
     $missing_s_field_types[] = 'CATEGORY';
 }
 if (get_opendb_config_var('borrow', 'enable') !== FALSE && get_opendb_config_var('borrow', 'duration_support') !== FALSE && (strlen($HTTP_VARS['s_field_type']['DURATION']) == 0 || !is_exists_attribute_type($HTTP_VARS['s_field_type']['DURATION']))) {
     $missing_s_field_types[] = 'DURATION';
 }
 if (is_empty_array($missing_s_field_types)) {
     if (insert_s_item_type($HTTP_VARS['s_item_type'], $HTTP_VARS['order_no'], $HTTP_VARS['description'], $HTTP_VARS['image'])) {
         //Insert required system s_attribute_type's.
         insert_s_item_attribute_type($HTTP_VARS['s_item_type'], $HTTP_VARS['s_field_type']['TITLE'], '1', NULL, 'N', 'Y', 'N', 'N');
         insert_s_item_attribute_type($HTTP_VARS['s_item_type'], $HTTP_VARS['s_field_type']['CATEGORY'], '10', NULL, 'N', 'N', 'N', 'N');
         if (get_opendb_config_var('borrow', 'enable') !== FALSE && get_opendb_config_var('borrow', 'duration_support') !== FALSE) {
             insert_s_item_attribute_type($HTTP_VARS['s_item_type'], $HTTP_VARS['s_field_type']['DURATION'], '200', NULL, 'N', 'N', 'N', 'N');
         }
         insert_s_item_attribute_type($HTTP_VARS['s_item_type'], $HTTP_VARS['s_field_type']['STATUSTYPE'], '254', NULL, 'N', 'N', 'N', 'N');
         insert_s_item_attribute_type($HTTP_VARS['s_item_type'], $HTTP_VARS['s_field_type']['STATUSCMNT'], '255', NULL, 'N', 'N', 'N', 'N');
         // Load the edit_types form now.
         $HTTP_VARS['op'] = 'edit_types';
     } else {
         $errors[] = array('error' => 'Item Type (' . $HTTP_VARS['s_item_type'] . ') not inserted.', 'detail' => db_error());
     }
 } else {