function checkCompanyId($company_id)
{
    $q = new DBQuery();
    $q->addTable('companies');
    $q->addQuery('count(*)');
    $q->addWhere("company_id = '{$company_id}'");
    return db_loadResult($q->prepare());
}
Example #2
0
function isHoliday($date = 0)
{
    // Query database for settings
    $holiday_manual = db_loadResult('SELECT holiday_manual FROM holiday_settings');
    $holiday_auto = db_loadResult('SELECT holiday_auto FROM holiday_settings');
    $holiday_driver = db_loadResult('SELECT holiday_driver FROM holiday_settings');
    if (!$date) {
        $date = new CDate();
    }
    if ($holiday_manual) {
        // Check whether the date is blacklisted
        $sql = "SELECT * FROM holiday ";
        $sql .= "WHERE ( date(holiday_start_date) <= '";
        $sql .= $date->format('%Y-%m-%d');
        $sql .= "' AND date(holiday_end_date) >= '";
        $sql .= $date->format('%Y-%m-%d');
        $sql .= "' AND holiday_white=0 ) ";
        $sql .= "OR ( ";
        $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '";
        $sql .= $date->format('%m-%d');
        $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '";
        $sql .= $date->format('%m-%d');
        $sql .= "' AND holiday_annual=1";
        $sql .= " AND holiday_white=0 ) ";
        if (db_loadResult($sql)) {
            return 0;
        }
        // Check if we have a whitelist item for this date
        $sql = "SELECT * FROM holiday ";
        $sql .= "WHERE ( date(holiday_start_date) <= '";
        $sql .= $date->format('%Y-%m-%d');
        $sql .= "' AND date(holiday_end_date) >= '";
        $sql .= $date->format('%Y-%m-%d');
        $sql .= "' AND holiday_white=1 ) ";
        $sql .= "OR ( ";
        $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '";
        $sql .= $date->format('%m-%d');
        $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '";
        $sql .= $date->format('%m-%d');
        $sql .= "' AND holiday_annual=1";
        $sql .= " AND holiday_white=1 ) ";
        if (db_loadResult($sql)) {
            return 1;
        }
    }
    if ($holiday_auto) {
        // Still here? Ok, lets poll the automatic system
        $drivers_alloc = Date_Holidays::getInstalledDrivers();
        $driver_object = Date_Holidays::factory($drivers_alloc[$holiday_driver]['title'], $date->getYear(), 'en_EN');
        if (!Date_Holidays::isError($driver_object)) {
            if ($driver_object->getHolidayForDate($date)) {
                return 1;
            }
        }
    }
    // No hits, must be a working day
    return 0;
}
Example #3
0
function sendNewPass()
{
    global $AppUI;
    $_live_site = dPgetConfig('base_url');
    $_sitename = dPgetConfig('company_name');
    // ensure no malicous sql gets past
    $checkusername = trim(dPgetParam($_POST, 'checkusername', ''));
    $checkusername = db_escape($checkusername);
    $confirmEmail = trim(dPgetParam($_POST, 'checkemail', ''));
    $confirmEmail = mb_strtolower(db_escape($confirmEmail));
    $query = 'SELECT user_id FROM users LEFT JOIN contacts ON user_contact = contact_id' . " WHERE user_username='******' AND LOWER(contact_email)='{$confirmEmail}'";
    if (!($user_id = db_loadResult($query)) || !$checkusername || !$confirmEmail) {
        $AppUI->setMsg('Invalid username or email.', UI_MSG_ERROR);
        $AppUI->redirect();
    }
    $newpass = makePass();
    $message = $AppUI->_('sendpass0', UI_OUTPUT_RAW) . ' ' . $checkusername . ' ' . $AppUI->_('sendpass1', UI_OUTPUT_RAW) . ' ' . $_live_site . ' ' . $AppUI->_('sendpass2', UI_OUTPUT_RAW) . ' ' . $newpass . ' ' . $AppUI->_('sendpass3', UI_OUTPUT_RAW);
    $subject = "{$_sitename} :: " . $AppUI->_('sendpass4', UI_OUTPUT_RAW) . " - {$checkusername}";
    $m = new Mail();
    // create the mail
    $m->From("dotProject@" . dPgetConfig('site_domain'));
    $m->To($confirmEmail);
    $m->Subject($subject);
    $m->Body($message, isset($GLOBALS['locale_char_set']) ? $GLOBALS['locale_char_set'] : "");
    // set the body
    $m->Send();
    // send the mail
    $newpass = md5($newpass);
    $sql = "UPDATE users SET user_password='******' WHERE user_id='{$user_id}'";
    $cur = db_exec($sql);
    if (!$cur) {
        die('SQL error' . $database->stderr(true));
    } else {
        $AppUI->setMsg('New User Password created and emailed to you');
        $AppUI->redirect();
    }
}
<?php 
    if (count($user_list)) {
        $percentage_sum = $hours_allocated_sum = $hours_worked_sum = 0;
        $sum_total_hours_allocated = $sum_total_hours_worked = 0;
        $sum_hours_allocated_complete = $sum_hours_worked_complete = 0;
        //TODO: Split times for which more than one users were working...
        foreach ($user_list as $user_id => $user) {
            $sql = "SELECT task_id\n\t\t\t        FROM user_tasks\n\t\t\t        where user_id = {$user_id}";
            $tasks_id = db_loadColumn($sql);
            $total_hours_allocated = $total_hours_worked = 0;
            $hours_allocated_complete = $hours_worked_complete = 0;
            foreach ($tasks_id as $task_id) {
                if (isset($task_list[$task_id])) {
                    // Now let's figure out how many time did the user spent in this task
                    $sql = "SELECT sum(task_log_hours)\n\t\t        \t\t\tFROM task_log\n\t\t        \t\t\tWHERE task_log_task        = {$task_id}\n\t\t\t\t\t              AND task_log_creator = {$user_id}";
                    $hours_worked = round(db_loadResult($sql), 2);
                    $sql = "SELECT task_percent_complete\n                                                FROM tasks\n                                                WHERE task_id = {$task_id}";
                    //                 echo $sql;
                    $percent = db_loadColumn($sql);
                    $complete = $percent[0] == 100;
                    if ($complete) {
                        $hours_allocated_complete += $task_list[$task_id]["hours_allocated"];
                        $hours_worked_complete += $hours_worked;
                    }
                    $total_hours_allocated += $task_list[$task_id]["hours_allocated"];
                    $total_hours_worked += $hours_worked;
                }
            }
            $sum_total_hours_allocated += $total_hours_allocated;
            $sum_total_hours_worked += $total_hours_worked;
            $sum_hours_allocated_complete += $hours_allocated_complete;
 function getCompanyName()
 {
     $sql = "select company_name from companies where company_id = '" . $this->contact_company . "'";
     $q = new DBQuery();
     $q->addTable('companies');
     $q->addQuery('company_name');
     $q->addWhere('company_id = ' . $this->contact_company);
     $sql = $q->prepare();
     $q->clear();
     $company_name = db_loadResult($sql);
     return $company_name;
 }
Example #6
0
    $titleBlock->addCrumb("?m=companies", "companies list");
    if ($company_id) {
        $titleBlock->addCrumb("?m=companies&a=view&company_id={$company_id}", "view this company");
    }
    $titleBlock->show();
} else {
    ##echo $sql.db_error();##
    $company_id = $dept_id ? $drow['dept_company'] : $company_id;
    // check if valid company
    $q = new DBQuery();
    $q->addTable('companies', 'com');
    $q->addQuery('company_name');
    $q->addWhere('com.company_id = ' . $company_id);
    $sql = $q->prepare();
    $q->clear();
    $company_name = db_loadResult($sql);
    if (!$dept_id && $company_name === null) {
        $AppUI->setMsg('badCompany', UI_MSG_ERROR);
        $AppUI->redirect();
    }
    // collect all the departments in the company
    $depts = array(0 => '');
    if ($company_id) {
        $q = new DBQuery();
        $q->addTable('departments', 'dep');
        $q->addQuery('dept_id, dept_name, dept_parent');
        $q->addWhere('dep.dept_company = ' . $company_id);
        $q->addWhere('dep.dept_id != ' . $dept_id);
        $depts = $q->loadArrayList();
        $depts['0'] = array(0, '- ' . $AppUI->_('Select Unit') . ' -', -1);
    }
Example #7
0
$sql = "SELECT COUNT(item_id)\n        FROM helpdesk_items\n        WHERE {$item_perms}";
$numtotal = db_loadResult($sql);
/*
 * Unassigned = 0
 * Open = 1
 * Closed = 2
 * On hold = 3
 * Delete = 4
 * Testing = 5
 */
$sql = "SELECT COUNT(DISTINCT(item_id))\n        FROM \n        \thelpdesk_items\n        WHERE \n        \titem_assigned_to=" . $AppUI->user_id . "\n        \tAND (item_status != 2)";
$nummine = db_loadResult($sql);
$sql = "SELECT COUNT(DISTINCT(item_id))\n        FROM \n        \thelpdesk_items\n        \tLEFT JOIN helpdesk_item_status on helpdesk_items.item_id = helpdesk_item_status.status_item_id\n        WHERE \n        \tstatus_code = 0\n            AND item_status <> 2\n            AND (TO_DAYS(NOW()) - TO_DAYS(status_date) = 0)\n        \tAND {$item_perms}";
$numopened = db_loadResult($sql);
$sql = "SELECT COUNT(DISTINCT(item_id))\n        FROM \n        \thelpdesk_items\n        \tLEFT JOIN helpdesk_item_status on helpdesk_items.item_id = helpdesk_item_status.status_item_id\n        WHERE \n        \titem_status=2\n        \tAND status_code=11\n        \tAND (TO_DAYS(NOW()) - TO_DAYS(status_date) = 0)\n          AND {$item_perms}";
$numclosed = db_loadResult($sql);
?>
<table cellspacing="0" cellpadding="2" border="0" width="100%">
<tr>
	<td width="80%" valign="top">
  <?php 
// Tabbed information boxes
$tabBox = new CTabBox("?m=helpdesk", "{$dPconfig['root_dir']}/modules/helpdesk/", $tab);
$tabBox->add('vw_idx_stats', $AppUI->_('Help Desk Items') . " ({$numtotal})");
$tabBox->add('vw_idx_my', $AppUI->_('My Open') . " ({$nummine})");
$tabBox->add('vw_idx_new', $AppUI->_('Opened Today') . " ({$numopened})");
$tabBox->add('vw_idx_closed', $AppUI->_('Closed Today') . " ({$numclosed})");
$tabBox->add('vw_idx_watched', "Watched Tickets");
$tabBox->show();
?>
	</td>
Example #8
0
        $AppUI->setMsg("noCompanies", UI_MSG_ERROR, true);
        $AppUI->redirect();
    }
}
if ($project_id == 0 && $company_id > 0) {
    $row->project_company = $company_id;
}
// add in the existing company if for some reason it is dis-allowed
if ($project_id && !array_key_exists($row->project_company, $companies)) {
    $q = new DBQuery();
    $q->addTable('companies');
    $q->addQuery('company_name');
    $q->addWhere('companies.company_id = ' . $row->project_company);
    $sql = $q->prepare();
    $q->clear();
    $companies[$row->project_company] = db_loadResult($sql);
}
// get critical tasks (criteria: task_end_date)
$criticalTasks = $project_id > 0 ? $row->getCriticalTasks() : NULL;
// get ProjectPriority from sysvals
$projectPriority = dPgetSysVal('ProjectPriority');
// format dates
$df = $AppUI->getPref('SHDATEFORMAT');
$start_date = new CDate($row->project_start_date);
$end_date = intval($row->project_end_date) ? new CDate($row->project_end_date) : null;
$actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null;
$style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : '';
// setup the title block
$ttl = $project_id > 0 ? "Edit Project" : "New Project";
$titleBlock = new CTitleBlock($ttl, 'applet3-48.png', $m, "{$m}.{$a}");
$titleBlock->addCrumb("?m=projects", "projects list");
Example #9
0
</td>		
	</tr>
	</table>
<?php 
    if ($log_pdf) {
        // make the PDF file
        if ($project_id) {
            $sql = "SELECT project_name FROM projects WHERE project_id={$project_id}";
            $pname = 'Project: ' . db_loadResult($sql);
        } else {
            $pname = "All Companies and All Projects";
        }
        echo db_error();
        if ($company_id) {
            $sql = "SELECT company_name FROM companies WHERE company_id={$company_id}";
            $cname = 'Company: ' . db_loadResult($sql);
        } else {
            $cname = "All Companies and All Projects";
        }
        echo db_error();
        $font_dir = dPgetConfig('root_dir') . "/lib/ezpdf/fonts";
        $temp_dir = dPgetConfig('root_dir') . "/files/temp";
        $base_url = dPgetConfig('base_url');
        require $AppUI->getLibraryClass('ezpdf/class.ezpdf');
        $pdf =& new Cezpdf();
        $pdf->ezSetCmMargins(1, 2, 1.5, 1.5);
        $pdf->selectFont("{$font_dir}/Helvetica.afm");
        $pdf->ezText(dPgetConfig('company_name'), 12);
        // $pdf->ezText( dPgetConfig( 'company_name' ).' :: '.dPgetConfig( 'page_title' ), 12 );
        $date = new CDate();
        $pdf->ezText("\n" . $date->format($df), 8);
Example #10
0
 function upgrade($old_version)
 {
     $success = 1;
     switch ($old_version) {
         case "0.1":
             // Drop unused columns, add some new columns
             $bulk_sql[] = "\n          ALTER TABLE `helpdesk_items`\n          ADD `item_requestor_phone` varchar(30) NOT NULL default '' AFTER `item_requestor_email`,\n          ADD `item_company_id` int(11) NOT NULL default '0' AFTER `item_project_id`,\n          ADD `item_requestor_type` tinyint NOT NULL default '0' AFTER `item_requestor_phone`,\n          ADD `item_notify` int(1) DEFAULT '1' NOT NULL AFTER `item_assigned_to`,\n          ADD `item_created_by` int(11) NOT NULL default '0',\n\t\t  ADD `item_updated` datetime default NULL,\n          DROP `item_receipt_target`,\n          DROP `item_receipt_custom`,\n          DROP `item_receipted`,\n          DROP `item_resolve_target`,\n          DROP `item_resolve_custom`,\n          DROP `item_resolved`,\n          DROP `item_assetno`\n        ";
             // Add help desk item id to task log table
             $bulk_sql[] = "\n          ALTER TABLE `task_log`\n          ADD `task_log_help_desk_id` int(11) NOT NULL default '0' AFTER `task_log_task`\n        ";
             // Add help desk item status log table
             $bulk_sql[] = "\n          CREATE TABLE `helpdesk_item_status` (\n            `status_id` INT NOT NULL AUTO_INCREMENT,\n            `status_item_id` INT NOT NULL,\n            `status_code` TINYINT NOT NULL,\n            `status_date` TIMESTAMP NOT NULL,\n            `status_modified_by` INT NOT NULL,\n            `status_comment` TEXT DEFAULT '',\n            PRIMARY KEY (`status_id`)\n          )\n        ";
             // Execute the above SQL
             foreach ($bulk_sql as $s) {
                 db_exec($s);
                 if (db_error()) {
                     $success = 0;
                 }
             }
             // Add audit trail to system values
             $sql = "SELECT syskey_id\n                FROM syskeys\n                WHERE syskey_name = 'HelpDeskList'";
             $syskey_id = db_loadResult($sql);
             $sv = new CSysVal($syskey_id, 'HelpDeskAuditTrail', "0|Created\n1|Title\n2|Requestor Name\n3|Requestor E-mail\n4|Requestor Phone\n5|Assigned To\n6|Notify by e-mail\n7|Company\n8|Project\n9|Call Type\n10|Call Source\n11|Status\n12|Priority\n13|Severity\n14|Operating System\n15|Application\n16|Summary\n17|Deleted");
             $sv->store();
             // Update help desk status values
             $sql = "UPDATE sysvals\n                SET sysval_value='0|Unassigned\n1|Open\n2|Closed\n3|On Hold\n4|Testing'\n                WHERE sysval_title='HelpDeskStatus'\n                LIMIT 1";
             db_exec($sql);
             /* Get data for conversion update */
             $sql = "SELECT item_id,item_requestor_id,item_created,item_project_id\n                FROM helpdesk_items";
             $items = db_loadList($sql);
             /* Populate the status log table with the item's creation date */
             foreach ($items as $item) {
                 $timestamp = date('Ymdhis', db_dateTime2unix($item['item_created']));
                 $sql = "INSERT INTO helpdesk_item_status\n                    (status_item_id,status_code,status_date,status_modified_by)\n                  VALUES ({$item['item_id']},0,'{$timestamp}',\n                          {$item['item_requestor_id']})";
                 db_exec($sql);
             }
             /* Figure out the company for each item based on project id or based
                on requestor id */
             foreach ($items as $item) {
                 if ($item['item_project_id']) {
                     $sql = "SELECT project_company\n                    FROM projects\n                    WHERE project_id='{$item['item_project_id']}'";
                     $company_id = db_loadResult($sql);
                 } else {
                     if ($item['item_requestor_id']) {
                         $sql = "SELECT user_company\n                    FROM users\n                    WHERE user_id='{$item['item_requestor_id']}'";
                         $company_id = db_loadResult($sql);
                     }
                 }
                 if ($company_id) {
                     $sql = "UPDATE helpdesk_items\n                    SET item_company_id='{$company_id}'\n                    WHERE item_id='{$item['item_id']}'";
                     db_exec($sql);
                 }
             }
             // If our status was 5 (Testing), now it is 4 (Testing)
             $sql = "UPDATE helpdesk_items\n                SET item_status='4'\n                WHERE item_status='5'";
             db_exec($sql);
             break;
         case 0.2:
             // Version 0.3 features new permissions
             $success = 1;
             break;
         case 0.3:
             // Version 0.31 includes new watchers functionality
             $sql = "\n\t\tCREATE TABLE helpdesk_item_watchers (\n\t\t  `item_id` int(11) NOT NULL default '0',\n\t\t  `user_id` int(11) NOT NULL default '0',\n\t\t  `notify` char(1) NOT NULL default ''\n\t\t) TYPE=MyISAM";
             db_exec($sql);
         case 0.31:
             $sql = "\n          ALTER TABLE `helpdesk_items`\n\t\t  ADD `item_updated` datetime default NULL\n        ";
             db_exec($sql);
             $sql = "SELECT `item_id` FROM helpdesk_items";
             $rows = db_loadList($sql);
             $sql = '';
             foreach ($rows as $row) {
                 $sql = "SELECT MAX(status_date) status_date FROM helpdesk_item_status WHERE status_item_id =" . $row['item_id'];
                 $sdrow = db_loadList($sql);
                 $sql = '';
                 $sql = "UPDATE `helpdesk_items`\n    \t  \tSET `item_updated`='" . $sdrow[0]['status_date'] . "' \n    \t  \tWHERE `item_id`=" . $row['item_id'];
                 db_exec($sql);
             }
             if (db_error()) {
                 $success = 0;
             } else {
                 $success = 1;
             }
             break;
         default:
             $success = 0;
     }
     // NOTE: Need to return true, not null, if all is good
     return $success;
 }
function checkCompanyId($company_id)
{
    return db_loadResult("SELECT count(*) FROM companies WHERE company_id = '{$company_id}'");
}
Example #12
0
/**
* Document::db_updateObject()
*
* { Description }
*
* @param [type] $updateNulls
*/
function db_updateObject($table, &$object, $keyName, $updateNulls = true, $descriptionField = NULL)
{
    global $AppUI;
    $perms =& $AppUI->acl();
    $fmtsql = "UPDATE `{$table}` SET %s WHERE %s";
    $obj_vars_arr = get_object_vars($object);
    foreach ($obj_vars_arr as $k => $v) {
        if (is_array($v) || is_object($v) || $k[0] == '_') {
            // internal or NA field
            continue;
        }
        if ($k == $keyName) {
            // PK not to be updated
            $where = "{$keyName}='" . db_escape($v) . "'";
            continue;
        }
        if ($v === NULL && !$updateNulls) {
            continue;
        }
        $val = $v === '' ? "''" : "'" . db_escape($v) . "'";
        $tmp[] = "{$k}={$val}";
    }
    if (count($tmp)) {
        $sql = sprintf($fmtsql, implode(",", $tmp), $where);
        $retval = db_exec($sql);
        if ($retval) {
            $perm_item_id = $perms->get_object_id($table, $obj_vars_arr[$keyName], 'axo');
            if ($perm_item_id) {
                if ($descriptionField) {
                    $keyDesc = $descriptionField;
                } else {
                    //try to get a valid label field from module table by default
                    $keyDesc = db_loadResult('SELECT permissions_item_label FROM modules' . " WHERE permissions_item_table = '" . $table . "'");
                }
                if ($keyDesc) {
                    $perms->edit_object($perm_item_id, $table, $obj_vars_arr[$keyDesc], $obj_vars_arr[$keyName], 0, 0, 'axo');
                }
            }
        }
    } else {
        $retval = true;
    }
    return $retval;
}
Example #13
0
function getPermission($mod, $perm, $item_id = 0)
{
    // First check if the module is readable, i.e. has view permission.
    $perms =& $GLOBALS['AppUI']->acl();
    $result = $perms->checkModule($mod, $perm);
    // If we have access then we need to ensure we are not denied access to the particular
    // item.
    if ($result && $item_id) {
        if ($perms->checkModuleItemDenied($mod, $perm, $item_id)) {
            $result = false;
        }
    }
    // If denied we need to check if we are allowed the task.  This can be done
    // a lot better in PHPGACL, but is here for compatibility.
    if ($mod == 'tasks' && !$result && $item_id > 0) {
        $sql = "SELECT task_project FROM tasks WHERE task_id = {$item_id}";
        $project_id = db_loadResult($sql);
        $result = getPermission('projects', $perm, $project_id);
    }
    return $result;
}
    if (!$res) {
        $AppUI->setMsg('File could not be moved', UI_MSG_ERROR);
        $AppUI->redirect();
    }
}
if (!$file_id) {
    $obj->file_owner = $AppUI->user_id;
    if (!$obj->file_version_id) {
        $q = new DBQuery();
        $q->addTable('files');
        $q->addQuery('file_version_id');
        $q->addOrder('file_version_id DESC');
        $q->setLimit(1);
        $sql = $q->prepare();
        $q->clear();
        $latest_file_version = db_loadResult($sql);
        $obj->file_version_id = $latest_file_version + 1;
    } else {
        $q = new DBQuery();
        $q->addTable('files');
        $q->addUpdate('file_checkout', '');
        $q->addWhere("file_version_id = {$obj->file_version_id}");
        $q->exec();
        $q->clear();
    }
}
if ($msg = $obj->store()) {
    $AppUI->setMsg($msg, UI_MSG_ERROR);
} else {
    $obj->load($obj->file_id);
    if ($not == '1') {
Example #15
0
function getPermission($mod, $perm, $item_id = 0)
{
    global $AppUI;
    $perms =& $AppUI->acl();
    // First check if the module is readable, i.e. has view permission.
    $result = $perms->checkModuleItem($mod, $perm, $item_id);
    // We need to check if we are allowed to view in the parent module item.
    // This can be done a lot better in PHPGACL, but is here for compatibility.
    if ($item_id && $perm == 'view') {
        if ($mod == 'task_log') {
            $sql = 'SELECT task_log_task FROM task_log WHERE task_log_id =' . $item_id;
            $task_id = db_loadResult($sql);
            $result = $result && getPermission('tasks', $perm, $task_id);
        } else {
            if ($mod == 'tasks') {
                $sql = 'SELECT task_project FROM tasks WHERE task_id =' . $item_id;
                $project_id = db_loadResult($sql);
                $result = $result && getPermission('projects', $perm, $project_id);
            } else {
                if ($mod == 'projects') {
                    $sql = 'SELECT project_company FROM projects WHERE project_id =' . $item_id;
                    $company_id = db_loadResult($sql);
                    $result = $result && getPermission('companies', $perm, $company_id);
                }
            }
        }
    }
    return $result;
}
Example #16
0
}
if ($obj->file_project) {
    $file_project = $obj->file_project;
}
if ($obj->file_task) {
    $file_task = $obj->file_task;
    $task_name = $obj->getTaskName();
} else {
    if ($file_task) {
        $q = new DBQuery();
        $q->addTable('tasks');
        $q->addQuery('task_name');
        $q->addWhere("task_id={$file_task}");
        $sql = $q->prepare();
        $q->clear();
        $task_name = db_loadResult($sql);
    } else {
        $task_name = '';
    }
}
if ($obj->file_helpdesk_item) {
    $file_helpdesk_item = $obj->file_helpdesk_item;
}
$extra = array('where' => 'project_status <> 7');
$project = new CProject();
$projects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra);
$projects = arrayMerge(array('0' => $AppUI->_('None', UI_OUTPUT_RAW)), $projects);
$folders = getFolderSelectList();
?>
<script language="javascript" type="text/javascript">
function submitIt() {
Example #17
0
 function install()
 {
     $sql = "SELECT mod_directory FROM modules WHERE mod_directory = '{$this->mod_directory}'";
     if (db_loadHash($sql, $temp)) {
         // the module is already installed
         // TODO: check for older version - upgrade
         return false;
     }
     $sql = 'SELECT max(mod_ui_order) FROM modules';
     // We need to account for "pre-installed" modules that are "UI Inaccessible"
     // in order to make sure we get the "correct" initial value for .
     // mod_ui_order values of "UI Inaccessible" modules are irrelevant
     // and should probably be set to 0 so as not to interfere.
     $sql .= " WHERE mod_name NOT LIKE 'Public'";
     $this->mod_ui_order = db_loadResult($sql) + 1;
     $perms =& $GLOBALS['AppUI']->acl();
     $perms->addModule($this->mod_directory, $this->mod_name);
     // Determine if it is an admin module or not, then add it to the correct set
     if (!isset($this->mod_admin)) {
         $this->mod_admin = 0;
     }
     if ($this->mod_admin) {
         $perms->addGroupItem($this->mod_directory, "admin");
     } else {
         $perms->addGroupItem($this->mod_directory, "non_admin");
     }
     if (isset($this->permissions_item_table) && $this->permissions_item_table) {
         $perms->addModuleSection($this->permissions_item_table);
     }
     $this->store();
     return true;
 }
Example #18
0
<?php

if (!defined('DP_BASE_DIR')) {
    die('You should not access this file directly.');
}
// Output the PDF
// make the PDF file
if ($project_id != 0) {
    $sql = "SELECT project_name FROM projects WHERE project_id={$project_id}";
    $pname = db_loadResult($sql);
} else {
    $pname = $AppUI->_('All Projects');
}
if ($err = db_error()) {
    $AppUI->setMsg($err, UI_MSG_ERROR);
    $AppUI->redirect();
}
$date = new CDate();
$next_week = new CDate($date);
$next_week->addSpan(new Date_Span(array(7, 0, 0, 0)));
$hasResources = $AppUI->isActiveModule('resources');
$perms =& $AppUI->acl();
if ($hasResources) {
    $hasResources = $perms->checkModule('resources', 'view');
}
// Build the data to go into the table.
$pdfdata = array();
$columns = array();
$columns[] = $AppUI->_('Task Name');
$columns[] = $AppUI->_('Owner');
$columns[] = $AppUI->_('Assigned Users');
Example #19
0
function countFiles($folder_id)
{
    global $company_id, $project_id, $task_id;
    global $allowedCompanies, $allowedProjects, $allowedTasks, $allowedFolders;
    $q = new DBQuery();
    //get file count for folder
    $q->addTable('files', 'f');
    $q->addJoin('projects', 'p', 'p.project_id = f.file_project');
    $q->addJoin('tasks', 't', 't.task_id = f.file_task');
    $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = f.file_folder');
    $q->addQuery('count(f.file_id)', 'file_in_folder');
    $q->addWhere('f.file_folder = ' . $folder_id);
    if (count($allowedFolders)) {
        $q->addWhere('((' . implode(' AND ', $allowedFolders) . ') OR f.file_folder = 0)');
    }
    if (count($allowedProjects)) {
        $q->addWhere('((' . implode(' AND ', $allowedProjects) . ') OR f.file_project = 0)');
    }
    if (count($allowedTasks)) {
        $q->addWhere('((' . implode(' AND ', $allowedTasks) . ') OR file_task = 0)');
    }
    if ($project_id) {
        $q->addWhere('f.file_project = ' . $project_id);
    }
    if ($task_id) {
        $q->addWhere('f.file_task = ' . $task_id);
    }
    if ($company_id) {
        $q->innerJoin('companies', 'co', 'co.company_id = p.project_company');
        $q->addWhere('co.company_id = ' . $company_id);
        if (count($allowedCompanies)) {
            $q->addWhere('(' . implode(' AND ', $allowedCompanies) . ')');
        }
    }
    $sql = $q->prepare();
    $q->clear();
    return db_loadResult($sql);
}
Example #20
0
function countFiles($folder)
{
    global $AppUI, $company_id, $allowed_companies, $tab;
    global $deny1, $deny2, $project_id, $task_id, $showProject, $file_types;
    $q = new DBQuery();
    $q->addTable('files');
    $q->addQuery('count(files.file_id)', 'file_in_folder');
    $q->addJoin('projects', 'p', 'p.project_id = file_project');
    $q->addJoin('users', 'u', 'u.user_id = file_owner');
    $q->addJoin('tasks', 't', 't.task_id = file_task');
    $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = file_folder');
    $q->addWhere('file_folder = ' . $folder);
    if (count($deny1) > 0) {
        $q->addWhere('file_project NOT IN (' . implode(',', $deny1) . ')');
    }
    if (count($deny2) > 0) {
        $q->addWhere('file_task NOT IN (' . implode(',', $deny2) . ')');
    }
    if ($project_id) {
        $q->addWhere('file_project = ' . $project_id);
    }
    if ($task_id) {
        $q->addWhere('file_task = ' . $task_id);
    }
    if ($company_id) {
        $q->innerJoin('companies', 'co', 'co.company_id = p.project_company');
        $q->addWhere('company_id = ' . $company_id);
        $q->addWhere('company_id IN (' . $allowed_companies . ')');
    }
    $sql = $q->prepare();
    $q->clear();
    $files_in_folder = db_loadResult($sql);
    return $files_in_folder;
}
Example #21
0
}
//grab hours per day from config
$min_hours_day = $AppUI->cfg['daily_working_hours'];
$can_edit_other_timesheets = $TIMECARD_CONFIG['minimum_edit_level'] >= $AppUI->user_type;
$show_other_worksheets = $TIMECARD_CONFIG['minimum_see_level'] >= $AppUI->user_type;
$show_possible_hours_worked = $TIMECARD_CONFIG['show_possible_hours_worked'];
//print "<pre>";
//print_r($AppUI);
//print "</pre>";
//compute hours/week from config
$min_hours_week = count(explode(",", dPgetConfig("cal_working_days"))) * $min_hours_day;
// get date format
$df = $AppUI->getPref('SHDATEFORMAT');
if (isset($_GET['user_id'])) {
    $sql = "SELECT user_company FROM users WHERE user_id = " . $_GET['user_id'];
    $company_id = db_loadResult($sql);
    if (getDenyRead("companies", $company_id)) {
        $AppUI->setMsg('Access denied', UI_MSG_ERROR);
        $AppUI->redirect();
    }
    $AppUI->setState('TimecardSelectedUser', $_GET['user_id']);
}
$user_id = $AppUI->getState('TimecardSelectedUser') ? $AppUI->getState('TimecardSelectedUser') : $AppUI->user_id;
$AppUI->savePlace();
if (isset($_GET['start_date'])) {
    $AppUI->setState('TimecardStartDate', $_GET['start_date']);
}
$start_day = new CDate($AppUI->getState('TimecardStartDate') ? $AppUI->getState('TimecardStartDate') : NULL);
//set the time to noon to combat a php date() function bug that was adding an hour.
$date = $start_day->format('%Y-%m-%d') . ' 12:00:00';
$start_day->setDate($date, DATE_FORMAT_ISO);
Example #22
0
    die('You should not access this file directly.');
}
if (!($user_id = dPgetParam($_REQUEST, 'user_id', 0))) {
    $user_id = @$AppUI->user_id;
}
// check for a non-zero user id
if ($user_id) {
    $old_pwd = db_escape(trim(dPgetParam($_POST, 'old_pwd', null)));
    $new_pwd1 = db_escape(trim(dPgetParam($_POST, 'new_pwd1', null)));
    $new_pwd2 = db_escape(trim(dPgetParam($_POST, 'new_pwd2', null)));
    // has the change form been posted
    if ($new_pwd1 && $new_pwd2 && $new_pwd1 == $new_pwd2) {
        // check that the old password matches
        $old_md5 = md5($old_pwd);
        $sql = "SELECT user_id FROM users WHERE user_password = '******' AND user_id={$user_id}";
        if ($AppUI->user_type == 1 || db_loadResult($sql) == $user_id) {
            require_once $AppUI->getModuleClass('admin');
            $user = new CUser();
            $user->user_id = $user_id;
            $user->user_password = $new_pwd1;
            if ($msg = $user->store()) {
                $AppUI->setMsg($msg, UI_MSG_ERROR);
            } else {
                echo $AppUI->_('chgpwUpdated');
            }
        } else {
            echo $AppUI->_('chgpwWrongPW');
        }
    } else {
        ?>
<script language="javascript">
Example #23
0
                    $users[$user]['pending'][] =& $task;
                } else {
                    $users[$user]['inprogress'][] =& $task;
                }
            }
            $users[$user]['hours'] += $users[$user]['all'][$task['task_id']]['work'];
            $tasks['hours'] += $users[$user]['all'][$task['task_id']]['work'];
        }
    }
}
$sql = '
SELECT sum(file_size)
FROM files
WHERE file_project = ' . $project_id . '
GROUP BY file_project';
$files = db_loadResult($sql);
$ontime = round(100 * (1 - count($tasks['overdue']) / count($all_tasks) - count($tasks['completed']) / count($all_tasks)));
?>

<table width="100%" border="1" cellpadding="0" cellspacing="0" class="tbl">
<tr>
	<th colspan="3"><?php 
echo $AppUI->_('Progress Chart (completed/in progress/pending)');
?>
</th>
</tr>
<tr height="30">
	<td width="<?php 
echo round(count($tasks['completed']) / count($all_tasks) * 100);
?>
%" style="background: springgreen; text-align: center;"><?php 
Example #24
0
function showcompany($company, $restricted = false)
{
    global $AppUI, $allpdfdata, $log_start_date, $log_end_date, $log_all;
    /* $sql="
            SELECT
                    billingcode_id,
                    billingcode_name,
                    billingcode_value
            FROM billingcode
            WHERE company_id=$company
            ORDER BY billingcode_name ASC
            ";
    
            $company_billingcodes=NULL;
            $ptrc=db_exec($sql);
            $nums=db_num_rows($ptrc);
            echo db_error();
    
            for ($x=0; $x < $nums; $x++) {
                    $row=db_fetch_assoc($ptrc);
                    $company_billingcodes[$row['billingcode_id']]=$row['billingcode_name'];
            }
    */
    $sql = "SELECT project_id, project_name\n\t\tFROM projects\n\t\tWHERE project_company = {$company}";
    $projects = db_loadHashList($sql);
    $sql = "SELECT company_name\n\t\tFROM companies\n\t\tWHERE company_id = {$company}";
    $company_name = db_loadResult($sql);
    $table = '<h2>Company: ' . $company_name . '</h2>
        <table cellspacing="1" cellpadding="4" border="0" class="tbl">';
    $project_row = '
        <tr>
                <th>' . $AppUI->_('Project') . '</th>';
    $pdfth[] = $AppUI->_('Project');
    /*		if (isset($company_billingcodes))
    	                foreach ($company_billingcodes as $code)
    			{
            	                $project_row .= '<th>' . $code . ' ' . $AppUI->_('Hours') . '</th>';
    				$pdfth[] = $code;
    			}
      */
    $project_row .= '<th>' . $AppUI->_('Total') . '</th></tr>';
    $pdfth[] = $AppUI->_('Total');
    $pdfdata[] = $pdfth;
    $hours = 0.0;
    $table .= $project_row;
    foreach ($projects as $project => $name) {
        $pdfproject = array();
        $pdfproject[] = $name;
        $project_hours = 0;
        $project_row = "<tr><td>{$name}</td>";
        $sql = "SELECT task_log_costcode, sum(task_log_hours) as hours\n\t\t\tFROM projects, tasks, task_log\n\t\t\tWHERE project_id = {$project}";
        if ($log_start_date != 0 && !$log_all) {
            $sql .= " AND task_log_date >= {$log_start_date}";
        }
        if ($log_end_date != 0 && !$log_all) {
            $sql .= " AND task_log_date <= {$log_end_date}";
        }
        if ($restricted) {
            $sql .= " AND task_log_creator = '" . $AppUI->user_id . "'";
        }
        $sql .= " AND project_id = task_project\n\t\t\tAND task_id = task_log_task\n\t\t\tGROUP BY project_id";
        //task_log_costcode";
        $task_logs = db_loadHashList($sql);
        /*		if (isset($company_billingcodes))
        		foreach($company_billingcodes as $code => $name)
        		{
        			if (isset($task_logs[$code]))
        			{
        				$value = sprintf( "%.2f", $task_logs[$code] );
        				$project_row .= '<td>' . $value . '</td>';
        				$project_hours += $task_logs[$code];
        				$pdfproject[] = $value;
        			}
        			else
        			{
        				$project_row .= '<td>&nbsp;</td>';
        				$pdfproject[] = 0;
        			}
        		}
        */
        foreach ($task_logs as $task_log) {
            $project_hours += $task_log;
        }
        $project_row .= '<td>' . round($project_hours, 2) . '</td></tr>';
        $pdfproject[] = round($project_hours, 2);
        $hours += $project_hours;
        if ($project_hours > 0) {
            $table .= $project_row;
            $pdfdata[] = $pdfproject;
        }
    }
    if ($hours > 0) {
        $allpdfdata[$company_name] = $pdfdata;
        echo $table;
        echo '<tr><td>Total</td><td>' . round($hours, 2) . '</td></tr></table>';
    }
    return $hours;
}
Example #25
0
    die('You should not access this file directly.');
}
$contact_id = intval(dPgetParam($_GET, 'contact_id', 0));
$AppUI->savePlace();
// load the record data
$msg = '';
$row = new CContact();
$canDelete = $row->canDelete($msg, $contact_id);
// Don't allow to delete contacts, that have a user associated to them.
$q = new DBQuery();
$q->addTable('users');
$q->addQuery('user_id');
$q->addWhere('user_contact = ' . $contact_id);
$sql = $q->prepare();
$q->clear();
$tmp_user = db_loadResult($sql);
if (!empty($tmp_user)) {
    $canDelete = false;
}
$canEdit = getPermission($m, 'edit', $contact_id);
if (!$row->load($contact_id) && $contact_id > 0) {
    $AppUI->setMsg('Contact');
    $AppUI->setMsg('invalidID', UI_MSG_ERROR, true);
    $AppUI->redirect();
} else {
    if ($row->contact_private && $row->contact_owner != $AppUI->user_id && $row->contact_owner && $contact_id != 0) {
        $AppUI->redirect('m=public&a=access_denied');
    }
}
// setup the title block
$ttl = 'View Contact';
Example #26
0
 function delete()
 {
     $q = new DBQuery();
     $q->setDelete('forum_visits');
     $q->addWhere('visit_message = ' . $this->message_id);
     $q->exec();
     // No error if this fails, it is not important.
     $q->clear();
     $q->addTable('forum_messages');
     $q->addQuery('message_forum');
     $q->addWhere('message_id = ' . $this->message_id);
     $forumId = db_loadResult($q->prepare());
     $q->clear();
     $q->setDelete('forum_messages');
     $q->addWhere('message_id = ' . $this->message_id);
     if (!$q->exec()) {
         $result = db_error();
     } else {
         $result = NULL;
     }
     $q->clear();
     $q->addTable('forum_messages');
     $q->addQuery('COUNT(*)');
     $q->addWhere('message_forum = ' . $forumId);
     $messageCount = db_loadResult($q->prepare());
     $q->clear();
     $q->addTable('forums');
     $q->addUpdate('forum_message_count', $messageCount);
     $q->addWhere('forum_id = ' . $forumId);
     $q->exec();
     $q->clear();
     return $result;
 }
Example #27
0
 function get_deps_max_end_date($taskObj)
 {
     global $tracked_dynamics;
     $q = new DBQuery();
     $deps = $taskObj->getDependencies();
     $obj = new CTask();
     $last_end_date = false;
     // Don't respect end dates of excluded tasks
     if ($tracked_dynamics && !empty($deps)) {
         $track_these = implode(',', $tracked_dynamics);
         $q->addTable('tasks');
         $q->addQuery('MAX(task_end_date)');
         $q->addWhere('task_id IN (' . $deps . ') AND task_dynamic IN (' . $track_these . ')');
         $sql = $q->prepare();
         $q->clear();
         $last_end_date = db_loadResult($sql);
     }
     if (!$last_end_date) {
         // Set to project start date
         $id = $taskObj->task_project;
         $q->addTable('projects');
         $q->addQuery('project_start_date');
         $q->addWhere('project_id = ' . $id);
         $sql = $q->prepare();
         $q->clear();
         $last_end_date = db_loadResult($sql);
     }
     return $last_end_date;
 }
Example #28
0
 function isActiveModule($module)
 {
     $q = new DBQuery();
     $q->addTable('modules');
     $q->addQuery('mod_active');
     $q->addWhere("mod_directory = '{$module}'");
     $sql = $q->prepare();
     $q->clear();
     return db_loadResult($sql);
 }
Example #29
0
    $hours = db_loadResult($sql);
    $total_hours = $days * $dPconfig['daily_working_hours'] + $hours;
    $total_project_hours = 0;
    $q->addTable('tasks', 't');
    $q->addQuery('ROUND(SUM(t.task_duration*u.perc_assignment/100),2)');
    $q->addJoin('user_tasks', 'u', 't.task_id = u.task_id');
    $q->addWhere("t.task_project = {$project_id} AND t.task_duration_type = 24 AND t.task_dynamic != 1");
    $total_project_days_sql = $q->prepare();
    $q->clear();
    $q->addTable('tasks', 't');
    $q->addQuery('ROUND(SUM(t.task_duration*u.perc_assignment/100),2)');
    $q->addJoin('user_tasks', 'u', 't.task_id = u.task_id');
    $q->addWhere("t.task_project = {$project_id} AND t.task_duration_type = 1 AND t.task_dynamic != 1");
    $total_project_hours_sql = $q->prepare();
    $q->clear();
    $total_project_hours = db_loadResult($total_project_days_sql) * $dPconfig['daily_working_hours'] + db_loadResult($total_project_hours_sql);
    //due to the round above, we don't want to print decimals unless they really exist
    //$total_project_hours = rtrim($total_project_hours, "0");
} else {
    //no tasks in project so "fake" project data
    $worked_hours = $total_hours = $total_project_hours = 0.0;
}
// get the prefered date format
$df = $AppUI->getPref('SHDATEFORMAT');
// create Date objects from the datetime fields
$start_date = intval($obj->project_start_date) ? new CDate($obj->project_start_date) : null;
$end_date = intval($obj->project_end_date) ? new CDate($obj->project_end_date) : null;
$actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null;
$style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : '';
// setup the title block
$titleBlock = new CTitleBlock('View Project', 'applet3-48.png', $m, "{$m}.{$a}");
Example #30
0
 function countFolders()
 {
     $this->_query->clear();
     $this->_query->addTable($this->_tbl);
     $this->_query->addQuery('COUNT(*)');
     $sql = $this->_query->prepare();
     $result = db_loadResult($sql);
     return $result;
 }