/** * Render object reminder information * * @param array $params * @param Smarty $smarty * @return string * 12 April 2012 (SA) Ticket #784: check Recurring Reminder email script in AC */ function smarty_function_object_reminder($params, &$smarty) { $ticket = array_var($params, 'object'); if (!instance_of($ticket, 'Ticket')) { return 'N/A'; } // if require_once SMARTY_PATH . '/plugins/function.select_date.php'; $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); $query = "select * from healingcrystals_project_object_misc where object_id='" . (int) $ticket->getId() . "'"; $result = mysql_query($query, $link); if (mysql_num_rows($result)) { $info = mysql_fetch_assoc($result); $reminder_date = dateval($info['reminder_date']); $recurring_period = $info['recurring_period']; $recurring_period_type = $info['recurring_period_type']; } mysql_close($link); $resp = '<form name="frmReminder" action="' . $ticket->getEditUrl() . '&mode=reminder_only_update_mode" method=post>' . smarty_function_select_date(array('name' => 'reminder', 'value' => !empty($reminder_date) ? date('m/d/Y', strtotime($reminder_date)) : '', 'id' => 'reminder', 'onchange' => 'this.form.submit();'), $smarty) . '</form>'; return $resp; }
function quickreminder() { if ($this->active_task->isNew()) { $this->httpError(HTTP_ERR_NOT_FOUND, null, true, $this->request->isApiCall()); } if (empty($this->active_task_parent)) { $this->httpError(HTTP_ERR_NOT_FOUND, null, true, $this->request->isApiCall()); } if (!$this->active_task->canEdit($this->logged_user) && $this->active_task->getProjectId() != TASK_LIST_PROJECT_ID) { $this->httpError(HTTP_ERR_FORBIDDEN, null, true, $this->request->isApiCall()); } $task_data = $this->request->post('taskquick'); if (!is_array($task_data)) { $task_data = array('body' => $this->active_task->getBody(), 'priority' => $this->active_task->getPriority(), 'due_on' => $this->active_task->getDueOn(), 'assignees' => Assignments::findAssignmentDataByObject($this->active_task)); $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); $query = "select * from healingcrystals_project_object_misc where object_id='" . $this->active_task->getId() . "'"; $result = mysql_query($query, $link); if (mysql_num_rows($result)) { $info = mysql_fetch_assoc($result); //$task_data['recurring_flag'] = '1'; //$task_data['recurring_period'] = $info['recurring_period']; //if (empty($task_data['recurring_period'])){ // $task_data['recurring_flag'] = '0'; //} //$task_data['recurring_period_type'] = $info['recurring_period_type']; //$task_data['recurring_period_condition'] = $info['recurring_period_condition']; //$task_data['recurring_end_date'] = empty($info['recurring_end_date']) || $info['recurring_end_date']=='0000-00-00' ? '' : dateval($info['recurring_end_date']); if (!empty($info['reminder_date']) && $info['reminder_date'] != '0000-00-00 00:00:00') { list($date, $time) = explode(' ', $info['reminder_date']); list($h, $m, $s) = explode(':', $time); $date = dateval($date); } $task_data['reminder'] = $date; $task_data['remindermeridian'] = $h >= 12 ? 'PM' : 'AM'; $task_data['reminderhours'] = $h > 12 ? $h - 12 : ($h != 0 ? $h : '12'); $task_data['reminderminutes'] = $m; $task_data['auto_email_status'] = $info['auto_email_status']; } else { //$task_data['recurring_flag'] = '0'; //$task_data['recurring_period'] = ''; //$task_data['recurring_period_type'] = 'D'; //$task_data['recurring_period_condition'] = 'after_due_date'; //$task_data['recurring_end_date'] = ''; $task_data['reminder'] = ''; $task_data['reminderhours'] = ''; $task_data['reminderminutes'] = ''; $task_data['remindermeridian'] = ''; $task_data['auto_email_status'] = ''; } mysql_close($link); } $this->smarty->assign('task_data', $task_data); $refresh_task_content_mode = false; if ($this->request->isSubmitted()) { if (!isset($task_data['assignees'])) { $task_data['assignees'] = array(array(), 0); } db_begin_work(); $old_name = $this->active_task->getBody(); $this->active_task->setAttributes($task_data); $save = $this->active_task->save(); if ($save && !is_error($save)) { db_commit(); $reminder = dateval($task_data['reminder']); $reminderhours = (int) $task_data['reminderhours']; $reminderminutes = (int) $task_data['reminderminutes']; $remindermeridian = $task_data['remindermeridian']; if (!empty($reminder)) { if (!empty($remindermeridian) && $remindermeridian == 'PM' && $reminderhours < 12) { $reminderhours += 12; } elseif (!empty($remindermeridian) && $remindermeridian == 'AM' && $reminderhours == 12) { $reminderhours = 0; } $reminder = $reminder . ' ' . $reminderhours . ':' . $reminderminutes; } $email_flag = empty($task_data['email_flag']) ? '0' : '1'; $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); $query = "select * from healingcrystals_project_object_misc where object_id='" . $this->active_task->getId() . "'"; $result = mysql_query($query, $link); if (mysql_num_rows($result)) { $query01 = "update healingcrystals_project_object_misc set reminder_date='" . $reminder . "', auto_email_status='" . $email_flag . "', last_modified=now() where object_id='" . $this->active_task->getId() . "'"; mysql_query($query01, $link); } else { $query01 = "insert into healingcrystals_project_object_misc\n (object_id,\n reminder_date,\n recurring_period,\n recurring_period_type,\n recurring_period_condition,\n recurring_end_date,\n date_added,\n auto_email_status) values\n ('" . $this->active_task->getId() . "',\n '" . $reminder . "',\n null,\n null,\n null,\n null,\n now(),\n '" . $email_flag . "')"; mysql_query($query01, $link); } mysql_close($link); /*if($this->request->isApiCall()) { $this->serveData($this->active_task, 'task'); } else { flash_success('Task ":name" has been updated', array('name' => str_excerpt(strip_tags($old_name), 80, '...')), false, false); $this->redirectToUrl($this->active_task_parent->getViewUrl() . '#task' . $this->active_task->getId()); }*/ $refresh_task_content_mode = true; } else { db_rollback(); if ($this->request->isApiCall()) { $this->serveData($save); } else { $this->smarty->assign('errors', $save); } } } else { if ($this->request->isApiCall()) { $this->httpError(HTTP_ERR_BAD_REQUEST, null, true, true); } } $this->smarty->assign('refresh_task_content_mode', $refresh_task_content_mode); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'invoice_id': $set = intval($value); break; case 'amount': $set = floatval($value); break; case 'paid_on': $set = dateval($value); break; case 'comment': $set = strval($value); break; case 'created_on': $set = datetimeval($value); break; case 'created_by_id': $set = intval($value); break; case 'created_by_name': $set = strval($value); break; case 'created_by_email': $set = strval($value); break; } // switch return parent::setFieldValue($real_name, $set); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'company_id': $set = intval($value); break; case 'group_id': $set = intval($value); break; case 'name': $set = strval($value); break; case 'leader_id': $set = intval($value); break; case 'leader_name': $set = strval($value); break; case 'leader_email': $set = strval($value); break; case 'overview': $set = strval($value); break; case 'status': $set = strval($value); break; case 'type': $set = strval($value); break; case 'default_visibility': $set = boolval($value); break; case 'starts_on': $set = dateval($value); break; case 'completed_on': $set = datetimeval($value); break; case 'completed_by_id': $set = intval($value); break; case 'completed_by_name': $set = strval($value); break; case 'completed_by_email': $set = strval($value); break; case 'created_on': $set = datetimeval($value); break; case 'updated_on': $set = datetimeval($value); break; case 'created_by_id': $set = intval($value); break; case 'created_by_name': $set = strval($value); break; case 'created_by_email': $set = strval($value); break; case 'open_tasks_count': $set = intval($value); break; case 'total_tasks_count': $set = intval($value); break; } // switch return parent::setFieldValue($real_name, $set); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'name': $set = strval($value); break; case 'group_name': $set = strval($value); break; case 'is_default': $set = boolval($value); break; case 'user_filter': $set = strval($value); break; case 'user_filter_data': $set = strval($value); break; case 'billable_filter': $set = strval($value); break; case 'date_filter': $set = strval($value); break; case 'date_from': $set = dateval($value); break; case 'date_to': $set = dateval($value); break; case 'sum_by_user': $set = boolval($value); break; } // switch return parent::setFieldValue($real_name, $set); }
function register_reminder_info($object_id, $reminder_info) { $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); $query = "select * from healingcrystals_project_object_misc where object_id='" . (int) $object_id . "'"; $result = mysql_query($query, $link); if (mysql_num_rows($result)) { if (empty($reminder_info['date']) && empty($reminder_info['period'])) { $query = "delete from healingcrystals_project_object_misc where object_id='" . (int) $object_id . "'"; mysql_query($query, $link); } else { $query = "update healingcrystals_project_object_misc set reminder_date=" . (empty($reminder_info['date']) ? "null" : "'" . dateval($reminder_info['date']) . "'") . ", recurring_period=" . (empty($reminder_info['period']) ? "null" : "'" . $reminder_info['period'] . "'") . ", recurring_period_type=" . (empty($reminder_info['period']) ? "null" : "'" . $reminder_info['type'] . "'") . ", last_modified=now() where object_id='" . (int) $object_id . "'"; mysql_query($query, $link); } } else { if (!empty($reminder_info['date']) || !empty($reminder_info['period'])) { $query = "insert into healingcrystals_project_object_misc (object_id, reminder_date, recurring_period, recurring_period_type, date_added) values ('" . $object_id . "', " . (empty($reminder_info['date']) ? "null" : "'" . dateval($reminder_info['date']) . "'") . ", " . (empty($reminder_info['period']) ? "null" : "'" . $reminder_info['period'] . "'") . ", " . (empty($reminder_info['period']) ? "null" : "'" . $reminder_info['type'] . "'") . ", now())"; mysql_query($query, $link); } } mysql_close($link); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'company_id': $set = intval($value); break; case 'project_id': $set = intval($value); break; case 'currency_id': $set = intval($value); break; case 'language_id': $set = intval($value); break; case 'number': $set = strval($value); break; case 'company_name': $set = strval($value); break; case 'company_address': $set = strval($value); break; case 'comment': $set = strval($value); break; case 'note': $set = strval($value); break; case 'status': $set = intval($value); break; case 'issued_on': $set = dateval($value); break; case 'issued_by_id': $set = intval($value); break; case 'issued_by_name': $set = strval($value); break; case 'issued_by_email': $set = strval($value); break; case 'issued_to_id': $set = intval($value); break; case 'due_on': $set = dateval($value); break; case 'closed_on': $set = datetimeval($value); break; case 'closed_by_id': $set = intval($value); break; case 'closed_by_name': $set = strval($value); break; case 'closed_by_email': $set = strval($value); break; case 'created_on': $set = datetimeval($value); break; case 'created_by_id': $set = intval($value); break; case 'created_by_name': $set = strval($value); break; case 'created_by_email': $set = strval($value); break; } // switch return parent::setFieldValue($real_name, $set); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'type': $set = strval($value); break; case 'source': $set = strval($value); break; case 'module': $set = strval($value); break; case 'project_id': $set = intval($value); break; case 'milestone_id': $set = intval($value); break; case 'parent_id': $set = intval($value); break; case 'parent_type': $set = strval($value); break; case 'name': $set = strval($value); break; case 'body': $set = strval($value); break; case 'tags': $set = strval($value); break; case 'state': $set = intval($value); break; case 'visibility': $set = intval($value); break; case 'priority': $set = intval($value); break; case 'created_on': $set = datetimeval($value); break; case 'created_by_id': $set = intval($value); break; case 'created_by_name': $set = strval($value); break; case 'created_by_email': $set = strval($value); break; case 'updated_on': $set = datetimeval($value); break; case 'updated_by_id': $set = intval($value); break; case 'updated_by_name': $set = strval($value); break; case 'updated_by_email': $set = strval($value); break; case 'due_on': $set = dateval($value); break; case 'completed_on': $set = datetimeval($value); break; case 'completed_by_id': $set = intval($value); break; case 'completed_by_name': $set = strval($value); break; case 'completed_by_email': $set = strval($value); break; case 'has_time': $set = boolval($value); break; case 'comments_count': $set = intval($value); break; case 'is_locked': $set = boolval($value); break; case 'varchar_field_1': $set = strval($value); break; case 'varchar_field_2': $set = strval($value); break; case 'integer_field_1': $set = intval($value); break; case 'integer_field_2': $set = intval($value); break; case 'float_field_1': $set = floatval($value); break; case 'float_field_2': $set = floatval($value); break; case 'text_field_1': $set = strval($value); break; case 'text_field_2': $set = strval($value); break; case 'date_field_1': $set = dateval($value); break; case 'date_field_2': $set = dateval($value); break; case 'datetime_field_1': $set = datetimeval($value); break; case 'datetime_field_2': $set = datetimeval($value); break; case 'boolean_field_1': $set = boolval($value); break; case 'boolean_field_2': $set = boolval($value); break; case 'position': $set = intval($value); break; case 'version': $set = intval($value); break; //BOF: task 04 | AD //case 'category_id': // $set = intval($value); // break; //EOF: task 04 | AD } // switch return parent::setFieldValue($real_name, $set); }
/** * Set value of specific field * * @param string $name * @param mided $value * @return mixed */ function setFieldValue($name, $value) { $real_name = $this->realFieldName($name); $set = $value; switch ($real_name) { case 'id': $set = intval($value); break; case 'name': $set = strval($value); break; case 'group_name': $set = strval($value); break; case 'is_private': $set = boolval($value); break; case 'user_filter': $set = strval($value); break; case 'user_filter_data': $set = strval($value); break; case 'project_filter': $set = strval($value); break; case 'project_filter_data': $set = strval($value); break; case 'date_filter': $set = strval($value); break; case 'date_from': $set = dateval($value); break; case 'date_to': $set = dateval($value); break; case 'status_filter': $set = strval($value); break; case 'objects_per_page': $set = intval($value); break; case 'order_by': $set = strval($value); break; case 'created_by_id': $set = intval($value); break; } // switch return parent::setFieldValue($real_name, $set); }