}else{ $error_msg .= "Error deleting Payment Schedule!\n"; } }else{ goBack(); } } }else{ fatal_error("Invalid mode ({$_REQUEST['mode']}) for this page!"); } $company =& $project->getCompany(); $item_codes = $item_code->getCompanyPricedCodes($company->id); if($item_codes === FALSE){ $error_msg .= "Could not get item codes for company!\n"; debug_message($item_code->getLastError()); } ?> <? require('header.php'); ?> <script> function ItemCode(id, description, cost, price){ this.id = id; this.description = description; this.cost = cost; this.price = price; } var item_prices = new Array(); <? for($i = 0; $i <= count($item_codes); $i++){ if(!empty($item_codes[$i]->id)){ print("item_prices[".$item_codes[$i]->id."] = new ItemCode(\"".$item_codes[$i]->id."\",\"".$item_codes[$i]->description."\", \"".$item_codes[$i]->cost."\", \"".$item_codes[$i]->price."\");\n");
function getCodeName($ic_id = null, $long = false){ if(is_null($ic_id)){ $ic_id = $this->id; } $ic = new SI_ItemCode(); $results = $ic->retrieveSet('WHERE id = '.$ic_id, true); if($results == false){ $this->error = "Error looking up item code: ".$ic->getLastError(); return FALSE; } $name = ''; foreach($results as $row){ $name = $row['code']; if($long){ $name .= ' - '.$row['description']; } } return $name; }
$output['error'] = "Could not retreive project:\n" . $project->getLastError(); break; } if (!$project->hasRights(PROJECT_RIGHT_EDIT)) { $output['error'] = "Insufficent access rights for this project!\n"; break; } $task_activity->hourly_cost = $loggedin_user->hourly_rate; $company = $project->getCompany(); if ($company === FALSE) { $output['error'] = "Could not get company information:\n" . $project->getLastError(); break; } $task_activity->hourly_rate = $item_code->getCompanyPrice($company->id, $task_activity->item_code_id); if ($task_activity->hourly_rate === FALSE) { $output['error'] = "Error getting price for this item code:\n" . $item_code->getLastError(); break; } $sct = $task->getSalesCommissionType(); $task_activity->sales_com_type_id = $sct->id; if ($task_activity->add()) { if ($project->sendUpdateNotification(array("Added new task activity " . $GLOBALS['CONFIG']['url'] . '/task_activity.php?mode=edit&id=' . $task_activity->id)) === FALSE) { $output['error'] = "Error sending update notification:\n" . $project->getLastError(); break; } } else { $output['error'] = "Error adding Task Activity:\n" . $task_activity->getLastError(); break; } break; default:
checkLogin(); if(!isset($_REQUEST['mode']) || empty($_REQUEST['mode'])){ fatal_error("Export mode must be specified!"); }elseif(strtolower($_REQUEST['mode']) == 'company'){ $company = new SI_Company(); $output = $company->exportQB(); if($output === FALSE){ fatal_error("Error getting company export data!\n".$company->getLastError()); } }elseif(strtolower($_REQUEST['mode']) == 'item_code'){ $code = new SI_ItemCode(); $output = $code->exportQB(); if($output === FALSE){ fatal_error("Error getting item code export data!\n".$code->getLastError()); } }elseif(strtolower($_REQUEST['mode']) == 'account'){ $account = new SI_Account(); $output = $account->exportQB(); if($output === FALSE){ fatal_error("Error getting account export data!\n".$account->getLastError()); } }elseif(strtolower($_REQUEST['mode']) == 'payment'){ $payment = new SI_Payment(); $output = $payment->exportQB(); if($output === FALSE){ fatal_error("Error getting payment export data!\n".$payment->getLastError()); } }elseif(strtolower($_REQUEST['mode']) == 'invoice'){ $invoice = new SI_Invoice();
function soap_add_task_activity($username, $password, $task_activity) { global $loggedin_user; $user = auth_user($username, $password); if ($user === FALSE) { return new soap_fault('Client', '', 'Access Denied'); } $loggedin_user = $user; $task = new SI_Task(); $project = new SI_Project(); $item_code = new SI_ItemCode(); $ta = new SI_TaskActivity(); $ta->start_ts = $task_activity['start_ts']; $ta->end_ts = $task_activity['end_ts']; $ta->task_id = $task_activity['task_id']; $ta->user_id = $loggedin_user->id; $ta->text = $task_activity['text']; $ta->item_code_id = $task_activity['item_code_id']; if ($ta->task_id > 0 || $ta->start_ts > 0 || $ta->end_ts > 0) { if ($ta->task_id <= 0 || $ta->start_ts <= 0 || $ta->end_ts <= 0) { return new soap_fault('Client', '', 'Invalid data fields in task_activity'); } } if ($task->get($ta->task_id) === FALSE) { return new soap_fault('Client', '', 'Could not retreive task ID ' . $ta->task_id, $task->getLastError()); } if ($project->get($task->project_id) === FALSE) { return new soap_fault('Client', '', 'Could not retreive project!', $project->getLastError()); } if (!$project->hasRights(PROJECT_RIGHT_EDIT)) { return new soap_fault('Client', '', 'Insufficent access rights for this project!'); } $ta->hourly_cost = $loggedin_user->hourly_rate; $company = $project->getCompany(); if ($company === FALSE) { return new soap_fault('Client', '', 'Could not get company information!', $project->getLastError()); } $ta->hourly_rate = $item_code->getCompanyPrice($company->id, $ta->item_code_id); if ($ta->hourly_rate === FALSE) { return new soap_fault('Client', '', 'Error getting price for this item code!', $item_code->getLastError()); } $sct = $task->getSalesCommissionType(); $ta->sales_com_type_id = $sct->id; if ($ta->add()) { $project->sendUpdateNotification(array("Added new task activity " . $GLOBALS['CONFIG']['url'] . '/task_activity.php?mode=edit&id=' . $task_activity->id)); } else { return new soap_fault('Client', '', 'Error adding Task Activity!', $ta->getLastError()); } return $ta->id; }
$data = $importer->import($dest_file); if($data === FALSE){ $error_msg .= "Error importing file!"; debug_message($importer->getLastError()); } $company = new SI_Company(); if($company->importQB($data) === FALSE){ $error_msg .= "Error importing company data!"; debug_message($company->getLastError()); } $code = new SI_ItemCode(); if($code->importQB($data) === FALSE){ $error_msg .= "Error importing item code data!"; debug_message($code->getLastError()); } $account = new SI_Account(); if($account->importQB($data) === FALSE){ $error_msg .= "Error importing account data!"; debug_message($account->getLastError()); } } } ?> <? require('header.php'); ?> <div class="box"> <div class="boxTitle"><h3><?php echo $title;
function getItemCode(){ if($this->item_code_id <= 0){ $this->error = "SI_TaskActivity::getItemCode(): Item Code id is not set"; return FALSE; } if($this->_item_code == FALSE){ $ic = new SI_ItemCode(); if($ic->get($this->item_code_id) === FALSE){ $this->error = "SI_TaskActivity::getItemCode(): Error getting item code {$this->item_code_id}: ".$ic->getLastError(); return FALSE; } $this->_item_code =& $ic; } return $this->_item_code; }
function run($preview = true) { $results = array(); if (is_readable($this->file)) { $handle = fopen($this->file, "r"); $first_row = true; while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) { if ($first_row) { $first_row = false; continue; } // Process a row $result = array(); $result['action'] = 'Import'; $result['start_ts'] = strtotime($data[$this->column_mappings[SI_IMPORT_COLUMN_START]]); if (isset($this->column_mappings[SI_IMPORT_COLUMN_DURATION])) { // Duration based import $result['end_ts'] = $result['start_ts'] + floatval($data[$this->column_mappings[SI_IMPORT_COLUMN_DURATION]]) * 60 * 60; } else { // Start and end time provided $result['start_ts'] = strtotime($data[$this->column_mappings[SI_IMPORT_COLUMN_END]]); } if (isset($this->column_mappings[SI_IMPORT_COLUMN_COMMENTS])) { $result['comments'] = $data[$this->column_mappings[SI_IMPORT_COLUMN_COMMENTS]]; } else { $results['comments'] = ''; } $user = $data[$this->column_mappings[SI_IMPORT_COLUMN_USER]]; $normalized_user = $this->normalize($user); if (empty($normalized_user)) { $normalized_user = '******'; } if ($this->users[$normalized_user]['action'] == SI_IMPORT_ACTION_SKIP) { $result['user_id'] = 0; $result['message'] = "Skipped because no user map for '{$user}' was configured"; $result['action'] = "Skip"; $results[] = $result; continue; } else { $result['user_id'] = $this->users[$normalized_user]['param']; } $task = $data[$this->column_mappings[SI_IMPORT_COLUMN_TASK]]; $normalized_task = $this->normalize($task); if (empty($normalized_task)) { $normalized_task = '_blank_'; } if ($this->tasks[$normalized_task]['action'] == SI_IMPORT_ACTION_SKIP) { $result['task_id'] = 0; $result['message'] = "Skipped because no task map for '{$task}' was configured"; $result['action'] = "Skip"; $results[] = $result; continue; } else { $result['task_id'] = $this->tasks[$normalized_task]['param']; } $task = new SI_Task(); $task->get($result['task_id']); $ic = $data[$this->column_mappings[SI_IMPORT_COLUMN_ITEMCODE]]; $normalized_ic = $this->normalize($ic); if (empty($normalized_ic)) { $normalized_ic = '_blank_'; } if ($this->item_codes[$normalized_ic]['action'] == SI_IMPORT_ACTION_SKIP) { $result['item_code_id'] = $task->getDefaultItemCode(); if ($result['item_code_id'] == 0) { $result['message'] = "Skipped because no item code map for '{$ic}' was configured and no default item code exists for project"; $result['action'] = "Skip"; $results[] = $result; continue; } else { $result['message'] = "Item Code retreived from project"; } } else { $result['item_code_id'] = $this->item_codes[$normalized_ic]['param']; } if ($result['start_ts'] <= 0 || $result['end_ts'] <= 0) { $result['message'] = "Invalid start or end time"; $result['action'] = "Skip"; $results[] = $result; continue; } if ($result['start_ts'] > $result['end_ts']) { $result['message'] = "Start Time is before end time"; $result['action'] = "Skip"; $results[] = $result; continue; } if ($result['end_ts'] - $result['start_ts'] > 12 * 60 * 60) { $result['message'] = "Length of time is too long, >12 hours"; $result['action'] = "Skip"; $results[] = $result; continue; } $project = new SI_Project(); $company = new SI_Company(); $task = new SI_Task(); $item_code = new SI_ItemCode(); $task_activity = new SI_TaskActivity(); $task_activity->start_ts = $result['start_ts']; $task_activity->end_ts = $result['end_ts']; $task_activity->task_id = $result['task_id']; $task_activity->user_id = $result['user_id']; $task_activity->text = $result['comments']; $task_activity->item_code_id = $result['item_code_id']; if ($task_activity->task_id > 0 || $task_activity->start_ts > 0 || $task_activity->end_ts > 0) { if ($task_activity->task_id <= 0 || $task_activity->start_ts <= 0 || $task_activity->end_ts <= 0) { $result['action'] = "Skip"; $result['message'] = "Skipping incomplete entry\n"; $results[] = $result; continue; } } else { $result['action'] = "Skip"; $result['message'] = "Skipping incomplete entry\n"; $results[] = $result; continue; } if ($task->get($task_activity->task_id) === FALSE) { $result['action'] = "Skip"; $result['message'] = "Could not retreive task:\n" . $task->getLastError(); $results[] = $result; continue; } if ($project->get($task->project_id) === FALSE) { $result['action'] = "Skip"; $result['message'] = "Could not retreive project:\n" . $project->getLastError(); $results[] = $result; continue; } $user = new SI_User(); if ($user->get($task_activity->user_id) === FALSE) { $result['action'] = "Skip"; $result['message'] = "Could not retreive user:\n" . $user->getLastError(); $results[] = $result; continue; } $task_activity->hourly_cost = $user->hourly_rate; $company = $project->getCompany(); if ($company === FALSE) { $result['action'] = "Skip"; $result['message'] = "Could not get company information:\n" . $project->getLastError(); $results[] = $result; continue; } $task_activity->hourly_rate = $item_code->getCompanyPrice($company->id, $task_activity->item_code_id); if ($task_activity->hourly_rate === FALSE) { $result['action'] = "Skip"; $result['message'] = "Error getting price for this item code:\n" . $item_code->getLastError(); $results[] = $result; continue; } $sct = $task->getSalesCommissionType(); $task_activity->sales_com_type_id = $sct->id; if (!$preview) { if (!$task_activity->add()) { $result['action'] = "Skip"; $result['message'] = "Error adding Task Activity:\n" . $task_activity->getLastError(); } } $results[] = $result; } } return $results; }