Ejemplo n.º 1
0
			}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");
Ejemplo n.º 2
0
	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;
	}
Ejemplo n.º 3
0
         $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:
Ejemplo n.º 4
0
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();
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
		$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;
Ejemplo n.º 7
0
	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;
	}
Ejemplo n.º 8
0
 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;
 }